ネットワークの調整
Windows 2000/XP
インターネットへの接続は、プロバイダや速度やPCなどで環境の違いがあります。接続環境により、TCP/IPのパラメータの最適値は異なるため、各パラメータを調整することで速度の向上ができるかもしれません。
MTUの調整
MTU(Maximum Transmission Unit)はネットワークにおいて1回の転送で送信できるデータの最大値を示すパラメータです。この値が大きいほど制御用に使われるデータが少なくなり、より多くのデータを一度に転送できるので高速になります。
接続方法 | 最適値 |
---|---|
Bフレッツ | 1448 |
フレッツADSL | 1448 |
KDDI光プラス | 1500 |
PPPoA | 1500 or 1472 |
Yahoo!BB | 1500 or 1456 |
CATV | 1472 |
MTUのパラメータは576~1500の範囲で指定します。MTUを変更するにはレジストリをいじらなければなりません。なお、MTUを実際のネットワークの値より大きくしてしまうと、Webサイトが表示できなくなったり、表示が遅くなったりするので注意してください。TCP/IP Analyzerで最適のMTUになっているか調べるとよいでしょう。
- HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥Tcpip¥Parameters¥Interfaces¥{********-****-****-****-************}
- MTU=dword:0x000005dc(1500) (Windows初期値)
- MTU=dword:0x000005a8(1448)
※使っているPCの環境によって{********-****-****-****-************}の部分は異なります。多くの場合、キーの中の値が一番多いのがLANカードだと思うのでそこを変更してください。わからない場合は無料で使えるDr.TCPを使うという手もあります。
RWINの調整
TCP/IPは一定のデータ量を受信するごとに正しくデータが伝わったか確認しています。RWIN(Receive Window)は確認を行なうサイズを指定するパラメータです。この値を大きくすると確認の回数が減るため結果的に速度が向上します。しかし、この値が大きいとデータの受信に失敗した場合の再送信は多くの場合、RWINと同じサイズで行なわれることにも注意が必要。回線速度が速くて通信状態が安定している場合はRWINの値を大きくするほうがデータの転送が高速となるでしょう。回線速度と通信状態は個々に異なるため、一概にはどの値が最適ということはいえません。
RWINのパラメータはMSS(MTUの値-40)の偶数倍で指定します。なぜならばRWINにはMSS単位でデータが格納されるためです。最適値を求める手順としては、まず64KBに収まる最大のRWINを求め、その2倍、4倍、8倍を指定して計測サイトで速度比較をするというのがよいでしょう。
このパラメータを変更する場合は、レジストリを3カ所いじる必要があるので注意しましょう。大きな値にするとブラウザの表示体感速度が低下することもあります。
- HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥AFD¥Parameters
- DefaultReceiveWindow=dword:********
- DefaultSendWindow=dword:********
- HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥Tcpip¥Parameters
- TcpWindowSize=dword:********
AFDの調整
WindowsではRWINでAFD(Ancillary Function Driver)がデータのフロー制御を行なう前に内部バッファを用意しています。AFDのパラメータを変更することでも10Mbpsを超えるような高速なネットワーク環境ではパフォーマンスの改善が期待できるかもしれません。
- HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥AFD¥Parameters
- LargeBufferSize=dword:0x00010000(初期値:00001000)
- MediumBufferSize=dword:0x00001000(初期値:000005e0)
- SmallBufferSize=dword:0x00000100(初期値:00000080)
- TransmitWorker=dword:0x00000020(初期値:00000010, 有効値は0x20か0x10のみ)
AFDが使用する大中小のそれぞれの規模のバッファのサイズ指定です。この値が大きいほど一度に多くの処理ができるため、データの処理が高速となります。速度が必要となるのは大きなデータのときであることを考えると、LargeBufferSizeの変更だけでよいかもしれません。
TransmitWorkerはWindows2000/XPで有効な機能です。0x10を指定すると従来通り、0x20を指定するとTransmitFile要求の処理切り替え回数を削減した高速な処理を行なうようになります。
- [参考資料] 「Microsoft Windows 2000 TCP/IP 実装の詳細」