轻松搞明白IP协议格式完整分析

文章目录


IP协议格式

在这里插入图片描述
4位版本号:IPV4/IPV6
4位首部长度:标识IP报头多长,以4字节为单位(最小20字节,最大60字节)
8位服务类型:3位弃用,1位置0,4位TOS字段(最低延迟,最大吞吐,最大可靠性,最小代价)
16位数据报长度:限制了一个完整的IP报文最大长度不超过64K,udp报文数据的最大长度不能超过64K-20-8
分片标识的原因:数据在实际传输时的最大长度不仅受限于数据报长度字段,并且受限于链路层的一个信息-MTU(最大传输单元–链路层中一条数据帧中的最大数据长度(网络层的报文最大长度)-通常在以太网组网方式中是1500字节-可配置),一条udp数据在网络层限制不大于64K-28即可发送,但是在链路层又会受限于mtu大小
若IP报文大小大于mtu,但是又符合数据报长度字段,则这条数据会在网络层进行数据分片

16位分片标识: 标识当前分片属于哪一个完整的上层报文

3位标志: 1位保留,1位禁止分片位,1位分片标志位
R:标志字段中的第一位是一个保留位,现在还没有使用,可能将来会用到这位
D:标志字段中间的一位是 DF (Don’t fragment),表示传输的数据不允许分片。一般DF = 1的话,表示数据一次性传输过去,不允许分片。
M:标志字段的最低位是 MF (More fragment)。代表数据是否分片,如果MF位值为1,表示后面还有数据,还没有传输完毕,相当于数据分片,分批次传输,如果MF = 0表示最后一个分片或者只有一个分片。

13位分片偏移: 由13比特位构成,用来标识被分片的每一个分段相当于原始数据的位置,第一个分片对应的值为0,由于占13位,因此最多可以标识8192(2^13)相对位置,单位为8字节,因此最大可表示原始数据8*8192=65536字节的位置,因此每个分片(除了最后一个)长度都是8的整数倍
8位TTL:报文最大生存周期,每经过一次路由器就会-1,为0时表示找不到对端,则会被丢弃,主要是为了防止路由环路的问题(多个路由器互相连接,形成转发环路,数据在环路中不断转发出不去)
8位上层协议:记录传输层所使用的协议,用于数据分用时,选择上层解析协议
16位数据报长度:检验数据一致性
32位源端IP/32位对端IP:描述通信中的两台主机
0~40字节选项数据:例如保存路由过程中每台经过的路由信息

猜你喜欢

转载自blog.csdn.net/Hedenghui777/article/details/113758911