共用方式為


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 參數時,會呼叫 GetPerTcp6ConnectionEStatsGetPerTcpConnectionEStats 函式來擷取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 統計數據所定義的項目對應:

詞彙 描述
FastRetran tcpEStatsStackFastRetran
超時 tcpEStatsPerfTimeouts
SubsequentTimeouts tcpEStatsStackSubsequentTimeouts
CurTimeoutCount tcpEStatsStackCurTimeoutCount
AbruptTimeouts tcpEStatsStackAbruptTimeouts
PktsRetrans tcpEStatsPerfSegsRetrans
BytesRetrans tcpEStatsPerfOctetsRetrans
DupAcksIn tcpEStatsStackDupAcksIn
SacksRcvd tcpEStatsStackSACKsRcvd
SackBlocksRcvd tcpEStatsStackSACKBlocksRcvd
CongSignals tcpEStatsPerfCongSignals
PreCongSumCwnd tcpEStatsPathPreCongSumCwnd
PreCongSumRtt tcpEStatsPathPreCongSumRTT
PostCongSumRtt tcpEStatsPathPostCongSumRTT
PostCongCountRtt tcpEStatsPathPostCongCountRTT
EcnSignals tcpEStatsPathECNsignals
EceRcvd tcpEStatsPathCERcvd
SendStall tcpEStatsStackSendStall
QuenchRcvd 沒有對應至這個成員。
RetranThresh tcpEStatsPathRetranThresh
SndDupAckEpisodes tcpEStatsPathDupAckEpisodes
SumBytesReordered tcpEStatsPathSumOctetsReordered
NonRecovDa tcpEStatsPathNonRecovDA
NonRecovDaEpisodes tcpEStatsPathNonRecovDAEpisodes
AckAfterFr 沒有對應至這個成員。
DsackDups tcpEStatsStackDSACKDups
SampleRtt tcpEStatsPathSampleRTT
SmoothedRtt tcpEStatsPerfSmoothedRTT
RttVar tcpEStatsPathRTTVar
MaxRtt tcpEStatsPathMaxRTT
MinRtt tcpEStatsPathMinRTT
SumRtt tcpEStatsPathSumRTT
CountRtt tcpEStatsPathCountRTT
CurRto tcpEStatsPerfCurRTO
MaxRto tcpEStatsPathMaxRTO
MinRto tcpEStatsPathMinRTO
CurMss tcpEStatsPerfCurMSS
MaxMss tcpEStatsStackMaxMSS
MinMss tcpEStatsStackMinMSS
假性RtoDetections tcpEStatsStackSpuriousRtoDetected
 

TCP_ESTATS_FINE_RTT_ROD_v0 結構的成員提供與TCP_ESTATS_PATH_ROD_v0結構之 RttVarMaxRttMinRtt 和 SumRtt 成員類似的數據。 不過,TCP_ESTATS_FINE_RTT_ROD_v0 結構的類似成員會以毫秒為單位報告 時間

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 tcpestats.h

另請參閱

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

TCP_ESTATS_FINE_RTT_ROD_v0

TCP_ESTATS_TYPE