0 | 8 | 16 | 24 | 31 |
VERS | H.LEN | SERVICE TYPE | TOTAL LENGTH | |
---|---|---|---|---|
IDENTIFICATION | FLAGS | FRAGMENT OFFSET | ||
TIME TO LIVE | PROTOCOL | HEADER CHECKSUM | ||
SOURCE IP ADDRESS | ||||
DESTINATION IP ADDRESS | ||||
IP OPTION (省略可) | PADDING |
バージョン番号 (現在は4(IPv4))。
32bit単位のヘッダサイズ。Optionを持たない場合5になる。(5〜15になる)
最小遅延のルートを望むのか、 最大スループットのルートを望むのかという情報。 複数のルートがある時はルータはこの値を参照する。 SERVICE TYPEはさらに次のように分類される。
Precedence
優位
(0-2)111 : Network Control (ネットワーク制御)
110 : Internetwork Control (ネットワーク間制御)
101 : CRITC/ECP (重大)
100 : Flash Override (即時、優先)
011 : Flash (即時)
010 : Immediate (即座)
001 : Priority (優先)
000 : Routine (通常)TOS
type of service
(3-6)1111 : maximize security (セキュリティ最大)
1000 : minimize delay (遅延最小)
0100 : maximize throughput (スループット最大)
0010 : maximize reliability (信頼性最大)
0001 : minimize monetary cost (金銭上のコスト最小)
0000 : normal service (通常のサービス)MBZ
must be zero
(7)0 : 保留ビット
データグラム全体のオクテット(バイト)数。
上位プロトコルがデータグラムを識別するための識別番号(identification number)。
フラグメントの再組み立て(reassemble)に使用する。 それぞれの3ビットは次のような意味がある。断片化不可のビットは、trace routeプログラムなどでも利用される。
ZERO 0 : 保留ビット DF
don't fragment0 : 断片化可能
1 : 断片化不可MF
more fragment0 : 最後のフラグメントである
1 : 最後のフラグメントではない
フラグメントが元のデータグラムのどの部分かを示す (IPデータ部分のオフセットを8で割ったものをFRAGMENT OFFSETとする)。 断片化していない時と、最初のフラグメントの場合は0になる。
ルータを経由するごとにこの値をデクリメントし、 この値が0になるとデータグラムは破棄され、伝送元に誤りメッセージを送る。 これにより、ループを形成するパスを回りつづけることを防止している。 8bitなので、最大255個のルータを経由できることになる。 このデータグラムを作成した送信側の上位プロトコルが作成する。
ネットワークの規模が拡大していくと、それに伴い、 世界中に存在するルータの数も多くなることが予測できる。 これによって、ある地点にパケットが到達するまでに、 経由するルータの数が増えるような気がするが、 逆に多くのルートから最適なルートを選ぶことにより、 目的地までのルータ経由数を減らすことができる。 例えば、衛星を1つのIPルータとして利用するならば、 少ないルータ経由数で、長距離へのIPデータグラム転送を可能とする。 これらより、TTLの最大値が255であるのは妥当だといえる。 IPv6においても最大経由数は255である。
ちなみにこの値が0になった場合は、ICMPのtime exceededメッセージが送信元へ送られる。
データ部の上位プロトコルを表す。
0 : 保留
1 : ICMP(Internet Control Message Protocol)
2 : IGMP(Internet Group Management Protocol)
3 : GGP(Gateway-to-Gateway Protocol)
4 : IP(IP Encapsulation)
5 : Stream
6 : TCP(Transmission Control Protocol)
8 : EGP(Exterior Gateway Protocol)
9 : IGP(Interior Routing Protocol)
17 : UDP(User Datagram Protocol)
89 : OSPF(Open Shortest Path First Protocol)
...
ヘッダが転送中に変化しなかったことを確かめる。 送信者は、HEADER CHECKSUM以外のヘッダを16ビット単位で合計し、その和の1の補数を この値とする。受信者は、HEADER CHECKSUMを含めた合計が0になれば検査合計は正しい。
ルータ経由時に、TTLを1減少するならば、ルータは検査合計を再計算する必要がある。 これだけの変更ならば、ルータは検査合計を1増加させることになる。
オプション。IPはオプションを作成する機能を要求しないが、 オプションを処理する機能は実装しなければならない。
IP OPTIONと合わせて32ビット境界にするためのパディング。
IPデータグラムはペイロード部分だけでも最大65536bit(8292byte)になるが、 これをフレームが全て格納できるとは限らない。 イーサネットのペイロード部分の最大値は12000bit(1500byte)であるため、 この場合は分割して格納することになる。