フロー制御
オーバーフローしないように制御する機能だよ
送るデータの量を調整するよ
簡単に書くよ
フロー制御(読:フローセイギョ 英:flow control)とは
オーバーフローしないように制御しますよ機能のこと。
もう少し具体的に書くと
通信において「あー、今テンパってるからちょっと一回送るの止めて~」や「落ち着いてきたから普通に送って良いよ~」などのやり取りをする機能のこと。
少しだけ小難しく書くと
通信において、受信側の力不足によるデータの取りこぼしなどを防ぐために、一気に送るデータの量を調整する機能のこと
です。
詳しく書くよ
サクっと一言で説明すると
通信量を調整するための機能
が「フロー制御」です。
送る量が多すぎて処理しきれなくなるのを防ぎます。
例えば、ピヨ太君とピヨ子さんがおしゃべりをしていたとしましょう。
ピヨ太君はのんびり屋さんです。
お話するときもゆっくりしゃべります。
一方のピヨ子さんはせっかちさんです。
お話はもちろんマシンガントークです。
この2人が会話をしてみたところ、ピヨ子さんのしゃべりが速すぎて、ピヨ太君は徐々に付いていけなくなりました。
困ったピヨ太君は「もう少しゆっくりしゃべってよ~」とピヨ子さんにお願いしました。
その結果、ピヨ子さんはゆっくりしゃべってくれるようになりました。
これでピヨ太君も心にゆとりができ、おしゃべりを楽しむことができたのです。
めでたし、めでたし。
このお話における「もう少しゆっくりしゃべってよ~」がフロー制御です。
実際の通信においては、送る方から受け取る方に、細切れになったデータ(パケット)が送られます。
受け取る方は、送られてきたパケットを合体させて元のデータを復元します。
ここで、受け取る方が処理できる量より多い、たくさんのパケットが送り付けられたらどうなるでしょう?
そうですね、受け取る方はテンパってしまいます。
お仕事が遅くなる、あるいは送られてきたパケットを受け損なってしまうこともあるでしょう。
これを防ぐための機能がフロー制御です。
受け取る方は、テンパらないでお仕事ができるように「一回送るの止めて~」「普通に送って良いよ~」と送る方に伝えます。
送る方はそのお願いに従って送る量を調整してくれるのです。
もう少し具体的に見てみましょうか。
実際のところフロー制御のやり方はいろいろあるので、その一例です。
まず送る方が100byteの大きさのデータを送ったとしましょう。
受け取った方は「100byteの大きさのデータを受け取ったよ~」というお返事をします。
さらにこのお返事に「次は80byteまでの大きさのデータなら受け取れるよ~」というメッセージをくっつけてやります。
これで送る方は「あぁ、もう100byteの大きさを受け取る余裕は無いんだな。でも80byteまでの大きさなら受け取れるんだな」と分かります。
そこで送る方は80byteの大きさのデータを送ってやりました。
受け取った方は「80byteの大きさのデータを受け取ったよ~」というお返事をします。
さらにこのお返事には「次は0byteまでの大きさのデータなら受け取れるよ~」というメッセージがくっつけてありました。
0byteまでの大きさなら受け取れる、つまり「もう受け取れないよ~」ということです。
送る方は「あぁ、もうこれ以上送っても処理できないんだな~」と分かったので、送るのを止めました。
これがフロー制御のやり方……の一例です。
フロー制御のやり方は他にもいろいろありますので、興味がある方は専門的に説明しているところで、情報を補完してください。
一言でまとめるよ
まぁ「フロー制御」って単語が出てきたら「通信において、送る量を調整する機能なんだな~」と お考えください。
おまけ
■訳してみるよ
「flow(フロー)」の意味は「流れ」とか「流れる」とかです。
「制御」は日本語ですね。
何となく くっつけると
流れ制御
となります。






