SE_BOKUのまとめノート的ブログ

SE_BOKUが知ってること・勉強したこと・考えたことetc

MACアドレスとBlueToothアドレス

f:id:arakan_no_boku:20220321221954p:plain

目次

MACアドレスBlueToothアドレス

混同されがちな、MACアドレスBlueToothアドレスについて整理します。

MACアドレス

MACアドレス(Media Access Control address)は、ネットワークカード(パソコンやルータなどのネットワーク機器)に付いている番号です。

全世界で重複することがないことを前提として、MACアドレスがLANやインターネットでのイーサネット通信で利用されています。

通信データのヘッダー部分に「送信先MACアドレス」と「送信元MACアドレス」を格納することで宛先や戻し先を確定するわけです。

なので、MACアドレスが無いと通信ができなくなります。

MACアドレスの構造

48ビットで構成されます。

8ビット(1バイト)を「オクテット」として、6オクテットで構成されてます。

8ビットなので、00000000~11111111(00~FF)の値をとりえます。

表記するときは、各オクテットの区切りを「-(ハイフン)」で表記して、例えば以下のように表現します。

11-22-33-44-55-66

前半の3オクテット分が「ベンダーコード」

後半の3オクテット分が「ベンダが重複しないように管理している番号」です。

ベンダーコードは、OUI(Organizationally Unique Identifier)ともいい、標準化団体のIEEEが一元的に管理し、通信機器メーカーなどに発行しています。

後半の3オクテット(24ビット)がメーカーが個々の機器に重複しないよう割り当てた装置固有の番号となりますが、使い切ると新たに申請して取得することができるので、いくつかの大手通信機器メーカーは一社で複数のOUIを保有しています。

MACアドレス枯渇問題?

今のところMACアドレスの枯渇問題の話は聞いたことがないです。

MACアドレスは48ビットの数字列,つまり0と1が48個並んだもので、最初の2ビットは識別コードとして使うので,アドレスとして使えるのは46ビットになってます。

46ビットで表現できるアドレスの数は2の46乗分・・、約70兆個以上・・です。

加えて。

MACアドレスデータリンク層のネットワーク,つまりルーターで区切られた範囲内で重複しなければ問題ありません。

同一サブネット内のみで利用されルータを経由する度に変更される仕組みで、ルーターで区切られた範囲内で使う機器に同じMACアドレスを割り振らないようにすればよいので、おそらく枯渇問題は起こりえないということと理解しています。

BlueToothアドレス

luetooth Device Addressと表記される場合もあります。

Bluetooth対応デバイスを識別するために使われます。

BD_ADDR、BDアドレスなどと表記されることもあります。

MACアドレスと同じ48ビット(EUI-48)を使用しますが、附番管理はMACアドレスとは別に独立してされています。

Public AddressとRandom Addressの2種類のアドレスがあります。

BlueToothアドレス:Public Address

IEEE 802準拠のアドレスです。

MACアドレスと同等で、機器を製造した企業や機器の個別アドレスを含みます。

製品製造時に機器ごとに書き込まれる固定のアドレスです。

BlueToothアドレス:Random Address

各端末(機器)で乱数を使って自動生成される端末アドレスです。

機器の製造工程で書き込む必要がありません。

どうも、こちらのほうが一般的のようです。

Random Addressには、さらに。

  • Static Device Address
  • Non-Resolvable Private Address
  • Resolvable Private Address

の3種類があります。

BlueToothアドレス:Random Address:Static Device Address

Random Static Addressと同じです。

再上位2ビットが「11」で、電源投入のたびに生成される乱数アドレスです。

電源再投入されないかぎり変更されません。

逆にいうと、電源が再投入されると変わってしまいます。

BlueToothアドレス:Random Address:Non-Resolvable Private Address

再上位2ビットは「00」です。

一定間隔で動的に再生成される乱数アドレスです。

Private Address 再生成間隔は15分が推奨されているようです。

BlueToothアドレス:Random Address:Resolvable Private Address

再上位2ビットは「10」で、一定間隔で動的に再生成される乱数アドレスであり、

Private Address 再生成間隔は15分が推奨されているようなのは、上記の「Non-Resolvable Private Address」と同じです。

ただ、こちらの乱数アドレスは鍵(IRK)に基づいて生成されるので、受信した側が IRK を用いることでアドレスの正当性を検証(Resolve)できるというところが違います。

このResolvable Private AddressはiPhoneで使われています。

このアドレスが使われるのはアドバタイジングのときだけです。

アドバタイズとはイーサネットでいうブロードキャスト通信のことで、不特定多数の相手にデータを送信する一方通行の通信方式です。

つまり、発信側はアドレスを生成して一定間隔でデータ送信を行い、受信する側はスキャンしたあと鍵(IRK)に基づき正当性が検証できたアドレスからのデータのみを受信することができる・・とまあ、こんな仕組みのようです。

まとめ

最後に相違点をまとめます。

イーサネットMACアドレスBlueToothのBDアドレス。

体系的には48ビットで同じです。

MACアドレスは「イーサネット通信」、BlueToothアドレスは「BlueTooth通信」で利用され、完全に別物として附番管理されています。

MACアドレスは静的で変わりません。

BlueToothアドレスは動的に再生成されるものもあります。

今回はこんなところで。

ではでは。