IPv4 は、インターネットの前身である Advanced Research Projects Agency Network(ARPANET)に導入された 1983 年から使用されています。 インターネットは、主に、現在でも最も幅広く使用されるネットワーク層プロトコルである IPv4 に基づいています。
IPv4 パケットには 2 つの部分があります。
- IP ヘッダー:パケットの特性を示します。
- ペイロード:レイヤ 4 のセグメント情報と実際のデータが含まれます。
図に示すように、IPv4 パケット ヘッダーはパケットに関する重要な情報が含まれるフィールドで構成されます。 これらのフィールドには、レイヤ 3 プロセスによって検査されるバイナリ値が含まれます。 各フィールドのバイナリ値は、IP パケットのさまざまな設定を示します。
IPv4 ヘッダーで重要なフィールドは次のとおりです。
- バージョン:IP パケットのバージョンを示す 4 ビットのバイナリ値が含まれます。 IPv4 パケットの場合、このフィールドは常に 0100 に設定されます。
- 差別化サービス(Differentiated Services; DS):以前はタイプ オブ サービス(Type of Service; ToS)フィールドと呼ばれました。DS フィールドは 8 ビットで、各パケットの優先順位を決定するために使用されます。 最初の 6 ビットは、サービス品質(Quality of Service; QoS)メカニズムによって使用される差別化サービス コード ポイント(Differentiated Services Code Point; DSCP)の値を示します。 最後の 2 ビットは、ネットワーク輻輳時にパケットのドロップを防止できる明示的輻輳通知(Explicit Congestion Notification; ECN)の値を示します。
- 存続可能時間(Time-to-Live; TTL):パケットの有効期間を制限するために使用される 8 ビットのバイナリ値が含まれます。 秒単位で指定されますが、一般にはホップ カウントと呼ばれます。 パケットの送信元が最初に設定した存続可能時間(TTL)の値は、パケットがルータつまりホップによって処理されるたびに 1 ずつ減らされます。 TTL フィールドがゼロになると、ルータはパケットを破棄し、ICMP(Internet Control Message Protocol)の時間超過メッセージを送信元 IP アドレスに送ります。 traceroute コマンドは、このフィールドを使用して、送信元と宛先の間で使用されたルータを識別します。
- プロトコル:この 8 ビット バイナリ値は、パケットが伝送しているデータ ペイロードのタイプを示し、ネットワーク層がデータを適切な上位層プロトコルに渡せるようにします。 一般的な値は、ICMP(1)、TCP(6)、UDP(17)などです。
- 送信元 IP アドレス:パケットの送信元 IP アドレスを表す 32 ビット バイナリ値が含まれます。
- 宛先 IP アドレス:パケットの宛先 IP アドレスを表す 32 ビット バイナリ値が含まれます。
送信元と宛先の IP アドレスは、最もよく参照されるフィールドです。 これらのフィールドは、パケットがどこから送られてきて、どこに送られていくのかを示します。 通常、これらのアドレスは、送信元から宛先への移動中に変更されません。