MACアドレスとは

 Linuxの覚書でも設定として少しだけ書いてましたが、MACアドレスとは何かまでは説明していませんでした。 特に設定をしなくて良いという事と、ユーザーは特に意識しなくて良かったので、深く説明はしていませんでした。 しかし TCP/IP では、データ通信をするには非常に重要な役割を持っています。
 ここではMACアドレスについて記述して行こうと思います。
≪ 項目 ≫
1.MACアドレスとは何か?
2.MACアドレスは何をするのか
3.MACアドレスのアドレスの意味は
4.送信元はどうやって相手のMACアドレスを知るのか


 1.MACアドレスとは何か?

 イーサネットやFDDI、無線LANやBuletoothなど、これらのネットワークの媒体にはMACアドレスというものがあります。 これはハードのROMに焼き込まれており、このアドレスは変更できず世界で1つしかない(絶対重複しないようになっています)アドレスとなっています。
 Windows の場合は、DOSプロンプトから ipconfig -all とコマンドを実行して 「Physical Address」 の箇所で出力されているのがMACアドレスになります。 Linux の場合は、ifconfig(オプション指定無しで構いません)を実行して、「HWaddr」の箇所で出力されているのがMACアドレスです。


 DOSプロンプトで出力した例)
  :
  :
  Physical Address. . . . . . . . . : 00-0A-79-33-28-5D
  :
  :

 上記の例の様に、MACアドレスは数値英字交じりが 2桁 × 6 で表示されます。 これは1桁を16進数(0〜Fで表す数値表現)で表したものです。


 2.MACアドレスは何をするのか

 実際にMACアドレスとは、ネットワーク上または、TCP/IPの中でどのような働きをしているのか? 「TCP/IPについて」の物理層の箇所で、簡単に説明しましたが、受信したデータが自分宛かどうかをチェックします。
 物理層で他のパソコンからデータを受け取った場合は、イーサーネットなどは下の図の様なフォーマットでデータを受け取ります。

宛先
MACアドレス
送信元
MACアドレス
タイプ データ部 FCS


 見て分かる通り、ネットワークで流れてくるデータの中に「宛先MACアドレス」というのがあります。 データを受け取ったネットワークの媒体は、自分のMACアドレスとこの宛先MACアドレスを比較し、自分宛と判断した場合は次の処理へ移りますが、そうでない場合はそのデータを破棄などの処理を行います。
 (自分宛で無い場合の処理は、ハードの種類によって変わるようです。 「ネットワークの接続形態について」で説明しましたが、バス型みたいに接続しているパソコン全てにデータが送信される場合があるので、データを破棄しても構いませんが、リング型は次のパソコンにそのデータを送信するといった処理になります。)

 送信元MACアドレスは、コネクション型の通信方式など、送信元に応答やデータを戻さないといけない場合に必要な情報です。

 ではよく聞くIPアドレスは、何をやっているのか?それはまた別のページで説明をしようと思いますが、 ルーターやブリッジ等が間に入っておらず、直接パソコン同士が繋がっている場合(スイッチングハブなどを通して)の通信では必要な情報と言うことです。


 3.MACアドレスのアドレスの意味は

 MACアドレスとは、16進数の値が 2 × 6 の計12桁で表現されます。
 これを更に細かく考えると、16進数なので1桁4ビット、計48ビットつまり、2進数の情報が48桁の情報という事になります。

 00-0A-79-33-28-5D

 例として先ほどのMACアドレスを全て2進数にしてしまうと・・・

 0000 0000 0000 1010 0111 1001 0011 0011 0010 1000 0101 1101

 という感じなります。
 これを元に、各桁が何を意味するかは下のフォーマットの様になっています。

1 2 3〜24桁
ベンダ識別子
25〜48桁
ベンダ内での識別子

1桁目 0・・・ユニキャストアドレス  /  1・・・マルチキャストアドレス
  2桁目 0・・・ユニバーサルアドレス  /  1・・・ローカルアドレス




 ベンダとは、主に製品のメーカーの事を指します。つまりメーカー毎でMACアドレスが指定されているのです。 何故そのような別け方をしているのかと言うと、トラブルの原因の特定をするためにあるそうです。
(異常なパケットを送信している機器は、どのメーカーか分かるようにだそうです。)


 4.送信元はどうやって相手のMACアドレスを知るのか

 データを送信する際、MACアドレスが必要ということは分かります。しかし相手先のMACアドレスが分からない場合があります。 そういう時はどうしているのかと言いますと、ARP(Address Resolution Protocol)というプロトコルがあり、 送信先のMACアドレスを知ることができます。このARPを使って相手先のMACアドレスを知った後、宛先MACアドレスに情報を載せてデータを送信します。 このARPはインターネット層に当たるので、詳細はそちらで記述する事にします。


先頭に戻る   物理(データリンク)層 TOPに戻る   TOPページに戻る