TCP_OFFLOAD_STATS結構 (ndischimney.h)
[TCP chimney 卸除功能已被取代,不應使用。]
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
目前狀態為ESTABLISHED 或 CLOSE-WAIT 的 TCP 連線數目。 請參閱
RFC 1156 中的 tcpCurrEstab。
ResetEstablished
卸除 TCP 連線從 ESTABLISHED 狀態或 CLOSE-WAIT 狀態直接轉換至 CLOSED 狀態的次數。
RetransmittedSegments
卸除 TCP 連線時重新傳輸的區段總數,也就是傳輸的 TCP 區段數目,其中包含一或多個先前傳輸的八位。 請參閱 RFC 1156 中的 tcpRetransSegs 。
InErrors
在卸除 TCP 連線時收到的封包數目,其中包含一或多個 TCP 特定錯誤,導致卸除目標無法傳遞封包。 查看 RFC 1156 中的 ifInErrors 。
OutResets
在卸除 TCP 連線上傳輸的區段數目,以及 TCP 標頭中設定的 RST 位。
備註
TCP_OFFLOAD_STATS結構中的統計數據僅與卸除的 TCP 連線有關。 卸除目標不得包含尚未卸除之連線上的 TCP 區段計數。 TCP_OFFLOAD_STATS結構中的統計數據與單一網路介面有關。
如果卸除目標有多個網路介面,則必須為每個網路介面維護一組個別的 TCP 統計數據計數器。 如果卸除目標同時支援網路介面上的IPv4和IPv6連線,則必須針對該介面維護 TCP/IPv4 流量的個別 TCP 統計數據計數器,以及 TCP/IPv6 流量的一組個別 TCP 統計數據計數器。
如果已啟用卸除目標的 TCP chimney 功能, (看到 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時,卸除目標應該會重設為零其 TCP 統計數據計數器,以用於傳遞 IPv4 數據報的卸除 TCP 連線。 設定OID_TCP6_OFFLOAD_STATS時,卸除目標應重設為零其 TCP 統計數據計數器,以取得傳遞 IPv6 數據報的卸除 TCP 連線。
提供TCP_OFFLOAD_STATS結構值的所有計數器,都會在遞增超過其最大計數時,從零) 重新啟動 (重新啟動。
規格需求
需求 | 值 |
---|---|
標頭 | ndischimney.h (包含 Ndischimney.h) |