〔図6〕イーサネットアドレスとIPアドレスの関係

 〔図6〕イーサネットアドレスとIPアドレスの関係

 TCP/IPをイーサネットを使って伝送する
 IPパケットをイーサネットを使って伝送するということは,イーサネットドライバから見て,TCP/IPソフトウェアがアプリケーションになります.TCP/IPソフトウェアとイーサネットの関係は,図6にようになります.
 先ほどの「コンピュータA」というコンピュータの名前はIPアドレスに,アプリケーションのメッセージがIPパケットに対応します.つまりイーサネットは,IPパケットをイーサネットのメッセージとして,伝送することになります.ARPテーブルのコンピュータ名という列もIPアドレスになります.
 先ほどは,ARPテーブルが完成しているという前提で話を進めました.しかしコンピュータが起動した直後では,ARPテーブルには情報は書いてありません.上位層からの要求に応じて,動的に作っていきます.
 では,どのようにしてIPパケットが伝送されるのか,ARPテーブルの生成過程も追いながら見ていきましょう.図7はその様子を示しています.
  1. TCP/IPソフトウェアが,送信したいIPパケットと送り先IPアドレス 10.0.0.3 を指定して,イーサネットドライバを呼び出します.
  2. イーサネットドライバは,指定された送り先IPアドレス 10.0.0.3 を持つイーサネットインターフェースのイーサネットアドレスを調べます.ARPテーブルの中に情報がある場合は,そのアドレスを使い,イーサネットパケットを構成し,イーサネットに送信します.この過程は,前節の説明のとおりです.
  3. もしARPテーブルに指定された送り先IPアドレスに関する情報がない場合は, 「IPアドレス 10.0.0.3 に対応するイーサネットアドレスはいくつですか?」という質問パケットをイーサネットに送信します.このパケットをARP要求パケットと言います.
  4. 10.0.0.3というIPアドレスを割り振られているイーサネットドライバは,ARP要求パケットに答えます.「イーサネットアドレス 0:0:0:0:0:3 というイーサネットインターフェースが 10.0.0.3 というIPアドレスを持っています」という応答パケットをイーサネットに送信します.
  5. ARP要求パケットを送信したコンピュータは,応答パケットを受信します.応答パケットの中には,IPアドレスとそれに対応するイーサネットアドレスが書かれているので,この情報をARPテーブルに登録します.  ARP要求/応答パケットも,イーサネットを使って伝送されるため,イーサネットのパケットの形式でやりとりされます.ですから,パケットの中には,送り元イーサネットアドレス,送り先イーサネットアドレスが含まれていますので,だれからだれへ送られたパケットがわかります.
  6. ARPテーブルに送信先のIPアドレスとイーサネットアドレスの対応があるので,この情報を元にして,イーサネットパケットを構成し,イーサネットに送信します.
 このようにして,イーサネットドライバはTCP/IPパケットを伝送します.それぞれのプロトコルには,通信の相手を特定する方法,つまり「アドレス」の定義がそれぞれあります.
 今回は,IPプロトコルで定義されるIPアドレス,イーサネットプロトコルで定義されるイーサネットアドレスが出てきました.これら2つのプロトコルでアドレスの定義が異なりますので,あるコンピュータを指し示すとき,IPプロトコルでの表現と,イーサネットプロトコルでの表現が異なります.
 例えば,図7のコンピュータAのイーサネットインターフェースは,IPソフトウェア内では10.0.0.1と表現されますが,イーサネットソフトウェア内では0:0:0:0:0:1 と表現されることになります.
 このように同じ実体に対して表現が異なりますので,IPソフトウェアとイーサネットがうまく動くためには,アドレスの変換をする必要があります.この変換を行うのが,ARPテーブルの役割となり,ARPテーブルを人手ではなく,自動的に作るためにARP要求/返答パケットというのがあるのです.
 〔図7〕IPパケットの伝送のようす

 〔図7〕IPパケットの伝送のようす


 CQ出版 TOP OPENDESIGN TOPOPENDESIGN Online目次に戻る
  
Copyright CQ Publishing Co.,Ltd. 1997-2001