拆分 IPv4 帧
若要支持标头数据拆分,NIC 必须支持拆分没有 IPv4 选项的 IPv4 以太网帧。 NIC 必须能够在 上层协议标头的开头拆分此类帧。
支持具有 IPv4 选项的 IPv4 以太网帧是可选的。 NIC 可以支持某些 IPv4 选项,而不支持其他选项。 NIC 不得拆分包含它无法识别的 IPv4 选项的 IPv4 帧。 拆分帧的标头部分必须包含整个 IPv4 标头和存在的所有 IPv4 选项。
NIC 还可以支持分段 IPv4 帧的标头数据拆分。 有关分段 IPv4 帧的详细信息,请参阅 拆分分段 IP 帧。
注意 出于标头数据要求,支持 IPv4 选项、IPv6 扩展标头或 TCP 选项意味着 NIC 能够识别元素、确定其长度、将其包含在标头 MDL 中,并找到帧中下一个元素的末尾和开头。
如果标头数据拆分提供程序拆分 IPv4 帧,则指示 NET_BUFFER_LIST 结构必须在 NblFlags 成员中设置NDIS_NBL_FLAGS_IS_IPV4标志。 有关在NET_BUFFER_LIST结构中设置标头数据拆分标志的完整信息,请参阅 设置NET_BUFFER_LIST信息。
其他以太网帧特征决定了如何拆分 IPv4 帧。 如果 IP 帧已分段,请参阅 拆分分段 IP 帧。 如果帧包含 TCP 信息,请参阅 在 TCP 有效负载处拆分帧。 如果帧包含 UDP 信息,请参阅 在 UDP 有效负载处拆分帧。 对于所有其他情况,请参阅 拆分除 TCP 和 UDP 以外的帧。