JAVAEE初阶相关内容第十八弹--网络原理之TCP_IP【续集】

写在前

上一篇博客的重点内容主要讲了关于传输层的TCP协议、UDP协议。

点击跳转上一篇博客

重点介绍了协议的特点、协议端格式、需要重点理解并掌握TCP的工作机制(十条)。

TCP与UDP对比?

TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。

UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等,另外,UDP还可以用于广播【同一机房内部,天然支持广播-- IP地址中有一种特殊的地址”广播IP“通过UDP往广播上发送数据报,此时该局域网内所有的设备都能收到数据。】

传输层的协议并非只有这两个,例如有的是专门为了游戏打造的,典型协议:KCP。

本篇博客将重点介绍网络层协议-IP

目录

网络层协议代表-IP协议

1. 协议头格式

2. 点分十进制

3. 关于IP地址不够用问题的解决办法

(1)动态分配IP

(2)NAT网络地址转换

(3)IPV6

4. IP协议-地址管理

4.1 网络号

4.2 主机号

4.3 子网掩码

5. IP协议-路由选择


网络层协议代表-IP协议

在复杂的网络环境中确定一个合适的路径。

1. 协议头格式

JAVAEE初阶相关内容第十八弹--网络原理之TCP_IP【续集】_第1张图片

地址管理、路由选择。

对“16位总长度”的理解

16位总长度是不是意味着一个IP数据报,最大只能支持64KB?

确实是有这个限制的,相当于一个快递公司一次最大只能给运输64kg的快递,但是,IP自身就支持对包的拆分和组装。一个IP数据报携带的数据载荷太大了,超过了64KB,就会在网络层针对数据进行拆分,把一个数据拆分成多个IP数据报,再分别发送,接收方再重新拼装。

IP协议中最重要的部分:32位源IP,32位目的IP

2. 点分十进制

此处看到的IP地址是32位整数,但是日常见到的IP则是一串数字,使用三个点把32位4个字节的数字分隔开,每个部分分别使用0-255的十进制数字进行表示。

3. 关于IP地址不够用问题的解决办法

32位数字,只能表示42亿9千万个数字,我们期望使用这个表示全世界所有的上网设备。为了解决IP地址不够用的问题,想了很多办法。

(1)动态分配IP

提高利用率,指标不治本

(2)NAT网络地址转换

使用1个IP地址代表一批网络设备【端口号区分】

关于内网和外网:

NAT背景下把IP地址分成了两大类:内网IP和外网IP

内网IP【私有IP】:10.开头的、172.16.*-172.31.*、192.168.*

外网IP【公网IP】: 除了内网IP外的都是外网IP。

NAT要求:公网IP必须是唯一的,内网IP可以在不同的局域网中重复出现。如果某个私网里的设备想访问公网的设备,就需要对应的NAT设备【路由器】,把IP地址进行映射,从而完成网络访问。反之,公网的设备,无法直接访问私网的设备,不同局域网的私网设备没法直接进行相互访问。

NAT机制能够有效的解决IP不够用的问题,但是带来的副作用就是网络的环境更加复杂了。

(3)IPV6

根本上解决了IP不够用的问题,使用16位字节表示IP地址。

虽然IPV6看起来是美好的,但是当前世界上仍然是以NAT+IPV4+动态分配来进行网络组建的。真正使用IPV6的地方非常少。

主要原因是IPV6贵,IPV6与IPV4还不兼容。

4. IP协议-地址管理

把一个IP地址分成了两部分,一个叫网络号,一个叫主机号。

4.1 网络号

表示网段,保证相互连接的两个网段具有不同的标识。

4.2 主机号

标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

193.168.0.10    --   网络号:192.168.0  主机号:10

划分网络号和主机号就是为了组网。

4.3 子网掩码

子网掩码格式和IP地址格式一样,也是32位的二进制数,其中左边是网络位,用二进制”1“表示,1的数目等于网络位长度。右边是主机位,用二进制”0“表示,0的数目等于主机位长度。对于家用设备来说,子网掩码最常见的就是255.255.255.0。

作用:划分A、B、C三类IP地址子网;网络通信时,子网掩码会结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段。

5. IP协议-路由选择

路径规划

核心思路--问路。每个路由器都会保存一定的周围设备的信息(路由表)。每次有一个IP数据报经过路由器。就需要匹配路由表,看看接下来咋走。如果路由表上有匹配的选项【该路由器认识路】,直接按照要求走就可以。如果没有匹配的选项【不认识路】,会提供一个默认路径,大体方向是不会错的。每次经过一个路由器问一次,TTL-1。如果减到0还没到,就说明永远都到不了,这个地址没人知道,就被丢弃了。

你可能感兴趣的:(Javaee,JAVA面试,网络,tcp/ip,网络协议,java,面试)