にしのクエスト2

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

にしのクエスト2

ネスペちゃん01 「TCP」(5)スロースタートアルゴリズム

ここまでのまとめ。


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

www.nsnq.tech

 

f:id:koharuwest:20190608232358j:plain
ウインドウサイズってあるじゃん。


前回長々と説明してたね。


あれ、めんどくさいにゃ。

えええええ!めんどくさいを解消するためにやった
んじゃないの?

f:id:koharuwest:20190526164539p:plain

ウインドウサイズを教えたり、聞いたりするのもめ
んどくさいにゃ。


じゃあどうするっちゅうの!


まず、送るところから始める。

1 シーケンス番号としてランダムな数字を送信
  (たとえば1)
2 シーケンス番号(11)に
  データ(100バイト)を付けて送信
3 シーケンス番号(111)を返信
  ウインドウサイズ(500)を通知


このように、とりあえず1回だけセグメントを送って
みて、それが無事に届いたら一度に送るセグメントを
増やすようにする。

いくらウインドウサイズが大きくても、相手の処理能
力が低かったり回線の速度が低い状態だと処理しきれ
ないので、こういう仕組みを使っている。これをスロ
ースタートアルゴリズムっていうにゃー!

なるほど、どうつながっているかは別のレイヤーだか
ら知らないくせにいざデータを送るとなると、いろん
なことをやるんですねえ。すごいねー。


分かってもらって嬉しい。
TCPって、結構すごいにゃ。

次回こそ質問コーナーでーす。