おれさまラボ

実際に手を動かして理解を深めるブログ。

WindowsのTCPチューニング

はじめに

TCPのチューニングについて調べていたところ、Windowsの設定確認方法を見つけたのでメモしておきます。

確認方法

コマンドプロンプトまたはPowerShellから以下のコマンドで確認可能です。

netsh int tcp show global

こんな結果が返ってきます。

アクティブ状態を照会しています...

TCP グローバル パラメーター
----------------------------------------------
Receive-Side Scaling 状態          : enabled
受信ウィンドウ自動チューニング レベル    : normal
アドオン輻輳制御プロバイダー  : default
ECN 機能                      : disabled
RFC 1323 タイムスタンプ                 : allowed
初期 RTO                         : 1000
Receive Segment Coalescing 状態    : enabled
非 Sack の Rtt 回復性             : disabled
SYN の最大再送信数             : 4
Fast Open                           : enabled
Fast Open フォールバック                  : enabled
HyStart                             : enabled
Proportional Rate Reduction         : enabled
ペーシング プロファイル                      : off

それぞれの項目の説明は以下のとおりです。

項目 意味 主な取りうる値
Receive-Side Scaling 状態 受信処理を複数CPUコアに分散 enabled(既定) / disabled
受信ウィンドウ自動チューニング レベル TCP受信ウィンドウサイズを動的に拡張 disabled / highlyrestricted / restricted / normal(既定) / experimental
アドオン輻輳制御プロバイダー 輻輳制御アルゴリズムを選択 default(既定、通常は CUBIC) / ctcp / カスタム
ECN 機能 明示的に輻輳通知を行いパケットロスを減らす disabled(既定) / enabled / default
RFC 1323 タイムスタンプ RTT測定・高速リカバリ用のタイムスタンプ disabled / enabled / allowed(既定)
初期 RTO 最初の再送タイムアウト (ms) 数値、1000(既定)
Receive Segment Coalescing 状態 複数セグメントをまとめて上位層に渡す enabled(既定) / disabled
非 Sack の Rtt 回復性 SACK非対応時にRTTで回復を試みる enabled / disabled(既定)
SYN の最大再送信数 接続開始 (SYN) の再送回数 数値、4(既定、範囲 2〜8)
Fast Open TCP Fast Open(ハンドシェイク短縮) enabled(既定) / disabled
Fast Open フォールバック Fast Open失敗時に通常TCPへ切替 enabled(既定) / disabled
HyStart 輻輳を早期に検知するスロースタート enabled(既定) / disabled
Proportional Rate Reduction パケットロス後の回復を緩やかに行う enabled(既定) / disabled
ペーシング プロファイル パケット送信を間隔調整 off(既定) / on(プロファイル名表示あり)

おわりに

正直いじることはないですが、こんな設定があるんだということは知っておいても損がないと思います。

以上