通信のスピードアップをめざして 


EditMTU Ver 2.58 
∽**∽**∽  M E N U  ∽**∽**∽
 ■ 自動設定
 ■ MTU探索
 ■ Win98/ME のパラメータ変更
 ■ Win2K/XP のパラメータ変更
 ■ オプション
 ■ EditMTU ダウンロード
 ■ Win98/98SE は TCP/IPドライバのアップデートを

■ ADSLのスピードアップに関する各パラメータ調整を手軽に

MTU/RWIN値などの調整は対策の1つであって、通信スピードに影響する要因は他にもいろいろあります。MTU/RWINを最適化してもネット上での「リンク速度」以上にすることは出来ません。このツールでパラメータを変更しても効果がない場合は、ノイズや信号レベルの減衰などの影響で ADSLモデムのリンク速度が下がっていると考えられます。
以下を確認して下さい。


 ・ウィルス対策ソフトなどの通信を監視している常駐ソフトを試しに無効にしてみる。
 ・電話回線を利用したガス検針器が悪影響する場合がある。
 ・電話線が長いと他の機器のノイズを拾うのでなるべく短くする。
 ・ADSLモデムにアースを付けたり,電話線にノイズフィルタを付けてみる。
 ・電話線に接続された他の機器を一時外して試してみる。
 ・電話局との距離が長かったり、ISDN回線が併設されているなど悪条件が無いか。
 ・より近い電話局への収容換えをNTTに依頼したり、保安器交換(有料)を依頼する手も。
 ・NTTに回線調整(有料)を依頼し、途中のブリッジタップ(BT)外しが効果的だった例も。


なお、速度を測る場所としては、下のような速度計測サイトがあります。


SPEED TEST http://member.nifty.ne.jp/oso/speedtest/
下り転送速度チェック(高速回線用)http://homepage1.nifty.com/takuo/speed/
実効速度測定掲示板http://www.oak.dti.ne.jp/~flash/
ブロードバンドスピードテスト http://www.bspeedtest.jp/

※速度は、サイトや途中の回線の混み具合によって変化します。 そのため、測定した速度の変化がレジストリ値を変更した効果なのか、それともネット側の状況が変わった影響によるものなのか判断が難しい場合があるので、時間帯を決めて何度か測定し、平均値を求めると良いでしょう。


■ Win98/ME のパラメータ変更と確認

ボタンをクリックすれば、現在のレジストリの値が各パラメータの右側のグレー色のBOXに表示されます。(※ 値が存在しないものは空白か「-」を表示)

 なお、Ver2.0以降では自動的にレジストリ値を取得するように変更しましたので、特に「値取得」ボタンをクリックする必要はありません。

