【发布时间】:2019-06-20 04:07:58
【问题描述】:
在 IP 标头中有一个称为“ID 序列号”的短字段,其 IP 结构中的成员标识符为 iphdr.ip_id。
此字段是否纯粹用于数据包的应用程序级排序,还是网络驱动程序会出于某些目的使用此字段?
换句话说,如果我根据自己的应用程序相关需求使用此字段对数据包进行编号,我是否会在网络传输层处理数据包的方式上冒一些意想不到的副作用?
【问题讨论】:
在 IP 标头中有一个称为“ID 序列号”的短字段,其 IP 结构中的成员标识符为 iphdr.ip_id。
此字段是否纯粹用于数据包的应用程序级排序,还是网络驱动程序会出于某些目的使用此字段?
换句话说,如果我根据自己的应用程序相关需求使用此字段对数据包进行编号,我是否会在网络传输层处理数据包的方式上冒一些意想不到的副作用?
【问题讨论】:
该字段用于标识属于特定 IP 数据报的 IP 片段。目的是防止其他数据报的片段被用于重建该数据报。
为了使标识字段发挥其作用,它的值必须在使用单个 IP 源地址发送的所有数据报中是唯一的,该 IP 源地址可能在单个目标 IP 地址处同时进行重组。 (数据报重组是按源、按目的地进行的,因此仅需要标识字段来区分以相同源+目的地地址对发送的数据报。不存在将具有不同源或目的地地址的片段带入的风险重新组装。)
除此之外,对该字段的值没有其他限制。只要你满足这个唯一性要求,你就可以把你喜欢的任何值放进去。
【讨论】: