IP
読み:アイピー
外語:IP: Internet Protocol
発信元
ホスト
から数々の中継器(
ルーター
)を経由して目的のホストへデータを送るための代表的な
通信プロトコル
。
インターネット
などで使われる。
目次
概要
特徴
種類
IPv4
IPv6
機能
IPヘッダー
IPが対応する上位プロトコル
実装への要求
概要
OSI参照モデル
の
ネットワーク層
に属し、低コスト、低信頼性、非接続型を特徴とする。
つまりIPはデータの送信のみが目的で、きちんと異常無く送信できたか等のチェックの機能は持っていない。最低限の
チェックサム
の機能はあるが、パケットの到達順序などは保証されないため、こういった機能が必要な場合は上位のプロトコルで行なわねばならない。例えば
TCP/IP
の場合、各種エラーチェックの機能は
TCP
によって行なわれている。
特徴
種類
広義には
IPバージョン
を持つプロトコル全てがIPであると考えられるが、一般的には
IPv4
または
IPv6
のことを言い、より狭義にはIPv4のみをいう。
IPv4
IPv4
は、
IPバージョン
フィールドが4となるプロトコルである。
RFC 791
(
STD 5
)で規定され標準化されている。
EtherType
(Ethernetフレームタイプ番号)は0x0800である。
IPv6
IPv6
は、IPバージョンフィールドが6となるプロトコルである。
RFC 2460
で規定され、Standards Track(標準化過程)となっている。
EtherType(Ethernetフレームタイプ番号)は0x86ddである。
機能
IPのパケット全体は、ヘッダー部とデータ部に分けられる。
データ部が実際に送受信されるデータそのものであり、IPから見て上位層にあるプロトコルとなる。
このデータの素性等については、ヘッダー部に書かれており、これは
IPヘッダー
と呼ばれる。
大まかには、データの長さ、送信元および送信先の
IPアドレス
、そして上位プロトコルの種類を表わす番号などが含まれている。
IPヘッダー
IPには様々なバージョンがあり、それぞれでヘッダーの構造は全く違う。共通なのは、最初の4ビットが
IPバージョン
フィールドである点のみである。
よく使われるIPのバージョンは
IPv4
と
IPv6
だが、それぞれ次のように呼ばれる。
IPv4ヘッダー
IPv6ヘッダー
IPv4ヘッダーは、殆ど使われていないものも含め、対応する基本的な機能の全ての情報を含むため、無駄が多い。アドレスは32ビットである。
IPv6ヘッダーは、普段使わないものは全てオプションとして処理するよう改められ、シンプルになった。アドレスは128ビットであり、基本的なヘッダーサイズの80%はアドレスである。
IPが対応する上位プロトコル
IPのデータ部に梱包される情報は、OSI参照モデルとしては一つ上位の層となる。
IPは
レイヤー3
(
ネットワーク層
)であるため、このデータ部は
レイヤー4
(
トランスポート層
)のプロトコルである。
これがどのようなプロトコルであるかは、
IPヘッダー内のプロトコル番号
フィールドに書かれており、これは8ビットである。最大で256種類まで対応できることになる。
主要なものは次の番号となっている。
1
ICMP
2
IGMP
3
GGP
6
TCP
8
EGP
9
IGP
17
UDP
41
IPv6
46
RSVP
88
EIGRP
89
OSPFIGP
112
VRRP
日常、最も良く使われるIPの上位層プロトコルは、ICMP=1のほか、TCP=6とUDP=17であろう。
ICMPはIPの機能の一部とみなされている。残る二つはそれぞれ、IPと関連が深いため組み合わせて「
TCP/IP
」や「
UDP/IP
」と呼ばれている。
実装への要求
ネットワークプログラミングのバイブルとされる「UNIX Network Programming」においては、全てのIPの実装は、
MTU
の大きさに関わらず少なくとも576バイトのIPデータグラムをサポートせねばならない、とされている。言い換えればMTUの最小は576バイトである。
このサイズから、例えば
IPv4ヘッダー
20バイト、
UDPヘッダー
8バイトを引くと、UDPで安全に送れるデータは最大で548バイト、ということになる。
このサイズをごく僅かと見ることも可能だが、家電や小型電子機器用CPU(RAMは100バイト程度〜2Kiバイト程度)に実装されるようなTCP/IPスタックにとっては、この大きさはかなり大きいとも言える。
再検索