本文とサイドメニューへジャンプするためのナビゲーションスキップです。

スタートアップガイド

J-Net21 中小企業ビジネス支援サイト

  • J-Net21とは
  • スタートアップガイド
中小機構
  • メルマガ登録
  • RSS一覧
  • お問い合わせ

HOME > 製品・技術を開発する > デジ・ステーション

デジ・ステーション


初級ネットワーク講座
第9回 MACアドレスと通信の仕組み

ネットワーク機器がLANに接続して他の機器と通信するためにはLANカードまたはLANボードなどのLANインターフェースが必要である。LANインターフェースは、フレームの組み立て、送出、および受け取り、分解を担う。LANインターフェース製品には、それぞれ固有のMACアドレスが振られている。今号では、MACアドレスと通信の仕組みについて解説する。

MACアドレスと通信の仕組み

1-1 パケット構造

以前説明したパケットの構造についておさらいしよう。LAN(Ethernet)上を流れるパケットは、図1のような構造となっている。

図1 パケットの構造

図1 パケットの構造

ここで久しぶりにLANのインターフェース(LANカードやLANボードなど)に棲んでいる妖精「パケト君」登場。
 パケト君は、ユーザやアプリケーションからデータをもらうと、次々とヘッダを付加して「フレーム」という形式にしてLAN(Ethernet)に送出する。
 各ヘッダには、通信相手先などを識別するため、Ethernetには「MACアドレス」、IPには「IPアドレス」、TCPには「ポート番号」といったアドレスが含まれる。
 LAN(Ethernet)上を流れるパケットの先頭は必ずEthernetヘッダである。

Ethernetヘッダの中身を詳しく見ると以下のとおりである。

1-2 MACアドレス

図2 ipconfigの実行画面

通信する機器が、LANに接続するインターフェース(LANカードやLANボードなど)を識別するために割り当てられた固有の番号を、MACアドレスという。MACアドレスは、妖精「パケト君」の出席番号のようなものである。
 MACアドレスは、48ビットすなわち2進数48桁、ipconfigやパケットキャプチャ画面では16進数12桁で表示される。コマンドプロンプトのipconfigでは「Physical Address」と表示される。
 図2では、Physical Address. . . . . . . . . : 00-0B-97-2C-ED-71 となっている。 途中のハイフンは、表示を見やすくするためのもので無視してよい。
 このインターフェースに棲むパケト君の出席番号は16進数と2進数で表示すると以下のとおりとなる。

MACアドレスが16進数"FFFFFFFFFFFF"、2進数で48ビットすべて"1"となるアドレスをブロードキャストといい、同じネットワークの中にある装置全部に送信するために用いる。

MACアドレス48ビットは、上位24ビット、下位24ビットに分けられる。上位24ビットは「ベンダID」といい、ネットワーク機器の製造メーカーを識別する番号で、OUI(Organizationally Unique Identifier)ともいわれる。

 下位24ビットは、製造メーカーが製品ごとに重複しないように割り振る製造番号である。


図3 IEEEのサイトでOUIを検索

ネットワーク機器1つにつき1つのMACアドレスを割り振る。MACアドレスは、製品が製造されるたびに製品に焼き付けられる。MACアドレスはIPアドレスと異なりLAN製品とライフサイクルをともにする。よって、同じMACアドレスをもつ製品はこの世にはない。  ネットワークの規格策定を行っているIEEE(アイトリプルイー、The Institute of Electrical and Electronics Engineers, Inc.)のサイトで、MACアドレスの先頭24ビット(16進数なら先頭6桁)を検索すれば、そのネットワーク機器をどこのメーカーが製造したかが分かる。

上記の例では、MACアドレスは"000B972CED71"、ベンダIDは"000B97"、製造番号は"2CED71"である。ベンダID(OUI)は"000B97"で、検索してみると、図3のようになる。

したがって、「Matsushita Electric Industrial Co.、Ltd.」製だということがわかる。

