RWIN【Receive WINdow size】受信ウィンドウサイズ
RWINとは?

TCP(Transmission Control Protocol)はインターネットなどのIPネットワークで標準的に用いられるトランスポート層のプロトコルである。通信の信頼性を確保するため、受信側はデータを正常に受け取るたびにACKパケットを返送し、送信側はそれを確認しながら次のデータを送る仕組みになっている。RWINは受信側の受信バッファの空き容量を表しており、ACKに含めて送信側へ通知される。
送信側はRWINで通知された値を超えてデータを送ることはできないため、RWINの値は通信効率を左右する重要な要素となる。値が小さければACKを待つ頻度が増し、高速な回線でも本来の性能を発揮できなくなる。逆に大きすぎると、パケットの欠落や破損が発生した際に送信側が検知するまでの間に多くのデータが送られてしまい、再送の範囲が広がる可能性がある。
TCPの通信性能は回線帯域と往復遅延時間(RTT)の影響を受けるため、最適なRWINは利用環境によって異なる。高速かつ長距離の通信では大きなウィンドウサイズが求められることが多く、従来のTCPで定義されていた16ビット上限の65,535バイトでは不足する場合があった。この問題に対応するため、より大きな受信ウィンドウを扱える「TCPウィンドウスケーリング」(TCP window scaling)が導入されている。
かつてはオペレーティングシステム(OS)が固定値として低めの値を設定していたため、利用者がレジストリなどを書き換えて手動調整する手法が取られることもあった。現在の主要なOSでは、回線の遅延状況や帯域幅をリアルタイムに監視してRWINを動的に調整する自動チューニング機能が実装されており、通常の利用環境では手動で設定を変更する機会は少なくなっている。