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)。如下图所示:
由上图可知,地址高有效的24比特是厂商ID,这24比特是厂商向IEEE购买的,用以区别其他厂商生产的设备,那么该厂商生产的所有设备中,这24比特都是一样的;地址的低有效的24比特是该厂商自行分配的,用以区别自家厂商生产的不同设备。
随机设备地址
公共设备地址可能存在一定的安全问题,因为只要知道了设备的地址就可以或者设备的所有信息,因此为了解决这个问题BLE协议新增了随机地址类型
随机地址分为静态设备地址(Static Device Address)和私有设备地址(Private Device Address)。
静态设备地址
静态设备地址是一个随机产生的48比特的数,它需要满足一些限制性要求:
- 地址的2个最高有效位都等于1
- 除最高有效位的其他46个比特(地址的随机部分),不能全为1
- 除最高有效位的其他46个比特(地址的随机部分),不能全为0
静态地址格式如下图所示:
设备每次上电都会初始化一个静态地址,直到下次重启设备为止,设备都不会改变其静态地址。
私有设备地址
私有设备地址可分为两种子类型:不可解析私有地址(Non-resolvable Private Address)和 可解析私有地址(Resolvable Private Address)
不可解析私有地址
不可解析私有地址的格式如下图所示:
不可解析私有地址的生成需要遵循以下几个限制:
- 地址2个的最高有效为全都为0
- 地址的随机部分不能全为0
- 地址的随机部分不能全为1
- 不能是一个公共地址
可解析私有地址
可解析随机地址的格式如下图所示:
可解析私有地址的生产需要遵循以下几个限制:
- 地址2个的最高有效位为10
- 地址的随机部分不能全为0
- 地址的随机部分不能全为1