パソコン実習室
アドレスとポート
≪ previous next ≫

Ⅱ.MACアドレス

Ⅱ.1.MACアドレスの表記

 パソコンやサーバー、ルーター等に搭載されているネットワーク アダプタ―※1には、個々のアダプターを識別するための番号が書き込まれています※2
この番号をMAC(マック)アドレスといいます。

※1 ネットワーク アダプタ―
ネットワーク インターフェース、ネットワーク カード、NIC(Network Interface Card)、LANカード、LANアダプタ―等、様々な形状・名称がありますが、ここではネットワーク アダプタ―と呼んでいます。
※2 書き込まれています
ネットワーク アダプタ―製造過程でEPROM等に書き込まれます。
実際の通信で使われるMACアドレスは、ソフトウェアがコントロールしています。

 MACアドレスは、ネットワーク アダプター等のハードウェアに割り当てられている固有識別子(番号)で、物理アドレスともいいます。
48ビットの符号(2進数)を、1バイト※3ごとにダッシュ(-)や コロン(:)の記号で区切って、16進数で表記します。大文字小文字は区別しません。 (記号を使わない場合もあります)。

 MACアドレスの表記例. 下記3例は全て同じMACアドレスを表しています。
a8-97-dc-98-ac-1bA8:97:DC:98:AC:1Ba897dc98ac1b

※3 1バイト(8ビット)
 情報通信の分野では8ビット単位のデータをオクテット(octet)と呼びます。
一方でバイトという呼称はその歴史的経緯から必ずしも8ビットとは限らないのですが、 一般に 1バイト=8ビット の考え方はかなり浸透していることから、ここではバイトと表現しています。


パソコンのMACアドレスは次の方法で確認できます(windows10の場合)。
  1. [スタート] をクリック後、電源ボタンの上にある歯車模様の [設定] を選択。
  2. [ネットワークとインターネット]を選択。
  3. ネットワークの状態を表示しているイラストと説明文の下にある [プロパティ] を選択。
  4. 大文字表記の [ネットワーク プロファイル] や [従量制課金接続] といった項目の中から [プロパティ] を探します。
  5. 最下段にある [物理アドレス(MAC):] を参照します。



Ⅱ.2.構成と管理

 MACアドレスは48ビットの固定長です。前半の24ビットは機器を供給するベンダーに割り当てられた固有の識別子(番号)で、IEEE(Institute of Electrical and Electronics Engineers)が管理・割り当てを担っています。
 この部分は、OUI(Organizationally Unique Identifier)、ベンダーID、company id と呼ばれています。
 後半の24ビットは製品IDと呼ばれる部分で、個々の製品(ネットワーク アダプタ―)に重複しない番号が割り当てられます。製品IDの管理はベンダーに任されています。
 IEEEとベンダーがそれぞれの部分を管理することで、結果として世界で1つだけの重複しないMACアドレスが保証されます。



 MACアドレスを必要とするベンダーはIEEEに申請してOUIの割り当てを受けなければなりません(有料)。
 1つのOUI(ベンダーID)があれば24ビットの製品IDを使って約1,660万個のMACアドレスを作れますが、不足するような時は複数のOUIを取得する(有料)ことも可能です。実際に多くのベンダーが複数取得しています。
 IEEEでは小規模なベンダーIDの割り当ても行っています。OUIの24ビットに12ビットを加えた36ビットのベンダーIDで、IAB(Individual Address Block)と呼ばれています。IABの場合ベンダーが使用できる製品IDは12ビットの4096個になります。

 IEEEでは OUIの一覧 および IABの一覧 をテキストファイルで公開しています。
ちなみに表記例(前項)のベンダーID A8-97-DC はIBMになります。


 OUI、IABといった名称は使われ続けるようですが、IEEEが行うアドレス割り当ての定義は MA-L、MA-M、MA-S に変わったようです。
  MA-L (MAC Address Block Large) 24ビットのベンダーID。(OUIと同じです)。
  MA-M (MAC Address Block Medium) 28ビットのベンダーID。
  MA-S (MAC Address Block Small) 36ビットのベンダーID。(IABと同じです)。


Ⅱ.3.I/G ビット

 MACアドレスは下に示す通り48ビット(6バイト)で構成されますが、この中に重要な意味を持つビットがあります。


 左の図は先頭の(第1)バイトを抜き出してビット単位に示したもので、左側が上位ビットで右側が下位ビットになります。
 青で色分けしてある最下位ビット(0ビット目)が I/G ビットと呼ばれているもので、転送先が個別(Individual)なのかグループ(Group)なのかを指定します。

 I/Gビットが 0 の場合、そのMACアドレスは1台のネットワーク アダプターが対象であり、端末同士が1対1で通信を行うユニキャストを示しています。 一般的な通信(web閲覧やメール等)はユニキャストであり、ネットワーク アダプターに書き込まれているMACアドレスがそのまま使われます。

 一方でI/Gビットが 1 の場合は、複数の端末を通信の対象とした 1対多 のマルチキャストであることを示します。 マルチキャストはテレビ会議システム等の同時配信サービスに用いられます。 この時のMACアドレスはネットワーク アダプターに書き込まれた値は使われず、アプリケーションによって決められます。 例えばIPマルチキャストの場合、OUI部分の24ビットが 01-00-5E、続く1ビットが 0 と(先頭からの25ビットが)決められています。

