twitter ■お問い合わせ当サイトへのリンクサイト仕様

現在位置 > LostTechnology > Tips > ネットワークの調整

ネットワークの調整

Windows 2000/XP

インターネットへの接続は、プロバイダや速度やPCなどで環境の違いがあります。接続環境により、TCP/IPのパラメータの最適値は異なるため、各パラメータを調整することで速度の向上ができるかもしれません。

MTUの調整

MTU(Maximum Transmission Unit)はネットワークにおいて1回の転送で送信できるデータの最大値を示すパラメータです。この値が大きいほど制御用に使われるデータが少なくなり、より多くのデータを一度に転送できるので高速になります。

MTUの最適値の例
接続方法最適値
Bフレッツ1448
フレッツADSL1448
KDDI光プラス1500
PPPoA1500 or 1472
Yahoo!BB1500 or 1456
CATV1472

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要求の処理切り替え回数を削減した高速な処理を行なうようになります。