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ヘッダ まとめ 次回は パケット解析確認...