現在オフラインです。再接続するためにインターネットの接続を待っています

100 Mb ネットワークにおいて頻繁に衝突が発生する

Windows XP のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Windows XP のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

Microsoft Windows 2000 については、次の資料を参照してください。169789


重要 : この資料には、レジストリの編集方法が記載されています。万一に備えて、編集の前には必ずレジストリをバックアップし、レジストリの復元方法を理解しておいてください。バックアップ、復元、および編集方法の詳細を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
256986 Microsoft Windows レジストリの説明
現象
TCP/IP プロトコルを使用し、100 メガビット (Mb) ネットワーク アダプタを使用している場合、ファイルのコピー時にパフォーマンスが低下することがあります。また、このパフォーマンスの低下は Windows XP でエクスプローラを使用した場合にも見られることがあります。

: いくつかの 100 Mb 対応ネットワーク アダプタでパフォーマンスが低下することが知られており、この問題は Windows 特有の問題ではありません。
原因
ネットワークのパフォーマンスが低下するのは、ネットワーク上で頻繁に早期衝突が発生しているためです。フレーム間ギャップ (ネットワークに送信する前にワークステーションが待機する時間) が、IEEE 802.3 規格で規定された 9.6 マイクロ秒よりも小さい値に設定されています。
解決方法
警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

この問題を解決するには、フレーム間ギャップの増加方法について、ネットワーク アダプタの製造元に問い合わせてください。

Intel EtherExpress 100B ネットワーク アダプタには、フレーム間ギャップの長さを制御するレジストリ パラメータがあります。Intel EtherExpress 100B ネットワーク アダプタを使用している場合、このパラメータを変更するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに regedit と入力し、[OK] をクリックします。
  2. レジストリの次のキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\e100bx\Parameters
    : x はネットワーク アダプタの番号です。
  3. [編集] メニューの [値の追加] をクリックし、次の情報を入力します。
    値の名前 : Adaptive_ifs
    値の種類 : REG_DWORD
    データ : 1 (適応アルゴリズムを有効にする)
    衝突を検出してフレーム間ギャップを調整する適応アルゴリズムは、デフォルトで有効に設定されています。適応アルゴリズムを無効にするには、値のデータを 0 に設定します。フレーム間ギャップには、2 ~ 200 の値をあらかじめ設定することができます。値を増やすときは、20 から始めて 20 ずつ増やします。衝突を測定し、パフォーマンスを記録します。衝突の割合が低下し、パフォーマンスに影響を与えなくなった値を最終値として設定します。
警告 : レジストリ エディタの使い方を誤ると、深刻な問題が発生することがあります。最悪の場合、オペレーティング システムの再インストールが必要になることがあります。マイクロソフトは、レジストリ エディタの誤用により発生した問題に関しては、一切責任を負わないものとします。レジストリ エディタは、自己の責任においてご使用ください。

この問題を回避するには、TcpWindowSize レジストリ パラメータを作成して、受信者から ACK を受け取るまで送信者がデータを送信しないように設定します。この変更を行うと、衝突の発生を軽減できます。TcpWindowSize レジストリ パラメータを作成するには、以下の手順を実行します。
  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、[名前] ボックスに regedit と入力し、[OK] をクリックします。
  2. レジストリの次のキーを見つけてクリックします。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. [追加] をクリックし、[値] をクリックし、次の情報を追加します。
    値の名前 : TcpWindowSize
    値の種類 : REG_DWORD
    データ : 2920 (10 進数) - バイト数
    イーサネットの場合には値を 10 進数の 2920 に設定し、その他のネットワーク トポロジの場合には最大 TCP データ サイズの 2 倍に設定します。その他のネットワークの場合、この設定は変更する必要がありません。トークン リングやファイバ分散データ インターフェイス (FDDI) などのトポロジに基づくネットワークでは、イーサネット ネットワークのように衝突が発生することがないためです。

    このパラメータを変更すると、パフォーマンスに重大な影響を与える可能性があります。WAN ネットワークまたは通常の 10 Mb ネットワークでは、送信者と受信者の間に待ち時間が発生します。この待ち時間はネットワーク トポロジによって異なります。したがって、TCP/IP の ACK による衝突が発生することはありません。このようなネットワークでは、TcpWindowSize パラメータを調整してもスループットが低下するだけです。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
