IP プロトコル


  1. IP プロトコル概要
  2. インタネット・アドレス
  3. アドレスクラス
  4. 特別なアドレス
  5. 特別なアドレス プライベートベースアドレス
  6. ネットマスク
  7. ルーティング
  8. データグラムの分割と再構成
  9. IP ヘッダ

IP プロトコル概要

インタネット・プロトコル(IP)は、ネットワーク層の機能を実現するプロトコルです。 ネットワーク層の機能とは、送信側ホストから受信側ホストへ、 データを配送することです。

IP は、信頼性の高い通信を保証することはできませんが、 送信側から送られたデータを届ける役割を担当します。

IP の特徴は、コネクションレス型プロトコルであることです。 コネクションレスとは、データを送信する前にコネクションを確立するための、 ハンドシェィクと呼ばれる手続きを行わないことです。 IP は、コネクションの確立を上層のプロトコルにまかせています。

IP の処理を行う IP モジュールは、インタネット上のホストやルータ(中継装置) などで実装されており、受信ホストに到達するまでの各 IP モジュールは、 届いたデータグラムの IP ヘッダ部からインタネット・アドレスを見つけて、 目的の経路となるルータ、またはホストへデータグラムを転送します。 またネットワーク層のフレームのサイズに制限がある場合、 パケットを自動的にフラグメントとよばれる小さなサイズに分割します。 最小サイズは 576 バイトです。




インタネット・アドレス

ネットワークに接続していて、TCP/IP を利用するすべての機器には、 世界で唯一の番号すなわちインタネット・アドレス(IP アドレス) が割り当てられています。 IPv4 のインタネット・アドレスは 32 ビットですが、 これから不足が予想されるため、 128 ビット の IPv6 に移行中です。

1つのインタネット・アドレスは、必ず1つの機器に割り当てられます。 もし、複数の機器に同じインタネット・アドレスがついていたら、 どのコンピュータに送ったらいいか解からなくなります。

しかし、これとは逆に、 1つの機器で複数のインタネット・アドレスを持つものがあります。 それは、ルータです。 2つ以上のネットワークに接続しているルータは、 ネットワークに接続するためのインタフェースに、 異なるインタネット・アドレスが付けられます。 このインタネット・アドレスは、インタフェースを識別するためのものです。

一般的には、インタフェースが1つの計算機をホストと呼び、 インタフェースを複数もつものをルータと呼びます。




アドレスクラス

IPv4 のインタネット・アドレスは 32ビットで、通常8ビットずつ区切り、 10進数とドットの組み合わせで使われます。 インタネット・アドレスは、ネットワーク部とホスト部から構成され、 その区切り方で、4つのクラスに分割されます。 それらは、クラス A から D まであり、 ネットワークの規模や接続端末の台数に応じて使い分けます。

クラス アドレス形式
ネットワーク部 ホスト部 ネットマスク
A 8bits 0XXXXXXX 24bits 255.0.0.0
B 16bits 10XXXXXXXXXXXXXXXXXX 16bits 255.255.0.0
C 24bits 110XXXXXXXXXXXXXXXXXXXXXXX 8bits 255.255.255.0
D 32bits 1110XXXXXXXXXXXXXXXXXXXXXXXX 0bits 255.255.255.255




特別なアドレス

特別に予約されたアドレスは、以下の表で示します。 この他に、インタネット・アドレスはネットワークに接続した機器だけでなく、 ネットワーク自身を表します。 そのためには、ホスト番号をすべて0に設定します。

特別なアドレス アドレス
ローカルループバックアドレス 127.XXX.XXX.XXX
ブロードキャストアドレス 255.255.255.255
指定ネットワークのブロードキャストアドレス ネットワーク番号+ホストすべて1

ローカルループバックアドレスとは、 OS 内で TCP/IP による通信のために利用され、自分自身に送ることで、 ネットワークをエミレーションできます。 このインタフェースには 127.0.0.1 のアドレスと localhost というホスト名が付けられています。

