6月24日(月)1コマ目
今日、やったこと
- [TCP]コネクション
- [TCP]シーケンス番号・確認応答番号
今日のホワイトボード
TCPのコネクション確率
TCPはいきなりデータを送らずに、相手が受信可能か確認するためにコネクション確率を行う。
![]() |
| 図 TCPコネクション確率 |
コネクション確率はTCPヘッダのコントロールビット(コントロールフラグとも呼ぶ)を使って3つのパケットのやり取りで行う。
![]() |
| 図 TCPコネクション確率のながれ |
シーケンス番号
TCPはデータを分割して送信する。が、受信側には送信順とおなじ順序で受信できる保証はない。どんな順番で受信しても受信側で元の順序に組み立てなおす仕組みが必要。
TCPヘッダのシーケンス番号が何バイト目のデータかを表している。シーケンス番号は「xxxバイト目のデータ」という意味。
![]() |
| 図 TCPシーケンス番号 |
確認応答番号
TCPは
- データ送信
- 受信応答返信
- データ送信
と受信応答をもらって次のデータを送る。この仕組みのおかげで確実にデータを送受信することができる。
受信応答はTCPヘッダの確認応答番号を使う。この確認応答番号は「次はxxxバイトから送って」という意味。言い換えれば、「xxx-1バイト目までは受信した」。
![]() |
| 図 シーケンス番号と確認応答番号 |
練習問題
TCPのシーケンス番号、確認応答番号の変化をシミュレーションした練習問題。
問1
データはAが送信するだけ。BはAからデータを受信すると、受信応答を返すだけ。
![]() |
| 図 シーケンス番号・確認応答番号 練習問題1 問1 |
問2
ここではBもデータを送信している。が、基本的な考え方は同じ。
![]() |
| 図 シーケンス番号・確認応答番号 練習問題1 問2 |
問3
受信応答+データ送信のパケット。問2の2つのパケットを1つのパケットにした。
![]() |
| 図 シーケンス番号・確認応答番号 練習問題1 問3 |
次回は
テストをします。






