はじめに
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(プロファイル名表示あり) |
おわりに
正直いじることはないですが、こんな設定があるんだということは知っておいても損がないと思います。
以上