Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

IPv4ヘッダ(アイピーブイフォーヘッダ)とは | 意味や読み方など丁寧でわかりやすい用語解説

IPv4ヘッダ(アイピーブイフォーヘッダ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

IPv4ヘッダ (アイピーブイフォーヘッダ)

英語表記

IPv4 header (アイピーブイフォーヘッダー)

用語解説

IPv4ヘッダは、インターネットプロトコルバージョン4(IPv4)を用いて通信を行う際に、データ本体の先頭に付加される制御情報である。IPパケットは、このIPv4ヘッダと、それに続くデータ部分であるペイロードから構成される。IPv4ヘッダの主な役割は、送信元と宛先のコンピュータを特定し、そのパケットを目的地まで正しく届けるための経路制御、すなわちルーティングに必要な情報を提供することにある。ネットワーク上の中継機器であるルータは、このヘッダ情報を読み取ることで、パケットを次にどこへ転送すべきかを判断する。つまり、通信データそのものではなく、そのデータをどのように扱うべきかを定めた、通信における非常に重要な制御情報が格納された部分である。

IPv4ヘッダは、通常20バイトの固定長で構成されるが、オプションが付加される場合は最大60バイトまで拡張される。このヘッダは複数のフィールドに分割されており、それぞれが特定の役割を持っている。最初のフィールドは「バージョン」で、4ビットの領域を持つ。使用しているIPのバージョンを示し、IPv4の場合はこの値が常に「4」となる。これにより、受信側は後続のデータ構造がIPv4の形式であることを認識できる。次に「IHL(Internet Header Length)」という4ビットのフィールドが続く。これはヘッダ長を示し、32ビット(4バイト)を1単位として数えた値が格納される。通常、オプションがない場合のヘッダ長は20バイトであるため、20を4で割った「5」という値が入る。オプションが付加されてヘッダが長くなる場合は、この値も増加する。「ToS(Type of Service)」は8ビットのフィールドで、通信の品質要求を指定するために使用される。例えば、音声や映像のようなリアルタイム性が求められる通信を優先的に扱うようネットワーク機器に要求することができる。現在では、より詳細な制御を可能にするDSCP(Differentiated Services Code Point)として利用されることが一般的である。「全長(Total Length)」は16ビットのフィールドで、ヘッダとデータ部分を含めたIPパケット全体の長さをバイト単位で示す。このフィールドが16ビットであるため、IPv4パケットの最大長は65,535バイトとなる。

パケットがネットワークの制約(MTU:Maximum Transmission Unit)によって分割される場合がある。その分割されたパケットを元に戻すために、「識別子」「フラグ」「フラグメントオフセット」の3つのフィールドが連携して使用される。「識別子(Identification)」は16ビットのフィールドで、分割される前の元のパケットを識別するための一意の番号である。分割されたパケットはすべて同じ識別子を持つ。「フラグ(Flags)」は3ビットの制御情報で、1ビット目は予約され、2ビット目はDF(Don't Fragment)フラグと呼ばれパケットの分割を禁止する。3ビット目はMF(More Fragments)フラグと呼ばれ、後続にさらに分割されたパケットが存在することを示す。最後のフラグメントではこのビットが0になる。「フラグメントオフセット(Fragment Offset)」は13ビットのフィールドで、分割された各パケットが、元のデータのどの位置から始まる部分であるかを示す。この値は8バイトを1単位として表現される。

「TTL(Time To Live)」は8ビットのフィールドで、パケットがネットワーク上に存在し続けられる時間、実質的には経由できるルータの最大数を示す。パケットはルータを1つ通過するたびに、このTTLの値を1ずつ減少させる。TTLが0になると、そのパケットは宛先に到達していないと判断され、ネットワークの無限ループを防ぐために破棄される。「プロトコル」は8ビットのフィールドで、ヘッダに続くデータ部分がどのトランスポート層プロトコルであるかを示す。例えば、TCPであれば「6」、UDPであれば「17」、ICMPであれば「1」といったプロトコル番号が格納される。受信側はこの番号を見て、データをどのプロトコルで処理すべきかを判断する。「ヘッダチェックサム」は16ビットのフィールドで、IPv4ヘッダ自体に伝送誤りがないかを確認するための値である。送信側はヘッダの内容からチェックサムを計算してこのフィールドに設定する。ルータを経由する際にTTLの値が変更されるため、チェックサムはルータを通過するたびに再計算される。「送信元IPアドレス」は32ビットのフィールドで、パケットを送信したコンピュータのIPv4アドレスが格納される。「宛先IPアドレス」も32ビットのフィールドで、パケットが最終的に届けられるべきコンピュータのIPv4アドレスが格納される。ルータはこの宛先IPアドレスを見て、ルーティングテーブルと照合し、最適な転送先を決定する。

最後に、「オプション」と「パディング」が存在する場合がある。「オプション」は可変長のフィールドで、通常は使用されないが、経路の記録やセキュリティレベルの指定など、特殊な制御が必要な際に利用される。オプションフィールドが追加された場合、ヘッダ長が32ビットの倍数になるように、末尾に「パディング」と呼ばれる0のデータが付加される。これらのフィールドが存在することにより、ヘッダ長は20バイトを超えることになる。これらの各フィールドが連携して機能することで、IPv4パケットは広大なインターネット上を正確かつ効率的に宛先まで届けられる。システムエンジニアは、ネットワークのトラブルシューティングなどを行う際に、これらのヘッダ情報を解析することが求められるため、各フィールドの役割を正確に理解しておくことが不可欠である。

関連コンテンツ