200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【计算机网络】6. 网络基础4之详解IP协议( IP协议头格式 IP地址管理 路由选择)

【计算机网络】6. 网络基础4之详解IP协议( IP协议头格式 IP地址管理 路由选择)

时间:2022-03-24 09:02:48

相关推荐

【计算机网络】6. 网络基础4之详解IP协议( IP协议头格式 IP地址管理 路由选择)

目录

1. IP协议头格式2. IP地址管理2.1 IP地址的早期划分方式2.1.1 A类2.1.2 B类2.1.3 C类2.2 现在分配IP的方式:CIDR方式2.2.1 引入子网掩码3. 路由选择

网络层:完成了路由选择和地址管理

1. IP协议头格式

(1)4位版本:标识是IPV4版本 0100

(2)4位首部长度:二进制数字计算出来的是数值,需要给计算出来的数值 * 4,才表示首部占用的字节数量

(3)8位服务类型:前三位描述的是优先级,但是已经弃用了

中间4位分别代表最小延时、最大吞吐量、最高可靠性、最下成本

最后一位为保留位

(4)16位总长度:最大标识ip数据报的长度为2162^{16}216,即65536字节

考虑问题:

UDP数据长度为2162^{16}216字节,IP协议在传输UDP数据的时候,是否需要IP协议进行分片传输?

TCP数据是严格按照MSS的大小进行传输的,IP协议在传输TCP数据的时候,是否需要IP协议进行分片传输?

(5)16位标识:标识ip分片是属于哪一个数据包的

3位标志:第一位:保留位

第二位:禁止分片

第三位:1:后面还有分片

0:后面没有分片了

13位片偏移:分片相当于在原始数据当中的偏移量

回忆前提:MTU

MTU是数据链路层对到达数据链路层数据大小的规定。数据链路层进行发送数据时,是严格按照MTU进行发送数据的,数据大小不会超过MTU。

数据链路层就会要求网络层ip协议给数据链路层递交的数据大小不能超过MTU

如果IP协议传输的数据大于数据链路层对于数据的限制(MTU),IP协议就需要将数据进行分片传输。将大于MTU的数据报进行切分,以满足MTU的要求。

分片在网络当中进行传输的时候,不同的分片有可能走不同路由。分片到达对端主机的时候,有可能不是按照发送的顺序到达的。

IP协议对到达网络层的数据一定要有一个认知:当前的ip数据报是一个分片,还是一个完整的数据报。ip协议段当中的16位标识中3位标志和13位片偏移会进行确定。

13位片偏移:最大能表示的数字为2132^{13}213,即8192,但是这只是一个数值,并不是数据包当中偏移的字节数量,偏移的字节大小 = 13位偏移计算的数值 * 232^323(8)

回答上面考虑的问题:

UDP是整条数据交付给网络层,UDP协议的最大传输数据大小是2162^{16}216字节,有可能UDP递交给网络层的数据已经超过了MTU。

UDP整条交付的数据大小大于MTU,则网络层需要对UDP数据进行分片传输。将UDP数据分成不同的小片进行传输

UDP整条交付的数据大小小于MTU,则网络层不需要对UDP数据进行分片传输。

由于TCP在三次握手的过程当中已经协商了各自传输的最大报文段长度,而各自的最大报文段长度是由各自的MTU计算的来的。MSS + TCP_header + IP_header <= MTU。双方在协商的时候,采用了最小的MSS。

TCP在传输数据到网络层的时候,是严格按照MSS进行传输的。传输到网络层的数据一定是小于MTU。

分片丢了会重发分片还是所有数据一起重发?

有分片,则代表一定是UDP数据进行分片了

分片:传输一定是UDP数据+UDP协议是不保证可靠+IP协议也是不保证可靠

重发只能从应用层协议出发重传,所有数据一起重发

(6)8位生存时间:TTL,允许IP数据报最大经历的路由器数量

TTL = 64:ip数据报最大经过路由器64次转发

路由器每转发一次,TTL进行减1,如果TTL为0,还没有到达对端主机,则该ip数据报被网络丢弃,不会再进行转发。有效预防了循坏路由。

(7)8位协议:标识当前的ip数据报传递给传输层的哪一个协议。

虽然说一个端口只能被一个进程所绑定,但是一个端口可以被TCP和UDP进程同时绑定

(8)16位首部校验和:校验数据在传输过程当中是否失真

2. IP地址管理

ipv4版本的ip地址

ip地址:本质是unit32_t的整数(无符号32位整数)

ip地址 = 网络号 + 主机号

网络号:可以在网络中标识一个子网,一个子网当中会有多个ip地址

主机号:在一个子网当中标识一个主机

2.1 IP地址的早期划分方式

2.1.1 A类

最高一位固定为0,后7位为网络号,24位为主机号

网络号的范围:共 272^727 = 128 个子网

主机号范围:一个子网共 2242^{24}224 = 16777216 个ip地址

2.1.2 B类

最高两位固定为10,14位网络号,16位主机号

网络号范围:共 2142^{14}214 = 16384 个子网

主机号范围:一个子网共 2162^{16}216 = 65536 个ip地址

2.1.3 C类

最高三位固定为110,网络号21位,主机号8位

网络号范围:共 2212^{21}221 = 2097152 个子网

主机号:一个子网共 282^828 = 256 个ip地址

2.2 现在分配IP的方式:CIDR方式

更加精细化地划分子网,一个子网当中的ip地址,可以比C类IP地址少,可以定义子网当中的IP地址数量

2.2.1 引入子网掩码

子网掩码:本质也是uint32_t的整数,子网掩码总是最高位到低位需要有连续的1存在

网络号 = 子网掩码 & ip地址

子网掩码取反 = 当前子网的主机(ip地址)数量

子网掩码取反有多少位1,则表示主机号使用多少个比特位

现在的IP地址都是经过CIDR方式分配的,不存在A类,B类,C类IP地址的说法!

IP地址是路由器设备给连接上的机器分配的,分配IP地址的时候,会分配上子网掩码。

3. 路由选择

路由选择是在为网络数据选择合适的设备进行转发

路由器上面的网口:WAN / LAN

WAN:是当前路由器连接上级路由器的网口

LAN:是子网内机器连接本路由器的网口

(网络数据的目的IP & 路由项的子网掩码)和当前路由项的网络号进行比对

对比上来,说明当前的数据是想要递交给当前路由项当中的某一个机器的(隐含的意思为:目的主机和当前的源主机在同一个子网下)

没有对比上,则最终会通过默认网关,发送到上级路由

网络层在进行选路,但是具体怎么从机器到相邻设备传输,网络层并没有关注。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。