12月25日(金)1コマ目
今日、やったこと
- 確認テスト(ARP、ICMPパケット送信順、解析)
- TCPパケット解析
今日のテスト
解答例をあげときます。
![]() |
| 図 問題 |
![]() |
| 図 解答例 |
ホストAにてホストBへpingを実行した際にやりとりされるパケットに関する問題です。
やりとりされるパケットをすべて挙げると以下のようになります。
| 順番 | 送信元 | 宛先 | どんなパケット? |
|---|---|---|---|
| 1 | ホストA | ホストB | ホストBのMACアドレス取得のためARPリクエスト |
| 2 | ホストB | ホストA | 上記(順番:1)のARPリクエストに対するARP応答 |
| 3 | ホストA | ホストB | ホストAからホストBへのICMPエコー要求(シーケンス番号:1) |
| 4 | ホストB | ホストA | 上記(順番:3)のICMPエコー要求に対するエコー応答 |
| 5 | ホストA | ホストB | ホストAからホストBへのICMPエコー要求(シーケンス番号:2) |
| 6 | ホストB | ホストA | 上記(順番:5)のICMPエコー要求に対するエコー応答 |
| 7 | ホストA | ホストB | ホストAからホストBへのICMPエコー要求(シーケンス番号:3) |
| 8 | ホストB | ホストA | 上記(順番:7)のICMPエコー要求に対するエコー応答 |
問題の各パケットと上記の表のパケットは以下のように対応付けることができます。
| 上記のパケット(順番) | 問題のパケット |
|---|---|
| 1 | 6 |
| 2 | 3 |
| 3 | 2 |
| 4 | 7 |
| 5 | 5 |
| 6 | 8 |
| 7 | 1 |
| 8 | 4 |
パケットの送信順は以下のとおりです。
6 -> 3 -> 2 -> 7 -> 5 -> 8 -> 1 -> 4
今日のホワイトボード
TCPのパケットを解析しました。
TCPヘッダのポイントは
- 可変長
- TCPヘッダ長はTCPヘッダのヘッダ長x4(バイト)
- 可変長部はオプション
- オプションは「オプション番号」+「サイズ」+「データ部」が1セット
です。
パケット1
![]() |
| 図 パケット1(コネクション確立要求) |
![]() |
| 図 パケット1(イーサネットヘッダ) |
![]() |
| 図 パケット1(IPヘッダ) |
![]() |
| 図 パケット1(TCPヘッダ) |
TCPヘッダのコントロールフラグを見ると、SYNが1になっています。これからコネクション確立要求のパケットだとわかります。
コネクション確立時にはTCPヘッダのオプションで最大セグメント長(1パケットで送信できるデータサイズの上限)を通知しています。このパケットではTCPヘッダのオプションにてオプション番号0x02が1460になっていることから1460バイトを通知しています。
パケット2
![]() |
| 図 パケット2(コネクション確立要求+応答) |
![]() |
| 図 パケット2(イーサネットヘッダ) |
![]() |
| 図 パケット2(IPヘッダ) |
![]() |
| 図 パケット2(TCPヘッダ) |
TCPヘッダのコントロールフラグを見ると、SYNが1、ACKが1になっていることからパケット1のコネクション確立要求を受けて、受信側からもコネクション確立要求をするパケットです。
パケット1と同じようにTCPヘッダのオプションで最大セグメント長が1460バイトであることを通知しています。
次回はパケット3の解析を行います。










コメント