物理ネットワークを介して送信されるフレームには、 宛先のハードウェアアドレスを含んでいる必要がある。 また、ネットワークハードウェアは、プロトコルアドレスから ホストコンピュータを特定する機能を持っていないので、 次ホップのプロトコルアドレスは、送信される前に、 ハードウェアアドレスに変換(resolve)しなければならない。
アドレスリゾル−ションの方法は3つの方法に分けられる。
方法 | 用途 |
---|---|
テーブルルックアップ (table lookup) |
広域ネットワーク(WAN) |
閉形式計算 (closed-form computation) |
構成可能ネットワーク |
メッセージ交換 (message exchange) |
静的アドレス付けを持つネットワーク |
① テーブルルックアップによるアドレスリゾル−ション
各物理ネットワークに対応した個別のアドレス対応テーブル(address binding table)を用いる。 例えば、以下のようになる。
IP address Hardware address 197.15.3.2 0A:07:4B:12:82:36 197.15.3.3 0A:9C:28:71:32:8D 197.15.3.4 0A:11:C3:68:01:99 197.15.3.5 0A:74:59:32:CC:1F ... ... 当然prefixは全て同じになるので、実際にはprefixを除いたものをテーブルに格納し、 容量を節約できる。また、このように逐次的にIPアドレスが割り振られている場合は、 一次元の配列で直接マッピングを行うことが可能である。 他には、ハッシュ法を使う方法もある。
利点
- プログラムが最も容易である。
欠点
- アドレス対応テーブルが必要である。
- テーブルを探索するアルゴリズムが必要である。
② 閉形式計算によるアドレスリゾル−ション
アドレス構成可能なネットワークに対して使われる。 プロトコルアドレスから簡単なブール演算を行うことによって、 ハードウェアアドレスが導き出されるようにアドレス付けが行われる。 例えば、
IP address Hardware address 220.23.5.1 → 1 220.23.5.2 → 2 220.23.5.11 → 11のようにしておけば、
IP address & 0xff
という計算で、 ハードウェアアドレスを求めることができる。利点
- 計算が効率的である。
- テーブルが必要ない。
欠点
- ハードウェアアドレスとの対応付けを考慮する必要がある。
③ メッセージ交換によるアドレスリゾル−ション
分散型の方式でアドレス変換を行う。 アドレスリゾル−ションを行う際には、アドレスリゾル−ション要求を送信し、 その応答によってハードウェアアドレスを得るという方法である。 アドレスリゾル−ション要求を送信する場所としては、2通り考えられる。
- 返答のためのサーバを設置し、そこに要求メッセージを送る。
- 要求をブロードキャストし、宛先のホストはメッセージを返答する。
メッセージ返答用のサーバを設置する利点としては、アドレス対応情報を 統制しやすいことが上げられるが、その反面、サーバ維持に高い費用がかかる。 また、トラフィックが集中するために、そのサーバ自体がネットワークのボトルネックになり得る。
3つの方法の中で、実装が一番困難である。