TCP/IPは両方のサービスを提供する。基本的な配信サービスをコネクションレス型とし、 コネクションレス型を利用することによって、コネクション指向型サービスを実現している。 この方法は他のプロトコルでも利用されている。
インターネットプロトコルソフトウェアは、異種ネットワークのアドレス形式の 互換性を解決するために、ハードウェアとは独立したパケット形式を定義している。 TCP/IPプロトコルでは、これをIPデータグラム(IP datagram)という名前で使用している。 IPデータグラムのヘッダには送信元、送信先のIPアドレスなどが含まれる。
IPデータグラムの大きさは可変で、現在のIPv4では、 ヘッダを含めて1オクテットから64キロオクテットまで利用できる。 このおかげで、アプリケーションごとに適切な送信サイズを用いることができる。
ルータが立ち上がる時にルーチングテーブルは初期化される。また、
トポロジの変化、ルータの故障による経路の変更などによって、
ルーチングテーブルは更新される。
ルーチングテーブルには、宛先IPアドレスのprefix(ネットワークアドレス)、アドレスマスク、次ホップ
といった情報が格納される。(ホストごとのIPアドレスは格納しない)
Destination network addr | Address mask | Next hop |
---|---|---|
30.0.0.0 | 255.0.0.0 | 40.0.0.7 |
40.0.0.0 | 255.0.0.0 | direct |
128.1.0.0 | 255.255.0.0 | direct |
192.4.10.0 | 255.255.255.0 | 128.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 へフォワード }
それぞれの計算機の持つルーチングテーブルを表示するには次のようにする。
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 |
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 |
フレームのヘッダ部分の情報にハードウェアアドレスが格納されるのに対して、
IPデータグラムのヘッダ部分にはIPアドレスが格納される。
物理ネットワークを経由してデータを送信するためには、ハードウェアアドレスが必要である。
よって、ハードウェアアドレス情報を持たないIPデータグラムをそのまま送信することはできない。
実際にデータグラムを転送する時は、まず、次ホップ(next hop)のIPアドレスをアドレス結び付け情報を用いて
ハードウェアアドレスに変更し、それをフレームのヘッダへ格納する。
そして、フレームのデータ領域にIPデータグラムを格納して
送信することになる。(→カプセル化 encapsulation)
IPデータグラムヘッダのDestination IP Addressは常に変更されることはない。
HEADER (MAC address) |
|
---|
IPはデータグラムを配信するために最善の努力を試みるが、 次の問題を扱うことを保証しないと定めている。
これらの問題を扱うためには、より高位階層のプロトコルソフトウェアで 解決することが必要である。(→ TCP)