◆このツールで設定するRegistryキーが存在しない場合はエラー表示が出ます。「オプション」タブの 存在しないRegistryキーは作成する をチェックしてください。(※自動的にキーを作成してしまうよりもユーザーに通知した方が良いと思うので(^^ゞ)

「通信の種別」BOX右端の[▼]をクリックして自分に該当するものを選択すると、各パラメータの標準値がセットされますから、後は ボタンをクリックするだけでレジストリに登録できます。
 (※次回 EditMTUを起動した時は、終了時に選択されていた通信種別が表示されます)

◆表示されているパラメータ値を自分なりに調整してからレジストリに書き込むことも出来ます。(互いに連動する値については「オプション」タブを参照)
 なお、この変更した設定値(左側の白BOXの表示)は EditMTUを再起動したり「通信種別」を変更したりすると 元の標準値に戻ります。

◆「MTU探索」で得られたMTU/RWIN値をコピーした場合、デフォルトではその値を編集(変更)出来ませんが、 ボタンをクリックすると編集出来るようになります。(クリックで (可) / (否) に切り換わります)

ボタンをクリックすると、レジストリ値を読み込んで、その値を左側の設定BOXの方にコピーします。 レジストリ値を繰り返し修正して書き込む場合に便利でしょう。 ※レジストリに未設定の値がある場合はコピー出来ません。

◆Win98/MEの場合には、各パラメータ(MaxDupAcks以外)を「文字列」として書き込みます。

ボタンをクリックすれば、レジストリの設定を元に戻すことも出来ます。(このツールを使用する前の状態への復帰であって、OSのデフォルト値への復帰ではありません。)

※レジストリ変更を有効にするには、Windowsを再起動する必要があります。


【 (Win98/ME用) 値を設定するレジストリキーと名前 】
[HKLM\System\CurrentControlSet\Services\Class\NetTrans\00xx]
  "MaxMTU"="xxxx"
  "MaxMSS"="xxxx"                ※USBタイプ
[HKLM\System\CurrentControlSet\Services\Class\Net\00xx]
  "IPMTU"="xxxx"                 ※USBタイプ
[HKLM\System\CurrentControlSet\Services\VxD\MSTCP]
  "MaxMTU"="xxxx"
  "DefaultMSS"="xxxx"
  "DefaultRcvWindow"="xxxxx"
  "TcpWindowSize"="xxxxx"        ※USBタイプ
  "KeepAliveInterval"="100000"
  "SessionKeepAlive"="120000"
  "DefaultTTL"="128"
  "DefaultTOS"="8"
  "PMTUDiscovery"="1"
  "PMTUBlackHoleDetect"="0"
  "Size/Small/Medium/Large"="3"
  "SackOpts"="1"
  "Tcp1323Opts"="0"
  "MaxDupAcks"=dword:3
[HKLM\System\CurrentControlSet\Services\VxD\NWLink\Ndi\params\cachesize]
  @="0"
  "default"="64"
[HKLM\System\CurrentControlSet\Services\VxD\MSTCP\Parameters]
  "Tcp1323Opts"="0"
  "MaxDupAcks"=dword:3

※ HKLM は HKEY_LOCAL_MACHINE の略。
  

■ Win2K/XP のパラメータ変更と確認

ボタンをクリックすれば、現在のレジストリの値が各パラメータの右側のグレー色のBOXに表示されます。(※ 値が存在しないものは「-」か空白を表示)

 なお、Ver2.0以降では自動的にレジストリ値を取得するように変更しましたので、特に「値取得」ボタンをクリックする必要はありません。

ボタンをクリックすると、レジストリ値を読み込んで、その値を左側の設定BOXの方にコピーします。 レジストリ値を繰り返し修正して書き込む場合に便利でしょう。 ※レジストリに未設定の値がある場合はコピー出来ません。

◆Registry値を取得すると、ネットワークカード(ボード)のクラスID(MTU値を書き込むサブキー)をレジストリから自動取得して表示します。

※注) 複数の NetworkCard が検出された場合は、使用している NetworkCard を選択して「 LANCard 固定」をチェックしてください。
※注) 固定しない場合は、検出された全てのクラスIDのキーに MTU値を書き込みます。

「通信の種別」BOX右端の[▼]をクリックして自分に該当するものを選択すると、各パラメータの標準値がセットされますから、後は ボタンをクリックするだけでレジストリに登録できます。
 (※次回 EditMTUを起動した時は、終了時に選択されていた通信種別が表示されます)

◆WinXP/2Kの場合は、各パラメータをDWORD値形式でレジストリに書き込みます。

◆表示されているパラメータ値を自分なりに調整してからレジストリに書き込むことも出来ます。(互いに連動する値については「オプション」タブを参照)
 なお、この変更した設定値(左側の白BOXの表示)は EditMTUを再起動したり「通信種別」を変更したりすると 元の標準値に戻ります。

◆「MTU探索」で得られたMTU/RWIN値をコピーした場合、デフォルトではその値を編集(変更)出来ませんが、 ボタンをクリックすると編集出来るようになります。(クリックで (可) / (否) に切り換わります)

XP PPPoE の MTU値を登録する にチェックを付けると、WinXP の PPPoE接続の場合の MTU値を書き込みます。(XPの PPPoEデフォルトMTU値は 1480です) ※その右にあるボタンをクリックすると、MTU設定値を削除してデフォルトに戻します。

