7月3日(水)1コマ目
今日、やったこと
- [確認テスト 解説] シーケンス番号・確認応答番号2
- パケットからTCPの処理のながれを確認
今日のホワイトボード
[確認テスト 解説] シーケンス番号・確認応答番号2
基本は
データ送信 -> (受信したら)受信応答返信 -> (受信したら)次のデータを送信
です。
データや受信応答が受信できない場合
データ送信 -> 受信できず -> 受信応答が受信できない -> データを再送
データ送信 -> 受信応答返信 -> 受信できず -> データを再送
です。
問1
Aは①送信後、受信応答が来ないので②で再送。
Bは④送信後、受信応答が来ないので⑤で再送。
![]() |
| 図 問1 |
問2
Aは①送信後、受信応答が来ない(Bは②で送信しているものの、Aは受信できず)ため、③で再送。
しかし、③をBが受信できないため、Aは再び④で再送。
④に対してBは⑤で受信応答を返信しているものの、Aは受信できず。よって、Aは⑥で再送。
![]() |
| 図 問2 |
パケットからTCPの処理のながれを確認
前回、パケットキャプチャツールの画面からパケットの内容を確認してもらいました。
パケットを順に解説します。
①No.6 172.16.14.160->172.16.8.10 コネクション確立1
TCPヘッダのコントロールフラグのSYN=1よりコネクション確立要求。
SYN=1のパケットは単にコネクション確立を行うだけでなく、
- シーケンス番号の初期値
- MSS
を伝えます。
②No.7 172.16.8.10->172.16.14.160 コネクション確立2
No.6を受信して、今度は172.16.8.10からコネクション確立要求です。
このパケットのコントロールフラグはACK=1になっています。これは”確認応答番号を見てね”です。受信した172.16.14.160は次はシーケンス番号1のパケットを送信します。
![]() |
| 図 ①No.6、②No.7のパケット |
③No.8 172.16.14.160->172.16.8.10 コネクション確立3
No.6~No.8でコネクション確立です。
このパケットのTCPヘッダにはオプションはありません。(ヘッダ長=20バイトより)
![]() |
| 図 ③No.8のパケット |
④No.9 172.16.14.160->172.16.8.10 HTTPリクエスト
TCPヘッダのあとに330バイトのHTTPデータがあります。
HTTPデータではWebページをリクエストするコマンドが含まれます。
![]() |
| 図 ④No.9のパケット |
⑤No.10 172.16.8.10->172.16.14.160 No.9の受信応答
確認応答番号=331より、
330バイトまでは受信した、次は331バイト目から送って
です。これを172.16.14.160が受信することで、No.9のパケットが受信できたことが分かります。





