PR

IPv4ヘッダーとは?各フィールドの役割を図解でわかりやすく解説

ネットワーク
スポンサーリンク

はじめに

ネットワークを学習していると、「IPv4ヘッダー」という言葉を必ず目にします。しかし、ヘッダーには多くの項目が並んでいるため、「どれが何の役割なのか覚えられない」「TTLやIdentificationは何のために存在するのか分からない」と感じる方も多いのではないでしょうか。

実際には、IPv4ヘッダーは単なる設定情報ではなく、パケットを正しく目的地まで届けるための管理情報です。ルーターはヘッダーを読み取りながら転送先を決定し、受信側はヘッダーを利用してパケットの復元や通信の整合性を確認しています。

この記事では、IPv4ヘッダー全体の構造を確認したあと、それぞれのフィールドがどのような役割を持ち、通信のどの場面で利用されるのかを分かりやすく解説します。各項目の意味を理解することで、ネットワークの仕組みを体系的に理解できるようになります。

IPv4ヘッダーとは

IPv4では、送信するデータの先頭にヘッダーと呼ばれる管理情報を付加して通信を行います。ヘッダーには送信元・宛先IPアドレスだけでなく、パケットの長さや通信品質、分割情報などが格納されており、ネットワーク機器はこれらを参照しながらパケットを転送しています。

通常のIPv4ヘッダーは20バイト(160ビット)で構成されますが、必要に応じてオプション情報を追加できるため可変長となっています。

図1 IPv4ヘッダーの構造(通常は20バイト)
※オプションを使用しない場合は20バイトで構成されます。

ヘッダー内の各フィールドにはそれぞれ役割があり、どれか一つが欠けても正常な通信は行えません。

バージョン(Version)

Versionは4ビットで構成され、利用しているIPのバージョンを表します。

IPv4では値「4」が設定され、IPv6では値「6」が設定されます。受信機器は最初にこの値を確認することで、どの形式のパケットなのかを判断しています。

ヘッダ長(IHL)

IHL(Internet Header Length)はヘッダー全体の長さを示します。

4バイト単位で長さを表すため、通常の20バイトヘッダーでは値は「5」になります。オプションが追加された場合はヘッダー長も変化し、受信側はこの値を利用してデータ部分が始まる位置を判断します。

DSCP・ECN

DSCPとECNは、通信品質を制御するための情報です。

DSCP(Differentiated Services Code Point)はQoS(Quality of Service)で利用され、音声通話やWeb会議のように遅延に弱い通信を優先させるために使用されます。一方、ECN(Explicit Congestion Notification)はネットワークの混雑を通知する仕組みであり、パケットを破棄する前に送信側へ混雑状況を伝え、通信品質の維持に役立てられます。

パケット長(Total Length)

Total LengthはIPv4パケット全体のサイズを16ビットで表します。

このサイズにはヘッダーとデータの両方が含まれます。理論上は最大65,535バイトまで表現できますが、実際の通信ではネットワークごとのMTUに合わせて送信されるため、必要に応じてパケットが分割されます。

識別子(Identification)

Identificationは、分割されたパケットを元に戻すための識別番号です。

大きなデータが複数のフラグメントへ分割されても、それぞれ同じIdentificationが設定されます。受信側はこの値を基準として、同じデータに属するパケットをまとめています。

フラグ(Flags)

Flagsはパケット分割に関する制御情報です。

DF(Don’t Fragment)は「分割禁止」を意味し、途中で分割できないことを示します。一方、MF(More Fragments)は「後続のフラグメントが存在する」ことを表します。これらの情報によって、送受信側はパケットを適切に管理できます。

フラグメントオフセット(Fragment Offset)

Fragment Offsetは、分割されたパケットが元データのどの位置にあったのかを示します。

値は8バイト単位で管理され、Identificationと組み合わせることで受信側は正しい順番にパケットを並べ直し、元のデータへ復元しています。

TTL(Time To Live)

TTLはパケットが経由できるルーターの最大数を表します。

ルーターを1台通過するたびに値が1減少し、0になるとパケットは破棄されます。これにより、経路障害などでパケットが無限にネットワーク内を巡回することを防いでいます。

具体例

WindowsのtracertやLinuxのtracerouteコマンドはTTLを段階的に増やしながら送信することで、通信経路上のルーターを調査しています。

プロトコル(Protocol)

ProtocolはIPv4ヘッダーの後ろに続く上位プロトコルを表します。

代表的な番号は次のとおりです。

プロトコル番号
ICMP1
TCP6
UDP17

この情報により、受信側はデータをどのプロトコルへ渡すべきかを判断しています。

ヘッダチェックサム

ヘッダチェックサムは、IPv4ヘッダーが通信途中で破損していないか確認するための仕組みです。

送信側と受信側が同じ計算を行い、結果が一致しなければヘッダーが破損したと判断され、そのパケットは破棄されます。なお、データ部分の誤り検出はTCPやUDPなどの上位プロトコルが担当します。

送信元IPアドレス(Source Address)

Source Addressには送信元機器のIPv4アドレスが格納されます。

通信相手はこのアドレスを返信先として利用するため、双方向通信を行ううえで欠かせない情報です。

宛先IPアドレス(Destination Address)

Destination Addressには通信相手のIPv4アドレスが格納されます。

ルーターはこのアドレスを参照して転送先を決定し、目的地へ向けてパケットを中継しています。

オプション(Options)

Optionsは通常の通信ではほとんど利用されない可変長の領域です。

タイムスタンプや経路記録など、ネットワークの検証や特殊な用途で使用されるため、多くの一般的な通信では設定されません。

パディング(Padding)

Paddingはヘッダーサイズを32ビット単位に揃えるための調整領域です。

オプションを追加した結果、ヘッダーサイズが32ビットの整数倍にならない場合に、不足分を0で埋めてサイズを調整しています。

データ(Data)

DataにはTCPやUDPのヘッダーと、実際に送受信したいデータが格納されます。

例えばWebサイトを閲覧している場合はHTTPデータ、メールではSMTPデータ、動画視聴ではストリーミングデータなどが含まれます。IPv4ヘッダーは、このデータを正しく目的地へ届けるための管理情報として機能しています。

まとめ

IPv4ヘッダーは、送信元・宛先IPアドレスだけでなく、通信品質の制御、パケットの分割・再構成、経路制御、エラー検出など、通信を安全かつ効率よく行うための情報をまとめた重要な領域です。各フィールドは独立しているのではなく、それぞれが連携することで、パケットを目的地まで確実に届ける役割を果たしています。

ネットワークのトラブルシューティングでは、TTLやProtocol、Identificationなどの値を確認する場面も少なくありません。単純にフィールド名を暗記するのではなく、「ルーターや受信機器が何を判断するための情報なのか」という視点で理解すると、IPv4だけでなくIPv6やTCP/IP全体の理解にもつながります。現場でパケットキャプチャツールを利用する際にも役立つ知識なので、IPv4ヘッダーの構造はネットワークの基礎として押さえておきましょう。


コメント

タイトルとURLをコピーしました