★阿修羅♪ 現在地 HOME > 掲示板 > IT1 > 538.html
 ★阿修羅♪
次へ 前へ
「よく聞くMTU、RWINってなんのこと?」その他、ADSLスループット改善関連。
http://www.asyura.com/0306/it01/msg/538.html
投稿者 クエスチョン 日時 2003 年 8 月 23 日 11:23:04:WmYnAkBebEg4M

「よく聞くMTU、RWINってなんのこと?」その他、ADSLスループット改善関連。


よく聞くMTU、RWINってなんのこと?
http://arena.nikkeibp.co.jp/tec/bb/20030711/105280/

 ブロードバンドのスピードの話になると、よく「MTU」「RWIN」という2
つの言葉が出てくる。みなさんも一度や二度はこのアルファベットの並び
を見かけたことはあるだろう。実際に回線スピードを決める「カギ」では
あるのだが、その正体は意外と知られていない。ここでガッチリと、その
意味と役割を、頭の中に入れてしまおうではないか。

 インターネット上では、データは細分化されたパケット(小包状のもの)
として扱われるが、このパケットサイズの最大値を決めたものが
MTU(Maximum Transfer Unit)だ。パケットが大きければ大きいほど、1度
で送ることができるデータの量が増え、何度もデータを送信しなくて済む
ので効率よくデータを送れる。

 これをトラックに例えると、30tの荷物を運ぶのに、5tトラックを使っ
て6回に分けて運ぶか、10tトラックを使って3回で運ぶかというようなも
のだ。当然後者の方が、データ転送スピードは速くなる。しかし、途中で
データの送信に失敗して「はい、最初からやり直し」となった場合、再送
しなければならないパケット量が大きくなり、ムダが増えるというリスク
も発生する。通常のLANではMTUの値は1500バイトとなる。ただし、フレッ
ツ・ADSLでは1454バイトと、それより小さい値が使われている。

▲ MTUとは、一度に扱うパケットサイズの最大値。RWINとは、確認しないで受け取れるデータ量の最大値

 次にRWINだ。インターネットのプロトコルであるTCP/IPは、データを送
信した後に「パケットはちゃんと届いた?」「大丈夫、ちゃんと届いてい
るよ」と確認し合ってデータをやり取りしている。

 これを1パケットごとにやっていると、確かに確実にデータは届けられ
るが、効率は悪く、スピードが遅くなってしまう。そこで、ある程度パケ
ットをまとめ、「10パケット受け取ったら確認する」というようなお約束
を設けて、効率化を図っている。

 この「確認しないで受け取れるデータ量の最大値」がRWIN(Receive
Window Size)だ。RWINはMTUの値からヘッダー部分の40バイトを引きそれ
を整数倍した値だ。RWINは大きければ大きいほど、その分短時間にサクー
ッと大量のデータの受け渡しができることになる。逆に途中でエラーが発
生したり、何らかの理由でうまく受け取れなかった場合は、その分まとめ
て再送しなければならないので、結局時間がかかるというデメリットもあ
る。

 MTUやRWINは、OSや回線の種類などよって最適値が変わってくる。両方
とも決して「大きければいい」というものでもない。環境にあったベスト
バランスこそ、スピードアップに大きく貢献する。次回からは「じゃあど
うやったら最適値がわかるのか?」ということについて考えたいと思う。

(高橋 浩子=ティー・キューブ)

MTUの最適値をコマンドプロンプトを使って見つけよう
http://arena.nikkeibp.co.jp/tec/bb/20030717/105342/

 「よく聞くMTU、RWINってなんのこと?」でMTUとRWINが「何なのか」が
分かったところで、気になるのは「それじゃあ最適値って一体いくつなの?
」ということだろう。まずはMTUの最適値の求め方から伝授しよう。コマ
ンドプロンプト(MS-DOSプロンプト)を使うと、あなたの環境でベストな
MTU値がわかるのだ。ここではCATV10Mbpsの環境で、Windows XPマシンを
使って実験してみた。

 最初にスタートメニューのプログラム、アクセサリからコマンドプロン
プトを選ぶ。出てきた画面で、次のようにコマンドを打ち込み、[Enter]
を押す。

ping -l 1300 -f www.t-cube55.com

 このコマンド意味は、「1300バイトのデータを細分化せずに
www.t-cube55.comに送りなさい」という意味だ。データの送り先となるサ
イトはどこでもいい。ドメイン名ではなく、IPアドレスが分かっていたら、
直接打ち込んでもいい。

 [Enter]を押してしばらくすると、下記のように表示されたら通信成功。
1300バイトのデータは何の問題も無く、するっと通過できたことになる。

 その下を見ると

Packets:Sent = 4 , Receive =4 , Lost = 0 (0% loss)

 と書いてある。ひとつも失敗しないで、ちゃんと送ったデータを完璧に
