フロー制御

フロー制御とは



フロー制御は、コンピュータネットワークにおいて、データ送信側が受信側の処理能力を超えてデータを送りすぎないように調整する仕組みです。これは、高速な送信側が低速な受信側をオーバーフローさせてしまう事態を防ぎ、ネットワークの効率的な運用を支える上で不可欠です。

フロー制御は、ネットワークの混雑を制御する輻輳制御とは異なり、主に2つのノード間のデータ転送レートを管理することに焦点を当てます。フロー制御のメカニズムは、受信ノードが送信ノードにフィードバックを返すかどうかによって分類できます。

送信側のコンピュータが受信側のコンピュータよりも高速にデータを送信できる状況は、例えば受信側が高負荷状態にあったり、受信側の性能が相対的に低い場合に起こりえます。フロー制御は、このような状況下でも安定したデータ通信を保証するために重要な役割を果たします。

転送フロー制御



転送フロー制御は、データ端末装置(DTE)とデータ回線終端装置(DCE)の間、または2つのDTE間で発生します。転送レートは、ネットワークの要求によって制御される場合と、DTEの要求によって制御される場合があります。双方向のデータフローにおいて、それぞれの方向で異なる転送レートが適用されることもあります。

転送フロー制御の方法としては、単純な送信停止/再開の指示や、より高度なスライディングウィンドウ方式などがあります。

フロー制御は、データ通信インターフェースの制御線を利用する方法(RS-232など)と、制御文字をフロー制御用に予約して使用する方法(XON/XOFFなど)があります。

  • - ハードウェアフロー制御: RTS/CTS、DSR/DTRといったRS-232の制御線を利用します。DTE(マスター)がRTSなどの信号線をアサートすることで開始し、相手側(DCE、スレーブ)がデータ受信の準備が整うとCTSなどの対応する信号線をアサートします。その後、マスターがデータの送信を開始します。データ停止が必要になった場合は、それぞれの制御線のアサートを停止します。PCとモデムの接続などでは、DTR/DSRが常にアサートされ、RTS/CTSがデータのブロックごとにアサートされることが多いです。
  • - ソフトウェアフロー制御: ASCII制御文字のXON/XOFFを使用します。送信側は、XOFFを受信するとデータ送信を停止し、XONを受信すると再開します。

開ループフロー制御



開ループフロー制御は、受信側と送信側の間にフィードバックのやり取りがない点が特徴です。このシンプルな制御方式は広く利用されています。リソースの割り当てには、事前予約型とhop-to-hop型があります。しかし、開ループフロー制御はネットワークリソースの利用を最大化できないという問題を抱えています。リソース割り当てはコネクション設定時に行われ、その後のリソース状況の変化に対応できないため、リソースが無駄になることがあります。開ループフロー制御は、ATMのCBR、VBR、UBRサービスなどで利用されています。

閉ループフロー制御



閉ループフロー制御は、送信者に対してネットワークの混雑状況を通知できる点が特徴です。送信者はこの情報に基づき、自身の動作を調整します。この方式は、ATMのABRサービスなどで利用されています。

転送フロー制御も閉ループフロー制御の一種です。

その他の関連事項



  • - 輻輳制御: ネットワーク全体の混雑を制御する仕組みです。フロー制御とは異なる目的を持ちます。
  • - スライディングウィンドウ: データ転送におけるフロー制御の一種で、送信側が送信できるデータ量を動的に調整します。
  • - 通信トラヒック工学: ネットワークのトラフィックを分析・管理する分野です。
  • - ハンドシェイク: データ通信において、送信側と受信側が互いに通信準備が整っているかを確認する手順です。
  • - Bufferbloat: ネットワークのバッファが過剰に大きくなることによって発生する遅延問題です。
  • - 開ループ制御: フィードバックを用いない制御方式。
  • - 閉ループ制御: フィードバックを用いて制御を行う方式。

参考資料



もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。