IP

IPはインターネットワーキングのためのネットワーク層プロトコルです。
IPには以下のような役割があります。

IPアドレスによるノードの特定

IPでは、IPアドレスにて宛先ノードや送信元ノードを特定します。

IPアドレス

IPアドレスは32ビットの数値で、ネットワークアドレスとホストアドレスの2つの部分からなります。
ネットワークアドレスとは、サブネットを識別するためのアドレスです。PCはパケットをルータ向けに送信すべきか判断するために、ネットワークアドレスを使用します。また、ルータはパケットを別サブネットに転送すべきか判断するために、ネットワークアドレスを使用します。
一方、ホストアドレスとは、同一サブネット中のPCを識別するためのアドレスです。

サブネットマスク

IPアドレス中のネットワークアドレスとホストアドレスの範囲を見分けるには、サブネットマスクを使用します。サブネットマスクも32ビットの数値で、ネットワークアドレスの範囲に1のビットを、ホストアドレスの範囲に0のビットを設定します。
例えば、以下のようにネットワークアドレスとホストアドレスの範囲を見分けます。

■ブロードキャストアドレス

ブロードキャストアドレスは、同一サブネット中のすべてのノードにパケットを送信するために使用するアドレスです。
ホストアドレスのビットがすべて1のアドレスが、ブロードキャストアドレスです。
例えば、サブネット「192.168.0.0」中のすべてのノードにパケットを送信するには、ブロードキャストアドレス「192.168.0.255」を使用します。

マルチキャストアドレス

マルチキャストアドレスは、同一のマルチキャストグループに所属するすべてのノードにパケットを送信するために使用するアドレスです。
先頭の4ビットが「1110」のアドレスが、マルチキャストアドレスです。
マルチキャストアドレスには、予約されているアドレスと管理者が任意に設定できるアドレスがあります。
以下、予約されているマルチキャストアドレスの例です。

マルチキャストアドレス 対象ノード
224.0.0.1 サブネット中のすべてのノード
224.0.0.2 サブネット中のすべてのルータ

ちなみに、IGMPプロトコルによりマルチキャストグループの管理を行えます。

プロトコル番号による上位層プロトコルの識別

IPでは、IPヘッダ中のプロトコル番号にて上位層プロトコルを識別します。
以下、プロトコル番号の例です。

プロトコル番号 プロトコル
0x01 ICMP
0x06 TCP
0x11 UDP

例えば以下のように、プロトコル番号が設定されます。

下位層データリンクのMTUに合わせたデータの分割

データリンクの種類により、1回に送信できるデータの最大サイズ(MTU)が決まっています。IPでは、パケットのサイズが下位層データリンクのMTUより大きい場合、パケットを分割して送信します。この機能をフラグメントと呼びます。IPヘッダにはフラグメントに関する情報が設定されるため、受信側でパケットを再組立できます。
例えば以下のように、フラグに分割の有無が、フラグメントオフセットに分割前の位置情報が設定されます。