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