java网络编程

网络编程基础

1、常用的网络拓扑结构:

星型网络、总线网络、环线网络、树形网络、星型环线网络

2、通信协议的组成

通信协议通常由3部分组成:

语义部分:用于决定通信双方对话类型

语法部分:用于决定通信双方对话格式

变换规则:用于决定通信双方的应答关系

3、OSI模型和TCP/IP模型

OSI:开放系统互联参考模型

应用层

表示层

会话层

传输层

网络层

数据链路层

TCP/IP:传输控制协议

应用层

传输层

网络层

物理数据链路层

4、IP地址和端口号

IP地址用于唯一的标识网络中的一个通信实体,这个通信实体即可以是一台主机,也可以是一台打印机,或者是路由器的某个端口。

(IPv4)逻辑地址的定义:

一共有32位二进制,分成4部分,每部分8位。

0000 0000 - 1111 1111 <->  0 - 255 所以ip地址会写成例如:10.20.158.75这种形式

逻辑地址具有层次结构,分为网络地址和主机地址

为了标识不同规模的网络,将IPV4逻辑地址进行了分类:

A类:只有第一段表示网络地址,后面都表示主机地址

8位网络地址,24位主机地址,可以容纳2^24-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.0.0.0

0 000 0001 - 0 111 1111 <-> 1 - 127

一共有127个A类地址,但127用于回环。所以有效的A类地址:1-126

B类:前两段表示网络地址,后两段表示主机地址

16位网络地址,16位主机地址,可以容纳2^16-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.255.0.0

10 00 0001 - 10 11 1111 <-> 128 - 191

一共有64个B类地址(这只是从第一段来分类),真正B类地址有2^14个

C类:前三段表示网络地址,后一段表示主机地址

24位网络地址,8位主机地址,可以容纳2^8-2台主机(主机位全0为网络地址,全1为广播地址)

子网掩码:255.255.255.0

110 0 0001 - 110 1 1111 <->192 - 223

一共有32个C类地址(这只是从第一段来分类),真正的C类地址有2^21个

D类:1110 0000 - 1110 1111 <-> 224 - 239

E类:余下的都是E类

ICANN:国际互联网地址分配机构(注册域名和地址分配机构)

ICANN预留出了一部分地址,专门用于本地使用,不能用于连互联网,这类地址称为私有地址

私有地址:(作为原地址可以,目标地址不行,不能在互联网通信)

A类:10.0.0.0/8

B类:172.16.0.0/16 -172.31.0.0/16(16个B类网)

C类:192.168.0.0/24 -192.168.255.0/24(256个C类网)

IP地址用于唯一的标识网络中的一个通信实体,但一个通信实体可以有多个通信程序同时提供网络服务,此时还需要用到端口

端口是一个16位的整数,用于表示数据交给哪个通信程序处理。端口就是应用程序与外界交流的出入口,它是一种抽象的软件接口,包括一些数据结构和I/O(基本输入输出)缓冲区

不同的应用程序处理不同端口上的数据,端口号可以从0到65535。通常分为3类

1)公认端口:0 - 1023 ,他们紧密绑定一些特定的服务

2)注册端口:1024 - 49151 ,他们松散的绑定一些服务,应用程序通常应该使用这个范围内的端口

3)动态和/或私有端口:49152 - 65535 这些端口是应用程序使用的动态端口,应用程序一般不会主动使用这些端口