受け取れたわけだ。これで「1300バイトは余裕」ということがわかったの
で、数字を「1350」「1400」「1500」と大きくし、もっと大きなパケット
も送れるかどうか試してみる。

▲ Yahoo! Japanのサイトに1300バイトのデータを送ってみた。結果は通信成功。ひとつもロスなしでデータはすべて届いている

(高橋 浩子=ティー・キューブ)

MTUの値からRWINの最適値を求めるには?(前編)


「MTUの最適値をコマンドプロンプトを使って見つけよう」では、MTUの最適値を計算できた。
http://arena.nikkeibp.co.jp/tec/bb/20030728/105428/

「よく聞くMTU、RWINってなんのこと?」では、MTUとRWINがそれぞれ「一
度に扱うパケットサイズの最大値」「確認しないで受け取れるデータ量の
最大値」ということを学んだ。また、「MTUの最適値をコマンドプロンプ
トを使って見つけよう」では、MTUの最適値を計算できた。

 では続いて、今回はRWINの最適値を求める基本的な考え方を説明しよう。
RWIN値は、MTUの最適値から算出することができる。計算式は次の通りだ。

 なぜMTU値から40バイトを引くのかというと、TCP/IPで運んだ純粋なデ
ータサイズを算出するためだ。パケットにはTCPヘッダー、IPヘッダーと
呼ばれる制御情報がくっついていて、それぞれが20バイトずつある。
「MTU値」から 40バイトを引いた、純粋なデータサイズを「MSS(Maximum
Segment Size)」と呼ぶ。覚えておこう。

 さて、今回実験したCATV10Mbpsの環境で、断片化するギリギリの値が
「1472」であった。この値から、MTU、MSSそれぞれを計算してみよう。

MTU = 1472 + 28 = 1500
MSS = 1500 - 40 = 1460

 となる。ここで「なぜ28を足すのか?」と疑問に思った人も多いだろう。
「MTUの最適値をコマンドプロンプトを使って見つけよう」の2ページ目
でも述べているように、pingコマンドでは、IPのエラーや制御メッセージ
をやり取りするために、ICMPというプロトコルを使って通信をする。その
場合のヘッダーサイズが28バイトなのだ。従って断片化しないギリギリの
データサイズに、28バイトを足した1500バイトがMTUの値となる。

 MSSについては、先ほど述べたとおり。インターネットも含め、TCP/IP
通信で送られるデータの先頭(ヘッダ)にくっついているデータが40バイ
トあるので、1500バイトから40バイトを引いた1460バイトが最適のデータ
サイズとなる。そして、一度に受け取る最大のデータサイズRWINは、この
値を整数倍化したものとなるのだ。

 次回は具体的な計算方法を見ていく。

(高橋 浩子=ティー・キューブ)

MTUの値からRWINの最適値を求めるには?(後編)
http://arena.nikkeibp.co.jp/tec/bb/20030801/105489/

 「MTUの値からRWINの最適値を求めるには?(前編)」では、RWINを求
める基本的な考え方を説明した。今回はいよいよ、最適RWIN値を算出して
みる。

 環境は前回MTU値を求めたのと同じ通信環境(10MbpsのCATV)だ。ping
コマンドを実行した結果、応答が帰ってくるまでの平均速度(Average)
は34msであった。RWINを求めるには、この34msという値を使うのだ。

▲応答が返ってくるまでの平均時間を使ってRWIN値を求める

 TCP/IPの仕組みでは、データを受け取ったAck(確認応答)が得られる
と、再びサーバーがデータを送信する。pingコマンドで往復に34msかかっ
たということは、PCがサーバーからデータを受け取って、その確認応答が
サーバーに戻るまでに34msはかかるということだ。

 要するに34ms間は、何の確認もなしにデータを受け取り続けられるのだ
から、この時間分のデータ量をRWINに設定すればよい。

 計算は次のように行う。まずは、回線の実効速度(スループット)を求
めよう。スループットは、「RBBTODAY」などの速度測定サイトで求められ
る。今回の環境は、CATV10Mbpsであったが、スループットは3Mbpsであっ
た。

 3Mbps(300万ビット/秒)で、平均34ms(34/1000秒)のスピードで応答が
返ってきたのだから、

 最低でもこのデータ量までは一度に受け取れることになる。このままだ
と分かりにくいので、単位を「バイト」に直してみよう。1バイトは8ビッ
トだから、

102000 / 8 = 12750バイト

 これが、実験した環境で一度に受け取れるデータサイズである。ややこ
しいのだが、ここで計算したデータ量は、あくまでも単純に「現在一度に
受け取っている量」であり、RWINの最適値ではない。

 では、先に進もう。先ほど算出した「12750バイト」は、1パケットあた
