
しばらくネットワークの問題が発生しており、問題の原因を突き止めようとしています。
昨日、WiFi 接続経由で SCP を使用してラップトップからデスクトップにファイルを転送していました。ダウンロードが始まったとき、両方のコンピューターのローカル ルーターへの ping が低く (192.168.1.1、両方とも 10 ミリ秒から 50 ミリ秒程度)、ダウンロードは 2 ~ 3 MB/秒で実行されました。
1 分ほど経つと、デスクトップの 192.168.1.1 へのレイテンシが急激に増加し (> 1,000 ミリ秒)、転送速度が極端に低下しました (~200 KB/秒)。ただし、ラップトップの 192.168.1.1 へのレイテンシは同じままでした (10 ~ 50 ミリ秒)。転送が完了すると、デスクトップのレイテンシは通常の範囲に戻りました。
明らかに、接続が飽和状態になると何か問題が発生します。何が原因でしょうか? これはルーターの問題でしょうか、それともデスクトップの問題でしょうか? どこから調べるのが適切でしょうか?
答え1
「バッファ肥大化」を Google で検索してください。
RAM が安価になったため、ネットワーク機器にフレーム バッファーが追加され、フレームをドロップする必要がなくなりました。
残念ながら、フレーム ドロップによって TCP は輻輳に気づき、いつ後退すべきかを知ることができました。フレーム ドロップがなければ、従来の TCP 実装は輻輳に気づかず後退することもないため、高レートで送信し続け、状況を悪化させてしまいます。
すべてのネットワーク機器が輻輳時にフレームをどんどんバッファリングし、キューの長さを無制限に増やすと、キューを空にするのにかかる時間がどんどん長くなり、レイテンシがどんどん増加します。
アクティブ キュー管理 (AQM) 技術や明示的輻輳通知 (ECN) などのメカニズムによってこの問題を軽減できますが、この問題はあまり広く知られていないため、どの製品がバッファ膨張を回避し、どの製品が回避しないかを知ることは困難です。箱の側面に「バッファ膨張なし!」のロゴがあるからといって、良質の機器を入手しているとわかるわけではありません。
ただし、バッファ膨張の回避に特化した Wi-Fi ルーターのアフターマーケット ファームウェア ディストリビューションがあります。少なくとも 1 つのディストリビューションは、この問題を最初に認識した TCP 研究者によって特別に開発され、解決策を模索する研究開発プラットフォームとして使用されました。
答え2
パケットが非常に混雑したリンクを介して送信されるためにキューに入ったときに、高いレイテンシが発生します。キュー内のそのパケットより前のパケットはすべて、最初に送信されなければなりません。リンクの需要が大きく、キュー バッファが大きい場合、ラウンドトリップ時間が長くなります。