TCP(Transmission Control Protocol)の機能の一つにフロー制御があります。
TCPでは、フロー制御をウィンドーサイズの動的変更によって実現しています。
送信先から送信元に送信される確認応答のTCPセグメントに変更後のウィンドーサイズの値が含まれているので、送信元はこの値に基づいて送信するデータ量を調整しています。
受信側は、受信したデータを一旦受信バッファの中に入れて、これをソケットインターフェイスと呼ばれるAPI(Application Programming Interface)を通じてアプリケーションプログラムに渡します。
しかし、何事もいつもうまくいくとは限りません。
アプリケーションプログラムは四六時中通信処理をしているわけではありません。
様々な周辺機器とデータのやりとりをしています。
計算をずっとやっている時もあります。
繰り返しが多いCPU内部の処理だけを集中的に行っている場合もあります。
従って、アプリケーションプログラムがビジー状態の時もあり、アプリケーションプログラムが処理中に作成者のミスから発生するバグと呼ばれる不具合のせいなどが原因して処理を続行できなくなる場合もあります。
このような状態がずっと続くと、受信バッファにどんどんデータが溜まり、最終的にバッファの空きがなくなり、オーバーフローしてしまうことがあります。
こうなってしまうと、受信側はこれ以上データを受信してバッファに溜めることができなくなり、ウィンドーサイズの値を変更して送信側に通知し、送信側からの送信データの量を制御することができます。
前述のように、受信バッファの空きがまったくなくなった場合、何も受信できなくなるので、ウィンドーサイズに0の値を設定して送信側に通知し、送信を止めます。
ページトップへ
ネットワーク技術用語集【ふ行】(「LAN技術研究室」付録)
ネットワーク技術用語集【五十音順マップ】(「LAN技術研究室」付録)
サイトマップ(LAN技術研究室の案内図)
LAN技術研究室のトップページへ
© 2007 Toyozi Masuda All rights reserved.