it-swarm-ja.com

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

問題

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

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

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

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

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

パケット損失が発生した場合、これはすべて正常な動作のように見えます。 私を困惑させるのは、大規模な高速ダウンロード全体で一貫したパケット損失です。

何が原因でしょうか?

私自身の考えは次のとおりです。私のインターネットはかなり高速(100 mbps)なので、大きなファイルのダウンロードを開始すると、ルーターは着信データをバッファリングします(ワイヤレスでは、他のネットワークが原因で、わずかな遅延や速度の低下が発生するため) 、しかし、バッファがオーバーフローし、ルーターはトラフィックを規制するためにパケットをドロップします(そして選択の余地がないため)。

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

注:これを修正するために、netshオプションを使用してTCPウィンドウスケーリングと動的ウィンドウサイズを無効にしましたが、修正しません重要なようです。

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

私はここで途方に暮れています。洞察をありがとう。

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

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

解決策

解決策は、ルーター構成で単純にWMMサポートを無効にするにすることでした。どうやら、Linksys WRT120N WMMのサポートは、何らかの理由でWindows7ワイヤレスではうまく機能しません。

詳細

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

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

3
Torious