ブロードキャストアドレスは、同一ネットワーク内の全アドレスに対して、 同時に同じパケットを送るときに利用します。 ブロードキャストが送信されると、 ネットワーク上の全システムは一定時間受信状態になり、 ブロードキャストの内容を受け取ろうとします。 従って、ブロードキャストが頻繁に発生すると、 ネットワークの能力が低下し、ネットワーク障害の原因となります。




特別なアドレス プライベートベースアドレス

直接外部に情報をサービスするサーバマシン以外は, 本物のIPアドレスを使う必要はありません。
プライベートIPアドレスというものが定められていますので, これを使えば,本物のIPアドレスを節約できるだけでなく, 外部からは見えなくなるので,侵入も防ぐことができます。 内部から外部へは,後述のプロキシという仕組みを使って出ることができます。

以下のIPアドレスがプライベートアドレスとして自由に使っていいことになっています。

      10.0.0.0--10.255.255.255 
      172.16.0.0--172.31.255.255 
      192.168.0.0--192.168.255.255 




ネットマスク

ネットマスクは、インタネット・アドレスからネットワーク番号部分とホスト番号を、 取り出すために利用されます。 ネットマスクは、インタネット・アドレスのネットワーク部がすべて1、 ホスト部がすべて0のビットパターンをいいます。 従って、アドレスのクラスによって、デフォルト値が決まります。

ルーティング

ルーティングとは、ネットワークにおける経路制御のことです。 データグラムを目的のホストへ届けるためには、 どの経路を通ったらよいかを指定する機能です。 インタネットは、

ルータによって相互接続された複数のネットワークから構成されています。 つまり、ルータは2つ以上のネットワークに直接つながっています。 従ってデータグラムを受け取ったルータは、そのデータグラムをルーティング表を 参照して決定します。 ルーティング表への経路の登録には、2つの方法があります。




データグラムの分割と再構成

ネットワークの物理的な伝送媒体には、 そのタイプごとに転送できるパケットの最大転送単位 (MTU Maximum Transfer Unit) が決まっています。

転送しようとするデータが、ネットワークの MTU より長ければ、 1つのパケットとして転送できないので、MTU より小さなサイズに分割します。 このとき元のデータグラムについているヘッダの内容を失わないように、 分割後のヘッダを構成します。各フラグメントは 8 の倍数でなければなりません。

送信される IP データグラムはそれぞれ独立した経路をたどります。 従って、受信側へ到着したデータグラムの順序は、送信時の順序通りとは限りません。 受信側の IP モジュールは、分割されたデータグラムをもとのデータグラムへ再構築し、 上位層へ渡します。




IP ヘッダ

IPv4のIPパケットは以下のヘッダを持ち、24(20) バイト長です。
IPv6のパケットはこれとは異なる形式です。




フィールド 意味
version バージョン番号で 4 (IPv4) に固定である。
ihl IPヘッダ長は、オプション領域まで含めたヘッダ長である
tos (type of service)パケット処理において 何を優先するかの指針を示す。 (遅延を少なくするか、それよりスループットを上げるかなど)
tot_len IPパケット長は、IPパケット全体の長さを示す。
id
frag_off
IPレベルのフラグメント(パケットの分割)とリアセンブルを実現するために利用される。
protocol この値を元に上位プロトコル(UDP, TCP等)へIPパケットを 配送する。 unix の場合 /etc/protocols に定義されて下記を参照。
ttl ネットワーク上でのIPパケットの残り生存時間を示す。 通過可能なルータの数で、最大 255 に設定できる
check IPヘッダ部分のみのチェックサムである。
saddr 発信元IPアドレスである。
daddr 送信先IPアドレスである。

プロトコルタイプ表
プロトコルタイプ 説明
IPPROTO_ICMP 1 ICMPプロトコル
IPPROTO_IGMP 2 IGMPプロトコル
IPPROTO_TCP 6 TCPプロトコル
IPPROTO_UDP 17 UDPプロトコル




【 関連リンク 】

  1. ファイアウォール
  2. サブネットマスク
  3. プライベート IP アドレス