TCPスロースタートを無効にする

TCPスロースタートを無効にする

高速ネットワーク用の TCP スロー スタート メカニズムを無効にする方法を探しています。現在、クライアントは 1Gbps の非ブロッキング リンクを使用してランダム サーバーに 100MB のフローを送信しています。私の計算では、フローの完了時間は 1 秒未満です。

しかし、問題は、完全なリンク帯域幅に到達できないことです。言い換えると、完全なリンク帯域幅を取得する前に、スロー スタート フェーズで終了しています。したがって、TCP 輻輳ウィンドウ サイズを最大に増やしたいと考えています。

カーネルを変更せずにその値を簡単に変更する方法を知っている人はいますか?

ありがとう〜

答え1

以前のバージョンの Linux カーネルでは、輻輳ウィンドウの初期値 ( initcwnd) はわずか 2 (2 * MSS、つまり約 3 KB) でしたが、3.0 以降の新しいデフォルトは 10 (約 14 KB) です。

Linux カーネルがそれほど古くない場合は、ip次のようなコマンドを使用して初期輻輳ウィンドウを増やすことができます。

現在のデフォルトルート情報を取得します:

$ ip route | grep default
default via 192.168.1.1 dev eth0  proto static

initcwndこのルートに新しい値を割り当てます:

$ sudo ip route change default via 192.168.1.1 dev eth0 proto static initcwnd 10

これにより、デフォルトの初期輻輳ウィンドウが 10*MSS (約 14KB) のより高い値に増加します。これよりも高い値、おそらく 40 程度まで試してみるとよいでしょう。

詳細については、initcwndを増やすというGoogleの当初の提案そしてまたこの記事

関連情報