TCP_ESTATS_PATH_ROD_v0 結構 (tcpestats.h)
TCP_ESTATS_PATH_ROD_v0 結構包含 TCP 連線網路路徑測量延伸 TCP 統計數據的唯讀動態資訊。
語法
typedef struct _TCP_ESTATS_PATH_ROD_v0 {
ULONG FastRetran;
ULONG Timeouts;
ULONG SubsequentTimeouts;
ULONG CurTimeoutCount;
ULONG AbruptTimeouts;
ULONG PktsRetrans;
ULONG BytesRetrans;
ULONG DupAcksIn;
ULONG SacksRcvd;
ULONG SackBlocksRcvd;
ULONG CongSignals;
ULONG PreCongSumCwnd;
ULONG PreCongSumRtt;
ULONG PostCongSumRtt;
ULONG PostCongCountRtt;
ULONG EcnSignals;
ULONG EceRcvd;
ULONG SendStall;
ULONG QuenchRcvd;
ULONG RetranThresh;
ULONG SndDupAckEpisodes;
ULONG SumBytesReordered;
ULONG NonRecovDa;
ULONG NonRecovDaEpisodes;
ULONG AckAfterFr;
ULONG DsackDups;
ULONG SampleRtt;
ULONG SmoothedRtt;
ULONG RttVar;
ULONG MaxRtt;
ULONG MinRtt;
ULONG SumRtt;
ULONG CountRtt;
ULONG CurRto;
ULONG MaxRto;
ULONG MinRto;
ULONG CurMss;
ULONG MaxMss;
ULONG MinMss;
ULONG SpuriousRtoDetections;
} TCP_ESTATS_PATH_ROD_v0, *PTCP_ESTATS_PATH_ROD_v0;
成員
FastRetran
類型: ULONG
Fast Retransmit 演演算法的調用數目。
Timeouts
類型: ULONG
重新傳輸定時器輪詢乘數等於 1 時,重新傳輸逾時逾時已過期的次數。
SubsequentTimeouts
類型: ULONG
重新傳輸逾時在重新傳輸定時器加倍之後到期的次數。
如需詳細資訊,請參閱以下中討論的 RFC 2988 第 5.5 節。
CurTimeoutCount
類型: ULONG
重新傳輸逾時已過期的目前次數,而不會收到新數據的通知。
當認可新數據並針對 RFC 2988 第 5.5 節的每個調用遞增時, CurTimeoutCount 成員會重設為零。
AbruptTimeouts
類型: ULONG
發生且沒有任何緊接在重複通知或其他壅塞指示之前的逾時次數。 突然逾時表示路徑遺失整個數據視窗或通知。
前面有重複通知或其他壅塞訊號的逾時 (明確壅塞通知,例如,) 不會視為突然發生,而且可能已由更複雜的 Fast Retransmit 演算法來避免。
PktsRetrans
類型: ULONG
傳輸的區段數目至少包含一些重新傳輸的數據。
BytesRetrans
類型: ULONG
重新傳輸的位元組數目。
DupAcksIn
類型: ULONG
收到的重複 ACK 數目。
SacksRcvd
類型: ULONG
收到選擇性通知 (SACK) 選項的數目。
SackBlocksRcvd
類型: ULONG
SACK 選項內收到 (SACK 區塊數目) 。
CongSignals
類型: ULONG
由於所有形式的壅塞訊號,包括快速轉譯、明確壅塞通知 (ECN) 和逾時,乘積窗口調整的數目。 此成員摘要說明叫用加法增加乘法降低 (MD) 部分加總增加乘法降低 (AIMD) 壅塞控制的所有事件,因此是壅塞視窗受到壅塞影響的最佳指標。
請注意,重新傳輸逾時會透過設定慢速開始閾值大小以隱含方式減少視窗,並包含在 CongSignals 成員中儲存的值中。 為了將因順序錯亂區段而產生的假壅塞指示降到最低, CongSignals 成員會隨著Fast Retransmit 演算法而遞增。
PreCongSumCwnd
類型: ULONG
壅塞視窗的值總和,以位元組為單位,每次收到壅塞訊號時擷取。
每次 遞增 CongSignals 成員時,就會更新此成員,因此 PreCongSumCwnd 成員中的變更除以 CongSignals 成員中的變更是平均視窗 (超過一些間隔) 在壅塞訊號之前。
PreCongSumRtt
類型: ULONG
在收到的壅塞訊號之前,網路來回時間 (RTT) 的最後一個範例總和,以毫秒為單位。 RTT 的最後一個範例會儲存在 SampleRtt 成員中。
PreCongSumRtt 成員會在每次遞增 CongSignals 成員時更新,因此 PreCongSumRtt 中的變更除以 CongSignals 成員中的變更,就是在壅塞訊號之前,平均 RTT (超過一些間隔) 。
PostCongSumRtt
類型: ULONG
每個壅塞訊號之後,儲存在 SampleRtt) 成員中之網路 RTT (第一個樣本的總和,以毫秒為單位。
PostCongSumRtt 成員中的變更除以 PostCongCountRtt 成員中的變更,是一些間隔的平均 RTT (,) 在壅塞訊號之後。
PostCongCountRtt
類型: ULONG
PostCongSumRtt 成員中包含的 RTT 範例數目,以位元組為單位。
PostCongSumRtt 成員中的變更除以 PostCongCountRtt 成員中的變更,是一些間隔的平均 RTT (,) 在壅塞訊號之後。
EcnSignals
類型: ULONG
透過 ECN 傳遞至 TCP 傳送者的壅塞訊號數目。
這通常是與 Echo 壅塞一起運作的區段數目
有經驗的 (ECE) 位,但也包括 ECN nonce 檢查或其他明確壅塞訊號失敗的區段。
EceRcvd
類型: ULONG
IP 標頭收到的區段數目,與壅塞發生 (CE) 標記。
SendStall
類型: ULONG
將介面停頓或其他傳送者本機資源限制視為壅塞訊號的數目。
QuenchRcvd
類型: ULONG
保留供未來使用。 這個成員一律設定為零。
RetranThresh
類型: ULONG
觸發Fast Retransmit所需的重複通知數目。
請注意,雖然這在傳統的 Reno TCP 實作中是常數,但在許多較新的 TCP 實作中都是自適性。
SndDupAckEpisodes
類型: ULONG
當先前的 Ack 不重複時,所傳送的重複 Ack 數目。 這是已傳送連續連續重複通知的次數。
這是從遠端 TCP 端點到接近 TCP 端點之路徑上遺失或重新排序的數據區段數目。
SumBytesReordered
類型: ULONG
SND 金額的總和。UNA 會繼續進行通知,結束不重新傳輸的 dup-ack 劇集。
請注意 SumBytesReordered 成員中的變更除以 NonRecovDaEpisodes 成員中的變更是平均重新排序距離的估計值,超過一些間隔。
NonRecovDa
類型: ULONG
未觸發 Fast Retransmit 的重複認可數目 (或 SACKS) ,因為在到達 RetranThresh 的重複通知數目之前,ACK 會先進階。
請注意, NonRecovDa 成員中的變更除以 NonRecovDaEpisodes 成員中的變更,是平均在一些間隔內重新排序距離的估計值。
NonRecovDaEpisodes
類型: ULONG
未觸發 Fast Retransmit 的重複通知集數目,因為在到達 RetranThresh 的重複通知數目之前,ACK 會進階。
AckAfterFr
類型: ULONG
保留供未來使用。 這個成員一律設定為零。
DsackDups
類型: ULONG
由 D-SACK 區塊回報給本機主機的重複區段數目。
SampleRtt
類型: ULONG
最新的原始網路來回時間測量,以毫秒為單位,用於計算重新傳輸定時器 (RTO) 。
SmoothedRtt
類型: ULONG
用於計算 RTO 的平滑來回時間,以毫秒為單位。
RttVar
類型: ULONG
用於計算 RTO 的來回時間變化,以毫秒為單位。
MaxRtt
類型: ULONG
以毫秒為單位的取樣往返時間上限。
MinRtt
類型: ULONG
以毫秒為單位的最小取樣來回時間。
SumRtt
類型: ULONG
所有取樣往返時間的總和,以毫秒為單位。
請注意, SumRtt 成員中的變更除以 CountRtt 成員中的變更是平均 RTT,平均平均於輸入間隔內。
CountRtt
類型: ULONG
SumRtt 成員中包含的來回時間範例數目。
CurRto
類型: ULONG
重新傳輸定時器的目前值,以毫秒為單位。
MaxRto
類型: ULONG
重新傳輸定時器的最大值,以毫秒為單位。
MinRto
類型: ULONG
重新傳輸定時器的最小值,以毫秒為單位。
CurMss
類型: ULONG
目前的最大區段大小 (MSS) ,以位元組為單位。
MaxMss
類型: ULONG
MSS 的最大值,以位元組為單位。
MinMss
類型: ULONG
最小 MSS,以位元組為單位。
SpuriousRtoDetections
類型: ULONG
已因為重新傳輸逾時而重新傳輸的報告區段數目。
備註
TCP_ESTATS_PATH_ROD_v0 結構會當做 Windows Vista 和更新版本上可用的 TCP 擴充統計數據功能的一部分使用。
TCP_ESTATS_PATH_ROD_v0定義為結構第0版,以取得TCP連線之網路路徑測量的只讀動態資訊。 建立連線之後,即可取得這項資訊。
當 TcpConnectionEstatsPath 傳入 EstatsType 參數時,會呼叫 GetPerTcp6ConnectionEStats 或 GetPerTcpConnectionEStats 函式來擷取TCP_ESTATS_PATH_ROD_v0結構。 必須啟用擴充 TCP 統計數據,才能擷取此結構。
路徑 MTU 探索和最大區段大小會在路徑 MTU 探索的 IETF RFC 1191 中詳細討論。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc1191.txt。
TCP 壅塞控制和壅塞控制演算法會在 TCP 壅塞控制上的 IETF RFC 2581 中詳細討論。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2581.txt。
SACK 和 SACK 選項的延伸模組會在 TCP 的選擇性通知 (SACK) 選項的 IETF RFC 2883 中詳細討論。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2883.txt。
IETF RFC 2988 on Computing TCP Retransmission Timer 中會詳細討論 TCP 重新傳輸定時器 (RTO) 和順暢的來回時間 (RTT) 。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc2988.txt。
IP 中的明確壅塞通知會在將明確壅塞通知新增至IP的IETF RFC 2581 中詳細討論 (ECN) 。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc3168.txt。
此結構的成員定義於 TCP 擴充統計數據 MIB 上的 IETF RFC 中。 如需詳細資訊,請參閱http://www.ietf.org/rfc/rfc4898.txt。
以下是 TCP_ESTATS_PATH_ROD_v0 結構中成員與 RFC 4898 中針對擴充 TCP 統計數據所定義的項目對應:
TCP_ESTATS_FINE_RTT_ROD_v0 結構的成員提供與TCP_ESTATS_PATH_ROD_v0結構之 RttVar、MaxRtt、MinRtt 和 SumRtt 成員類似的數據。 不過,TCP_ESTATS_FINE_RTT_ROD_v0 結構的類似成員會以毫秒為單位報告 時間 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
標頭 | tcpestats.h |