11月19日(火)3コマ目
今日、やったこと
パケット解析3
今日のホワイトボード
前回の「パケット解析3」のつづき。前回はイーサネットヘッダ、IPヘッダまでを解析。
IPヘッダのプロトコル番号0x06から上位プロトコルはTCP。よって、今日はTCPヘッダから。
TCPヘッダ
TCPヘッダ部をフォーマットに従って切り取ると以下のようになる。
![]() |
| 図 TCPヘッダ |
各項目を解析すると以下のとおり。
![]() |
| 図 TCPヘッダ解析結果1 |
TCPヘッダはIPヘッダと同じように可変長。受信側はヘッダ長でTCPヘッダの長さを調べる。
このパケットのTCPヘッダのヘッダ長は20バイト。オプションはなし。
また、宛先ポート番号80から上位プロトコルはHTTPだとわかる。
![]() |
| 図 TCPヘッダ解析結果2 |
コントロールフラグには、受信側はこのパケットのデータ(TCPヘッダよりあと)を上位プロトコル(HTTP)にすぐ渡す指定がある。
コネクション確立時のパケットならもっと見るべきものがあるが、今回はこの程度でOK。
HTTPヘッダ
このパケットはクライアントからサーバーへのリクエストパケット。
よって、HTTPヘッダの先頭はリクエストライン。
リクエストライン
パケットは以下のとおり。
![]() |
| 図 HTTPヘッダ リクエストライン |
解析する(ASCIIコードに従って文字に戻す)と以下のとおり。
![]() |
| 図 HTTPヘッダ リクエストライン 解析結果 |
このあとリクエストヘッダフィールドがつづく。
リクエストヘッダフィールド
パケットは以下のとおり。
![]() |
| 図 HTTPヘッダ リクエストヘッダフィールド |
解析する(ASCIIコードに従って文字に戻す)と以下のとおり。
![]() |
| 図 HTTPヘッダ リクエストヘッダフィールド 解析結果 |
一般ヘッダフィールド
パケットは以下のとおり。
![]() |
| 図 HTTPヘッダ 一般ヘッダフィールド |
解析する(ASCIIコードに従って文字に戻す)と以下のとおり。
![]() |
| 図 HTTPヘッダ 一般ヘッダフィールド 解析結果 |
本当はこのあとにもまだまだ続くが、今回はここまで。
次回は
パケット解析のテスト第2弾を実施。
ひきつづきパケット解析。








