2009年11月18日水曜日

RWIN

RWINとは、TCP/IP経由でデータを受信しているコンピュータが、受信確認を送信側に送る間隔を示す値。

 TCP/IPでは一定量のデータを受信するたびに受信確認を送るという方式をとっているため、RWINの単位は「バイト」になる。

 例えば、RWINが64KBになっているコンピュータで1024KBのデータを受信する場合、最初の64KBを受信すると受信確認を送り、次に128KBまで受信するとまた受信確認を送り…といった具合になり、これが全データを受信するまで繰り返される(この例では16回)。

 受信したデータに異常があった場合の再送信要求も、最小限のデータだけで済ませる仕様(「Selective ACK」と呼ばれる)も用意されているものの、基本的にはRWINで指定されたデータ量単位で行われる。

 RWINが回線の速度と比べて小さすぎる場合、データの受信確認を送信側のコンピュータに頻繁に送ることになるが、距離が離れた場所にあるコンピュータに受信確認を送るにはかなりの時間(0.1~0.2秒程度)がかかってしまう。

 しかも、送信側のコンピュータは受信確認が来るまでは次のデータを送れないため、受信確認の往復にかかる時間がまるまるタイムロスとなり、その分だけ通信速度が遅くなってしまう。

 一方、RWINが回線の速度と比べて大きすぎる場合は、間違ったデータが流れてきた際に再送信にかかる時間がやたらに長くなってしまい、この場合も通信速度が遅くなってしまう。

 このようなRWINの性質上、最適なRWINの値は回線の通信速度や通信エラーの発生確率に大きく依存し、一概にどの程度のRWINが最適であると断言することは難しい。

 ただし、経験上、Windows 95/98のデフォルトのRWINの値はADSL回線を使う場合には小さすぎるといわれており、手動でRWINの値を書き換えるツールなどを使用して通信速度をアップさせる方法が様々なWebサイトで紹介されている。

0 件のコメント:

コメントを投稿