MACアドレスも枯渇する!
 現在MACアドレスは48ビットである。IPv4アドレスの32ビットに比べるとアドレス空間がかなり大きくありそうに見えるが、製品の寿命がくれば、そのMACアドレスは永久欠番となり、IPアドレスのように使い回しができない。IPv4アドレスのようにアドレス枯渇問題が深刻というわけではないが、いずれMACアドレスが枯渇するのも時間の問題である。
 そこでMACアドレス長を64ビットにすることが決まっている。IPv6では、両方のMACアドレス長に対応できる仕組みになっている。

1-3 ネトワク村の昼下がり

ここで、LANに接続するインターフェース(LANカードやLANボードなど)の動きを見るために、ネットワーク機器のインターフェースに棲む妖精パケト君の寸劇をお見せしよう。

【語り手】
 さぁはじまりはじまり。ここはネトワク村(*1)、この村には十数軒の家(*2)がある。各家には妖精(*3)が棲みついている。そのうちの1軒に棲む妖精パケト君は働き者だ。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

■午後1時15分
 家のご主人様から「フレム君の棲む家のご主人様に@@と伝えてくれ」と指示が出る。
 さっそくパケト君は、フレームを組み立てる。
 パケト君は、他の妖精たちが誰も話をしていないことを確認する(*4)。
 誰も話していない。
   「おーーい、フレム君、パケトだけど@@と伝えて」
 パケト君は、フレム君に呼びかける(*5)。
 この声は、村の妖精全員に聞こえている(*6)。でもフレム君が聞いているかどうかは、パケト君にはわからない。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

■午後1時23分
 家のご主人様からは「パケル君の棲む家のご主人様に++と伝えてくれ」と指示が出る。
 さっそくパケト君は、フレームを組み立てる。
 パケト君は、他の妖精たちが誰も話をしていないことを確認する。
 誰かが話をしているので、話が終わるのを待つ。
 話が終わったようだ。
   「おーーい、パケル君、パケトだけど(ざわざわざわ、以後判別不能)」
 パケト君は、パケル君に呼びかけた。
 パケト君は、自分で自分の声を聞いているのだが、いつもより声が大きく聞こえる(*7)。
 あー、だれかと、同時に話し出してしまったんだ(*8)。
 パケト君は、待ち時間(*9)を計算して、その時間待ったあとで再び呼びかけを試みる。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

■午後1時47分
 「おーーい」
  ぼーっとしていたら、彼の耳元に、どこからともなく声が聞こえてくる。
   「おーーい、みんなぁ」
 ネトワク村の妖精全員に呼びかけているようだ(*10)。
   「おーーい、みんなぁ、パケルだけど」
 どうやら妖精パケル君が何か用があるのかと聞き耳をたてて、話の内容を聞いてみる。
   「おーーい、みんなぁ、パケルだけど、みんなの中で△△について知っている人がいれば教えてくれないかな?」
 さっそく、家のご主人様に「△△について知っている人がいれば教えてくれないかな?」と報告して判断を仰ぐ。
 家のご主人様からは「そんなの関係ない」と無視される。よって何もしない。
 村の妖精全員あての呼びかけに対して、いつもいつも無視ばかりしているわけではないのだが。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

■午後2時03分
  「おーーい(*11)」
 しばらくすると、誰かに呼びかけている声が聞こえてきた。パケト君、さっそく聞き耳を立てる。
   「おーーい、パ」
 「みんなぁ」ってっ言っていないから村人全員ではないな、自分に呼びかけてるいるのかもしれない。
   「おーーい、パケ」
 あ、パケ、ひょっとして自分?
   「おーーい、パケル」
 なぁんだ、自分じゃないや、
   「おーーい、パケル君、◆◆だから」
 あとは無視、無視

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

