Windows NT 3.51 の PMTU ブラック ホール検出アルゴリズムの変更

文書翻訳 文書翻訳
文書番号: 136970 - 対象製品
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

現象

Windows NT 3.5 または 3.51 コンピュータから、中間のネットワーク デバイスを介した TCP/IP を使用して、大量のデータを他のコンピュータに転送すると、転送が失敗することがあります。

原因

一部の中間のネットワーク デバイスは、大きなサイズのパケットを処理する能力がなく、パケット受信時、正しく応答しません。

解決方法

この問題を解決するには、以下に説明する修正プログラムをインストールします。

PMTU 検出の概要

Windows NT 3.5 と 3.51 は RFC 1191 に記載されているとおりに PMTU 検出を使用します。接続の確立時、両端のホストは TCP 最大セグメント サイズ (MSS) 値を交換します。接続には、2 つの MSS 値の小さい方の MSS 値が使用されます。通常、システムの MSS は、リンク層の MTU (Maximum Transfer Unit) から IP および TCP ヘッダ用の 40 バイトを引いた値です。

TCP セグメントの宛先がローカル以外のネットワークの場合、IP ヘッダに Don't Fragment ビットが設定されます。パスの途中にあるルーターやネットワーク メディアの MTU は、両端のホストの MTU と違うことがあります。IP データグラムを中継するには小さすぎる MTU を持つネットワーク メディアに遭遇した場合、ルーターは、それに合わせてデータグラムを小さく分割しようとしますが、分割する際に、IP ヘッダに Don't Fragment ビットが設定されていることを発見します。この時点で、ルーターは、送信元のホストに、データグラムを分割せずには転送できないことを示す "ICMP destination unreachable" メッセージを通知しなければなりません。

また、ほとんどのルーターは、ICMP 仕様で "未使用" とラベル付けされている ICMP ヘッダ フィールドの下位 16 ビットに、次のホップで可能な MTU の値を設定します。このメッセージの形式については、RFC 1191 の 4 章を参照してください。この ICMP エラー メッセージを受け取ると、TCP は、該当する接続の MSS を、設定された MTU 値から TCP および IP ヘッダのサイズを引いた値に調整します。こうすることで、その接続上で送信される以降のパケットは、分割せずにパスを通過できる最大サイズ以下になります。

各パスにできる限り大きな MTU を使用して効率を最適化する

デフォルトでは PMTU 検出が有効になっていますが、レジストリに次の値を追加することにより変更できます。
HKEY_LOCAL_MACHINE

\SYSTEM\CurrentControlSet\Services\tcpip\parameters
\EnablePMTUDiscovery (REG_DWORD、0=有効、1=無効)

PMTU 検出が無効の場合、宛先がローカル以外の IP アドレスには、MTU として 576 バイトが使用されます (TCP の MSS は 536)。

Windows NT 3.5 および 3.51 の PMTU ブラック ホール検出

多くの製造元が、標準に準拠していないルーターや中間のネットワーク デバイスを販売しています。 このようなデバイスは、送信元のホストに "ICMP destination unreachable" メッセージを返す替わりに、大きすぎて、パス上の次のネットワーク メディアに渡せない IP データアグラムを廃棄してしまいます。 このようなデバイスは "ブラック ホール ルーター" と呼ばれます。

Windows NT 3.5 および 3.51 の TCP/IP を構成することにより、このようなブラック ホール ルーターを検出して、そのようなデバイスを通過する大きさに PMTU を合わせることが可能です。PMTU ブラック ホールの検出を有効にするには、レジストリに次の値を追加します。
HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\tcpip\parameters \EnablePMTUBHDetect (REG_DWORD、0=無効、1=有効)

この値がない (デフォルト) 場合は、PMTU ブラック ホールの検出は有効になりません。

PMTUBHDetect を有効にした場合、TCPMaxDataRetransmissions 値 (別のレジストリ パラメータ。デフォルトは 5) の半分の回数だけ TCP セグメントを再送しても確認応答がなければ、以降の再送では Don't Fragment ビットをクリアします。その結果、セグメントの確認応答が返された場合、それ以降、その接続で送信する IP データグラムの MSS を小さくして、 Don't Fragment ビットを設定します。

状況

マイクロソフト製品サポート技術者は、Don't Fragment ビットが設定されていない場合にも、大きなフレームを廃棄してしまう多くのルーターやその他の中間ネットワーク デバイスに遭遇しています。既存の Windows NT 3.5 および 3.51 の TCP/IP PMTU ブラック ホール検出アルゴリズムでは、このようなデバイスを検出して、そのデバイスに適応することができないため、問題が発生しても、PMTU 検出を無効にする以外に方法がありませんでした。そのため、マイクロソフトでは次の変更を行いました。
PMTUBHDetect を有効にした場合、TCPMaxDataRetransmissions 値 (このデフォルトも 5) の半分の回数だけ TCP セグメントを再送して、確認応答がなければ、以降の再送では MSS として 536 バイト (MTU は 576) を使用します。この 536 バイト セグメントには、Don't Fragment ビットを設定しません。通常のデバイスで 536 バイトの MTU は最小ですが、Don't Fragment ビットが設定されていないため、必要な場合は、分割される可能性があります。

この変更により、インターネットなどネットワーク パスに複数のデバイスが混在するワイド エリア ネットワーク (WAN) で大きなファイルを転送する場合、より高い信頼性を得ることができます。修正された TCPIP.SYS ファイルは、マイクロソフト製品サポートからから入手可能です。



注 : PMTUBHDetect のデフォルトは 0 (無効) のままですので、この機能を有効にするには、上記のとおり、レジストリに値を追加して、1 を設定します。

TCP/IP 構成パラメータと設定の完全な一覧は 「サポート技術情報」 (Microsoft Knowledge Base) の次の資料を参照してください。120642



この問題は Windows NT version 3.51 と Windows NT 4.0 の最新の 英語バージョンの Service Pack で修正されています。Service Pack の入手の詳細については、「サポート技術情報」 (Microsoft Knowledge Base) で次の単語 (スペースは除く) による検索を実行してください。
S E R V P A C K

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 136970 (最終更新日 2002-02-04) をもとに作成したものです。

プロパティ

文書番号: 136970 - 最終更新日: 2014年2月22日 - リビジョン: 1.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
キーワード:?
kbnosurvey kbarchive kbtshoot kbnetwork KB136970
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com