IPv4ヘッダについて、自分のおさらいを込めて書いてます。
IPv4ヘッダとはIP通信を行うためのIPv4アドレス等の詳細情報が載っている場所のことです。IPv4ヘッダとIPv4パケットとか最初の内は知識が混在しますが、
IPv4パケットはIPv4ヘッダ+データ(=ペイロード)のことを指します。
ちなみにEthernetフレームはEthernetヘッダ+データ(=ペイロード)のことを指します。
基本は、L3全体像のことをIPv4パケット、L2全体像のことをEthernetフレームと考えても大丈夫です。
IPv4ヘッダに話を戻します。
IPv4ヘッダのサイズは基本20byte(=160bit)ですが、オプションが付くと最大60byte(=480bit)までなります。でも20bitと覚えていて大丈夫です。
中身をざっと紹介します。
・バージョン (4bit)
>> IPヘッダのバージョン。IPv4なので「4」になります。
・ヘッダ長(4bit)
>> IPv4ヘッダ全体の長さ。ここでは「5」が入る。32bit * 5 = 160bit =つまり20byte
・サービスタイプ(8bit)
>> IPv4パケットの優先順位の情報。QoSの際に利用する。
・全長(16bit)
>> IPパケット全体の長さを示す
・識別番号(16bit)
>> 個々のパケットを識別するための情報。例えば、パケットが分割された際に、これは同じパケットだよね??というのを受信側で認識するためのもの
・フラグ(3bit)
>> パケット分割における制御の情報
・フラグメントオフセット(13bit)
>> フラグメントされたパケットが元々パケットのどの位置であったかを示す
・生存時間(8bit)
>>パケットの生存時間を示す情報。ルータを経由するたびに1減少する
・プロトコル(8bit)
>>L4(トランスポート)層のプロトコルに何が使われているか示す
・ヘッダチェックサム(16bit)
>>IPヘッダにエラーがないかをチェック
・送信元IPアドレス(32bit)
>>送信元のIPアドレスの情報
・宛先IPアドレス(32bit)
>>宛先のIPアドレスの情報
上記が通常のIPv4ヘッダ(20byte)で使用するもの。
これに加えて、「オプション」「バディング」という可変長サイズのヘッダがつくことによりIPv4ヘッダサイズが60byteになります。
Wireshark等のパケットキャプチャを使用する際に、IPv4ヘッダの中身は理解しておく必要があります。多いですけどね....