12月1日(木)2コマ目
今日、やったこと
- パケット解析確認テスト1の解説
- パケット解析(HTTP)
今日のホワイトボード
パケット解析確認テスト1の解説
前回(11月24日)のおたすけサイトをご覧ください。
パケット解析
順に解析していきます。
イーサネットヘッダ
タイプが0x0800より、イーサネットヘッダ以降はIPヘッダであることがわかります。
IPヘッダ
![]() |
| 図 IPヘッダ解析 |
![]() |
| 図 IPヘッダ解析結果 |
プロトコル番号が0x06より、IPヘッダ以降にはTCPヘッダがあることがわかります。
TCPヘッダ
初登場のTCPヘッダですが、フォーマットに従って解析すればややこしいことはないとおもいます。
![]() |
| 図 TCPヘッダ解析 |
![]() |
| 図 TCPヘッダ解析結果 |
UDPヘッダと同じように送信元・宛先のポート番号で上位プロトコルがわかります。
このパケットは宛先ポート番号の80からTCPヘッダ以降にはHTTPヘッダが続くことがわかります。
HTTPヘッダ
このパケットはTCPの宛先ポート番号が80であることから、クライアント->サーバーのリクエストのパケットです。
HTTPヘッダはビット単位でフォーマットが決まっているわけではなく、区切りのCR(0x0d)、LF(0x0a)で区切った文字列データの連続です。
ということで、1バイトずつasciiの文字コード表をもとに文字に変換していきます。
まずは先頭から。ここはリクエストラインになります。
![]() |
| 図 HTTPヘッダ リクエストライン部 |
リクエストラインは
GET / HTTP/1.1
です。
続いて、リクエストヘッダフィールドです。
![]() |
| 図 HTTPヘッダ リクエストヘッダフィールド部 ① |
データは
Host: 172.16.8.10
です。
リクエストヘッダフィールドが続きます。
![]() |
| 図 HTTPヘッダ リクエストヘッダフィールド部 ② |
データは
Connection: keep-alive
です。
これで終了です。
リクエストヘッダフィールドは
項目名:値
のフォーマットです。
このパケットには項目名HostとConnectionがあります。
Hostはリクエストするホスト名の指定です。
Connectionは接続方法の指定です。keep-aliveはTCPのコネクションを維持せよという指定です。
![]() |
| 図 HTTPヘッダ まとめ |
次回は
パケット解析確認テスト2をやります。
また、HTTPヘッダのリクエストラインの説明をします。







