IPv4标识字段的问题范围为

时间:2018-06-05 13:55:56

标签: windows sockets udp ip ip-fragmentation

我使用UDP套接字(IPv4)向终端系统发送64KB数据包。当我使用Wireshark捕获终端系统的数据包时,我发现重新组装的IP数据报的IP标识字段的范围是0x0000-0x7fff(0-32767),即当终端系统收到ID为0x7fff的数据报时,下一个数据报保存id 0x0000而不是0x8000

让我很困惑。为什么不0x0000-0xffff(0-65536)

我的发件人程序是用C#代码编写的,在Windows7上运行。网络接口卡品牌是英特尔。

请帮忙。

1 个答案:

答案 0 :(得分:0)

标识字段的值是发件人的选择。它可以以发件人喜欢的任何方式分配。 RFC 791对此进行了说明(重点补充):

  

标识字段用于区分一个片段       来自另一个人的数据报。原始协议模块       互联网数据报将标识字段设置为一个值       对于该源 - 目标对和协议必须是唯一的       数据报在互联网系统中处于活动状态的时间。       完整数据报的始发协议模块设置       more-fragments标记为零,片段偏移为零。

所以发送系统可以自由地将其identification值限制为0 - 0x7fff,只要任何一个数据报是"唯一的......数据报将处于活动状态。"