TCP/IPをチューニング


こんなご時世なのでIEのセキュリティ…は以前紹介しました。OEも同様…。そんな
わけで、前フリとはまったく関係ないTCP/IPの最適化ネタを紹介しましょう。まず
前提として、ダイヤルアップ接続でインターネットに接続している人です。LANな
どバンド幅が著しく異なるユーザーの場合は、パフォーマンスがよくなる所か、逆
に遅くなる可能性もあるので注意してください。また、見てのとおりレジストリを
変更するテクニックなので、操作には気を付けて行ない、自信のない人は行なわな
いようにして頂きたい。
1.<スタート>メニュー→<ファイル名を指定して実行>を選択
2.名前欄に半角で「regedit」と入力
3.<OK>ボタンをクリック
4.HKEY_LOCAL_MACHINE→System→CurrentControlSet→Services→Class→
NetTransと開き、サブキーの「000x」の中から、右ウィンドウの「DriverDesc」の
値が「TCP/IP」となっているものを探す(筆者の環境では「0000」だったのでこれ
以降は「0000」を開いた状態とする)
5.「0000」キーを開いた状態で、右ウィンドウのなにもないところで右クリック。
メニューから<編集>→<新規>→<文字列>と選択
6.名前を半角の「MaxMTU」に変更する
7.先ほど作った「MaxMTU」をダブルクリックして、ダイアログを開く
8.値のデータ欄に、モデムを使用している場合は「576」。TA(ISDN)の場合は
「1152」と半角で入力
9.<OK>ボタンをクリックしてひとまず終了
10.今度はHKEY_LOCAL_MACHINE→System→CurrentControlSet→Services→Vxd→
MSTCPを開く
11.「MSTCP」キーを開いた状態で、右ウィンドウのなにもないところで右クリッ
ク。メニューから<新規>→<文字列>と選択
12.名前を半角の「DefaultRcvWindow」に変更する
13.先ほど作った「DefaultRcvWindow」をダブルクリックして、ダイアログを開く
14.値のデータ欄に半角で「2144」と入力
15.<OK>ボタンをクリックしてひとまず終了
16.再度右クリックし、再度右クリック→<新規>→<文字列>を選択
17.名前を半角の「DefaultTTL」に変更する
18.先ほど作った「DefaultTTL」をダブルクリックして、ダイアログを開く
19.値のデータ欄に半角で「64」と入力
20.<OK>ボタンをクリックしてダイアログを閉じ、「レジストリエディタ」を終
了させる
21.最後にウィンドウズ98を再起動すれば設定が有効になる


あとは実際にダイヤルアップ接続を行ない、パフォーマンスが改善されたか確認し
てみよう。ここでは細かく説明しないが、MS-DOSプロンプトから「Ping」コマンド
を使ったり、「システムモニタ」で「Network Monitor Performance Data: 000x
-Ethernet bytes/second」(xは任意の数字)をチェックしてもいいだろう。

--------------------------------------------------------------------

まず、最初に設定したMaxMTU(Maximum Transfer Unit)ですが、これはネットワー
クインタフェースで扱うパケットサイズの最大値を示すもので、ネットワークイン
タフェースによって異なります。しかも、この値以上のデータをやりとりするのが
多い場合は、データブロックの分割とIPヘッダが追加され、データ転送の遅延が発
生します。つまり、これを「576」や「1152」という数値にするのは、ダイヤル
アップ接続の低速なネットワークインタフェースに最適化しているというわけです。

DefaultRcvWindowは、手元に資料がないので確実なことはいえないのですが、TCP
セグメントフォーマットのWindowを指していると思います。Windowはこれまで受信
したデータをのぞいて、あとどれくらいのデータを受信できるかを相手に通知する
ための値です。もうおわかりかと思いますが、この値をいくら大きくしても、ネッ
トワークインタフェースのパフォーマンスに左右されますので、低速モデムの場合
などにはオーバーフローを起こし、再送信を行わなければならなくなることもあり、
結果的に遅延してしまいます。ですので、ほどほどの値を入力しているというわけ
です。

TTLは「Time To Live」の略で、IPデータの生存時間を設定する値です。インター
ネット上では複数のゲートウェイを経由しており、しかもそのゲートウェイを通過
するごとに1以上の値が減じます。で、TTLの値が0になったとき、そのIPデータは
破棄されるという仕組みになっています。よくウェブページを見ている時に起きる
「タイムアウト」エラーはこれが関係しています(もちろん一概にTTLのみといいま
せんが)。記事では「64」という値にしていますが、これを増やすことももちろん
可能です。しかしそうなると、経路情報の不整合などで無限ループに陥り、逆にパ
フォーマンスダウンになる可能性が高いため、このような数値を設定しています。

最後にこの説明を読んでいただければわかるように、これらの数値はあくまでも
「平均的」なものです。なので、使用している回線種類やモデムならばアクセスス
ピードによってその最適値は異なることでしょう。必ずしも「スピードアップし
た!」というわけにはいきませんが、若干ながらのパフォーマンスアップが見込め
ると思います。筆者が以前試した時は、ISDN(64K接続)の環境でファイルのダウン
ロードが約0.5Kbpsほど速くなりました。ですが、イーサネット経由で事務所の
サーバーにアクセスするスピードがやや遅くなってしまったため、すぐに初期値に
戻してしまいました。繰り返しますが、この設定は低速ネットワーク環境に合わせ
ていますので、オフィス等のLAN環境では逆に遅くなってしまうことがあります。
気をつけてチューニングしてください。