IP ID序列号是纯粹用于应用程序还是会产生系统副作用?

IP ID序列号是纯粹用于应用程序还是会产生系统副作用?,ip,packet,datagram,Ip,Packet,Datagram,在IP报头中有一个名为“ID序列号”的短字段,其成员标识符在IP结构中为iphdr.IP\u ID 该字段纯粹是用于数据包的应用程序级排序,还是网络驱动程序会出于某种目的使用该字段 换句话说,如果我使用此字段根据我自己的应用程序相关需求对数据包进行编号,我是否会在网络传输层处理数据包的方式上冒一些意外的副作用?该字段用于识别属于特定IP数据报的IP片段。其目的是防止在重构该数据报时使用其他数据报的片段 为了使标识字段发挥作用,其值必须在与单个IP源地址一起发送的所有数据报中是唯一的,这些IP源地

在IP报头中有一个名为“ID序列号”的短字段,其成员标识符在IP结构中为
iphdr.IP\u ID

该字段纯粹是用于数据包的应用程序级排序,还是网络驱动程序会出于某种目的使用该字段


换句话说,如果我使用此字段根据我自己的应用程序相关需求对数据包进行编号,我是否会在网络传输层处理数据包的方式上冒一些意外的副作用?

该字段用于识别属于特定IP数据报的IP片段。其目的是防止在重构该数据报时使用其他数据报的片段

为了使标识字段发挥作用,其值必须在与单个IP源地址一起发送的所有数据报中是唯一的,这些IP源地址可能在单个目标IP地址同时进行重新组装。(数据报重组是按源、按目的地进行的,因此标识字段仅用于区分使用相同源+目的地地址对发送的数据报。不存在将具有不同源或目的地地址的片段带入重组的风险。)


除此之外,该字段的值没有其他限制。只要满足此唯一性要求,就可以将任何值放入其中。

该字段用于标识属于特定IP数据报的IP片段。其目的是防止在重构该数据报时使用其他数据报的片段

为了使标识字段发挥作用,其值必须在与单个IP源地址一起发送的所有数据报中是唯一的,这些IP源地址可能在单个目标IP地址同时进行重新组装。(数据报重组是按源、按目的地进行的,因此标识字段仅用于区分使用相同源+目的地地址对发送的数据报。不存在将具有不同源或目的地地址的片段带入重组的风险。)


除此之外,该字段的值没有其他限制。只要您满足这个唯一性要求,您就可以将任何您喜欢的值放入其中。

好吧,如果它用于IP分段,那么如果中间路由器对数据包进行分段,它不会修改字段吗?如果路由器对数据包进行分段,那么它会将数据包的标识字段的值复制到所有生成的分段中。这就是将片段标记为属于同一原始数据包的原因。参见RFC 751第2.3节中的“碎片”小节,如果设置了DF标志,则值甚至不必是唯一的。@Malt DF仅表示“不进一步碎片化”。源可以发送片段(例如,因为原始数据报太大,无法一块放在电线上,或者作为响应太大但DF已设置的报告的片段重新发送),并且无论在此类源生成的片段中是否设置DF,它们都必须携带原始数据报的特定标识值。那么,如果它用于IP分段,那么如果中间路由器对数据包进行分段,它不会修改字段吗?如果路由器对数据包进行分段,它会将数据包的标识字段的值复制到所有生成的分段中。这就是将片段标记为属于同一原始数据包的原因。参见RFC 751第2.3节中的“碎片”小节,如果设置了DF标志,则值甚至不必是唯一的。@Malt DF仅表示“不进一步碎片化”。源可以发送片段(例如,因为原始数据报太大,无法一块放在电线上,或者作为响应太大但DF已设置报告的片段重新发送),并且无论在此类源生成的片段中是否设置DF,它们都必须携带原始数据报的特定标识值。