BLE设备地址

和以太网一样,BLE协议也有自己的MAC地址,BLE协议将这个MAC地址称之为Device Address(设备地址)。

设备地址包括长度为48比特,分为公共设备地址(Public Device Address)和随机设备地址(Random Device Address)两种类型

单个设备至少要使用其中一种地址类型,或者两种地址类型同时使用

 

公共设备地址

公共设备地址可以唯一标识一个物理设备,这类似于TCP/IP网络中公共IP地址,我们知道公共IP地址可以全球唯一的表识一个网络节点。这种公共IP地址是需要申请的,同样的道理,BLE设备的公共设备地址也需要向IEEE申请。当然,申请的时候是需要支付一定的费用的

为了方便设备厂商更好的使用和管理这些公共地址,蓝牙组织将公共设备地址的48比特划分为两个部分:厂商ID(company_id)和厂商自行分配部分(company_assigned)。如下图所示:

android 蓝牙本机mac 蓝牙设备mac地址是什么_android 蓝牙本机mac

由上图可知,地址高有效的24比特是厂商ID,这24比特是厂商向IEEE购买的,用以区别其他厂商生产的设备,那么该厂商生产的所有设备中,这24比特都是一样的;地址的低有效的24比特是该厂商自行分配的,用以区别自家厂商生产的不同设备。

 

随机设备地址

公共设备地址可能存在一定的安全问题,因为只要知道了设备的地址就可以或者设备的所有信息,因此为了解决这个问题BLE协议新增了随机地址类型

随机地址分为静态设备地址(Static Device Address)和私有设备地址(Private Device Address)。

静态设备地址

静态设备地址是一个随机产生的48比特的数,它需要满足一些限制性要求:

  • 地址的2个最高有效位都等于1
  • 除最高有效位的其他46个比特(地址的随机部分),不能全为1
  • 除最高有效位的其他46个比特(地址的随机部分),不能全为0

静态地址格式如下图所示:

android 蓝牙本机mac 蓝牙设备mac地址是什么_android 蓝牙本机mac_02

设备每次上电都会初始化一个静态地址,直到下次重启设备为止,设备都不会改变其静态地址。

私有设备地址

私有设备地址可分为两种子类型:不可解析私有地址(Non-resolvable Private Address)和 可解析私有地址(Resolvable Private Address)

不可解析私有地址

不可解析私有地址的格式如下图所示:

android 蓝牙本机mac 蓝牙设备mac地址是什么_BLE协议栈_03

不可解析私有地址的生成需要遵循以下几个限制:

  • 地址2个的最高有效为全都为0
  • 地址的随机部分不能全为0
  • 地址的随机部分不能全为1
  • 不能是一个公共地址

可解析私有地址

可解析随机地址的格式如下图所示:

android 蓝牙本机mac 蓝牙设备mac地址是什么_android 蓝牙本机mac_04

可解析私有地址的生产需要遵循以下几个限制:

  • 地址2个的最高有效位为10
  • 地址的随机部分不能全为0
  • 地址的随机部分不能全为1