大容量ファイルを高速でダウンロードするとワイヤレス トラフィックが停止します: パケットが失われます (Linksys WRT120N ルーター)

大容量ファイルを高速でダウンロードするとワイヤレス トラフィックが停止します: パケットが失われます (Linksys WRT120N ルーター)

問題

注: まず、なぜこのようなことが起きているのかを理解したいと思います。もちろん、解決策があればなお良いです。:)

HTTP 経由で大容量のファイルを高速でダウンロードすると、ワイヤレス トラフィックが基本的に停止します。Web ページを開くことができず、ダウンロード自体が一時停止します。ダウンロードは開始直後に停止します。800 KB のときもあれば、数 MB のときもあります。しばらくすると、ダウンロード (およびその他のトラフィック) が再開されますが、同じダウンロード中に問題が繰り返し発生します。

同じルーター(Linskys WRT120N)を介して有線接続を使用する場合、問題は発生しません。また、接続がないこれが起こると、ドロップされます。トラフィックが停止し、Web ページなどを閲覧できなくなります (SYN パケットは送信されますが、何も受信されません)。

Wireshark で検査すると、次のことが起こることがわかります。

  1. サーバーはデータパケットを送信し、クライアントによって確認される
  2. サーバーはパケットを送信しますが、SEQ は一部のパケットが失われたことを示します (1 回の発生で 6 つのパケット)。
  3. サーバーはさらにいくつかのパケットを送信し、クライアントは「選択的確認応答」を使用してこれらを確認します。
  4. サーバーはしばらくデータの送信を停止します(失われたパケットが確認されなかったため)またはルータは転送を停止しますか?
  5. 最終的に、サーバーは「再送信」を実行し、トラフィックは通常どおり再開されます。

パケット損失が発生した場合、これはすべて正常な動作であるように思われます。私を困惑させるのは、大容量の高速ダウンロード中に一貫してパケット損失が発生することです。

何が原因でしょうか?

私の考えは次のとおりです。私のインターネットはかなり高速 (100 mbps) なので、大きなファイルのダウンロードを開始すると、ルーターは受信データをバッファリングします (ワイヤレスでは、他のネットワークの影響で若干の遅延や低速化が発生するため)。ただし、バッファがオーバーフローし、ルーターはトラフィックを制御するためにパケットをドロップします (他に選択肢がないためです)。

しかし、どうしてそんなことが起こるのでしょうか? TCP ウィンドウ サイズは、確認応答されないデータの量を制限しませんか? では、確認応答を待つデータが 64 KB 程度しかない場合、ルーターのバッファ オーバーフローはどうして起こるのでしょうか?

注記:これを修正するために、オプションで TCP ウィンドウ スケーリングと動的ウィンドウ サイズを無効にしましたnetshが、問題はないようです。

また、Wiresharkは、サーバーが2つのパケット(1514バイト)を送信し、クライアントがACKを送信するパターンを示しています。バッファオーバーフローの可能性は排除されますか?さらにいくつかの後続パケット受け取った...

困惑しています。何かご意見がありましたら、よろしくお願いします。

(おそらく)原因ではないもの / 私が実験したもの

  • ブラウザ
  • Windows 7 のさまざまな TCP オプション (netshなど)
  • MTU、ビーコン間隔、UPnP などのルーター設定...

答え1

ソリューション

解決策は単純にWMMサポートを無効にするルーターの設定で。どうやら、Linksys WRT120N WMM サポートは、何らかの理由で Wi​​ndows 7 ワイヤレスとうまく連携しないようです。

さらに詳しい情報

多くの場合、問題が発生すると、パケットがルータによってしばらくキューに入れられたかのように、トラフィックは最終的に再開されます (同じ接続に対して)。これらの一時停止は通常 40 秒以上続きます。正直なところ、いまだに不思議に思っています。

この間、他の(TCP)接続は確立できませんでした。Webページなどを閲覧しようとすると、ラップトップはSYNパケットを送信しますが、応答はありません。ただし、DNSとARP要求はだった正常に処理されました。

関連情報