パソコンやサーバー、ルーター等に搭載されているネットワーク アダプタ―
※1には、個々のアダプターを識別するための番号が書き込まれています
※2。
この番号をMAC(マック)アドレスといいます。
MACアドレスは、ネットワーク アダプター等のハードウェアに割り当てられている固有識別子(番号)で、物理アドレスともいいます。
48ビットの符号(2進数)を、1バイト
※3ごとにダッシュ(-)や コロン(:)の記号で区切って、16進数で表記します。大文字小文字は区別しません。
(記号を使わない場合もあります)。
MACアドレスの表記例. 下記3例は全て同じMACアドレスを表しています。
a8-97-dc-98-ac-1b | A8:97:DC:98:AC:1B | a897dc98ac1b |
パソコンのMACアドレスは次の方法で確認できます(windows10の場合)。
- [スタート] をクリック後、電源ボタンの上にある歯車模様の [設定] を選択。
- [ネットワークとインターネット]を選択。
- ネットワークの状態を表示しているイラストと説明文の下にある [プロパティ] を選択。
- 大文字表記の [ネットワーク プロファイル] や [従量制課金接続] といった項目の中から [プロパティ] を探します。
- 最下段にある [物理アドレス(MAC):] を参照します。
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では
OUIの一覧 および
IABの一覧 をテキストファイルで公開しています。
ちなみに表記例(前項)のベンダーID A8-97-DC はIBMになります。
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アドレスのすべてのビットを 1 (ff-ff-ff-ff-ff-ff)にする通信もあります。ブロードキャストと呼ばれるもので、LANに接続しているすべてのネットワークアダプタが対象になります。
この時I/Gビットも1になっていて、ブロードキャストはマルチキャストの特殊な形態であるともいえます。
送り出されたパケットは、多数のルーターで構成されたインターネットの中をルーターからルーターへと転送され、宛先(最終目的地の通信相手)まで届けれらます。この時の転送先(ルーター)指定にMACアドレスが使われます。
LANの通信規格はイーサネット(有線)とWi-Fi(無線)が主流で、そこで送受信されるデータのひと塊をフレームと呼びます。
フレームはその内部にパケットが収められ、転送先や転送元
※4としてMACアドレスが書き込まれます。
アプリケーションからデータ送信の依頼を受けたOSは、データを小分けにしてパケットを作り、ネットワーク アダプタ―のデバイス ドライバーに渡します。
デバイス ドライバーは、このパケットに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アドレスと同じであれば受信動作を、異なる時はそのフレームを破棄します。
LANとインターネットを結ぶ通信の出入り口となる通信機器を「デフォルト ゲートウェイ」といいます。パソコンのデフォルト ゲートウェイはWi-Fiルーターであり、webやSNSの通信はすべてWi-Fiルーターを経由して行われます。
● |
ホーム ルーターやモバイル ルーターも「デフォルト ゲートウェイ」になりますが、ここではWi-Fiルーターで進めます。 |
● |
Proxyサーバーを「デフォルト ゲートウェイ」として設置している事業所等もあります。
ProxyサーバーはLAN・WAN(インターネット等)間の中継に特化した機器で、セキュリティ対策やアクセス管理などの機能も有しています。 |
インターネット通信中のパソコンから送り出されるフレームの転送先は、すべてWi-Fiルーター(デフォルト ゲートウェイ)です。
デフォルト ゲートウェイのIPアドレスとMACアドレスは、ネットワークのプロパティやARP(アープ)テーブルとして一時保存されています。
これらの情報はコマンド プロンプト(またはターミナル)の ipconfigコマンドや ARPコマンドで確認できます。
下記はコマンド実行例です。ここから自身の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アドレス問い合わせの動作 】
下図のような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内のすべての端末に届けられます。
転送先アドレスがすべて f (ブロードキャスト)のフレームは全端末(Wi-Fiルーターと全ユーザー)に届きます。各端末はARPパケットの宛先IPアドレスをチェックし、自分のIPアドレスと一致しなければ無視(廃棄)します。
(2) 宛先IPアドレスが一致したパソコンBは、要求元であるパソコンAに向けてARP応答パケット&フレームを作成・送信します。またこの時の情報を基に、自身のARPテーブルにパソコンAの情報(IPアドレス, MACアドレス)を追記します。

ARP応答を受けたパソコンAは、自身のARPテーブルにパソコンBの情報(IPアドレス, MACアドレス)を追記します。
(3) パソコンBのMACアドレス検索を終了したパソコンAは、中断していたパソコンBとの通信動作を再開します。
ネットワーク インターフェース、ネットワーク カード、NIC(Network Interface Card)、LANカード、LANアダプタ―等、様々な形状・名称がありますが、ここではネットワーク アダプタ―と呼んでいます。
※2 書き込まれています
ネットワーク アダプタ―製造過程でEPROM等に書き込まれます。
実際の通信で使われるMACアドレスは、ソフトウェアがコントロールしています。