文書番号: 933805 - 最終更新日: 2007年3月7日 - リビジョン: 1.3

Windows XP および Windows Server 2003 における TCP 通信でのパケット再転送について

はじめに
この資料は Microsoft Windows XP および Microsoft Windows Server 2003 の TCP 通信での再転送処理について説明します。
すべて展開する | すべて折りたたむ

詳細

Microsoft Windows 2000 の既定値では 240 秒であった SRTT の上限値が、Windows XP および Windows Server 2003 では 120 秒に変更されています。

Windows XP および Windows Server 2003 の TCP では、IP 層にパケットの処理が移った際に、再転送タイマを起動します。パケットに対する ACK が受信される前にこの再転送タイマがタイムアウトになると、そのパケットは再転送されます。新しい接続要求があると、再転送タイマは既定値の 3 秒 または、アダプタ別のレジストリ パラメータ TcpInitialRtt で構成した値に初期化されます。

接続要求のリトライは、既定値の 2 回 または、レジストリ パラメータ TcpMaxConnectRetransmissions で指定された回数まで要求 (SYN) が再送信されます。接続が確立した後のデータパケットの送信で発生するタイムアウトでは、データ パケットのリトライを既定値の 5 回 またはレジストリ パラメータ TcpMaxDataRetransmissions で構成された値で制御されます。

再転送タイムアウトは、Van Jacobson の論文 Congestion Avoidance and Control に記載されている Smoothed Round Trip Time (SRTT) 計算を使用して、接続の特性に合わせて動的に調整されます。

パケットの再転送タイマは、そのパケットが再転送されるたびに 2 倍になります。TCP では、このアルゴリズムにより、接続の通常の遅延に応じたセルフ チューニングを行います。 高遅延リンク上の TCP 接続は、低遅延リンク上の TCP 接続よりもタイムアウトが長くなります。

この SRTT の上限値が、Windows XP より修正が行われています。 Windows 2000 の既定値では 240 秒でしたが、Windows XP および Windows Server 2003 では 120 秒に変更されています。この変更は、TCP 通信での再転送のパフォーマンス向上の為に行われています。

また、tcpip.sys が使用する TcpTimedWaitDelay レジストリ パラメータの値を修正することで、SRTT の上限値を 30 秒から 300 秒までの範囲で変更することが可能です。仮に TcpTimedWaitDelay レジストリ パラメータの値を 30 秒に設定した場合、SRTT の計算結果が 40 秒となった場合でも、30 秒でパケットは再転送されます。なお、この実装は IPv4 のみとなります。

関連情報

tcpip.sys が使用するレジストリの詳細についての 関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
314053? (http://support.microsoft.com/kb/314053/ ) Windows XP での TCP/IP と NBT の構成パラメータ
詳細については、次のマイクロソフト Web サイトにアクセスしてください。
Core Protocol Stack Components and the TDI Interface (英語)
http://technet2.microsoft.com/WindowsServer/en/library/823ca085-8b46-4870-a83e-8032637a87c81033.mspx?mfr=true (http://technet2.microsoft.com/WindowsServer/en/library/823ca085-8b46-4870-a83e-8032637a87c81033.mspx?mfr=true)

この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
キーワード:?
kbharmony kbbug kbhowto kbexpertiseinter kbexpertisebeginner kbinfo KB933805
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"