Chapter 5 -- IP datagram, Routing

Prev Chapter 4 -- Address Resolution Protocol
INDEX
Next Chapter 6 -- IP datagram header

コネクションレス型(connectionless)
コネクション指向型(connection-oriented)

 TCP/IPは両方のサービスを提供する。基本的な配信サービスをコネクションレス型とし、 コネクションレス型を利用することによって、コネクション指向型サービスを実現している。 この方法は他のプロトコルでも利用されている。


IPデータグラム(IP datagram)

 インターネットプロトコルソフトウェアは、異種ネットワークのアドレス形式の 互換性を解決するために、ハードウェアとは独立したパケット形式を定義している。 TCP/IPプロトコルでは、これをIPデータグラム(IP datagram)という名前で使用している。 IPデータグラムのヘッダには送信元、送信先のIPアドレスなどが含まれる。

 IPデータグラムの大きさは可変で、現在のIPv4では、 ヘッダを含めて1オクテットから64キロオクテットまで利用できる。 このおかげで、アプリケーションごとに適切な送信サイズを用いることができる。


ルータのルーチングテーブル管理

 ルータが立ち上がる時にルーチングテーブルは初期化される。また、 トポロジの変化、ルータの故障による経路の変更などによって、 ルーチングテーブルは更新される。
 ルーチングテーブルには、宛先IPアドレスのprefix(ネットワークアドレス)、アドレスマスク、次ホップ といった情報が格納される。(ホストごとのIPアドレスは格納しない)


Destination network addr Address mask Next hop
30.0.0.0255.0.0.040.0.0.7
40.0.0.0255.0.0.0direct
128.1.0.0255.255.0.0direct
192.4.10.0255.255.255.0128.1.0.9
default
------
40.0.0.7

 例えば、ホストAからホストBへデータグラムを転送する時は、 ルータRにおいて、ホストBのIPアドレスとアドレスマスクの論理積をとったものが Destination network addrと比較され、等しかった場合はその次ホップへデータグラムがフォワードされる。

	Dest = 192.4.10.3;
	if ((255.255.255.0 & Dest) == 192.4.10.0) {
		// 128.1.0.9 へフォワード
	}

 それぞれの計算機の持つルーチングテーブルを表示するには次のようにする。

Unixの場合
micky@puni$ netstat -n -r
Routing Table:
  Destination           Gateway           Flags  Ref   Use   Interface
-------------------- -------------------- ----- ----- ------ ---------
127.0.0.1            127.0.0.1             UH       0     46  lo0
133.70.161.129       133.70.10.1           UGH      0      0  
133.70.1.0           133.70.10.1           UG       0     23  
133.70.161.0         133.70.10.1           UG       0      3  
...
default              133.70.10.1           UG       0      0  

Windows95/98の場合
C:\> netstat -n -r
Active Routes:
  Network Address          Netmask  Gateway Address        Interface  Metric
          0.0.0.0          0.0.0.0      133.70.10.1      133.70.10.7       1
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1
      133.70.10.0    255.255.255.0      133.70.10.7      133.70.10.7       1
      133.70.10.7  255.255.255.255        127.0.0.1        127.0.0.1       1
   133.70.255.255  255.255.255.255      133.70.10.7      133.70.10.7       1
        224.0.0.0        224.0.0.0      133.70.10.7      133.70.10.7       1
  255.255.255.255  255.255.255.255      133.70.10.7      133.70.10.7       1


カプセル化 (encapsulation)

 フレームのヘッダ部分の情報にハードウェアアドレスが格納されるのに対して、 IPデータグラムのヘッダ部分にはIPアドレスが格納される。 物理ネットワークを経由してデータを送信するためには、ハードウェアアドレスが必要である。 よって、ハードウェアアドレス情報を持たないIPデータグラムをそのまま送信することはできない。 実際にデータグラムを転送する時は、まず、次ホップ(next hop)のIPアドレスをアドレス結び付け情報を用いて ハードウェアアドレスに変更し、それをフレームのヘッダへ格納する。 そして、フレームのデータ領域にIPデータグラムを格納して 送信することになる。(→カプセル化 encapsulation
 IPデータグラムヘッダのDestination IP Addressは常に変更されることはない。

フレーム
HEADER
(MAC address)
IPデータグラム
HEADER
(IP address)
IP Data
 


最善型(best-effort)配信サービス

 IPはデータグラムを配信するために最善の努力を試みるが、 次の問題を扱うことを保証しないと定めている。

 これらの問題を扱うためには、より高位階層のプロトコルソフトウェアで 解決することが必要である。(→ TCP)


Prev Chapter 4 -- Address Resolution Protocol
INDEX
Next Chapter 6 -- IP datagram header