在 TCP 有效负载中拆分帧
支持标头数据拆分的 NDIS 微型端口适配器必须支持在 TCP 帧的上层协议标头处拆分帧。 但是,如果 TCP 标头不包含任何 TCP 选项,则 NIC 应拆分 TCP 有效负载开头的帧。
如果生成的标头缓冲区的长度大于最大标头大小,则 NIC 可能无法拆分 TCP 帧。 有关在超过最大标头大小时拆分帧的详细信息,请参阅 分配标头缓冲区。
NIC 还必须支持仅使用 timestamp 选项拆分 TCP 标头。 也就是说,时间戳选项是唯一必需的 TCP 选项。 否则,支持具有 TCP 选项的 TCP 标头是可选的。 如果帧的 TCP 标头包含无法识别的 TCP 选项,则 NIC 必须拆分 TCP 标头开头的帧 (即在上层协议标头) 或不拆分帧。
注意 出于标头数据要求,支持 IPv4 选项、IPv6 扩展标头或 TCP 选项意味着 NIC 能够识别元素、确定其长度、将其包含在标头 MDL 中,并找到帧中下一个元素的末尾和开头。
有关在上层协议标头开头拆分帧的详细信息,请参阅在 上层协议标头的开头拆分帧。
如果标头数据拆分提供程序在 TCP 有效负载处拆分帧,则指示 NET_BUFFER_LIST 结构必须在 NblFlags 成员中设置NDIS_NBL_FLAGS_IS_TCP和NDIS_NBL_FLAGS_SPLIT_AT_UPPER_LAYER_PROTOCOL_PAYLOAD标志。 有关设置标头数据拆分NET_BUFFER_LIST标志的详细信息,请参阅 设置NET_BUFFER_LIST信息。