IPヘッダー

読み:あいぴーへっだー / 英語表記:IP header

IPパケットの先頭に付く制御情報。宛先と送信元のIPアドレス、生存時間(TTL)、上位のプロトコルを示すプロトコル番号などを含む。オプションがない場合の長さは、IPv4で20バイト。

イマシルちゃんの解説

パケットは、データを入れた封筒みたいなものなんだ。
IPヘッダーは、その封筒の表に書く「宛先の住所」と「差出人の住所」、それから「中身の種類」や「配達期限」なんかの情報だよ。

ちなみに、封筒の中にはもう一枚、小さな封筒(TCPやUDPのヘッダー)が入っているんだ。
どの情報がどっちの封筒に書いてあるのかを区別できるようになると、ネットワークがぐっとわかりやすくなるよ!

より深い解説

定義

IPヘッダーは、ネットワーク層のプロトコルであるIPが、パケット(データグラム)の先頭に付ける制御情報である。ルータは、IPヘッダーの情報だけを見て、パケットを転送する。

IPv4ヘッダーの主なフィールド

フィールド長さ内容
バージョン4ビットIPv4なら4
ヘッダー長4ビットヘッダーの長さ(4バイト単位)
ToS(DSCP、ECN)8ビット優先制御(QoS)のための情報
全長16ビットヘッダーを含めたパケット全体の長さ
識別子、フラグ、フラグメントオフセット32ビット分割(フラグメント)されたパケットを組み立て直すための情報
TTL(生存時間)8ビットパケットが通過できるルータの数の上限
プロトコル番号8ビットデータ部に入っている上位のプロトコル(TCPは6、UDPは17)
ヘッダーチェックサム16ビットヘッダーの誤りの検出
送信元IPアドレス32ビット
宛先IPアドレス32ビット
オプション可変通常は使わない

層ごとのヘッダーに入っているもの

どの情報がどの層のヘッダーに入っているかを整理すると、次のようになる。

情報イーサネットIPTCPUDP
MACアドレス○
IPアドレス○
TTL○
プロトコル番号○
ポート番号(送信元、宛先)○○
シーケンス番号、確認応答番号○
チェックサム○(ヘッダーだけ)○○

TCPとUDPの両方のヘッダーにあるのは、送信元ポート番号、宛先ポート番号、チェックサムである。IPアドレスやTTLはIPヘッダーに、MACアドレスはイーサネットのヘッダーに入っており、TCPやUDPのヘッダーには入っていない。

TCPとUDPのヘッダーの比較

TCPヘッダーUDPヘッダー
長さ20バイト(オプションなし)8バイト
フィールド送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、データオフセット、コントロールフラグ、ウィンドウサイズ、チェックサム、緊急ポインタ送信元ポート番号、宛先ポート番号、データ長、チェックサム

UDPのヘッダーは、ポート番号と、長さとチェックサムだけのとても単純な構造である。

チェックサムと疑似ヘッダー

TCPとUDPのチェックサムは、自分のヘッダーとデータだけでなく、IPヘッダーの一部(送信元・宛先IPアドレス、プロトコル番号など)から作る疑似ヘッダーも含めて計算する。宛先を間違えて届いたパケットを検出するためである。このため、NATでIPアドレスを書き換えたときは、TCPやUDPのチェックサムも計算し直す必要がある。

IPv6ヘッダーとの違い

IPv6の基本ヘッダーは40バイトの固定長で、ヘッダーチェックサムがなく、分割の情報やオプションは拡張ヘッダーに分けられた。TTLに当たるフィールドは、ホップリミットという名前になっている。

実際の試験ではここに出る!

この用語が出てくる記事

↑