IP数据报首部的格式:关于标识(identification)、标志(flag)和片偏移

转自:http://hi.baidu.com/%C7%D8%B7%E7%CF%FE%D4%C2%C3%F7/blog/item/7c8ca8f66b17a6d30b46e01a.html

qin:源自谢希仁先生的《计算机网络》(第五版)部分内容

 

标识(identification):占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。

但这个“标识”不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,

这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原

来的数据报。

标志(flag):占3位,但目前只有两位有意义。

        -- 标志字段中的最低位为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的

            最后一个。

        -- 标志字段中间的一位记为DF(Don't Fragment),意思是“不能分片”。只有当DF=0时才允许分片。

片偏移 :占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片

从何处开始。片偏移以8个字节为偏移单位。也就是说,每个分片的长度一定是8字节(64位)的整数倍。

可以按照下面的方式进行分析: 1. 版本:IP数据包中的版本字段占4位,用于指示IP协议的版本,IPv4的版本号为4,IPv6的版本号为6。 2. 首部长度:IP数据包中的首部长度字段占4位,用于指示IP首部的长度,单位为4字节。因为IP首部的长度是可变的,所以需要这个字段来指示实际的长度。 3. 服务类型:IP数据包中的服务类型字段占8位,用于指示IP数据包的服务类型,如优先级、延迟、吞吐量等。这个字段IPv4中已经被淘汰,但在IPv6中仍然存在。 4. 总长:IP数据包中的总长度字段占16位,用于指示整个IP数据包的长度,包括IP首部IP数据部分。 5. 标识IP数据包中的标识字段占16位,用于标识IP数据包所属的数据流。当一个大的数据包需要被分成多个小的IP数据包进行传输时,这个字段可以帮助接收方将多个小的IP数据包组装成一个完整的数据包。 6. 标志IP数据包中的标志字段占3位,用于指示此IP数据包是否被分片。其中第1位为保留位,必须设置为0,第2位为不分片标志位,如果设置为1,则表示此IP数据包不允许被分片,第3位为更多分片标志位,如果设置为1,则表示还有更多的分片数据包。 7. 片偏移IP数据包中的片偏移字段占13位,用于指示当前IP数据包所包含的数据在原始数据中的偏移量。当一个大的数据包被分成多个小的IP数据包进行传输时,这个字段可以帮助接收方将多个小的IP数据包组装成一个完整的数据包。 8. 生存时间:IP数据包中的生存时间字段占8位,用于指示此IP数据包在网络中可以存在的时间,单位为秒。每经过一个路由器,生存时间都会减1,当生存时间为0时,此IP数据包将被丢弃。 9. 协议:IP数据包中的协议字段占8位,用于指示IP数据包所包含的上层协议类型,如TCP、UDP、ICMP等。 10. 首部校验和:IP数据包中的首部校验和字段占16位,用于检测IP首部是否有误。在发送方计算IP数据包的校验和时,只计算IP首部的部分,而不包括IP数据部分。 11. 源IP地址:IP数据包中的源IP地址字段占32位,用于指示发送方的IP地址。 12. 目的IP地址:IP数据包中的目的IP地址字段占32位,用于指示接收方的IP地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值