[BLE--Link Layer]设备蓝牙地址

简述

不论什么网络设备而言,都会有自己独特的一个MAC地址,不然在设备量较大的情况下非常可能造成通信的混乱。蓝牙是无线通信中使用非常广泛的技术。当然其蓝牙地址也是相当的重要的了。

蓝牙地址简述

种类划分

- public地址

- random地址

蓝牙地址长度,48bit,即6个byte。

Public地址

该地址是固定的,厂商设定:

public addr和resolvable random addr和unresolvable random addr

Random地址

Random地址事实上又分为两种:

- Static地址

- Private地址

Static地址

这样的地址是在蓝牙设备上电初始化成功后,就不会再变化,而到关闭电源再重新启动,才会使用一个新的值。

Private地址

这样的是non resolvable的private地址,其值不能和public地址一样。对于这样的地址,假设都没有办法解析出,不知道须要这类地址有什么作用?以后知道了再来补充吧。只是认为可能是对Public地址的一个补充。

这样的是resolvable的private地址。prand部分是随机生成的24bit数值。hash部分使用例如以下的方式生成:

hash = ah(IRK, prand)

ah是SMP部分的随机地址生成函数,IRK是密钥(Identity Resolving Key),先随机生成prand部分,然后用这个算法生成hash,然后将hash和prand部分填入上图中相应bit区域,就形成了resolvable private address(RPA)了。

由于上面这样的地址是resolvable的,当然得有相应的地址解析的方法了,通过解密所获得对方的蓝牙地址,才干够进行某些通信,看来是BLE的新特性所提供安全性的一些手段了。

在拿到对方的resolvable private address(RPA)后。本地设备从RPA中取出prand部分,然后会依据上面hash的生成方式生成一个叫localhash的:

localHash = ah(IRK, prand)

然后将这个localHash和从RPA中取出的hash部分进行比較,假设同样,那么对方设备就被识别了。

感觉这里的识别作用就是确定应当用哪个IRK和对方设备交互。对于这样的random地址的方式,后面还得再看看。应当是比較新的特性。

时间: 2024-10-26 23:33:12

[BLE--Link Layer]设备蓝牙地址的相关文章

详解BLE 空中包格式—兼BLE Link layer协议解析

BLE有几种空中包格式?常见的PDU命令有哪些?PDU和MTU的区别是什么?DLE又是什么?BLE怎么实现重传的?BLE ACK机制原理是什么?希望这篇文章能帮你回答以上问题. 虽然BLE空中包(packet)涉及BLE协议栈link layer,L2CAP,SMP和ATT等各层次,但link layer跟空中包格式关系最紧密,掌握了BLE packet的格式,就很容易理解BLE link layer协议的工作原理,因此文章取名"详解BLE空中包格式-兼BLE link layer协议解析&qu

iOS开发 之 可穿戴设备 蓝牙4.0 BLE 开发

1 前言 当前有越来越多的可穿戴设备使用了蓝牙4.0 BLE(Bluetooth Low Energy).对于iOS开发而言,Apple之前专门推出CoreBluetooth的Framework来支持BLE的开发.对于硬件开发有了解的朋友应该知道,在之前使用低版本的蓝牙的设备,要连接到iOS设备上,需要注册MFI,拥有MFI协议才能进行相应的开发.如果大家关注我之前对LEGO EV3的研究,就可以发现,EV3是使用了蓝牙2.1,因此需要MFI协议来进行开发. 本文将一步一步讲解如何使用CoreB

蓝牙利用协议栈API读取设备MAC地址

最近在移植QQ物联协议,需要读取设备mac地址. 读取CC2541设备MAC地址的方法,有直接读取mac寄存器,也可以调用协议栈API.这里采用的是调用API的形式. 1 /*利用协议栈API读取MAC地址*/ 2 static uint8 macaddr[B_ADDR_LEN]={0}; // mac 地址 3 uint8_t macstr[13] = {0}; 4 5 GAPRole_GetParameter(GAPROLE_BD_ADDR, macaddr); 6 sprintf((cha

【Android应用开发】Android 蓝牙低功耗 (BLE) ( 第一篇 . 概述 . 蓝牙低功耗文档 翻译)

转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/50515359 参考 :  -- 官方文档 : https://developer.android.com/guide/topics/connectivity/bluetooth-le.html; 1. 概述 BLE 概述 : -- 版本支持 : Android 4.3 (API Level 18) 内置框架引入了 蓝牙低功耗方案 (Bluetooth Low Energy,

转载-iOS获取设备IP地址

iOS获取设备IP地址 代码如下: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 #import <ifaddrs.h>#import <arpa/inet.h>#

Network 5: Data Link Layer

Some important issues related to Data Link Layer: Ethernet uses CSMA/CD with binary exponential backoff as multiple access control protocol, and stipulates the minimum frame length is 64 bytes. 以下代码纯属娱乐,如能运行,纯属巧合. 1 public void transmit() { 2 int col

获取设备mac地址和md5加密

SGMSettingConfig.h #import <Foundation/Foundation.h> @interface SGMSettingConfig : NSObject{ NSInteger HTTP_PACKAGE_SIZE; NSInteger HTTP_RETRY_TIMES; NSInteger REPLY_LENGTH; NSInteger MAX_AUDIO_TIME; NSInteger MAX_RESULT_AMOUNT; BOOL USE_DENOISE_AGC

[Network]Link Layer

1 Introduction This part explains some similar points of other layers, such as layer service, data format and link. And link layer is a layer of combination of hardware, software and firmware. But why both link-level and end-end systems need rdt? 2 E

iOS开发之可穿戴设备蓝牙4.0 BLE 开发

http://yuedu.baidu.com/album/view/e581f869011ca300a6c390b0.html/2015-6-21 http://yuedu.baidu.com/album/view/e581f869011ca300a6c390b0.html/2015-6-21 http://yuedu.baidu.com/album/view/0ab367c20c22590102029db0.html/2015-6-21 http://yuedu.baidu.com/album