TCP_OFFLOAD_STATS 结构 (ndischimney.h)
[TCP 烟囱卸载功能已弃用,不应使用。]
TCP_OFFLOAD_STATS 结构包含卸载目标为响应 OID_TCP4_OFFLOAD_STATS 或 OID_TCP6_OFFLOAD_STATS查询而提供的统计信息。
语法
typedef struct _TCP_OFFLOAD_STATS {
ULONG64 InSegments;
ULONG64 OutSegments;
ULONG CurrentlyEstablished;
ULONG ResetEstablished;
ULONG RetransmittedSegments;
ULONG InErrors;
ULONG OutResets;
} TCP_OFFLOAD_STATS, *PTCP_OFFLOAD_STATS;
成员
InSegments
在卸载的 TCP 连接上接收的段总数,包括错误 ( InErrors ) 接收的段总数。 此计数包括当前建立的连接上收到的段。 请参阅 RFC 1156 中的 tcpInSegs 。
OutSegments
在卸载的 TCP 连接上发送的段总数,包括当前连接上的段,但不包括仅包含重新传输八进制数的段。 请参阅 RFC 1156 中的 tcpOutSegs 。
CurrentlyEstablished
当前状态为“已建立”或“CLOSE-WAIT”的 TCP 连接数。 请参阅
RFC 1156 中的 tcpCurrEstab。
ResetEstablished
卸载的 TCP 连接从“已建立”状态或 CLOSE-WAIT 状态直接转换为 CLOSED 状态的次数。
RetransmittedSegments
在卸载的 TCP 连接上重新传输的段总数,即包含一个或多个以前传输的八进制数的已传输 TCP 段数。 请参阅 RFC 1156 中的 tcpRetransSegs 。
InErrors
在卸载的 TCP 连接上收到的数据包数,这些连接包含一个或多个特定于 TCP 的错误,这些错误阻止了卸载目标传递数据包。 请参阅 RFC 1156 中的 ifInErrors 。
OutResets
在 TCP 标头中设置了 RST 位的卸载 TCP 连接上传输的段数。
注解
TCP_OFFLOAD_STATS 结构中的统计信息仅与卸载的 TCP 连接相关。 卸载目标不得包括尚未卸载的连接上的 TCP 段计数。 TCP_OFFLOAD_STATS 结构中的统计信息与单个网络接口相关。
如果卸载目标有多个网络接口,则必须为每个网络接口维护一组单独的 TCP 统计信息计数器。 如果卸载目标支持网络接口上的 IPv4 和 IPv6 连接,则必须为该接口为 TCP/IPv4 流量维护一组单独的 TCP 统计信息计数器,并为 TCP/IPv6 流量维护一组单独的 TCP 统计信息计数器。
如果启用了卸载目标的 TCP 烟囱功能 (看到 NDIS_TASK_OFFLOAD) 并且至少有一个卸载路径状态对象已卸载到卸载目标,则卸载目标可以通过以下两种方式之一处理接收的数据包,该数据包具有损坏的 TCP 标头 (但有效的 IP 标头) :
- 卸载目标可以通过调用 来指示数据包通过非卸载接口 NdisMIndicateReceiveNetBufferLists 函数。 在这种情况下,卸载目标不得递增 InErrors 计数器。 这是建议的做法。
- 或者,卸载目标可以删除损坏的数据包并递增 InErrors 计数器。
主机堆栈将卸载目标返回的统计信息与主机堆栈为非卸载 TCP 连接维护的统计信息集成。
请注意,在设置OID_TCP4_OFFLOAD_STATS或OID_TCP6_OFFLOAD_STATS时,主机堆栈提供TCP_OFFLOAD_STATS结构。 但是,在这种情况下,卸载目标不必检查TCP_OFFLOAD_STATS结构中的值。 相反,当设置OID_TCP4_OFFLOAD_STATS时,对于传递 IPv4 数据报的卸载 TCP 连接,卸载目标应将其 TCP 统计信息计数器重置为零。 设置OID_TCP6_OFFLOAD_STATS后,对于传递 IPv6 数据报的卸载 TCP 连接,卸载目标应将其 TCP 统计信息计数器重置为零。
为TCP_OFFLOAD_STATS结构提供值的所有计数器在递增超过其最大计数时, (从零) 重新开始。
要求
要求 | 值 |
---|---|
Header | ndischimney.h (包括 Ndischimney.h) |