フロー制御ウィンドウ(ふろーせいぎょうぃんどう)
最終更新:2026/4/28
フロー制御ウィンドウは、TCPなどの通信プロトコルにおいて、送信側が受信側の処理能力を超えてデータを送信しないように設定される、送信バッファのサイズである。
ポイント
フロー制御ウィンドウは、受信側のバッファオーバーフローを防ぎ、信頼性の高いデータ伝送を実現するために重要な役割を果たす。ウィンドウサイズは動的に調整される。
フロー制御ウィンドウとは
フロー制御ウィンドウ(Flow Control Window)は、TCP(Transmission Control Protocol)などの信頼性のあるデータ転送プロトコルにおいて、送信側が受信側の処理能力を超えてデータを送信しないように制御するための仕組みです。受信側のバッファサイズを考慮し、送信可能なデータ量を制限することで、データの損失や再送を防ぎ、効率的な通信を実現します。
フロー制御の必要性
送信側が受信側よりも高速なネットワーク環境にある場合、受信側は大量のデータに追いつけず、バッファオーバーフローが発生する可能性があります。バッファオーバーフローが発生すると、データが失われたり、受信側が正常に処理できなくなったりします。フロー制御は、このような問題を回避するために不可欠です。
ウィンドウサイズの調整
フロー制御ウィンドウのサイズは、受信側が送信側に通知します。受信側のバッファが空いている場合は、ウィンドウサイズを大きくして、より多くのデータを送信できるようにします。一方、受信側のバッファが逼迫している場合は、ウィンドウサイズを小さくして、送信速度を抑制します。この調整は、通信中に動的に行われます。
TCPにおけるフロー制御
TCPでは、フロー制御ウィンドウは「受信ウィンドウ(Receive Window)」と呼ばれます。受信側は、受信ウィンドウの値を送信側に通知し、送信側は受信ウィンドウの値に基づいて送信するデータ量を調整します。受信ウィンドウの値が0になると、送信側はデータの送信を一時停止し、受信側のバッファが空くまで待ちます。
スライディングウィンドウとの関係
フロー制御ウィンドウは、スライディングウィンドウプロトコルの一部として機能します。スライディングウィンドウプロトコルは、フロー制御と輻輳制御の両方を実現するための仕組みです。フロー制御は受信側の処理能力を考慮し、輻輳制御はネットワーク全体の混雑状況を考慮します。