TCP/IPパケットの読み方
前置き
TCP/IPネットワークを流れるデータはメッセージ
パケット
セグメント
データグラム
フレーム
等と呼ばれています。
Webサイトを閲覧する場合を例にとって一連の処理を考えます。
- アプリケーション層
Webブラウザがアプリケーション特有の情報をHTTPメッセージとして送信します。 ユーザーエージェントやエンコードなどアプリケーションの環境設定がHTTPヘッダに記述されます。
- トランスポート層
HTTPメッセージをTCPセグメントとしてラッピングします。 TCPセグメントのヘッダには宛先ポート等の情報が記述されます。
- ネットワーク層
TCPセグメントをIPパケットとしてラッピングします。 IPパケットのヘッダには宛先IPアドレス等の情報が記述されます。
- データリンク層
IPパケットをデータリンク層のフレームとしてラッピングします。 フレームのヘッダには宛先MACアドレス等の情報が記述されます。
- 受信側の処理
データリンク層からアプリケーション層まで逆操作することでHTTPメッセージを取り出します。
Wiresharkの場合
TCP/IPデータ構造を把握していればトラブルシューティングの時にWiresharkで見るべき場所が分かります。
例えば宛先ホストにpingが通じるならばトランスポート層以上に限定して見ていくのが良いでしょう。 pingが通じない場合はネットワーク層のIPアドレスかデータリンク層のMACアドレスが間違っているかもしれません。
アプリケーション層の情報は量が多いのでツリーを開きます。 解析する際は各アプリケーションプロトコルのRFC等を参考にするのが良いでしょう。