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 構造体のメンバーのマッピングを次に示します。
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 [デスクトップ アプリのみ] |
Header | tcpestats.h |