衝突は、2 つのステーションが回線上に同時にデータを送信したときに発生します。早期衝突とは 512 ビットのフレームが回線上に送信される前に発生する衝突のことを指します。早期衝突は、正常に動作しているイーサネット ネットワークで一様に発生することがあります。ハードウェアの不具合やステーションの誤動作が原因ではありません。

IEEE 802.3 規格では、ステーションがネットワーク上に送信する前に、9.6 マイクロ秒 (フレーム間ギャップ) だけ待機しなければならないと規定しています。いくつかのネットワーク アダプタ製造元は、より速い転送速度のために、規定よりもより短いフレーム間ギャップでアダプタを設計しています。この短いフレーム間ギャップが衝突の発生確率を高める原因になっています。
上位層プロトコルの動作も衝突率に影響を与えます。TCP ホストは、2 つのデータ フレームを受信すると、ACK を送信者に返送します。送信者がクライアントにさらにデータを送信しようとしているときに、2 つのパケットを受信したクライアントが ACK を送信しようとした場合、衝突が発生する可能性は高くなります。

Windows XP でのエクスプローラのファイル コピーの分析

Windows XP で、コマンド プロンプトを使用した場合とエクスプローラを使用して同じファイルのコピーを開始した場合とでは、データ転送のパターンが異なります。この場合、リダイレクタが 60 KB の "バルク読み込み" または "RAW 読み込み" を発行します。データの転送パターンは以下のとおりです。
   10 CLIENT SERVER  SMB C read & X, FID = 0x1004, Read 0xf000   11 SERVER CLIENT  SMB R read & X, Read 0xf000   12 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   13 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   14 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   15 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   16 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack   17 CLIENT SERVER  TCP .A...., len: 0, seq:404791-404791, ack   18 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   19 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes   20 SERVER CLIENT  NBT SS: Session Message Cont., 1460 Bytes				
TCP レベルでの動作
   10 CLIENT SERVER  TCP len:   64, seq:  404727-404790,  ack:   6992081   >クライアントが 64 バイトのデータを送信 (4KB のデータを読み込むための SMB コマンド)。   11 SERVER CLIENT  TCP len: 1460, seq: 6992081-6993540, ack: 404791   >サーバーが ACK 付きのデータ パケットを送信、データを伴う SMB 応答。   12 SERVER CLIENT  TCP len: 1460, seq: 6993541-6995000, ack: 404791   13 SERVER CLIENT  TCP len: 1460, seq: 6995001-6996460, ack: 404791   >サーバーが残りのデータをクライアントに送信。   >**クライアントが ACK を送信しようとするため、ここで衝突が発生する可能性が高い。   14 SERVER CLIENT  TCP len: 1460, seq: 6996461-6997920, ack: 404791   15 SERVER CLIENT  TCP len: 1460, seq: 6997921-6999380, ack: 404791   >しかし、サーバーが回線を確保し、さらにデータを送信。   16 CLIENT SERVER  TCP len:    0, seq:  404791-404791,  ack:   6996461   >クライアントが回線を確保し、フレーム 12 と 13 のデータに対する ACK を送信。   17 CLIENT SERVER  TCP len:    0, seq:  404791-404791,  ack:   6999381   >クライアントが回線を確保し、フレーム 14 と 15 のデータに対する ACK を送信。   18 SERVER CLIENT  TCP len: 1460, seq: 6999381-7000840, ack: 404791   19 SERVER CLIENT  TCP len: 1460, seq: 7000841-7002300, ack: 404791   >サーバーがデータの送信を継続。   >**クライアントが ACK を送信しようとするため、ここで衝突が発生する可能性が高い。   20 SERVER CLIENT  TCP len: 1460, seq: 7002301-7003760, ack: 404791   >しかし、サーバーが回線を確保し、さらにデータを送信。				
TCP/IP プロトコルを使用する場合、TCP の ACK が衝突の発生に影響します。しかし、この問題は、TCP/IP によるものではなく、また 60 KB のバルク読み込みを実行可能なエクスプローラの拡張機能によるものでもありません。この問題は、FTP を使用して説明することもできます。TCP/IP、リダイレクタ、およびエクスプローラは、フレーム間ギャップを制御しません。フレーム間ギャップは物理層に存在しています。物理層はアダプタのチップ セットにより制御されています。頻繁に衝突が発生する場合には、ネットワーク アダプタの製造元に問い合わせてください。
プロパティ

文書番号:315237 - 最終更新日: 12/01/2007 01:54:00 - リビジョン: 2.1

  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
  • kbregistry kbnetwork kbprb KB315237
フィードバック