▼ マルチキャストのアドレス(MAC & IP)は受信専用で、同一グループは同じアドレスを
  共有します。制御はアプリケーションが行います。
▼ VODのような個々のユーザーの要求に応じる通信はユニキャストになります。


 MACアドレスのすべてのビットを 1 (ff-ff-ff-ff-ff-ff)にする通信もあります。ブロードキャストと呼ばれるもので、LANに接続しているすべてのネットワークアダプタが対象になります。 この時I/Gビットも1になっていて、ブロードキャストはマルチキャストの特殊な形態であるともいえます。

▼G/L (I/Gの左隣) : MACアドレスの グローバル(Global) / ローカル(Local) を示します。
▽G/L 0 : グローバルなMACアドレス。ベンダー出荷製品はすべてグローバル(G/Lビット 0)です。
 G/L 1 : ローカルなMACアドレス。研究室等の閉じた環境でしか存在しません。


Ⅱ.4.転送はMACアドレスで

 送り出されたパケットは、多数のルーターで構成されたインターネットの中をルーターからルーターへと転送され、宛先(最終目的地の通信相手)まで届けれらます。この時の転送先(ルーター)指定にMACアドレスが使われます。

Ⅱ.4.1.フレーム

 LANの通信規格はイーサネット(有線)とWi-Fi(無線)が主流で、そこで送受信されるデータのひと塊をフレームと呼びます。
フレームはその内部にパケットが収められ、転送先や転送元※4としてMACアドレスが書き込まれます。

※4 転送先や転送元
IPアドレスが使われるパケット内の宛先や送信元と区別するため、フレーム内で使われるアドレス指定の言葉として、ここでは転送先・転送元を使っています。

 アプリケーションからデータ送信の依頼を受けたOSは、データを小分けにしてパケットを作り、ネットワーク アダプタ―のデバイス ドライバーに渡します。
デバイス ドライバーは、このパケットにMACアドレスやフレームの制御情報を付け加えてフレームを完成させます。

◎ 転送先のMACアドレス調べるのはOSの役目です。
  OSはパケットと共にMACアドレスをデバイス ドライバーに渡します。

イーサネットのフレームは概ね次のようなフィールドで構成されています。
以下ではイーサネットで話を進めます。無線LANの場合もアクセスポイントの情報(MACアドレスや変調方式)が加わるためフィールド数が増えますが、基本的な構成はイーサネットと同じです。

  • [プリアンブル] : 8バイト
    同期信号です。他の端末(ネットワークアダプタ)にフレームの送信開始を知らせると共に同期のタイミング合わせに用います。信号のパターンは規格で決められています。
  • [転送先MACアドレス] : 6バイト
    転送先IPアドレスから検索した転送先のMACアドレスが入ります。
  • [転送元MACアドレス] : 6バイト
    自身のネットワーク アダプタのMACアドレスが入ります。
  • [タイプ] : 2バイト
    データ フィールドの種類を示すIDが入ります。IDには 0x0800:IPv4、0x0806:ARP、0x809b:AppleTalk、0x86dd:IPv6 等があります。
  • [データ] : 46~1500バイト
    通信内容の本体。概ねパケットが入ります。
  • [FCS(Frame Check Sequence)] : 4バイト
    通信エラー検出用の算出値。転送先MACアドレス ~ データのフィールドから計算したCRC(Cyclic Redundancy Check)の値が入ります。受信側でも同様にCRC値を計算し、FCSフィールドと同じ値でなければエラー発生と判断して受信したフレームは破棄します。
 完成したフレームはネットワークアダプタからデジタル信号としてLAN内に送り出されます。同一LANに接続している他端末は、受信したフレームの転送先MACアドレスが自分のMACアドレスと同じであれば受信動作を、異なる時はそのフレームを破棄します。


Ⅱ.4.2.MACアドレスの検索

LANとインターネットを結ぶ通信の出入り口となる通信機器を「デフォルト ゲートウェイ」といいます。パソコンのデフォルト ゲートウェイはWi-Fiルーターであり、webやSNSの通信はすべてWi-Fiルーターを経由して行われます。
ホーム ルーターやモバイル ルーターも「デフォルト ゲートウェイ」になりますが、ここではWi-Fiルーターで進めます。
Proxyサーバーを「デフォルト ゲートウェイ」として設置している事業所等もあります。
ProxyサーバーはLAN・WAN(インターネット等)間の中継に特化した機器で、セキュリティ対策やアクセス管理などの機能も有しています。

