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

高速再送信アルゴリズムの呼び出しの数。

Timeouts

種類: ULONG

再送信タイマーのバックオフ乗数が 1 に等しい場合に、再送信タイムアウトの有効期限が切れた回数。

SubsequentTimeouts

種類: ULONG

再送信タイマーが 2 倍になった後に、再送信タイムアウトの有効期限が切れた回数。

詳細については、以下の解説で説明されている RFC 2988 のセクション 5.5 を参照してください。

CurTimeoutCount

種類: ULONG

新しいデータの受信確認を受信せずに、再送信タイムアウトの有効期限が切れた現在の回数。

Rfc 2988 のセクション 5.5 の呼び出しごとに新しいデータが確認され、インクリメントされると、 CurTimeoutCount メンバーは 0 にリセットされます。

AbruptTimeouts

種類: ULONG

重複する確認またはその他の輻輳の兆候の直前に発生せずに発生したタイムアウトの数。 突然のタイムアウトは、パスがデータまたは受信確認のウィンドウ全体を失っていることを示します。

重複する受信確認またはその他の輻輳信号 (明示的輻輳通知など) が先行するタイムアウトは、突然のものとしてカウントされず、より高度な高速再送信アルゴリズムによって回避された可能性があります。

PktsRetrans

種類: ULONG

少なくとも一部の再送信されたデータを含む、送信されたセグメントの数。

BytesRetrans

種類: ULONG

再送信されたバイト数。

DupAcksIn

種類: ULONG

受信した重複する ACL の数。

SacksRcvd

種類: ULONG

受信した選択的受信確認 (SACK) オプションの数。

SackBlocksRcvd

種類: ULONG

受信した SACK ブロックの数 (SACK オプション内)。

CongSignals

種類: ULONG

高速再送信、明示的輻輳通知 (ECN)、タイムアウトなど、すべての形式の輻輳信号による乗算的な下向き輻輳ウィンドウ調整の数。 このメンバーは、Additive Increase Multiplicative Decrease (AIMD) 輻輳制御の Multiplicative Decrease (MD) 部分を呼び出すすべてのイベントをまとめたものです。そのため、輻輳ウィンドウが輻輳の影響を受ける方法を示す最適な指標となります。

再送信タイムアウトは、低速な開始しきい値サイズを設定することで、ウィンドウを暗黙的に減らし、 CongSignals メンバーに格納されている値に含まれることに注意してください。 順序が不順のセグメントによる誤った輻輳の兆候を最小限に抑えるために、 CongSignals メンバーは高速再送信アルゴリズムに関連付けてインクリメントされます。

PreCongSumCwnd

種類: ULONG

輻輳信号が受信されるたびにキャプチャされる輻輳ウィンドウの値の合計 (バイト単位)。

このメンバーは 、CongSignals メンバーがインクリメントされるたびに更新されます。これにより、 PreCongSumCwnd メンバーの変化を CongSignals メンバーの変化で割った値は、輻輳信号の直前の平均ウィンドウ (ある間隔で) になります。

PreCongSumRtt

種類: ULONG

受信した輻輳信号の前のネットワーク ラウンドトリップ時間 (RTT) の最後のサンプルの合計 (ミリ秒単位)。 RTT の最後のサンプルは SampleRtt メンバーに格納されます。

PreCongSumRtt メンバーは、CongSignals メンバーがインクリメントされるたびに更新されます。これにより、PreCongSumRtt の変化を CongSignals メンバーの変化で割った値は、輻輳信号の直前の平均 RTT (ある間隔で) になります。

PostCongSumRtt

種類: ULONG

各輻輳信号に続くネットワーク RTT ( SampleRtt メンバーに格納される) の最初のサンプルの合計 (ミリ秒単位)。

PostCongSumRtt メンバーの変化を PostCongCountRtt メンバーの変化で割った値は、輻輳信号の直後の平均 RTT (ある間隔で) です。

PostCongCountRtt

種類: ULONG

PostCongSumRtt メンバーに含まれる RTT サンプルの数 (バイト単位)。

PostCongSumRtt メンバーの変化を PostCongCountRtt メンバーの変化で割った値は、輻輳信号の直後の平均 RTT (ある間隔で) です。

EcnSignals

種類: ULONG

ECN 経由で TCP 送信側に配信される輻輳信号の数。