java网络编程基础——网络基础的更多相关文章

  1. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分   老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/gu ...

  2. Python网络编程之网络基础

    Python网络编程之网络基础 目录 Python网络编程之网络基础 1. 计算机网络发展 1.1. OSI七层模型 1.2. 七层模型传输数据过程 2. TCP/IP协议栈 2.1 TCP/IP和O ...

  3. UNIX环境高级编程——TCP/IP网络编程 常用网络信息检索函数

    UNIX环境高级编程——TCP/IP网络编程   常用网络信息检索函数 gethostname()   getppername()   getsockname()   gethostbyname() ...

  4. JAVA基础——网络编程之网络链接

    一.网络编程基本概念 1.OSI与TCP/IP体系模型 2.IP和端口 解决了文章最开始提到的定位的问题. IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证):网络编程是和远程计算 ...

  5. 网络编程入坑基础-BIO总结

    IO总结 前提 参考资料: <Java I/O> -- 这本书没有翻译版,需要自己啃一下. <Java I/O>这本书主要介绍了IO和NIO的相关API使用,但是NIO部分并不 ...

  6. 老师的blog整理 .网络编程部分 .网络编程部分 前端部分 django基础部分

    老师的blog整理 python基础部分: 宝哥blog: https://www.cnblogs.com/guobaoyuan/ 开哥blog: https://home.cnblogs.com/u ...

  7. 总结day23 ---- 网络编程,以及计算机基础概念

    计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...

  8. 网络编程中TCP基础巩固以及Linux打开的文件过多文件句柄的总结

    1.TCP连接(短链接和长连接) 什么是TCP连接?TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 当网络通信 ...

  9. UNIX网络编程——揭开网络编程常见API的面纱【上】

    Linux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作. 1.socket(famil ...

  10. Python 网络编程之网络协议(未完待续)

    一:网络编程从两大架构开始 1.网络开发的两大架构 c/s 架构 : client  server B/S 架构 : Brower  server (1)bs 和 cs 架构之间的关系? (2)哪一种 ...

随机推荐

  1. C语言代码区错误以及编译过程

    C语言代码区错误 欲想了解C语言代码段会有如何错误,我们必须首先了解编译器是如何把C语言文本信息编译成为可以执行的机器码的. 背景介绍 测试使用的C语言代码 导入标准库,定义宏变量,定义结构体,重命名 ...

  2. 使用有道云笔记还是github写笔记的优缺点对比

    有道云笔记的优点 在手机上编辑笔记,有道云的体验更好,建议:新建普通类型笔记而不是markdown笔记,因为md在手机上的编辑体验并不好 插入图片方便无需考虑图床 可以把笔记分享到社交平台(QQ,微信 ...

  3. 【NX二次开发】Block UI 线性尺寸

    属性说明 常规         类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical ...

  4. asp.net core 实现 face recognition 使用 tensorflowjs(源代码)

    功能描述 上传照片文件名及是系统要识别标签或是照片的名称(人物标识) 提取照片脸部特征值(调用 facemesh模型) 保存特征值添加样本(调用 knnClassifier) 测试上传的图片是否识别正 ...

  5. 深度解读MRS IoTDB时序数据库的整体架构设计与实现

    [本期推荐]华为云社区6月刊来了,新鲜出炉的Top10技术干货.重磅技术专题分享:还有毕业季闯关大挑战,华为云专家带你做好职业规划. 摘要:本文将会系统地为大家介绍MRS IoTDB的来龙去脉和功能特 ...

  6. JUL 日志框架

    1.JUL 简介 JUL 全称 Java Util Logging,位于java.util.logging.Logger 包.它是 java 原生的日志框架,使用时无需另外引用第三方的类库,相对其他的 ...

  7. 怎样用好PS中的钢笔工具(附练习钢笔工具网站)

    想要在PS中得心应手的的描绘出自己想要的线条(也就是路径),就需要对[钢笔工具]有一个充分的理解. [钢笔工具]绘出来的线条全部都是贝赛尔曲线,所以你在学习[钢笔工具]之前,要补习一下贝赛尔曲线的常识 ...

  8. 16、如何将安装在chrome上的插件(扩展程序)打包成".crx"文件

    1.打开扩展程序: 2.打开开发者模式并选择要打包的插件: 3.打包扩展程序: (1) (2) (3)

  9. 重新整理 .net core 实践篇————网关中的身份签名认证[三十七]

    前言 简单整理一下网关中的jwt,jwt用于授权认证的,其实关于认证授权这块https://www.cnblogs.com/aoximin/p/12268520.html 这个链接的时候就已经写了,当 ...

  10. 解决List遍历删除元素提示ConcurrentModificationException

    JDK1.8提供新的API  ===>  removeIf public static void main(String[] args) { List<String> list = ...