■午後3時13分
  「おーーい」
 しばらくすると、誰かに呼びかけている声が聞こえてきた。パケト君、さっそく聞き耳を立てる。
   「おーーい、パ」
 「みんなぁ」って言っていないから村人全員ではないな、自分に呼びかけてるいるのかもしれない。
   「おーーい、パケ」
 あ、パケ、ひょっとして自分?
   「おーーい、パケト」
 よし、自分の名前だ!しっかり聞かなくちゃ。
   「おーーい、パケト君、フレムだけど★★の件、どうなった?」
 さっそく、家のご主人様に「さっきの件、どうなった?」と報告して判断を仰ぐ。
 家のご主人様からは「**と応えてくれ」と指示が出る。
 さっそくパケト君は、フレームを組み立てる。
   「おーーい、フレム君、パケトだけどさっきの件**だよぉ」
 パケト君は、フレム君に呼びかける。

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


  (*1)ネトワク村:1つのネットワーク、ブロードキャストドメインともいう。
  この村から外に出るには、るー太くんがつとめるデフォルトゲート駅を通らなければいけない。
  (*2)家:ネットワーク機器
  (*3)妖精:ネットワーク機器のインターフェースに棲む。ここではパケト、パケル、フレムが該当し、
  それぞれMACアドレスを持つ。
  (*4)ほかの妖精たちが誰も話をしていないことを確認:「搬送波感知(Carrier Sense)」を行い、  
  他の端末からデータが送信されていない状態であることを確認すること。この場合、フレームを送出することができる。
  (*5)フレム君に呼びかける:ユニキャスト、隣の村にいる妖精までは届かない
  (*6)村の妖精全員に聞こえている:「多重アクセス(Multiple Access)」により、
  複数の端末が共有の伝送媒体を用いて信号を送受信すること。
  (*7)いつもより声が大きく聞こえる:衝突が検出されること。Ethernetでは、1つのデータが流れた場合の
  電圧を超えた電圧が発生するため、衝突を検知できる。これを「衝突検出(Collision Detection)」という。
  このとき、再送制御がウィークポイントとなる。
  (*8)同時に話し出した:他の端末も同時に送信を開始し、「衝突(Collision)」が発生した場合のこと。
  (*9)待ち時間:バックオフタイム
  (*10)妖精全員に呼びかける:ブロードキャスト、隣の村には聞こえない
  (*11)「おーーい」:プリアンブル、Ethernetでは、フレームを送出する前に、プリアンブルという64ビットの信号を送り、
  送信側受信側の同期を取る

MACアドレスだけあて先が先なのはなぜ?

 フレームの構造を見ると、それぞれのヘッダには「送信元」と「あて先」で1組のアドレスが含まれている。
 このうちMACアドレスだけ、「あて先」が先になっている。人間的思考感覚でいけばFrom→Toなので「送信元」が先になるはずだ。その意味では、「IPアドレス」「ポート番号」は人間的思考感覚と同じと考えてよい。ではなぜ、MACアドレスだけ「あて先」が先になっているのか。
 Ethernet上では、必ずフレーム形式で送信される。よって、どんなフレームでも先頭は必ず「あて先MACアドレス」となる。フレームが届き始めると「あて先MACアドレス」が「自分のMACアドレス」と一致しているか、または「ブロードキャスト」かを確認する。そのために、ネットワーク機器のCPUやメモリなどのリソースが使われる。
 用がなければ早めにリソースから解放させたい。一刻でも早くリソースから解放させるため、先頭に「あて先MACアドレス」を持ってきているのである。
【次号予告】
 いまや、ノートPCにLANケーブルにつなげば、ネットワークに関する設定をしなくとも、当たり前のごとくインターネットに接続できる。これは、自動的にIPアドレスを振り分ける機能を持つDHCPサーバが働いているからだ。
 次回は、利用者の利便性を高めるための技術の1つであるDHCPの仕組みについて説明する。

取材協力 : 株式会社アイテック

掲載日:2008年12月10日

キーマンズネット

出典元:株式会社リクルート キーマンズネット 2008年7月8日掲載分

検索

このページの先頭へ