これは通常、エコー輻輳を含むセグメントの数です

経験豊富な (ECE) ビットが含まれますが、ECN nonce チェックまたはその他の明示的な輻輳信号が失敗するセグメントも含まれます。

EceRcvd

種類: ULONG

輻輳エクスペリエンス (CE) マーキングを含む IP ヘッダーで受信したセグメントの数。

SendStall

種類: ULONG

輻輳信号として扱われるインターフェイス 停止またはその他の送信側ローカル リソースの制限の数。

QuenchRcvd

種類: ULONG

将来利用するために予約されています。 このメンバーは常に 0 に設定されます。

RetranThresh

種類: ULONG

高速再送信をトリガーするために必要な重複受信確認の数。

これは従来の Reno TCP 実装では定数ですが、多くの新しい TCP 実装ではアダプティブであることに注意してください。

SndDupAckEpisodes

種類: ULONG

以前の Ack が重複していないときに送信された重複する Ack の数。 これは、連続した一連の重複受信確認が送信された回数です。

これは、リモート TCP エンドポイントから近くの TCP エンドポイントへのパスで失われた、または順序が変更されたデータ セグメントの数を示します。

SumBytesReordered

種類: ULONG

SND の金額の合計。UNA は、再送信なしで重複除去エピソードを終了する受信確認を進めます。

SumBytesReordered メンバーの変化を NonRecovDaEpisodes メンバーの変化で割った値は、ある間隔での平均並べ替え距離の推定値であることに注意してください。

NonRecovDa

種類: ULONG

ACK が RetranThresh に到達する前に ACK が進んだため、高速再送信をトリガーしなかった重複する確認 (または SACKS) の数。

NonRecovDa メンバーの変化を NonRecovDaEpisodes メンバーの変化で割った値は、ある間隔におけるセグメント内の平均並べ替え距離の推定値であることに注意してください。

NonRecovDaEpisodes

種類: ULONG

ACK が RetranThresh に到達する前に進んだため、高速再送信をトリガーしなかった重複受信確認エピソードの数。

AckAfterFr

種類: ULONG

将来利用するために予約されています。 このメンバーは常に 0 に設定されます。

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は、TCP 接続のネットワーク パス測定に関する読み取り専用の動的情報の構造体のバージョン 0 として定義されます。 この情報は、接続が確立された後に使用できます。

TCP_ESTATS_PATH_ROD_v0構造体は、EstatsType パラメーターに TcpConnectionEstatsPath が渡されると、GetPerTcp6ConnectionEStats 関数または GetPerTcpConnectionEStats 関数の呼び出しによって取得されます。 この構造体を取得するには、拡張 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」を参照してください。

TCP 再送信タイマー (RTO) とスムーズラウンドトリップ時間 (RTT) については、TCP の再送信タイマーの計算に関する IETF RFC 2988 で詳しく説明されています。 詳細については、「http://www.ietf.org/rfc/rfc2988.txt」を参照してください。

IP での明示的輻輳通知については、IETF RFC 2581 の「IP への明示的輻輳通知 (ECN) の追加」で詳しく説明されています。 詳細については、「http://www.ietf.org/rfc/rfc3168.txt」を参照してください。

この構造体のメンバーは、TCP 拡張統計 MIB の IETF RFC で定義されています。 詳細については、「http://www.ietf.org/rfc/rfc4898.txt」を参照してください。

拡張 TCP 統計の RFC 4898 で定義されているエントリへの TCP_ESTATS_PATH_ROD_v0 構造体のメンバーのマッピングを次に示します。

期間 説明
FastRetran tcpEStatsStackFastRetran
タイムアウト tcpEStatsPerfTimeouts
SubsequentTimeouts tcpEStatsStackSubsequentTimeouts
CurTimeoutCount tcpEStatsStackCurTimeoutCount
急激なタイムアウト 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
クエンチRcvd このメンバーへのマッピングはありません。
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
CurMs tcpEStatsPerfCurMSS
MaxMss tcpEStatsStackMaxMSS
MinMs tcpEStatsStackMinMSS
SpuriousRtoDetections 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 [デスクトップ アプリのみ]
Header tcpestats.h

こちらもご覧ください

GetPerTcp6ConnectionEStats

GetPerTcpConnectionEStats

TCP_ESTATS_FINE_RTT_ROD_v0

TCP_ESTATS_TYPE