IPv4
IPv4ヘッダ
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
フィールド名 | フィールド名(日本語) | ビット長 | 各フィールドの説明 | 各フィールドの説明(日本語) |
---|---|---|---|---|
Version | バージョン | 4 bits | - | IPヘッダのバージョン番号の情報。 ここでは「4(0100)」の値が入る。 |
IHL | ヘッダ長 | 4 bits | IHL(Internet Header Length) | IPヘッダの長さの情報。 32ビット単位。オプションを使用しないIPパケットの場合「5」。 (32bit×5= 160bit = 20byte) |
Type of Service | サービスタイプ | 8 bits | - | IPパケットの優先順位の情報。 いわゆるQoS処理。 |
Total Length | パケット長 | 16 bits | - | IPヘッダとデータを含めたパケット全体の長さ。 |
Identification | 識別番号 | 16 bits | - | 個々のパケットを識別するための情報。 パケットが分割された時に分割されたパケットには同じ識別番号にする。 識別番号に基づき正しく組み立て処理できる。 |
Flags | フラグ | 3 bits | - | パケット分割における制御の情報。(詳細は別掲。) |
Flagment Offset | フラグメントオフセット | 13 bits | - | フラグメントされたパケットがもとのパケットのどの位置であったかを示す情報。 |
Time to Live(TTL) | 生存時間 | 8 bits | - | パケットの生存時間を示す情報。 実際には、何台のルータ or L3スイッチを通過することができるのかという情報。 1台のルータを通過するごとにTTL値は「 1 」つずつ減らされて、TTL値が 「 0 」 になると、パケットは破棄される。 |
Protocol | プロトコル | 8 bits | - | 上位層(トランスポート層)のプロトコルが何であるのかを示す情報。 (上位層プロトコルにTCPを使用する場合、このプロトコル番号は「6」) (Linuxなどの「/etc/protocols」で確認できる。) |
Header Checksum | ヘッダチェックサム | 16 bits | - | IPヘッダにエラーがないかをチェックするためのチェックサム情報 |
Source Address | 送信元アドレス | 32 bits | The source address. | - |
Destination Address | 宛先アドレス | 32 bits | The destination address. | - |
Options | オプション | Variables(可変長) | - | デバックやテストを行う際に使用される情報。 |
Padding | パディング | Variables(可変長) | - | 上記のオプションを使用した場合にはIPヘッダ長が32ビットの整数倍にならない場合がある。 32ビットの整数倍にするために詰め物(パディング)として空データの「 0 」 の値を入れることにより調整する。 |