1. 程式人生 > >[BLE--Link Layer]設備藍牙地址

[BLE--Link Layer]設備藍牙地址

初始化 csdn stat mark line fun 上電 http 新特性

簡述

不論什麽網絡設備而言,都會有自己獨特的一個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地址的方式,後面還得再看看。應當是比較新的特性。

‘).addClass(‘pre-numbering‘).hide(); $(this).addClass(‘has-numbering‘).parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($(‘
  • ‘).text(i)); }; $numbering.fadeIn(1700); }); });

    [BLE--Link Layer]設備藍牙地址