2009年12月30日水曜日

Windows7でMTU等を変更

 

年末のお掃除中ですが、ちょこっとbreak time.
コーヒーのみつつ、サボってたブログの更新です。

 

MTU (Maximum Transmission Unit)は、通信ネットワークにおいて、
一回の転送で送信できるデータの最大値を示す値です。

っとIT用語辞典に書いてあります。

普通にネットサーフィンを楽しむ方々にとっては縁のない単語ですし、
Developerにとっても、覚えてるだけで気にはしないものだと思います。

一番MTUを気にするのはネットゲーマーでしょうね。

微調整しないとタイミングが狂ってしまう!
なんて方々は、自己責任の下で参考にしてみてください。

 

Comfortable PCをはじめ、PCのパフォーマンスを微調整できるToolがあります。
これらを使用すれば、簡単に設定できる・・・はずでした。

実はWindows7 Ultimate (64bit)で試してみたところ、
どのToolを使用しても変更内容が反映されない!
という罠にはまってしまいました。
# 変更はできるように見えますが、Toolを起動しなおすと元に戻ってるんです

そこで・・・・

レジストリエディタで直接変更してみました。
どうやら、これなら変更内容が反映されるようです。

管理者権限に昇格したToolで変更が反映されないのに、
レジストリエディタなら変更が反映される。

ちょっと不思議ですが・・・
UACの所為で、権限は管理者でも変数の内容がユーザのもので、
ちゃんと変更されてないとかそんな理由なのかなぁ?

 

ってことで、変更するべき場所は以下の通りです。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\{Interfaces-serial}\MTU
# {Interfaces-serial}はNICごとに違うので適切なものを選択

Ack延滞を変更する場合は、同じ場所の”TcpAckFrequency”の値を変更。
# 無い場合はDWORDで作成する (デフォルトでは存在しない)

 

RWINを変更する場合は、同じ場所の”TcpWindowSize”の値を変更。
ですが、Vista以降はRWINを自動調整するのでここの値は意味をもちませぬ。

TcpWindowSizeを有効にする場合は、cmd.exeを管理者権限で起動して、
netsh interface tcp set global autotuninglevel=disabled
って入力してください。

戻す場合は、
netsh interface tcp set global autotuninglevel=normal
です。

 

これらの調整により、通信のパフォーマンスを向上できるかと思いますが、
調整ミスにより、遅延やタイムアウトが頻発することもあります。

調整の際はいろいろと調べてみてくださいね。
ゲーム毎のMTUもどこかにのってるでしょう。

あーんど、あまりにServerに迷惑かけそうな設定も自重しましょう。
DoS攻撃みたいになっちゃったら大変。
# そんな頻繁に細かくアクセスしても速度落ちちゃいますし・・・

 

参考までに、
ModemのMTUは576。
ISDNのMTUは1000。
ADSLのMTUは1454。
EthernetのMTUは1500。

FTTH以降は、MTUよりRWINを調整するといいかも。

 

少しでも快適な環境を目指してみましょ。

0 件のコメント:

コメントを投稿