〔図4〕イーサネットアドレスのしくみ
- イーサネットアドレスの仕組み
- それぞれの通信規格の中では,その規格で決められたアドレスというものがあります.ちょうど通信の相手を特定するための「Aさん」や「Bさん」といった名前のようなものです.
TCP/IPでは,IPアドレスという32bitのアドレスを使って相手を特定します.
イーサネットでも,イーサネットアドレスという48bitのアドレスを使って相手を特定します.図4のように,イーサネットアドレスは,上位24bitと下位24bitでそれぞれ役割が決まっています.
上位24bitは,ベンダーコードと呼ばれて,そのイーサネットインターフェースを製造したメーカーの番号が付けられます.この番号は,IEEEという機関で管理されており,すべてのメーカーに異なった番号が割り振られています.
下位24bitは,ベンダー内でつけることのできる番号で,そのベンダーが製造したカードに対しては,すべて異なった番号を割り振らなければなりません.
このようにして,イーサネットインターフェースには,世界で唯一の番号が振られます.もし同じ番号のインターフェースが存在していると,同じパイプに「Aさん」が二人いることになり,相手を特定することができなくなってしまうからです.
イーサネットアドレスを見ると,そのインターフェースを製造したメーカーを特定することができます.例えば,上位24bitが00:AA:00 であれば,インテルが製造したインターフェースであることがわかります.
- イーサネットの通信の仕組み
-
図5では,3つのコンピュータが,それぞれのイーサネットインターフェースを経由して,イーサネットに接続されています.コンピュータAがコンピュータCに「今何時ですか?」というメッセージを送りたいとしましょう.
コンピュータAのアプリケーションプログラムが,イーサネットドライバに対して,「コンピュータCに“今何時ですか?”というメッセージを送ってください」と要求を出した(1)とします.
イーサネットドライバは,アプリケーションプログラムからの情報に基づいて,送信するパケットのイメージを構成します
先ほどのパイプの例のように,イーサネットパケットはおもに,送り元アドレス,送り先アドレス,送りたいデータ(メッセージ)からなります.
送り元アドレスは,自分のイーサネットインターフェースのアドレスなので,明らかですし,送りたいデータはアプリケーションから示されます.
送り先のアドレスは,アプリケーションプログラムからは「コンピュータC」と指定されますが,これはイーサネットアドレスではありません.
そこで,コンピュータ名をイーサネットアドレスに変換しなくてはなりません.この情報は,イーサネットドライバの中のARPというテーブルに格納されています.ARPテーブルには,送り先のコンピュータの名前と,そのコンピュータのイーサネットアドレスが書いてあります.
イーサネットドライバは,ARPテーブルを参照してコンピュータCのイーサネットアドレスがわかりますので,パケットを構築して,イーサネットケーブルに送信します(2).
この送信されたパケットは,コンピュータBもCも受信します.しかし,コンピュータBは受信したパケットの送り先アドレスが自分のイーサネットアドレスと異なるので,このパケットを破棄します.
コンピュータCでは,送り先アドレスと自分のアドレスが一致しますので,受信して,上位層となるアプリケーションプログラムに「コンピュータAから“今何時ですか?”というメッセージを受信しました」と伝えます.
〔図5〕イーサネットの通信の仕組み
|