インターネット通信中のパソコンから送り出されるフレームの転送先は、すべてWi-Fiルーター(デフォルト ゲートウェイ)です。
デフォルト ゲートウェイのIPアドレスとMACアドレスは、ネットワークのプロパティやARP(アープ)テーブルとして一時保存されています。

「デフォルト ゲートウェイ」のアドレス情報は、パソコン起動時にネットワークの設定データとしてWi-Fiルーターから受け取ります。 またその時の通信データを参照して デフォルト ゲートウェイ のMACアドレスを ARPテーブルに記録しておきます。
ARPテーブルの内容は一定時間が経過すると消去されますが、適宜更新されます。

これらの情報はコマンド プロンプト(またはターミナル)の ipconfigコマンドや ARPコマンドで確認できます。
ipconfigはパソコンのIP構成を、ARPはIPアドレスとMACアドレスの対応を表示します。

下記はコマンド実行例です。ここから自身のIPアドレス(192.168.1.2)、Wi-FiルーターのIPアドレス(192.168.1.1)とMACアドレス(a8-97-dc-98-ac-1b)が判ります。
C:\>ipconfig
Windows IP 構成
 IPv4 アドレス ........: 192.168.1.2
 サブネット マスク ......: 255.255.255.0
 デフォルト ゲートウェイ ...: 192.168.1.1

C:\>ARP -a
インターフェイス:192.168.1.2 --- 0xC
 インターネット アドレス    物理アドレス     種類
 192.168.1.1        a8-97-dc-98-ac-1b 動的
 192.168.1.255       ff-ff-ff-ff-ff-ff    静的

 OSはARPテーブルを参照して、デフォルト ゲートウェイのIPアドレスに対応しているMACアドレスを検出します。 通常、デフォルト ゲートウェイのMACアドレスはARPテーブルに記録されているので、OSはフレームの完成に向けて動作を進めます。



 ARPテーブルに目的のデータが無い状況も考えられます。例えば通信相手が同じLAN内のユーザーだとしたら・・。 そのような場合はARPパケットをブロードキャスト送信してMACアドレスの問い合わせを行います。

 ARP(Address Resolution Protocol)パケットはMACアドレス問い合わせ(応答)用の特殊なパケットで、宛先と送信元のアドレス(IP, MAC)に関する情報のみで構成されます。
 下図はARPパケットとフレームの主要フィールドのみを抜粋表示したものです。
OP(OPeration)コードはARPパケットの種類(要求/応答)を示します。

【 MACアドレス問い合わせの動作 】
◎ 以下ではパソコンA, Bの使用者を、ユーザーA, Bとしています。

 下図のようなLANで、ユーザーAがユーザーBとの通信を開始したとしましょう。
一般にARPテーブルには同一LANユーザーの情報はありません。この時、ARPパケットは次のようにやり取りされます。

▼ 各MACアドレスを次のように仮定します。
パソコンA a0-a0-a0-a0-a0-a0
パソコンB b8-b8-b8-b8-b8-b8


(1) ARPテーブルを参照してパソコンB(192.168.1.3) の情報が得られなかった場合、パソコンAは下記内容のARP要求パケット&フレームを作成して送信ます。
このフレームはLAN内のすべての端末に届けられます。

[フレームの転送先MACアドレス:ff~ff] すべてを f にしてブロードキャストを指定します。
[ARPパケットのOPコード:1] このARPパケットが応答を求める要求であることを示します。
[ARPパケットの宛先MACアドレス:00~00] 不明なのですべてを 0 にします。

 転送先アドレスがすべて f (ブロードキャスト)のフレームは全端末(Wi-Fiルーターと全ユーザー)に届きます。各端末はARPパケットの宛先IPアドレスをチェックし、自分のIPアドレスと一致しなければ無視(廃棄)します。

(2) 宛先IPアドレスが一致したパソコンBは、要求元であるパソコンAに向けてARP応答パケット&フレームを作成・送信します。またこの時の情報を基に、自身のARPテーブルにパソコンAの情報(IPアドレス, MACアドレス)を追記します。

 ARP応答を受けたパソコンAは、自身のARPテーブルにパソコンBの情報(IPアドレス, MACアドレス)を追記します。

[ARPパケットのOPコード:2] このARPパケットが要求に対する応答であることを示します。


(3) パソコンBのMACアドレス検索を終了したパソコンAは、中断していたパソコンBとの通信動作を再開します。





前ページ  1 - 3 4  次ページ

≪ previous [[ アドレスとポート ]] next ≫