にしのクエスト2

情報処理技術者試験と資格学校講師の日常

にしのクエスト2

ネスペちゃん01 「TCP」(4)スライディングウインドウ

ここまでのまとめ。

・TCP自身はどうやって接続しているのかはわから
 ない(レイヤが違うため)が、通信を制御する仕事
 をしている。
・相互に通信を行う場合、許可・応答を一度に行う3
 WAYハンドシェイクを使う。
・許可を待たずに、送信することで効率化を図れるが
 相手の処理が間に合わない(バッファオーバーフロ
 ー)場合があるので、ウインドウサイズを確認し、
 送信するタイミングを計る。

www.nsnq.tech

 さらにウインドウ制御(フロー制御ともいう)を効率
化する方法としてスライディングウインドウという仕
組みがある。ちょっと、わかりにくいんだけど。

f:id:koharuwest:20190608232358j:plain


ABCDEというデータを送るとする。


AとBを送信開始。
AはOK。
BとCを送信開始。
BはOK。
CとDを送信開始。
CはOK。
DとEを送信開始。
DはOK。

このように、一つの応答の間に一つづつ送信するセグ
メントをずらして送信する。もちろん、ウインドウサ
イズがなくなれば相手は受け取れないので送信は中断
するが、確認応答の間に送信を開始することで実際の
通信速度を向上させることができる。


たとえは同じデータを何回も送ってるように見えない?


感覚としてはABを送っている間に、Aの返事が来た
のでそのままBを送りつつCも開始しちゃえ・・・み
たいな感覚。文字にするのが、難しいにゃ。

タイミングを滑らかにずらしている感じ!


これ、順番通りにならないんじゃないの?


途中で送信エラーがあったりするとそうなんだけど、
そこは現地で調整する。再送分は後で届くということ
で。

次回はTCPの最後。まとめと、質問コーナーにする
にゃ。

意外と、好評みたいですよ。
この連載。

f:id:koharuwest:20190520230653p:plain