MTUとRWINの基礎知識 

MTUとRWINの設定をする為に

一般的にネットワークを構築する際にはTCP/IP(Transmission Control Protocol/Internet Protocol)と呼ばれるプロトコル(通信を行なう上で相互に決められた約束事)が使用されます。
そして、データのやり取りをする際はパケットという単位に分割されて送信されます。パケットには通信を正しく行う為に、送信元やあて先の情報やパケットが損失していないかなどを調べる為の情報が格納されたヘッダが付加されています。

メールを送るにしても手紙のようにそのまま移動しているのではなく、パケットに分割されて移動した後に相手先で組み合わされてメールとして受け取れるわけです。
手紙を切り刻んで一片づつ相手に送るイメージですが、実際にそんなことすると単なる嫌がらせですね(笑)

データのサイズが増加するとパケット数も増加します。パケット数が増加するとそれぞれのパケットにはヘッダが付加しているわけですからセグメント(データ部分)以外の量も増えることになります。
要するに同じデータを送るならパケット数を減らして送った方が良いわけです。
そこで重要になるのがMTUとRWINの設定になり、これらを環境に適した値にすることでパケット数を減らして無駄なく快適な通信が実現するわけです。


 

MTUとは

Maximum Transmission Unit の略で1回のデータ転送にて送信可能なデータ(パケット)の最大値を示す値になります。
MTUの値が大きいほど効率よく伝送できそうな気がしますが、MTUを大きくしすぎた場合に小さなデータの伝送で効率が悪くなってしまうので、あくまでも適切な値を設定することが重要になります。
そして、伝送元のMTUがあて先のMTUより大きい場合は分割しなおして再送するので、あて先のMTU以下にする必要があるのです。
キャリア(通信事業者)によってMTUの値が異なるので分からない場合は問い合わせると良いでしょう。そして、ルータを設置している場合はパソコンからの最初のあて先はルータになるので、ルータのMTUの設定も同じ値にに変更しなければいけません。

MSSとは

Max Segment Size の略で名の通りパケットからヘッダを除いたセグメントのことです。

RWINとは

TCP Receive Window の略でTCP/IP経由でデータを受信しているコンピュータが、受信確認を送信側に送る間隔を示す値のことです。
データ通信では送信元が最初のパケットを送り、受信側から問題なく受け取れたと応答があった後に次のパケットを送るといった方法が取られます。
しかし、パケットごとに受け取りの応答をしていたのでは効率がよくありません。そこで何バイトまではとりあえず送るからそこでセグメントが正しく受信できているか確認してくれという様に、無条件で受け取るサイズ(RWIN)を決める事によって効率をよくするわけです。
RWINもMTUと同様に大きけれ良いというわけではありません。RWINが大きいほど伝送に失敗していた場合に、失敗した部分の再送に時間がかかってしまうからです。

RWINの値はMSSの整数倍

RWINの値はMSSの整数倍にするのが良い理由は、RWINがMSSの整数倍になっていれば、最も大きなセグメントサイズばかりのパケットを送ることができるからです。
もし整数倍でなければ、最後のセグメントは前のMSSのサイズよりも小さなパケットにしなければならなくなるので、ネットワークの効率を最大限に生かすことができなくなってしまうのだ。

最後に

調べているうちにパケットとフレームの違いが分からなかったのでその違いを調べて見たところ、データの固まりは正式には「PDU」(プロトコル・データ・ユニット)と呼ばれる。つまり、フレームもパケットもPDUの呼び名だったというわけだ。

この記事内の内容は多分大きな間違いはないとは思うが、厳密に言うと少し違うところが少しあります。私が完璧な知識がないので厳密に説明できないと言うのもありますが、家庭用インターネットでMTUとRWINを設定する上で理解しておけば役に立つであろう内容は記載したつもりです。

少しあやふやな説明もあるかもしれませんが、感じ的にはあっているはずです(笑)
これ以上深く理解するには私にはキツイですが、大きな勘違いをしているところがあれば指摘していただけるとありがたいです。
(いつもながら禁止ワードがきつくてコメントしづらいのはご了承ください)

関連記事


参考記事


この記事へのコメント

コメントをお寄せ下さい

(コメント編集・削除に必要)
(管理者にだけ表示を許可する)

トラックバック

この記事のトラックバックURL
http://z0001.blog87.fc2.com/tb.php/116-2311a0f8