AFD\Parametersキーに値を設定 にチェックを付けると、以下のキーにも値を書き込みます。

  [HKLM\SYSTEM\CurrentControlSet\Services\AFD\Parameters]
   'LargeBufferSize'     = dword:00004000
   'MediumBufferSize'    = dword:00000bc0
   'SmallBufferSize'     = dword:00000100
   'TransmitWorker'      = dword:00000020
   'DefaultReceiveWindow'= dword:0000xxxx
   'DefaultSendWindow'   = dword:0000ffff
  ※その右にあるボタンをクリックすると、各設定値を削除してデフォルトに戻します。

ボタンをクリックすれば、レジストリの設定を元に戻すことも出来ます。(このツールを使用する前の状態への復帰であって、OSのデフォルト値への復帰ではありません。)

※レジストリ変更を有効にするには、Windowsを再起動する必要があります。


【 (Win2K/XP用) 値を設定するレジストリキーと名前 】
[HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
  "TcpWindowSize"=DWORD:0000xxxx
  "GlobalMaxTcpWindowSize"=DWORD:0000xxxx
  "EnablePMTUDiscovery"=DWORD:00000001
  "EnablePMTUBHDetect"=DWORD:00000000
  "DefaultTTL"=DWORD:00000080
  "SackOpts"=DWORD:00000001
  "TcpMaxDupAcks"=DWORD:00000003
  "Tcp1323Opts"=DWORD:00000000

[HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\(AdapterID)]
  "MTU"=DWORD:0000xxxx
  "TcpWindowSize"=DWORD:0000xxxx

[HKLM\System\CurrentControlSet\Services\Ndiswan\Parameters\Protocols\0]
  "ProtocolType"=DWORD:00000800               ※ XP PPPoE用
  "PPPProtocolType"=DWORD:00000021            ※ XP PPPoE用
  "ProtocolMTU"=DWORD:000005ae                ※ XP PPPoE用

※ (AdapterID)はレジストリから自動取得。
※ HKLM は HKEY_LOCAL_MACHINE の略。
  

■ オプション

◆いくつかのオプションを設定できます。

◆このツールで設定される全てのレジストリ値を削除することが出来ます。OSのデフォルト状態への復帰です。(Web Acceleratorについては、起動時の 4、2の値を書き込めばデフォルト)

「Web Accelerator」は同一サイトから同時に読み込む数を設定します。高速回線であれば大きめに設定した方が読み込み時間の短縮になる可能性がありますが、大き過ぎるとサーバー負荷の増大になって速度低下も。

◆リストBOXには、読み込んだレジストリのキー名、値の名前とデータ値が表示されます。

「MaxMTU値と DefaultMSS値を連動して自動修正する」
  チェックがあれば、MaxMTU - 40 = DefaultMSS となるように相互の値を連動して変更します。
「RWIN値に連動して Tcp1323Opts を自動修正する」
  チェックがあれば、RWIN値が 65536 以上の場合 Tcp1323Opts を 3 に、65535 以下なら 0 にします。
「RWIN値を MSS値(MTU-40)の 整数倍にする」
  チェックがあれば、RWIN値を MSS値の整数倍にします。
  チェックした場合は、RWIN値BOXの右側に表示されるBOXで 倍数を指定します。
   (この場合、RWIN値BOXへの直接入力は不可)
「NetworkCard の Registryキーにも MTU 値を設定する」
  チェックがあれば、NetworkCard ごとの Registryキーに MTU、RWIN 値を登録します。

「存在しない Registryキーは 作成する」
  チェックがあれば、このツールでアクセスする Registryキーが存在しない場合は そのキーを作成します。

「Administrator権限をチェックする」
  チェックがあれば、現在のログインユーザーが Administrator権限を持っているかを調べます。(OSがWin2000/WinXPの場合のみ)

「Pingコマンドを コンソールで実行する」
  チェックを付けると コンソールで Pingを実行します。

「ジャンボフレームに対応」
  チェックを付けると、PingのDataSizeの上限値が16000になります。

「この値からPingを実行する」
  チェックを付けると、常に直ぐ下のBoxで指定したDataSizeの値からPing実行します。

ボタンをクリックすると、以下のレジ・スクリプト(.reg)ファイルを作成します。

  ・「Default_98ME_BACK.reg」… OSのデフォルトに戻す 98/ME用 regファイル
  ・「98ME_BACK.reg」    … ツールの使用前に戻す 98/ME用 regファイル

  ・「Default_XP2K_BACK.reg」… OSのデフォルトに戻す XP/2K用 regファイル
  ・「XP2K_BACK.reg」    … ツールの使用前に戻す XP/2K用 regファイル

 ※これらの regファイルをダブルクリックすることにより、レジストリ設定を元に戻すことも出来ます。
 ※これらの regファイルは Ver4版です。Win2K/XPでは ver4版 regファイルにも対応していますが、一応 2K/XP用の Ver5.00版の regファイル(ファイル名先頭に Reg5_ が付く)も作成します。


■ MTU 探索

◆ PING コマンドにより MTU値を調べて、その結果からRWIN値も計算します。(PINGはパケット分割禁止モードで実行)

「Host名」BOXに適当なサイトのホスト名か IPアドレスを入力(または選択)し、「速度の種別」を選択してから「Ping」ボタンをクリックすると探索を開始します。(※「速度の種別」は Ping実行後に選択(変更)してもOK)
 ※ホスト名の代わりに URLを入力(コピー&貼り付け)しても構いません。 URLから自動的にホスト名を抽出します。ただし、すべてのサイトでPingが通るとは限りません。

◆ 自分で入力したホスト名は、存在すればリストに追加されて保存されます。リストの項目を削除したい場合は、その項目を選択して「End」キー(または「Ctrl」+「Delete」)を押すと削除出来ます。

ボタンをクリックすると、Pingを実行します。ボタンで中止できます。

「DataSize」BOXの値を1つずつ自動的に減らしながら、パケットが分割されないサイズまで Ping コマンドを実行します。(DataSizeが大き過ぎる場合は「Packet too big」と表示されます)

「DataSize」BOXの初期値は 1472 になっていますが、予想される値より少し大き目に調整してから「Ping」ボタンをクリックすると良いでしょう。

◆「Reply....」という応答(デフォルトでは10回)が返った時に「MTU」BOXに表示された値が通常言われている最適な MTU値です。

◆※ 送信データには 28バイトのヘッダーが付加されるので、DataSize+28 が MTU値となります。

◆ なお、Pingが通る最大値が常に最適MTU値であるとは限りません。こちらのサイトも参考にして下さい。

◆ 探索結果の RTT平均値(Average)から RWIN値も計算して表示します。
 ・RTT値はネットの状況変化で常に変動しますから、正確な RWIN値を計算するには Ping送出回数(デフォルトは10回)を多めにしてください。
 ・Ping送出回数は「DataSize」BOX のすぐ右隣にあるBOXで指定します。
 ・サイトによってRTT値が異なれば最適RWIN値もサイトごとに違うことになります。通常よく使用するサイトのRTT値に合わせてRWIN値を設定すると良いでしょう。
 ・Ping実行後に「速度の種別」を変更した場合は、それに応じてRWIN値も変わります。

◆ RWIN値は (Average)×(帯域幅)÷8 で計算します。
 「整数倍に」をチェックすると RWIN値を MSS値の整数倍に調整します。
 「1.5倍する」をチェックすると 1.5を掛けた結果を表示します。(パケット再送信が起きることを考慮した場合)
 「平均する」をチェックすると (MTU+40)/2 の DataSizeで Pingを指定回数実行し、その RTT(Average)値から RWIN値を計算します。

ボタンをクリックすると、探索した MTU値と RWIN値を設定BOXにコピーします。

ボタンをクリックすると、目的のホストまでの経路を表示します。ボタンで中止できます。

■ 自動設定

◆ PING コマンドの実行結果から、通信パラメータを自動設定します。

◆これは初心者向けのものです。 通常は「MTU探索」の方を利用してください。

◆「速度の種別」を選択し、通常アクセスするサイトを選択(※またはURLを入力)してから「設定開始」ボタンをクリックすると、まずPingコマンドを実行します。そして、その実行結果を元に各パラメータをレジストリに書き込みます。
◆ 書き込まれたレジストリ値は「Win98/Me」タブか「Win2K/XP」タブで確認出来ます。そこで「Reg復元」ボタンを押すと、レジストリをこのツール使用前の状態に戻せます。

「Registry書き込みの前に確認する」にチェックがあれば、レジストリ変更前に確認のダイアログを表示します。そこで書き込みを中止することも出来ます。

「このタブを起動時に表示する」にチェックがあれば、この「自動設定」タブを常に起動時に表示します。

「MTU探索の Hostリストに同期」にチェックがあれば「MTU探索」タブの Hostリストが起動時にサイト(Host)BOXにコピーされます。また自分で入力も出来ます。
 ※この設定の変更は EditMTUを再起動しないと有効になりません。
 なお、サイト(Host)BOXに URLを入力(コピー&貼り付け)した場合は、自動的にホスト名に変換します。ただし、すべてのサイトでPingが通るとは限りません。

■ ダウンロード
  •  プログラム (Ver 2.58)  (更新日 2005/07/15)


  • 以下のリンクをクリックしてダウンロードし、適当なフォルダを作成してそこに解凍した後、EditMTU.exe を実行してください。(Lhasa、+Lhacaなどの解凍ソフトが必要)
    デスクトップなどに EditMTU.exe のショートカットを作成すれば便利でしょう。
    (※バージョンアップは、上書き解凍するだけでOK)


    editmtu258.lzh (435KB / 445,662byte)

    (※このアプリに関する情報はレジストリには何も登録されませんから、アンインストールは EditMTU.exeが入ったフォルダごと削除するだけでOKです)
■ Win98/98SE は TCP/IPドライバ(vtcp.386)のアップデートが必要
    Win98/98SE を使用している場合は MicroSoftのサイトから以下のファイルをダウンロードしてください。

  • 【 Win98/98SE用 vtcp.386 アップデートファイル 】

  • [236926usa8.exe]
      ↑ ダウンロードして実行すると、RFC1323機能バグ再送タイマ・バグが修正されます。
■ どのホストでも Ping が通らない場合には

・Windows XP のファイアウォール(ICF)や、Norton Internet Securityのパーソナルファイアウォール、ウイルスバスターのファイアウォール機能が有効になっている場合、Ping が通らないことがあります。
・ファイアウォールのパケットフィルタで Icmpパケットが遮断されてしまうと Ping は通りません。
・そのような場合はファイアウォールの設定を変更して、Icmpパケットが通過できるようにしてください。
・設定の変更方法が分らない時は、一時的にファイアウォールを無効にするといいでしょう。
 ■Windows XP インターネット接続ファイアウォール (ICF) の場合
  ・[スタート]−[コントロールパネル] から「ネットワーク接続」を起動。
  ・「ローカルエリア接続」を右クリックし、[プロパティ] をクリック。
  ・[詳細設定] タブをクリックし、インターネット接続ファイアウォールのチェックを解除して「OK」をクリック。
 ■Norton Internet Security(Personal Firewall) の場合
  ・Norton Internet Security(Personal Firewall) を起動。
  ・「セキュリティ」のチェックを解除。
  ・おしらせに「はい」をクリック。
 ■トレンドマイクロ ウイルスバスター 200x の場合
  ・[ウイルスバスター 200x 設定] を起動。
  ・「パーソナルファイアウォール」のチェックを解除して「適用」ボタンをクリック。

・いずれの場合も、Ping実行が終了した後はファイアウォールを有効に戻すことをお勧めします。
・詳細な設定方法は、お使いのファイアウォール製品のマニュアルやヘルプを参照してください。
・※もし、OCNパーソナルファイアウォールサービスを利用されているのであれば、Pingは通りません。


■ 各パラメータについての概説

MTU (Maximum Transmission Unit) ネットワーク通信で一度に転送できる最大のDATA量。不適切な値を設定すると転送するDATAがMTUより大きな場合は分割して転送されたり空きが出来たりで効率が悪くなる。
RWIN (Tcp Recieve Windows Size)TCP において確認応答無しに一度に受信できるDATA量。RWIN値を適正な値に増やすと相互の応答回数が減り、送信側での待機が減るので通信所要時間が短くなる。 通常、RWIN値は MSS値の整数倍に設定する。※RWIN値を65536以上にする場合は、Tcp1323Optsを 3 にすること。
MSS (Maximum Segment Size)TCP DATAセグメントの最大値で、通常は MTU値から 40 を引いた値に設定する。 (MSS=MTU-40)
Path MTU Discovery 経路MTU発見オプション。「経路 MTU 検出」の有効/無効を指定する。設定値は 0(無効)か 1(有効)。デフォルトは有効(1/Yes)。
機器が扱える最大のパケットサイズがMTUで、それを超えるサイズのパケットは分断される。経路に両側ホストが取り決めたMTU以下のルータやゲートウェイがあると、これを送信側で検出してパケットサイズを充分小さくし、パケットの分断化を防止する。機能を無効(0/No)にすると,上り方向パケットのMTUは最小保証単位である 576 になる。
PMTU Black Hole Detect ブラックホール検出オプション。PMTU Black Hole とは、PMTUDiscovery を実行することによって逆に、一部のインターネットサーバーと通信できなくなってしまう現象をいう。設定値は 0(無効)か 1(有効)。 デフォルトは無効(0/No)。
経路MTU発見機能ではパケットを分断禁止モードで送信し、途中のルータから分割必要エラーが返ってくるかどうかで経路のMTUを調べる。この時エラーを返さないルータやネット(ブラックホール)があるとデータ転送が止まってしまうので、一定時間内に相手ホストから確認応答(ACK)が返ったかどうかで判断する(有効にするとパケット送信回数が増える)。 ブラックホールとなるルータが存在する可能性は非常に少ないので通常は無効(0/No)にした方が良い。
DefaultTOS サービス形式を指定するIP規格のパラメータ。低遅延/高速度/高信頼性のどれかを指定。
MaxDupAcks 最大重複ACK数。 何らかの原因でパケットデータが紛失して相手に届かなかった事を、相手からの同じ応答を何回連続して受信したかで TCPデータの送信側が判断する。その受信回数(1〜3)を指定することによって送受信の最適化が可能。
上りデータ転送機能。デフォルトは 2(=全3ACKs)。 データ受信側がパケットロスやパケットエラーを検出すると、そのパケットを受信するまで、同じ番号の確認応答(ACK)をデータ送信側に送り続ける。この値は、データ送信側(自分)がデータ受信側(相手ホスト)から、何度目の重複(同じ番号)ACKを受け取った時に再送信を行なうかを決める。数値は最初のACKを除いた重複するACKの個数。
SackOpts (Selective Acknowledgements)選択型ACKオプション。エラー再送が必要なパケットを効率的に通知する機能。
通常TCPでは連続するDATAの途中だけが紛失しても、その紛失して切れてしまった以降のDATAから再送する。SackOptsを使用すると、受信側が送信側に受信バッファの状態を通知する事ができるようになり、一部のパケットが破棄されても、受信側がデータの欠落部分を送信側に正確に通知し、送信側は必要なDATAのみを再送可能になる。設定値は 0(無効)か 1(有効)。デフォルトは有効(1/オン)。
これは必ず有効(1/オン)にしておくこと。SACK機能が有効な相手ホストでこのオプションがオフになっていると、エラー再送効率が低下し、速度が低下する。
DefaultTTL パケット生存期間。 発信IPパケットのヘッダーの Time-to-live (TTL) 値を指定する。TTL は、宛先に到着していないIPパケットがネットワーク内に存在できる最長時間で、この値によって IPパケットが破棄されるまでに通過できるルーターの数が決まる。
Size/Small/Medium/Largeローカル名とリモート名を保存するための名前テーブルのサイズ。
Tcp1323Opts タイムスタンプとウィンドウ スケーリングの有効/無効を制御する。
RWIN値が64KB(65536)以上なら、1 か 3 を指定。

0 … RFC 1323 オプションを両方無効にする。
1 … Window Scale オプションだけ有効。
2 … Time Stamps オプションだけ有効。
3 … 両方のオプションを有効にする。(1+2)

・窓拡大(Window Scaling)オプション。
RWINを 65536以上に設定する場合に有効(1/Yes)にする。 LFP(Long Fat Pipe:長太パイプ) の出現で、64KB-RWIN では不足する事態が生じたため導入された拡張。窓拡大率を使って大きなRWINを表現する。
・タイムスタンプ(Time Stamps)オプション。
大きなRWIN値では有効(2/Yes)にする。ただしTCPヘッダが12バイト増加するため、安定化の代償として実効データ帯域が1%近く減少する。

●通信先の最適な MTU 値は、NTT などの通信業者が公表している MTU サイズを参照すれば簡単に分かります。
●NTT 東日本のフレッツ ADSL の技術資料 によると、「フレッツ ADSL」 の 最適 MTU サイズは「1454」,RWINの値は 「16384」 になっています。
●自分で調べてみたい場合は以下のようにします。

【フラグメント(パケット分断)を発生させないMTU値の探し方】
●「スタート」→「プログラム」→「アクセサリ」→「コマンドプロンプト」を順にクリックしてDOS窓を出す。 (98では「スタート」→「プログラム」→「MSDOSプロンプト」)
 または、[スタート]→[ファイル名を指定して実行] をクリックし、command (Win2K/XPでは cmd)と入力して、[OK] をクリック。
  (※DOSモードでは ping を実行出来ません)
●C:\WINDOWS>の後に、 ping -f -l 1472 IPアドレス と入力し Enterキーを押す。
  (※ IPアドレスは ***.***.**.*** 形式。IPアドレスが分からなければ HOST名)
  (※ -l は小文字の L。数字の 1 ではない)
●もし、Packet needs to be fragmented but DF set.などと表示されてしまったら、少しずつ小さい値で繰り返し実行する。
●例えば 1472で ping が通ったとすると、1472 + 28 = 1500 が MTU 値となる。
●(MTU - 40)の値を MSS と呼ぶ。(後の計算でMSSの値も使う)

●次に、最適な TcpWindowSize を探す。
●まず、ping -l 12 -n 10 IPアドレス と入力し実行。
●この結果、表示される ping time(一番下の行の表示)の Average = aaa ms の aaa の値をメモしておく。
●次に ping -l **** -n 10 IPアドレス と入力し実行。
 (**** は、先ほど得られた ping が通る最大値(この例では1472))
●ここでも ping time の Average = bbb ms の bbb の値をメモしておく。

●得られた aaa 、bbb の値を使って以下の計算をする。
  最小のTcpWindowSize = (aaa × 帯域幅 × 1.5) ÷ 8
  最大のTcpWindowSize = (bbb × 帯域幅) ÷ 8
    (※帯域幅の値は、ADSL1.5Mbpsなら1536、8Mbpsなら8192とする)
●この計算結果の「最小〜最大の範囲内で (MTU - 40)の値(MSS)の倍数となる値」が通常最適な TcpWindowSize になる。
●例えば、最小値が14457で最大値が17642だったとすると、その範囲で MSSの倍数となる 14600 16060 17520 のどれかということになる。ただし、これより大きくてはダメというわけではなく、送信側が調整バッファーを持つことが多い現状では最大値にこだわらずに大きなTcpWindowSizeを設定した方が良い場合がある。また、パケットのロスによる再送を考慮すると最大値も1.5倍する方が良い。
●DOSコマンド入力が面倒な時は、以下のような内容のPING_XX.BATファイルを作成して実行する方法もある。

echo on
ping -l 1472 -n 10 www.geocities.com
echo off
echo ping 終了。往復時間(RTT)は・・・・・・・・・↑Averageの値
echo −−−−−
pause
■ 関連の参考サイト

MTU等の調整で高速接続・高速表示
インターネットの高速化とADSL
Windows2000のTCP/IP(MTU値)をチューニングする
【第39回】ADSL時代のネットワークチューニング
サーバーアイランド「レジストリの変更 MTU&RWIN編集」
≪ATMセル化を考慮した場合の最速MTU≫ MTU =1454や1500は最速ではないッ!?
Netland(ネットランド)

■ 最後に

プログラムは十分注意して作成していますが、いつもの「お約束」で、このページに書かれていることを実行する場合は自己責任でお願いします。