読み方 : フローせいぎょ

フロー制御 【flow control】 フローコントロール

概要

フロー制御(flow control)とは、データ通信において、受信側の処理が追いつかずにデータを取りこぼしたりするのを防ぐため、通信状況に応じて送信停止や速度制限などの調整を行うこと。

解説 二つの機器間でデータを送受信する場合、受信側がデータを処理する速度(単位時間あたりのデータ量)と、送信側がデータを送り出す速度に差がある場合がある。送信側の能力の方が高い場合、受信側の限度を超えて送出を続けるとデータの取りこぼしが発生する。

フロー制御はこれを防ぐため、受信側の状況に応じて一時的な送信の停止や伝送速度の抑制などを行う制御である。通信中に受信側が高負荷状態になったり一時的な受信データ保管領域(バッファ)が溢れそうになったら、何らかの信号で送信側にこれを伝え、送信側がこれを見て送出を抑制する。

ハードウェアフロー制御 (hardware flow control)

通常の信号線とは別にフロー制御専用の信号線を用意し、これを使って通信を制御する方式を「ハードウェアフロー制御」という。制御専用の信号線が必要なため設計は複雑になるものの、送受信するデータに制御データを埋め込まずに済むため、データ転送の効率がよい。コンピュータ本体と周辺機器間の接続など、専用のケーブルや通信路で直に繋がれた機器間の通信で用いられる。

RS/CSフロー制御 (CS/RSフロー制御、RTS/CTSフロー制御、CTS/RTSフロー制御)

代表的なハードウェアフロー制御の方式で、RS-232Cなどで用いられる。データの送受信に用いる信号線の他に、「CS」あるいは「CTS」(Clear To Send)と呼ばれる信号線と「RS」あるいは「RTS」(Request To Send)と呼ばれる信号線の2本の制御専用の信号線を持っており、これを使ってフロー制御を行う。

ソフトウェアフロー制御 (software flow control)

通常の信号線で送受信するデータ列の中に制御データを埋め込む方式を「ソフトウェアフロー制御」という。制御専用の信号線が不要なためハードウェアの構成や設計は単純になるものの、制御データを埋め込む分だけデータ転送の効率は低下する。遠隔地間を公衆回線網を経由して通信する場合など、ハードウェアによるフロー制御が物理的に不可能な場合などに用いられる。

X-ON/X-OFFフロー制御

代表的なソフトウェアフロー制御の方式で、アナログモデムが電話回線を通じてフロー制御を行う際などに用いられる。送信中断を要求する「X-OFF」と送信再開を要求する「X-ON」の2種類の制御コマンドをデータ中に埋め込んで送受信する。コードは1バイトで表し、X-ONは17(16進数11)、X-OFFには19(16進数13)を用いるため、送受信するデータ自体にこの二つが含まれないよう適切に変換(エスケープ)する必要がある。

(2025.9.6更新)

他の用語辞典による「フロー制御」の解説 (外部サイト)