8月16日(月)2コマ目
今日、やったこと
パケット解析(TCPヘッダ)
今日のホワイトボード
コネクション確立からデータのやり取りまでの16個のパケットを解析しました。
パケット①、②
ともにコントロールフラグのSYNビットが1のため、コネクション確立要求です。
コネクション確立要求ではシーケンス番号の初期値(0相当の値)を通知します。
ということで、シーケンス番号は実は0から始まるわけではないです。
また、TCPヘッダのオプションで最大受信セグメント長を通知します。
TCPはこのサイズ以上のデータを送信する際は、データを分割して、複数のパケットで送信します。
![]() |
| 図 パケット①、② |
パケット②、③
ともにコントロールフラグのACKビットが1です。(このあとのパケットもACK=1)
ACK=1は確認応答番号が有効であることを表します。
![]() |
| 図 パケット②、③ |
ちなみに、パケット①から③まででコネクション確立を行っています。
パケット④、⑤
172.16.4.253から172.16.8.11へ連続してデータを送信しています。
パケット④のデータサイズは1460バイトですが、これは最大受信セグメント長と同じです。
送信データサイズが最大受信セグメント長より大きいため、一旦1460バイトで区切って送信しています。
![]() |
| 図 パケット④、⑤ |
パケット⑥、⑦
パケット④、⑤に対する受信応答です。
![]() |
| 図 パケット⑥、⑦(④、⑤も) |
パケット⑧、⑨
パケット⑧でデータを受信したため、パケット⑨は受信応答です。が、データも一緒に送信しています。
![]() |
| 図 パケット⑧、⑨ |
受信応答をしつつ、データを送信することをピギーバックと呼びます。
ピギーバックとは、ピギー(piggy:豚)を売りに行く際、背中(バック:back)に一緒に売る野菜等を載せていくことから、ついでに一緒になにかすることをピギーバックと呼びます。
このあとのパケットも同じようにデータを送信する、受信応答を返信するの繰り返しです。
次回はこれを使って新ネタをやります。





コメント