IPはコネクションレス型のプロトコル。通信する両端のホスト間でパケットを伝送する機能を有し、パケット単位のエラーチェック機能、MTUを超えるパケットの分割機能/再構築機能をもつ。パケット廃棄の検知及び再送が必要な場合は、上位層にTCPを用いて通信する。
rfc791
IPヘッダフォーマット
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
バージョン4を表す「0x04」が格納される。
IHL: 4 bits
単位は4オクテット。オプションがない場合、IPヘッダは20オクテットなので「0x05」が格納される。
Identification: 16 bits
データグラムのフラグメントを組み立てるのに役立つように送信者によって割り当てられる識別値。
Flags: 3 bits、 Fragment Offset: 13 bits
ルータは、IPデータグラムを転送する際、データグラムの長さがリンクのMTUに収まるようにIPデータグラムを分割する。分割した各々のデータグラムにIPヘッダを付加し、複数個のIPパケットを生成する。これをフラグメンテーションという。分割されたIPパケットは、宛先ホストで再構築される。このフラグメント処理を行うため、IPヘッダにフラグ(3ビット)とフラグメントオフセット(13ビット)が定義されている。
Bit 0: reserved, must be zero
Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment.
Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.
0 1 2
+---+---+---+
| | D | M |
| 0 | F | F |
+---+---+---+
送信ホストによって、「分割禁止」がセットされていた場合、そのIPデータグラムの長さがMTUを超えたときはルータによって破棄される。その際、ルータは送信元ホストにICMPパケット(宛先到達不能)を送信する。
フラグメントオフセットには、分割されたデータグラムがオリジナルデータのとこに位置していたかを示すオフセット値(単位は8オクテット)が入る。分割されたパケットがすべて届いていれば、順番通りでなくても、フラグメントオフセットで復元することが
できる。
Time to Live: 8 bits
ルータを経由するごとに、この値が一つずつ減っていく。この値が「0」になるとパケットは破棄され、ルータからICMPパケット(時間超過)が送信元ホストへ送信される。
Protocol: 8 bits
上位層のプロトコルを識別する番号でICANNによって管理されている。
| プロトコル番号 | プロトコル |
|---|---|
| 1 | ICMP |
| 2 | IGMP |
| 4 | IP in IP(encapsulation) |
| 6 | TCP |
| 17 | UDP |
| 46 | RSVP |
| 50 | ESP |
| 51 | AH |
| 89 | OSPF |
Header Checksum: 16 bits
IPヘッダのビットレベルの整合性チェックを行う。TTLがルータを経由するたびに減算されるため、ヘッダチェックサムもその都度再計算される。
IP Address: 32 bits
IPアドレスはICANNによって管理されており、以下の範囲が予約されている。
| IPアドレスの範囲 | 用途 |
|---|---|
| 127.0.0.0~127.255.255.255 | ループバックアドレス。通常は、127.0.0.1が使用されている。 |
| 169.254.0.0~169.254.255.255 | リンクローカルアドレス。自動プライベートIPアドレス指定(Automatic Private IP Addressing:APIPA)で使用される。APIPAは、DHCPサーバがないとき、ホスト自身がこの範囲からIPアドレスをランダムに設定する機能。サブネットマスク長は16ビット。 |
| 224.0.0.0~239.255.255.255 | マルチキャストアドレス |
| 255.255.255.255~255.255.255.255 | 制限ブロードキャストアドレス。ネットワークアドレスを指定せずに、送信元ホストが所属するサブネットにブロードキャストを送出するときに使用する。 |
| 10.0.0.0~10.255.255.255 | プライベートアドレス |
| 172.16.0.0~172.31.255.255 | |
| 192.168.0.0~192.168.255.255 |
IPパケット
IPパケットは到達範囲により3つに分類される。
- ユニキャストパケット
- マルチキャストパケット
- ブロードキャストパケット
ブロードキャストパケットは2種類がある。
| 種類 | 説明 |
|---|---|
| ローカルブロードキャスト | 自分と同じサブネットの全ホストを宛先とするブロードキャスト。宛先IPアドレスは、ネットワーク部に自ネットワークアドレス、ホスト部は全てのビットが「1」となる。 |
| 制限ブロードキャスト | 宛先IPアドレスに255.255.255.255を使用し、自分と同じサブネットの全ホストを宛先とするブロードキャスト。DHCPクライアントは、ホストを起動した直後にDHCP発見パケットを送信する。起動時にはIPアドレスやサブネットなどの情報がないので、制限ブロードキャストが用いられる。 |
ルータはブロードキャストパケットを中継しない。
0 件のコメント:
コメントを投稿