Internet Protocol
作成 : 2002/10/27
Internet Protocol
Internet Protocolは、RFC791で定義されている。
Internet Protocolヘッダフォーマット
Internet Protocolヘッダフォーマットは下図を参照。
Version:4bits
Internet Protocolのバージョン。 現行は「4」。
IHL(Internet Header Length):4bits
IPヘッダ長で、単位は4octet。 最低は「5」(5*4octet=20octet=160bits)。
Type of Service:8bits
サービスタイプ。 詳細は次のとおり。
RRECEDENCE:3bits
111 - Network Control 110 - Internetwork Control 101 - CRITIC/ECP 100 - Flash Override 011 - Flash 010 - Immediate 001 - Priority 000 - Routine
Delay(D):1bits
0 - Normal Delay 1 - Low Delay
Throughput(T):1bits
0 - Normal Throughput 1 - High Throughput
Relibility(R):1bits
0 - Normal Relibility 1 - High Relibility
Total Length:16bits
IPデータグラム(IPヘッダとIPデータ)長で、単位はoctet。 このフィールドは、65,535octetsまで許容する。 実用的には、すべてのホストは最大576octetsのデータグラムを受信できることが求められている。
Identification:16bits
断片化されたデータグラムを、組み立てるために使われる識別値。
Flags:3bits
Fragment Offset:13bits
データグラムでは、この破片がどこに属するか示す。 8octets(64bits)のユニットで測られる。 第1の破片は、オフセット0。
Time to Live:8bits
データグラムが生存できる最大時間で、単位はsec。 IPヘッダを処理するとき、最低でも1減らされる。 「0」になったデータグラムは、破棄される。
Protocol:8bits
上位レイヤのプロトコル。 プロトコル番号は、IANA.ORG/Protocol Number Assignment Service/Protocol Numbersを参照。
| 値 | プロトコル |
|---|---|
| 0x01 | ICMP |
| 0x06 | TCP |
| 0x11 | UDP |
Header Checksum:16bits
ヘッダのチェックサムで、ヘッダの内容(TTLとか)が変更されるたびに再計算される。
Source Address:32bits
送信元のIPアドレス。
Destination Address:32bits
送信先のIPアドレス。
Option:variable
オプションの詳細は、RFC791を参照。 オプションフィールドはないことが多い(たぶん)。
Padding:variable
ヘッダ長が32bitsの倍数にならない場合、残りは「0」で埋められる。
Internet Protocolを見る
「tcpdump -X」を実行すると、16進ダンプとASCII変換されたパケットをキャプチャすることができる。 赤い字で表示した部分が、IPヘッダ。
# tcpdump -X host www.goo.ne.jp 192.168.X.X.1159 > www.goo.ne.jp.http: S 136122613:136122613(0) win 5840 <mss 1460,sackOK,timestamp 36720523 0,nop,wscale 0> (DF) [tos 0x10] 0x0000 4510 003c 5f7e 4000 4006 2dc7 c0a8 XXXX E..<_~@.@.-..... 0x0010 d296 1925 0487 0050 081d 10f5 0000 0000 ...%...P........ 0x0020 a002 16d0 142c 0000 0204 05b4 0402 080a .....,.......... 0x0030 0230 4f8b 0000 0000 0103 0300 .0O.........