り1460バイト(=MSS値)で送信を行うと、何パケット分となるかを計算し
てみよう。これで、この回線では「一度に何パケットまで送っても大丈夫
なのか」がわかる。

 つまり、この回線だと、1回のデータのやりとりは10パケットまではい
っぺんに送っても大丈夫である。ただし、このとき、Windowsは2パケット
単位でデータを送信するので、必ず偶数値に切り上げることを覚えておい
てほしい。

 さて、いよいよ最終段階だ。10パケットは結局どれだけのバイト数かと
考えていくと、
1460 × 10 = 14600バイト

 となる。この環境でのRWINの最適値は14600バイトとなるのだ。

 ちなみにWindows 98では、RWINのデフォルト値は8192バイトと小さい。
ブロードバンド回線には小さすぎる値であれば、変更したほうがよいだろ
う。Windows 2000/XPでは、RWINのデフォルト値が1万6384バイトと大きく
なっており、FTTHなどの高速回線でない限りデフォルト値でも問題はない
だろう。

(高橋 浩子=ティー・キューブ)

「EditMTU」でMTUとRWINを簡単設定(自動設定編)
http://arena.nikkeibp.co.jp/tec/bb/20030818/105596/

 今まで4回に渡ってMTUとRWINの現在値の見つけ方、最適値の計算方法
について解説してきたが、今回紹介する「EditMTU」というフリーソフト
を使えば、とても簡単に、そしてあっさりとMTUとRWINを最適化できる。
楽して回線スピードを上げて、快適な環境を手に入れたいという「楽チン
派」の人には、うってつけのツールだ。「窓の杜」や「Vector」などから
入手可能なので、ぜひチェックしてみてほしい。

▲回線の速度を選び、接続するホスト名を指定すれば、MTUとRWINの最適値を自動的に測定するフリーソフト「EditMTU」。最新バージョンは2.31(作者HEN氏のページはこちら)
 EditMTUには手動でMTU/RWINを調整する方法と、自動設定の2通りの方
法がある。まずは初心者にも安心な、自動設定の方法から説明していこう。

 まず、ソフトを起動し、[自動設定]タブをクリック。「速度の種別」で
使用している回線スピードを選択し、「どこのサイトで計測するか」を中
央のプルダウンメニューから選択する。準備はたったこれだけだ。後は
[測定開始]ボタンを押すだけで自動的に計測が始まる。

 窓の中には“たぁーっ”と数字が表示されていくのだが、これは「MTU
の最適値をコマンドプロンプトを使って見つけよう」の回で説明した
「pingコマンド」を自動的に打っているのだと理解してほしい。

 pingを自分で打つ場合は、「どのくらいで断片化するか」を知るために、
1300はどうか、1350ならどうか、というように、パケット量をひとつずつ
確かめていかなければならないが、これを使うと「すべておまかせ」状態
なので、非常に楽に計測できる。

▲レジストリに設定値を書き込む前に確認用のダイアログが出る

 測り終わると、「Registryに書き込みます。良いですか?」と念を押さ
れる。[OK]ボタンをクリックすれば、MTUとRWINの測定結果がレジストリ
に書き込まれ、そのマシンは最適化されるという寸法だ。書き込まれたレ
ジストリの値は、[Win98/Me][Win2k/XP]タブで確認できる。また、[Reg.
復元]ボタンを押せば、EditMTU使用前の状態に戻すことも可能だ。

 ただし、1点注意が必要だ。Windows 2000およびWindows XPでは、自動
設定ではMTUの値は変更されない。適応されるのはOSがWindows Me/98/95
のみとなる。覚えておこう。次回は[Win2k/XP]タブでのMTU/RWIN調整方法
を解説する。どうぞお楽しみに。

(高橋 浩子=ティー・キューブ)

 次へ  前へ

IT1掲示板へ



フォローアップ:


 

 

 

 

  拍手はせず、拍手一覧を見る


★登録無しでコメント可能。今すぐ反映 通常 |動画・ツイッター等 |htmltag可(熟練者向)|(各説明

←ペンネーム新規登録ならチェック)
↓ペンネーム(なしでも可能。あったほうが良い)

↓パスワード(ペンネームに必須)

(ペンネームとパスワードは初回使用で記録、次回以降にチェック。パスワードはメモすべし。)
↓画像認証
( 上画像文字を入力)
ルール確認&失敗対策
画像の URL (任意):
投稿コメント全ログ  コメント即時配信  スレ建て依頼  削除コメント確認方法
★阿修羅♪ http://www.asyura2.com/  since 1995
 題名には必ず「阿修羅さんへ」と記述してください。
掲示板,MLを含むこのサイトすべての
一切の引用、転載、リンクを許可いたします。確認メールは不要です。
引用元リンクを表示してください。