问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

IPV4报文格式详解与IP分片计算实例

创作时间:
作者:
@小白创作中心

IPV4报文格式详解与IP分片计算实例

引用
CSDN
1.
https://blog.csdn.net/lovemelovefish/article/details/138158307

IPV4报文格式

IPV4报文格式由多个字段组成,每个字段都有其特定的功能:

  • 版本:占用4位,用于标识IP协议的版本。对于IPV4,其值为0100(即4);对于IPV6,其值为0110(即6)。

  • 头部长度(IHL):最小值是5,最大值为15,单位是4字节。这意味着IPV4头部的长度范围是20到60字节。IPV6的头部长度是固定的40字节。

  • TOS(Type of Service):用于区分服务类型,即QoS(Quality of Service)字段,表示数据包的优先级。

  • 总长度字段:表示整个IP数据报的长度,以字节为单位。

  • 标识:主机发送IP报文的序号,每发送一次加1。

  • 生存期(TTL):用于设置一个数据包可经过的路由器数量的上限,每经过一台路由器减1(范围:0~255)。在IPV6中,这个字段被替换为"心跳限制"(hop limit)。

  • 协议字段:包含一个数字,标识数据报有效载荷部分的数据类型。最常用的值为1(ICMP)、17(UDP)和6(TCP)。

  • 头部校验和:仅计算IPv4头部,不检查数据有效载荷部分的正确性。当TTL减一时,头部校验和必须重新计算。需要注意的是,IPV6没有首部校验和。

IPV4报文的最大长度是65535字节,即2的16次方。这包括数据部分的65515字节和头部的20字节。

IP分片及计算

IP分片是将一个较大的IP数据包分割成多个较小的数据包,以便在网络中传输。以下是IP分片的相关概念和计算方法:

  • 最大传输单元(MTU):用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。以太网的MTU通常是1500字节。

  • 片偏移:占13位,用于表示较长的分组在分片后,某片在原分组中的相对位置。相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位,这意味着每个分片的长度一定是8字节的整数倍。

  • 标志字段:最低位记为MF(More Fragments)。MF=1表示后面“还有分片”的数据报;MF=0表示这是数据报片中的最后一个。

IP分片计算实例

情况1:IP分组长度为3000字节

总长度
数据
剩余
偏移量offset
MF
3000
2980
20
1500
1480
20
1500
0
1
1500
1480
20
20
185
1
40
20
20
370
0

总计需要分三次,最后一片的偏移量为370。

情况2:IP分组长度为4000字节

总长度
数据
剩余
偏移量offset
MF
4000
3980
20
1500
1480
20
2500
0
1
1500
1480
20
1020
185
1
1040
1020
20
370
0

总计需要分三次,最后一片的偏移量为370。

情况3:IP分组长度为1500字节,MTU为1024字节

总长度
数据
剩余
偏移量offset
MF
1500
1480
20
1024
1000
20
480
0
1
500
480
20
125
0

总计需要分两次,最后一片的偏移量为125。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号