WindowsのデフォルトTCPウィンドウサイズ

100 Mbps のネットワークを使用した場合のデフォルトのTCPウィンドウサイズ。こちらから転載。

OSバージョンデフォルトのサイズ
Windows 2000 (SP なし)17,520 バイト
Windows 2000 SP117,520 バイト
Windows 2000 SP217,520 バイト
Windows 2000 SP365,535 バイト
Windows 2000 SP465,535 バイト
Windows 2000 SP4 + MS05-019 (893066)17,520 バイト
Windows 2000 SP4 対応の更新プログラム ロールアップ 1 (URP)17,520 バイト
Windows XP (SP なし)65,535 バイト
Windows XP SP165,535 バイト
Windows XP SP1a65,535 バイト
Windows XP SP265,535 バイト
Windows Server 2003 (SP なし)17,520 バイト
Windows Server2003 SP165,535 バイト
Windows Server2003 R265,535 バイト

ちなみにLinuxのTCPウィンドウサイズは/proc/sys/net/core/rmem_defaultで受信ウィンドウのデフォルト値、/proc/sys/net/core/wmem_defaultで送信ウィンドウのデフォルト値が調べられる。このサーバ(CentOS5.0)ではどちらも126,976バイトになっていた。

なぜこんなことを調べたかというと、スイッチの帯域制御(ポリシング)をするとき、どんなに細く絞る場合でもデフォルトウィンドウサイズ程度のバーストは許しておかないと、TCPの通信を開始するときにパケット損失が発生して問題になるという記述を見つけたため。しかしこんなに大きな値を設定してしまうと、一瞬(1/100秒くらい)とはいえ100Mbpsのワイヤレートを出してしまうなぁ。