藍(lán)牙核心規(guī)范(V5.2)7.3-深入詳解之GAP(藍(lán)牙4.0規(guī)范的核心是什么技術(shù))
藍(lán)牙篇之藍(lán)牙核心規(guī)范(V5.2)深入詳解匯總
目錄
1.GAP(Generic Access Profile)的目的是什么?
2.協(xié)議棧
3 協(xié)議角色
4.藍(lán)牙設(shè)備地址(BD_ADDR)
5.藍(lán)牙設(shè)備名稱(chēng)(用戶友好的名稱(chēng))
5.配對(duì)
6.物理傳輸方式
7.空閑模式程序–BR/EDR物理傳輸
8.操作模式和程序–LE物理傳輸
9.廣播和掃描響應(yīng)數(shù)據(jù)格式
10.GATT服務(wù)器的GAP服務(wù)和特性
1.GAP(Generic Access Profile)的目的是什么?
介紹與傳輸和應(yīng)用程序配置文件要使用的模式和訪問(wèn)過(guò)程相關(guān)的定義、建議和通用要求。
描述設(shè)備如何處于待機(jī)和連接狀態(tài),以確保藍(lán)牙設(shè)備之間始終可以建立鏈接和通道,并可以實(shí)現(xiàn)多模式操作。特別關(guān)注發(fā)現(xiàn)、鏈接建立和安全程序。
陳述對(duì)用戶界面方面的要求,主要是編碼方案和程序和參數(shù)的名稱(chēng),以保證令人滿意的用戶體驗(yàn)。
2.協(xié)議棧
3 協(xié)議角色
通過(guò)BR/EDR物理傳輸進(jìn)行操作時(shí)的角色
在GAP中,為了描述BR/EDRGAP角色中兩個(gè)設(shè)備之間發(fā)生的藍(lán)牙通信,使用甲方(建立鏈接時(shí)的分頁(yè)設(shè)備或建立鏈接上的啟動(dòng)器)和乙方(分頁(yè)設(shè)備或接受者)的通用符號(hào)。對(duì)于給定的過(guò)程,是啟動(dòng)設(shè)備發(fā)現(xiàn)、啟動(dòng)物理鏈路的建立或在現(xiàn)有鏈路上發(fā)起事務(wù)的一方。
此協(xié)議處理與發(fā)現(xiàn)和連接(鏈接和連接建立)相關(guān)的兩個(gè)設(shè)備之間的程序,以及(至少)一個(gè)設(shè)備在開(kāi)始所述的程序之前建立了鏈接(可能到第三設(shè)備)的情況。
發(fā)起者和接受者通常操作通用程序根據(jù)此協(xié)議或參考此協(xié)議的其他協(xié)議。如果接受方同時(shí)根據(jù)多個(gè)協(xié)議進(jìn)行操作,此協(xié)議描述如何處理此問(wèn)題的通用機(jī)制。
在LE物理傳輸上操作時(shí)的角色
為在LE物理傳輸上操作的設(shè)備定義了四個(gè)GAP角色:
?廣播者
?觀察著
?外圍設(shè)備
?中心設(shè)備
定義在LE物理傳輸上操作時(shí)對(duì)每個(gè)GAP角色的物理層和鏈路層功能的遵從性要求。
“M”用于強(qiáng)制性支持(用于配置文件中應(yīng)使用的功能);
“O”表示可選的支持(用于可在配置文件中使用的功能);
“C”用于條件支持(用于在支持某種其他功能時(shí)應(yīng)使用的功能);
“E”用于排除在配置文件角色內(nèi)(用于單元可能支持但不得在配置文件角色中使用的功能);
C1:如果支持被動(dòng)掃描,則可選,否則為強(qiáng)制掃描。
C2:如果支持連接參數(shù)請(qǐng)求過(guò)程,則具有強(qiáng)制性,否則是可選的
廣播角色
在廣播器角色中運(yùn)行的設(shè)備被稱(chēng)為廣播器,并且應(yīng)具有發(fā)射器,并可以具有接收器。
觀察角色
在觀察者角色中運(yùn)行的設(shè)備被稱(chēng)為觀察者,并且應(yīng)具有一個(gè)接收器,并可能具有一個(gè)發(fā)射器。
外圍設(shè)備角色、
任何接受使用任何連接建立程序建立LE活動(dòng)物理鏈路的設(shè)備都被稱(chēng)為處于外圍角色。在外圍角色中操作的設(shè)備將處于鏈路層連接狀態(tài)中的從角色。在外圍設(shè)備角色中操作的設(shè)備被稱(chēng)為外圍設(shè)備。外圍設(shè)應(yīng)具有發(fā)射機(jī)和接收器
中心設(shè)備角色
支持中心角色的設(shè)備將啟動(dòng)LE活動(dòng)物理鏈接的建立。在中心角色中操作的設(shè)備將處于鏈路層連接狀態(tài)中的主角色。在中心角色中操作的設(shè)備被稱(chēng)為中心角色。中心裝置應(yīng)同時(shí)配備發(fā)射機(jī)和接收器。
多GAP角色中的并發(fā)操作
如果由控制器支持,則設(shè)備可以同時(shí)在多個(gè)GAP角色中操作。在使用任何過(guò)程或模式之前,主機(jī)應(yīng)從控制器中讀取受支持的鏈路層狀態(tài)和狀態(tài)組合。
4.藍(lán)牙設(shè)備地址(BD_ADDR)
BD_ADDR是藍(lán)牙設(shè)備使用的地址。它在設(shè)備發(fā)現(xiàn)過(guò)程中從遠(yuǎn)程設(shè)備接收。
當(dāng)在UI級(jí)別上提到藍(lán)牙地址時(shí),應(yīng)使用術(shù)語(yǔ)“藍(lán)牙設(shè)備地址”。
在基帶級(jí)別上,BD_ADDR被表示為48位。在鏈路層上,公共和隨機(jī)設(shè)備地址被表示為48位地址。
在UI級(jí)別上,藍(lán)牙地址應(yīng)以12個(gè)十六進(jìn)制字符表示,可能分為由“:”(例如,“000C3E3A4B69”或“00:0C:3E:3A:4B:69”)分隔的子部分。在UI級(jí)別上,任何數(shù)字都應(yīng)具有MSB->LSB(從左到右)的“自然”順序。
5.藍(lán)牙設(shè)備名稱(chēng)(用戶友好的名稱(chēng))
BR/EDR/LE設(shè)備類(lèi)型應(yīng)具有一個(gè)藍(lán)牙設(shè)備名稱(chēng),無(wú)論執(zhí)行名稱(chēng)發(fā)現(xiàn)過(guò)程的物理通道如何,該設(shè)備名稱(chēng)都應(yīng)相同。
藍(lán)牙設(shè)備名稱(chēng)是藍(lán)牙設(shè)備向遠(yuǎn)程設(shè)備公開(kāi)的用戶友好的名稱(chēng)。對(duì)于支持BR/EDR設(shè)備類(lèi)型的設(shè)備,該名稱(chēng)是在LMP_NAME_RES中為響應(yīng)LMP_NAME_REQ而返回的字符串。對(duì)于支持僅限le的設(shè)備類(lèi)型的設(shè)備,該名稱(chēng)是設(shè)備名稱(chēng)特性中保存的字符串。
具有BR/EDR/LE設(shè)備類(lèi)型的設(shè)備中的藍(lán)牙設(shè)備名稱(chēng)
無(wú)論執(zhí)行名稱(chēng)發(fā)現(xiàn)過(guò)程的物理通道如何,該設(shè)備名稱(chēng)都應(yīng)相同。
對(duì)于BR/EDR物理通道,該名稱(chēng)將在LMP_NAME_RES中接收。對(duì)于LE物理通道,可以從定義的設(shè)備名稱(chēng)特征中讀取該名稱(chēng)。
注:如果本地設(shè)備支持BR/EDR? ATT,遠(yuǎn)程設(shè)備可以通過(guò)ATT通過(guò)BR/EDRATT讀取本地設(shè)備的設(shè)備名稱(chēng)特征。
在用戶界面級(jí)別上的術(shù)語(yǔ)
當(dāng)在UI級(jí)別上引用藍(lán)牙設(shè)備名稱(chēng)時(shí),應(yīng)使用術(shù)語(yǔ)“藍(lán)牙設(shè)備名稱(chēng)”。
藍(lán)牙名稱(chēng)的的長(zhǎng)度
藍(lán)牙設(shè)備名稱(chēng)最多可達(dá)248字節(jié)。它應(yīng)根據(jù)UTF-8進(jìn)行編碼(因此,如果使用U+0000到U+007F范圍之外的編碼點(diǎn),在UI級(jí)別輸入的名稱(chēng)可能被限制為62個(gè)字符)。
設(shè)備不能期望通用遠(yuǎn)程設(shè)備能夠處理藍(lán)牙設(shè)備名稱(chēng)的前40個(gè)字符。如果遠(yuǎn)程設(shè)備的顯示功能有限,則它可能只使用前20個(gè)字符。
藍(lán)牙密碼鑰(藍(lán)牙PIN)
藍(lán)牙密碼密鑰可用于在通過(guò)配對(duì)過(guò)程創(chuàng)建互鏈接密鑰時(shí)相互驗(yàn)證兩個(gè)藍(lán)牙設(shè)備。該密碼密鑰可以用于配對(duì)過(guò)程來(lái)生成初始鏈接密鑰
PIN可以在UI級(jí)上輸入,但也可以存儲(chǔ)在設(shè)備中;例如,在一個(gè)沒(méi)有足夠的MMI來(lái)輸入和顯示數(shù)字的設(shè)備的情況下。
用戶界面級(jí)別的條款
當(dāng)在UI級(jí)別上提及藍(lán)牙PIN時(shí),術(shù)語(yǔ)“藍(lán)牙應(yīng)使用“密鑰”。
對(duì)于安全簡(jiǎn)單配對(duì)和安全管理器,藍(lán)牙密碼密鑰是一個(gè)6位的數(shù)值。它表示為0x000000000-0x000F4023F(999999)范圍內(nèi)的整數(shù)值。
PIN碼最多可達(dá)16個(gè)字符。為了充分利用安全性,所有的pin都應(yīng)該是16個(gè)字符長(zhǎng)。變量PIN應(yīng)由從Unicode范圍U+0000到U+007F內(nèi)選擇的字母數(shù)字字符組成。如果PIN包含任何十進(jìn)制數(shù)字,則應(yīng)使用Unicode基本拉丁字符(即U+0030到U+0039)進(jìn)行編碼。
設(shè)備類(lèi)型
設(shè)備類(lèi)別是在BR/EDR物理傳輸上的設(shè)備發(fā)現(xiàn)過(guò)程中接收到的一個(gè)參數(shù),指示設(shè)備的類(lèi)型。“設(shè)備類(lèi)別”參數(shù)僅在使用BR/EDR物理傳輸?shù)腂R/EDR和BR/EDR/LE設(shè)備上使用。
有些設(shè)備提供多個(gè)服務(wù),并且給定的服務(wù)可以由不同的設(shè)備類(lèi)型提供。因此,設(shè)備類(lèi)型與受支持的服務(wù)沒(méi)有一對(duì)一的關(guān)系。主設(shè)備類(lèi)和次要設(shè)備類(lèi)字段不應(yīng)用于確定設(shè)備是否支持任何特定的服務(wù)。它可以用于在發(fā)出服務(wù)發(fā)現(xiàn)請(qǐng)求之前最有可能支持所需服務(wù)的設(shè)備的指示,并且可以用于在支持同一服務(wù)的多個(gè)設(shè)備中進(jìn)行選擇時(shí)指導(dǎo)用戶。
外觀特征
外觀特征包含一個(gè)16位的數(shù)字,可以映射到描述設(shè)備發(fā)現(xiàn)過(guò)程中設(shè)備的物理表示的圖標(biāo)或字符串。它是位于設(shè)備的GATT服務(wù)器上的GAP服務(wù)的一個(gè)特征。
外觀特征值應(yīng)映射到一個(gè)圖標(biāo)或字符串或類(lèi)似于向用戶傳達(dá)對(duì)設(shè)備的可視化描述的東西。這允許用戶純粹通過(guò)視覺(jué)外觀來(lái)確定發(fā)現(xiàn)哪些設(shè)備。如果顯示一個(gè)字符串,則應(yīng)將該字符串轉(zhuǎn)換為用戶為設(shè)備選擇的語(yǔ)言。
廣播碼
Broadcast_Code參數(shù)用于支持加密的BIS。它用于加密BIS傳輸時(shí)數(shù)據(jù)的加密過(guò)程和接收BIS時(shí)解密數(shù)據(jù)的過(guò)程。
當(dāng)在UI級(jí)別上提到Broadcast_Code參數(shù)時(shí),應(yīng)使用術(shù)語(yǔ)“藍(lán)牙隱私代碼”。
在除UI以外的所有級(jí)別上,廣播代碼參數(shù)都應(yīng)表示為一個(gè)128位的值。從字符串到數(shù)字的轉(zhuǎn)換應(yīng)通過(guò)在UTF-8中表示字符串,將結(jié)果字節(jié)放在從最重要的位開(kāi)始的值的8位字段中,然后在必要時(shí)在最重要的位中填充零。例如,字符串“B?rneHouse”表示為值0x00000000_6573756F_4820656E_72B8C342
5.配對(duì)
在BR/EDR物理鏈接上的配對(duì)是在LMP級(jí)別上定義的。
在LE物理鏈接上的配對(duì)由安全管理器規(guī)范定義。
用戶啟動(dòng)綁定過(guò)程并輸入密鑰,在兩個(gè)藍(lán)牙設(shè)備之間創(chuàng)建bond(可能還有安全關(guān)系),或者在建立過(guò)程中請(qǐng)求用戶輸入密鑰,因?yàn)檫@些設(shè)備事先沒(méi)有共享公共鏈接密鑰。在第一種情況下,用戶被稱(chēng)為執(zhí)行“綁定(通過(guò)輸入密碼密鑰)”,而在第二種情況下,用戶被稱(chēng)為“使用密碼密鑰進(jìn)行身份驗(yàn)證”。
6.物理傳輸方式
發(fā)現(xiàn)模式
不可發(fā)現(xiàn)的模式
可發(fā)現(xiàn)模式
有限的可發(fā)現(xiàn)模式
通用可發(fā)現(xiàn)模式
連接模式
不可連接模式
可連接模式
綁定模式
非綁定模式
綁定模式
同步模式
非同步模式
同步模式
發(fā)現(xiàn)模式
當(dāng)藍(lán)牙設(shè)備處于不可發(fā)現(xiàn)的模式時(shí),它不會(huì)響應(yīng)查詢(xún)。
據(jù)說(shuō),當(dāng)藍(lán)牙設(shè)備處于有限的可發(fā)現(xiàn)模式或一般可發(fā)現(xiàn)模式時(shí),即可發(fā)現(xiàn)或設(shè)置為可發(fā)現(xiàn)模式。即使藍(lán)牙設(shè)備被發(fā)現(xiàn),它也可能由于其他基帶活動(dòng)而可能無(wú)法響應(yīng)查詢(xún)(例如,預(yù)留的同步插槽應(yīng)該優(yōu)先于響應(yīng)包,同步鏈接可能會(huì)阻止返回響應(yīng))。不響應(yīng)查詢(xún)的藍(lán)牙設(shè)備被稱(chēng)為靜默設(shè)備。
發(fā)現(xiàn)的速度取決于藍(lán)牙設(shè)備的查詢(xún)掃描間隔的配置和查詢(xún)掃描類(lèi)型。主機(jī)能夠根據(jù)功耗、帶寬和所需的發(fā)現(xiàn)速度之間的權(quán)衡來(lái)配置這些參數(shù)。
不可發(fā)現(xiàn)的模式
當(dāng)藍(lán)牙設(shè)備處于不可發(fā)現(xiàn)的模式時(shí),它永遠(yuǎn)不能進(jìn)入INQUIRY_SCAN狀態(tài)。
有限的可發(fā)現(xiàn)模式
有限的可發(fā)現(xiàn)模式應(yīng)由只需要在有限的時(shí)間內(nèi)、在臨時(shí)條件下或在特定事件中被發(fā)現(xiàn)的設(shè)備使用。
使用有限的可發(fā)現(xiàn)模式有兩個(gè)常見(jiàn)的原因:
當(dāng)向終端用戶展示已發(fā)現(xiàn)設(shè)備時(shí),遠(yuǎn)程設(shè)備使用通用查詢(xún)程序優(yōu)先排序或以有限可發(fā)現(xiàn)方式識(shí)別設(shè)備,因?yàn)橥ǔS脩粽谂c它們交互。
有限的可發(fā)現(xiàn)模式還可用于允許遠(yuǎn)程設(shè)備使用有限的查詢(xún)程序來(lái)過(guò)濾掉使用一般的可發(fā)現(xiàn)模式的設(shè)備。
藍(lán)牙設(shè)備的有限可發(fā)現(xiàn)模式不得超過(guò)TGAP(104)。對(duì)有限查詢(xún)?cè)L問(wèn)碼的掃描可以并行或與一般查詢(xún)?cè)L問(wèn)碼的掃描順序進(jìn)行。當(dāng)在有限的可發(fā)現(xiàn)模式下時(shí),應(yīng)使用以下選項(xiàng)之一。
并行掃描
當(dāng)藍(lán)牙設(shè)備處于有限的可發(fā)現(xiàn)模式時(shí),當(dāng)發(fā)現(xiàn)速度比功耗或帶寬更重要時(shí),它建議藍(lán)牙設(shè)備至少每臺(tái)TGAP(105)進(jìn)入INQUIRY_SCAN狀態(tài),并使用交錯(cuò)查詢(xún)掃描。
但是,如果功耗或帶寬很重要,但不是很重要,則建議藍(lán)牙設(shè)備至少每一次TGAP(102)都進(jìn)入INQUIRY_SCAN狀態(tài),并使用交錯(cuò)查詢(xún)掃描。
當(dāng)功耗或帶寬為關(guān)鍵時(shí),建議藍(lán)牙設(shè)備至少每次TGAP(102)都進(jìn)入INQUIRY_SCAN狀態(tài),并使用非隔行查詢(xún)掃描。
在所有情況下,藍(lán)牙設(shè)備應(yīng)在TGAP(102)中至少進(jìn)入一次INQUIRY_SCAN狀態(tài),并掃描GIAC和LIAC至少掃描TGAP(101)。
當(dāng)SCO或eSCO鏈路正在運(yùn)行時(shí),建議使用交錯(cuò)掃描,以顯著減少可發(fā)現(xiàn)的時(shí)間。
順序掃描
當(dāng)藍(lán)牙設(shè)備處于有限的可發(fā)現(xiàn)模式時(shí),應(yīng)在TGAP(102)中至少進(jìn)入一次INQUIRY_SCAN狀態(tài),掃描GIAC至少TGAP(101),在TGAP(102)中多次進(jìn)入一次INQUIRY_SCAN狀態(tài),掃描LIAC至少TGAP(101)
如果在有限的可發(fā)現(xiàn)模式下接收到查詢(xún)消息,則進(jìn)入INQUIRY_RESPONSE狀態(tài)的條目將優(yōu)先于下一個(gè)進(jìn)入INQUIRY_SCAN狀態(tài)的條目,直到查詢(xún)響應(yīng)完成。
通用發(fā)現(xiàn)模式
通用可發(fā)現(xiàn)模式應(yīng)用于需要連續(xù)發(fā)現(xiàn)或不需要特定情況的設(shè)備。
執(zhí)行有限查詢(xún)程序的設(shè)備將不會(huì)發(fā)現(xiàn)通用可發(fā)現(xiàn)模式下的設(shè)備。如果已知執(zhí)行發(fā)現(xiàn)的設(shè)備將使用有限的查詢(xún)程序,則不應(yīng)使用通用可發(fā)現(xiàn)模式。
當(dāng)藍(lán)牙設(shè)備通常處于一般可發(fā)現(xiàn)模式,且發(fā)現(xiàn)速度比功耗或帶寬更重要時(shí),建議藍(lán)牙設(shè)備至少每個(gè)TGAP(105)進(jìn)入INQUIRY_SCAN狀態(tài),并使用交錯(cuò)查詢(xún)掃描。
但是,如果功耗或帶寬很重要,但不是很重要,則建議藍(lán)牙設(shè)備至少每一次TGAP(102)都進(jìn)入INQUIRY_SCAN狀態(tài),并使用交錯(cuò)查詢(xún)掃描。
當(dāng)功耗或帶寬為關(guān)鍵時(shí),建議藍(lán)牙設(shè)備至少每次TGAP(102)都進(jìn)入INQUIRY_SCAN狀態(tài),并使用非隔行查詢(xún)掃描。
在所有情況下,藍(lán)牙設(shè)備應(yīng)在TGAP(102)中至少進(jìn)入一次INQUIRY_SCAN狀態(tài),并掃描GIAC至少為T(mén)GAP(101)。
當(dāng)SCO或eSCO鏈路正在運(yùn)行時(shí),建議使用交錯(cuò)掃描,以顯著減少可發(fā)現(xiàn)的時(shí)間。
一般可發(fā)現(xiàn)模式下的設(shè)備不得響應(yīng)LIAC的查詢(xún)。
連接模式
當(dāng)藍(lán)牙設(shè)備處于不可連接模式時(shí),它不會(huì)響應(yīng)尋呼。當(dāng)藍(lán)牙設(shè)備處于可連接模式時(shí),它會(huì)響應(yīng)尋呼。
連接的速度取決于藍(lán)牙設(shè)備的頁(yè)面掃描間隔的配置和頁(yè)面掃描類(lèi)型。主機(jī)能夠根據(jù)功耗、帶寬和所需的連接速度之間的權(quán)衡來(lái)配置這些參數(shù)。
不可連接模式
當(dāng)藍(lán)牙設(shè)備處于不可連接模式時(shí),它永遠(yuǎn)不能進(jìn)入PAGE_SCAN狀態(tài)。
當(dāng)藍(lán)牙設(shè)備處于可連接模式時(shí),應(yīng)定期進(jìn)入PAGE_SCAN狀態(tài)。該設(shè)備使用藍(lán)牙設(shè)備地址BD_ADDR執(zhí)行頁(yè)面掃描。連接速度是功耗/可用帶寬和速度之間的權(quán)衡。藍(lán)牙主機(jī)可以使用頁(yè)面掃描間隔、頁(yè)面掃描窗口和交錯(cuò)掃描參數(shù)來(lái)進(jìn)行這些權(quán)衡。
當(dāng)連接速度非常低時(shí),應(yīng)使用R0頁(yè)面掃描重要信息,以及尋呼設(shè)備對(duì)藍(lán)牙時(shí)鐘。在這些條件下,分頁(yè)是可能完成的在兩次頁(yè)面掃描窗口內(nèi)。因?yàn)轫?yè)面掃描間隔是與頁(yè)面掃描窗口相同,任何其他流量都無(wú)法通過(guò)使用R0頁(yè)面掃描時(shí)的藍(lán)牙鏈接。在R0頁(yè)掃描中,無(wú)法使用交錯(cuò)掃描。R0頁(yè)面掃描是最高功率消費(fèi)模式的運(yùn)作。
當(dāng)連接時(shí)間很關(guān)鍵,但另一個(gè)設(shè)備要么沒(méi)有對(duì)藍(lán)牙時(shí)鐘的估計(jì),或者當(dāng)估計(jì)可能過(guò)時(shí)時(shí),最好使用R1頁(yè)面掃描和非常短的頁(yè)面掃描間隔、TGAP(106)和交錯(cuò)掃描。
當(dāng)連接時(shí)間重要但不夠關(guān)鍵以犧牲大量帶寬和/或功耗時(shí),建議使用TGAP(107)或TGAP(108)作為掃描間隔。使用交錯(cuò)掃描將使連接時(shí)間減少一半,但可能使用兩倍的功耗。在這種情況下,根據(jù)是否使用交錯(cuò)掃描,可以在頁(yè)掃描間隔內(nèi)完成分頁(yè)。在這種情況下,藍(lán)牙設(shè)備應(yīng)進(jìn)行頁(yè)面掃描至少為T(mén)GAP(101)。
當(dāng)SCO或eSCO鏈路正在運(yùn)行時(shí),建議使用交錯(cuò)掃描以顯著減少連接時(shí)間。
綁定模式
關(guān)于綁定,藍(lán)牙設(shè)備應(yīng)處于不可綁定模式或可綁定模式。在可綁定模式下,藍(lán)牙設(shè)備接受由遠(yuǎn)程設(shè)備發(fā)起的綁定,而在不可綁定模式下,它不接受。
當(dāng)藍(lán)牙設(shè)備處于不可綁定模式時(shí),它不應(yīng)接受導(dǎo)致連接的配對(duì)請(qǐng)求。處于不可綁定模式下的設(shè)備可能會(huì)接受不要求或不需要綁定的連接
不可綁定模式的設(shè)備應(yīng)響應(yīng)接收到的LMP_IN_RAND,原因不允許配對(duì)。
當(dāng)兩個(gè)設(shè)備都支持安全簡(jiǎn)單配對(duì),且本地設(shè)備處于不可綁定模式時(shí),本地主機(jī)應(yīng)響應(yīng)Authentication_Requirements參數(shù)請(qǐng)求專(zhuān)用連接或一般連接的負(fù)響應(yīng)。
綁定模式
當(dāng)藍(lán)牙設(shè)備處于可綁定模式,且本地或遠(yuǎn)程設(shè)備都不支持安全簡(jiǎn)單配對(duì)時(shí),本地設(shè)備應(yīng)響應(yīng)接收到的LMP_IN_RAND(如果有固定PIN,則響應(yīng)LMP_IN_RAND)。
當(dāng)兩個(gè)設(shè)備都支持安全簡(jiǎn)單配對(duì)時(shí),本地主機(jī)應(yīng)積極響應(yīng)用戶的確認(rèn)請(qǐng)求。
同步模式
當(dāng)藍(lán)牙設(shè)備處于可同步模式時(shí),它將為其活動(dòng)的無(wú)連接從屬?gòu)V播數(shù)據(jù)包傳輸定時(shí)和頻率信息。當(dāng)藍(lán)牙設(shè)備不可同步時(shí),將不傳輸定時(shí)和頻率信息。
主機(jī)能夠根據(jù)帶寬、對(duì)其他設(shè)備的潛在干擾、功耗和從端接收同步列車(chē)包所需的時(shí)間來(lái)配置同步列車(chē)間隔。
當(dāng)藍(lán)牙設(shè)備處于不可同步模式時(shí),它永遠(yuǎn)不能進(jìn)入同步傳輸子狀態(tài)。
同步模式
當(dāng)藍(lán)牙設(shè)備處于可同步模式時(shí),應(yīng)使用TGAP(Sync_Train_Interval)的同步列車(chē)間隔進(jìn)入同步傳輸子狀態(tài)。
在實(shí)現(xiàn)可同步后,藍(lán)牙設(shè)備應(yīng)至少可同步TGAP(Sync_Train_Duration)。
7.安全方面的物理傳輸
認(rèn)證
通用身份驗(yàn)證過(guò)程描述了當(dāng)一個(gè)藍(lán)牙設(shè)備向另一個(gè)藍(lán)牙設(shè)備發(fā)起身份驗(yàn)證時(shí),如何使用LMP身份驗(yàn)證和LMP配對(duì)過(guò)程,這取決于是否存在鏈路密鑰以及是否允許配對(duì)。
本地設(shè)備應(yīng)在鏈路建立后啟動(dòng)認(rèn)證。該遠(yuǎn)程設(shè)備可以在鏈路建立期間或之后啟動(dòng)安全性。
安全模式
設(shè)備可以同時(shí)支持兩種安全模式:對(duì)與不支持安全簡(jiǎn)單配對(duì)的遠(yuǎn)程設(shè)備向后兼容的安全模式2,以及對(duì)支持安全簡(jiǎn)單配對(duì)的設(shè)備的安全模式4。
遺留安全模式適用于那些具有控制器或不支持SSP的主機(jī)的設(shè)備。
當(dāng)遠(yuǎn)程藍(lán)牙設(shè)備處于安全模式1時(shí),它將永遠(yuǎn)不會(huì)啟動(dòng)任何安全過(guò)程(即,它將永遠(yuǎn)不會(huì)發(fā)送LMP_AU_RAND、LMP_IN_RAND或LMP_ENCRYPTION_MODE_REQ)。
安全模式2(服務(wù)級(jí)強(qiáng)制安全性)
當(dāng)遠(yuǎn)程藍(lán)牙設(shè)備處于安全模式2時(shí),在接收到通道建立請(qǐng)求(L2CAP_ConnectReq)或自己?jiǎn)?dòng)通道建立過(guò)程之前,它將不會(huì)啟動(dòng)任何安全過(guò)程。是否啟動(dòng)了安全過(guò)程,取決于所請(qǐng)求的通道或服務(wù)的安全要求。
處于安全模式2中的藍(lán)牙設(shè)備應(yīng)使用至少以下屬性對(duì)其服務(wù)的安全要求進(jìn)行分類(lèi):
授權(quán)需要
身份驗(yàn)證需要
加密
注意:安全模式1可以被認(rèn)為(至少?gòu)倪h(yuǎn)程設(shè)備的角度來(lái)看)是安全模式2的一種特殊情況,其中沒(méi)有服務(wù)注冊(cè)任何安全要求。
安全模式3(鏈路級(jí)強(qiáng)制安全性)
當(dāng)遠(yuǎn)程藍(lán)牙設(shè)備處于安全模式3時(shí),它將在發(fā)送LMP_SETUP_COMPLETE之前啟動(dòng)安全程序。
安全模式3中的藍(lán)牙設(shè)備可以根據(jù)主機(jī)中的設(shè)置(例如,只允許與預(yù)先配對(duì)的設(shè)備通信)來(lái)拒絕主機(jī)連接請(qǐng)求(使用LMP_NOT_ACCEPTED響應(yīng)LMP_HOST_CONNECTION_REQ)。
安全模式4(服務(wù)級(jí)別強(qiáng)制安全性)
安全模式4中的藍(lán)牙設(shè)備應(yīng)至少使用以下屬性(按降低安全級(jí)別的順序)對(duì)其服務(wù)的安全要求進(jìn)行分類(lèi):
經(jīng)過(guò)驗(yàn)證的鏈接密鑰需要
未經(jīng)驗(yàn)證的鏈接密鑰需要
安全性可選;僅限于特定服務(wù)
經(jīng)過(guò)身份驗(yàn)證的鏈接密鑰是一個(gè)鏈接鍵,其中使用了數(shù)字比較、帶外或通鍵條目簡(jiǎn)單配對(duì)關(guān)聯(lián)模型。經(jīng)過(guò)身份驗(yàn)證的鏈接密鑰對(duì)中間人(MITM)攻擊有保護(hù)作用。為了確保在簡(jiǎn)單配對(duì)過(guò)程中創(chuàng)建了一個(gè)經(jīng)過(guò)身份驗(yàn)證的鏈接密鑰,Authentication_Requirements參數(shù)應(yīng)該設(shè)置為“MITM保護(hù)必需”選項(xiàng)之一。一個(gè)未經(jīng)身份驗(yàn)證的鏈接密鑰是一個(gè)鏈接密鑰,其中使用了安全簡(jiǎn)單配對(duì)關(guān)聯(lián)模型。未經(jīng)身份驗(yàn)證的鏈接密鑰對(duì)MITM攻擊沒(méi)有保護(hù)作用。
當(dāng)設(shè)備處于可綁定模式時(shí),它應(yīng)在進(jìn)入可連接模式或建立鏈路之前啟用安全簡(jiǎn)單配對(duì)模式.
安全模式4中的藍(lán)牙設(shè)備在遠(yuǎn)程設(shè)備處于安全模式3時(shí),應(yīng)在鏈路建立時(shí)響應(yīng)認(rèn)證請(qǐng)求。
安全模式4的藍(lán)牙設(shè)備在嘗試訪問(wèn)遠(yuǎn)程設(shè)備提供的服務(wù)之前以及在授予向遠(yuǎn)程設(shè)備提供的服務(wù)之前強(qiáng)制執(zhí)行其安全要求。服務(wù)訪問(wèn)可以通過(guò)L2CAP通道或通過(guò)L2CAP以上的協(xié)議建立的通道,如RFCOMM進(jìn)行。
設(shè)備可能處于僅限安全連接使用的模式。在“僅安全連接”模式下,BR/EDR物理傳輸上的所有服務(wù)(允許具有安全模式4、0級(jí)的服務(wù)除外)都需要安全模式4、4級(jí)。當(dāng)服務(wù)需要安全模式4、4級(jí),并且物理傳輸不支持安全連接或請(qǐng)求未經(jīng)身份驗(yàn)證的配對(duì)時(shí),設(shè)備應(yīng)拒絕新的傳出和傳入服務(wù)級(jí)別連接。
當(dāng)不支持安全連接的物理傳輸,試圖訪問(wèn)需要安全模式4,級(jí)別4的服務(wù)時(shí),設(shè)備可以使用錯(cuò)誤代碼0x05(身份驗(yàn)證失敗)斷開(kāi)ACL連接。
注意:一個(gè)設(shè)備可以同時(shí)操作多個(gè)物理傳輸——在這種情況下,所有的物理傳輸都需要同時(shí)啟用僅限安全連接的模式。
訪問(wèn)遠(yuǎn)程服務(wù)的安全性(發(fā)起側(cè))
當(dāng)響應(yīng)設(shè)備不支持安全簡(jiǎn)單配對(duì)時(shí),當(dāng)啟動(dòng)設(shè)備請(qǐng)求用戶輸入PIN時(shí),它可能會(huì)斷開(kāi)鏈接的連接。這可能是由于缺少L2CAP通道存在的時(shí)間超過(guò)特定于實(shí)現(xiàn)的時(shí)間量(例如,幾秒鐘)。當(dāng)這種情況發(fā)生時(shí),啟動(dòng)設(shè)備應(yīng)允許用戶完成輸入PIN,然后重新啟動(dòng)配對(duì)過(guò)程。
1.訪問(wèn)遠(yuǎn)程服務(wù)所需的配對(duì)
當(dāng)安全模式4的藍(lán)牙設(shè)備通過(guò)面向連接的L2CAP信道啟動(dòng)對(duì)遠(yuǎn)程服務(wù)的訪問(wèn)且沒(méi)有足夠的鏈路密鑰時(shí),本地設(shè)備應(yīng)在發(fā)送信道建立請(qǐng)求(L2CAP_ConnectReq或諸如RFCOMM建立請(qǐng)求等高級(jí)信道建立請(qǐng)求)之前執(zhí)行配對(duì)程序并啟用加密。
當(dāng)安全模式4的藍(lán)牙設(shè)備通過(guò)單播無(wú)連接L2CAP通道向遠(yuǎn)程服務(wù)傳輸數(shù)據(jù)且沒(méi)有足夠的密鑰時(shí),本地設(shè)備應(yīng)在無(wú)連接L2CAP通道單播數(shù)據(jù)上執(zhí)行配對(duì)程序并啟用加密。
如果配對(duì)不成功,則本地設(shè)備不應(yīng)發(fā)送信道建立請(qǐng)求。本地設(shè)備最多可以重試配對(duì)三次(3)。如果連續(xù)三次配對(duì)失敗,本地設(shè)備應(yīng)斷開(kāi)帶有錯(cuò)誤代碼為0x05-認(rèn)證失敗的ACL鏈接。
如果生成的鏈路密鑰至少不如預(yù)期或要求的類(lèi)型,本地設(shè)備將建立失敗,并可能斷開(kāi)錯(cuò)誤代碼0x05-身份驗(yàn)證失敗。
2.訪問(wèn)遠(yuǎn)程服務(wù)所需的身份驗(yàn)證
當(dāng)安全模式4的藍(lán)牙設(shè)備通過(guò)面向連接的L2CAP信道啟動(dòng)對(duì)遠(yuǎn)程服務(wù)的訪問(wèn),并且遠(yuǎn)程設(shè)備有足夠的鏈路密鑰時(shí),它應(yīng)在發(fā)送信道建立請(qǐng)求(L2CAP_ConnectReq或更高的層信道建立請(qǐng)求)之前對(duì)遠(yuǎn)程設(shè)備進(jìn)行驗(yàn)證并啟用加密。
當(dāng)安全模式4的藍(lán)牙設(shè)備通過(guò)無(wú)連接的L2CAP通道將單播數(shù)據(jù)傳輸?shù)竭h(yuǎn)程服務(wù),并且應(yīng)用需要安全,并且有足夠的鏈路密鑰,那么本地設(shè)備應(yīng)在L2CAP無(wú)連接通道上傳輸單播數(shù)據(jù)之前驗(yàn)證遠(yuǎn)程設(shè)備并啟用加密。
如果服務(wù)需要身份驗(yàn)證但沒(méi)有成功,或者沒(méi)有足夠的鏈接密鑰,則本地設(shè)備不得啟用加密,也不得發(fā)送信道建立請(qǐng)求,也不得通過(guò)L2CAP無(wú)連接信道發(fā)送任何單播數(shù)據(jù)。然后,主機(jī)可以通知用戶并提供執(zhí)行配對(duì)。
3.交叉?zhèn)鬏斆荑€的生成和分發(fā)
在啟用加密并且兩個(gè)設(shè)備都支持交叉?zhèn)鬏斆荑€生成后,BR/EDR傳輸?shù)闹鞣?wù)器可以執(zhí)行LE密鑰生成和分發(fā)
通過(guò)遠(yuǎn)程設(shè)備訪問(wèn)本地服務(wù)的安全性(響應(yīng)端)
當(dāng)遠(yuǎn)程設(shè)備試圖訪問(wèn)處于安全模式4的藍(lán)牙設(shè)備提供的服務(wù),且存在足夠的鏈路密鑰且尚未執(zhí)行身份驗(yàn)證時(shí),本地設(shè)備應(yīng)在收到信道建立請(qǐng)求之后但在發(fā)送信道建立確認(rèn)(結(jié)果代碼為0x0000或諸如RFCOMM的高級(jí)信道建立確認(rèn)的L2CAP_ConnectRsp)之前,對(duì)遠(yuǎn)程設(shè)備進(jìn)行身份驗(yàn)證并啟用加密。
當(dāng)L2CAP是用于所請(qǐng)求服務(wù)的信道建立協(xié)議時(shí),響應(yīng)設(shè)備應(yīng)在收到L2CAP_ConnectReq后,由包含結(jié)果代碼0x0001(連接掛起)的響應(yīng)設(shè)備發(fā)送L2CAP_ConnectRsp信令包,該安全程序可能導(dǎo)致提示本地用戶輸入(例如,使用密碼項(xiàng)或數(shù)值比較關(guān)聯(lián)模型使用PIN或安全簡(jiǎn)單配對(duì))。這將停止遠(yuǎn)程設(shè)備上的L2CAP RTX計(jì)時(shí)器(可能短至1秒),并將調(diào)用遠(yuǎn)程設(shè)備上的ERTX計(jì)時(shí)器,這至少持續(xù)時(shí)間為60秒。
1.通過(guò)遠(yuǎn)程設(shè)備訪問(wèn)本地服務(wù)所需的配對(duì)
當(dāng)遠(yuǎn)程設(shè)備試圖訪問(wèn)處于安全模式4的藍(lán)牙設(shè)備提供的服務(wù),并且由于鏈路密鑰缺失或不足而需要配對(duì)時(shí),本地設(shè)備應(yīng)在收到信道建立請(qǐng)求和發(fā)送信道建立確認(rèn)(結(jié)果代碼為0x0000或RFCOMM等更高級(jí)的信道建立響應(yīng))之前,執(zhí)行配對(duì)過(guò)程并啟用加密。
如果配對(duì)不成功,則本地設(shè)備不得發(fā)送通道建立確認(rèn)書(shū)。本地設(shè)備最多可以重試配對(duì)三次(3)。如果連續(xù)三次配對(duì)失敗,則本地設(shè)備應(yīng)斷開(kāi)0x0個(gè)錯(cuò)誤代碼0x05-認(rèn)證失敗的ACL鏈接。
如果生成的鏈路密鑰至少不如預(yù)期或需要的類(lèi)型,那么本地設(shè)備將失敗的通道建立,并可能斷開(kāi)連接與錯(cuò)誤代碼0x05-身份驗(yàn)證失敗。
2.通過(guò)遠(yuǎn)程設(shè)備訪問(wèn)本地服務(wù)所需的身份驗(yàn)證
如果認(rèn)證不成功,則本地設(shè)備不得發(fā)送信道建立確認(rèn)。主機(jī)此時(shí)可以通知用戶并提供執(zhí)行配對(duì)。
安全模式4中的藍(lán)牙設(shè)備在遠(yuǎn)程設(shè)備處于安全模式3時(shí),應(yīng)響應(yīng)鏈路建立過(guò)程中的認(rèn)證和配對(duì)請(qǐng)求。但是,對(duì)遠(yuǎn)程設(shè)備的認(rèn)證應(yīng)在接收到信道建立請(qǐng)求之后執(zhí)行,并在發(fā)送信道建立響應(yīng)之前執(zhí)行。
3.交叉?zhèn)鬏斆荑€的生成和分發(fā)
在啟用加密并且兩個(gè)設(shè)備都支持交叉?zhèn)鬏斆荑€生成后,BR/EDR傳輸?shù)闹鞣?wù)器可以執(zhí)行LE密鑰生成和分發(fā)
身份驗(yàn)證失敗后的簡(jiǎn)單配對(duì)
當(dāng)兩個(gè)設(shè)備都支持安全簡(jiǎn)單配對(duì)時(shí),所有非sdp連接都會(huì)被加密,無(wú)論是否需要安全或設(shè)備是否被綁定。這兩個(gè)設(shè)備之間的初始連接將通過(guò)安全簡(jiǎn)單配對(duì)產(chǎn)生一個(gè)鏈接鍵。根據(jù)是否執(zhí)行了綁定和啟動(dòng)設(shè)備的安全策略,可以存儲(chǔ)鏈接密鑰。當(dāng)存儲(chǔ)鏈路密鑰時(shí),到同一設(shè)備的后續(xù)連接將使用身份驗(yàn)證,但如果遠(yuǎn)程設(shè)備已經(jīng)刪除了鏈路密鑰,這可能會(huì)失敗。表5.2定義了根據(jù)鏈接鍵的類(lèi)型以及是否執(zhí)行鍵合的操作。
IO功能
一旦建立了連接,如果主機(jī)確定需要安全,并且兩個(gè)設(shè)備都支持安全簡(jiǎn)單配對(duì),則這些設(shè)備將執(zhí)行IO能力交換。IO能力交換的目的是確定在簡(jiǎn)單配對(duì)的認(rèn)證階段第1階段中使用的認(rèn)證算法。
將輸入/輸出能力映射到IO能力
單個(gè)輸入和輸出能力被映射到單個(gè)IO能力,稍后用于確定將使用哪種身份驗(yàn)證算法。
當(dāng)一個(gè)設(shè)備具有來(lái)自該遠(yuǎn)程設(shè)備的OOB身份驗(yàn)證信息時(shí),它將在LMP_IO_CAPABILITY_RESPDU中指示它。當(dāng)任何一臺(tái)設(shè)備都有OOB信息時(shí),都將使用OOB關(guān)聯(lián)模型
主機(jī)可以允許鏈接管理器忽略IO功能,并通過(guò)將Authentication_Requirements參數(shù)設(shè)置為MITM保護(hù)不必需選項(xiàng)之一來(lái)使用自動(dòng)接受的數(shù)字比較協(xié)議。
IO和OOB能力映射到身份驗(yàn)證階段1的方法
確定在身份驗(yàn)證階段1中使用的關(guān)聯(lián)模型分三個(gè)步驟執(zhí)行。
首先,設(shè)備查看在遠(yuǎn)程IO功能中接收到的OOB身份驗(yàn)證數(shù)據(jù)存在參數(shù)。如果任何一個(gè)設(shè)備都接收到了OOB身份驗(yàn)證數(shù)據(jù),則將使用OOB關(guān)聯(lián)模型。在簡(jiǎn)單配對(duì)的IO能力交換步驟中,由設(shè)備表示接收OOB信息的事件。
第二,如果兩個(gè)設(shè)備都未接收到OOB認(rèn)證數(shù)據(jù),并且兩個(gè)設(shè)備都將Authentication_Requirements參數(shù)設(shè)置為MITM保護(hù)不必需選項(xiàng)之一,認(rèn)證階段1的功能應(yīng)好像兩個(gè)設(shè)備的IO功能都設(shè)置為僅顯示(例如,與兩個(gè)設(shè)備上的自動(dòng)確認(rèn)進(jìn)行數(shù)值比較)。
最后,如果兩個(gè)設(shè)備都沒(méi)有接收到OOB驗(yàn)證數(shù)據(jù),如果一個(gè)或兩個(gè)設(shè)備都將Authentication_Requirements參數(shù)設(shè)置為MITM保護(hù)必需選項(xiàng)之一,則IO和OOB功能將映射到表5.7中定義的驗(yàn)證階段1方法。將Authentication_Requirements參數(shù)設(shè)置為MITM保護(hù)必需選項(xiàng)之一的主機(jī)應(yīng)驗(yàn)證生成的鏈接密鑰是經(jīng)過(guò)驗(yàn)證的組合密鑰。表5.7還列出了組合密鑰是否導(dǎo)致經(jīng)過(guò)身份驗(yàn)證或未經(jīng)身份驗(yàn)證的鏈接密鑰。
帶外(OOB)
帶外機(jī)制也可用于通信發(fā)現(xiàn)信息以及與配對(duì)過(guò)程相關(guān)的其他信息。
如果當(dāng)一個(gè)或兩個(gè)設(shè)備都有OOB身份驗(yàn)證數(shù)據(jù)時(shí),簡(jiǎn)單配對(duì)失敗,則兩個(gè)設(shè)備都應(yīng)丟棄OOB身份驗(yàn)證數(shù)據(jù),而最初啟動(dòng)身份驗(yàn)證的設(shè)備應(yīng)重新啟動(dòng)身份驗(yàn)證。盡管用戶可能參與由兩個(gè)設(shè)備的IO功能定義的身份驗(yàn)證,但當(dāng)一個(gè)或兩個(gè)設(shè)備的OOB身份驗(yàn)證數(shù)據(jù)失效時(shí),回到帶內(nèi)關(guān)聯(lián)模型將防止死鎖情況。
安全性數(shù)據(jù)庫(kù)
安全模式4的藍(lán)牙設(shè)備應(yīng)使用以下級(jí)別屬性(降低安全要求,以便與支持安全簡(jiǎn)單配對(duì)的遠(yuǎn)程設(shè)備配對(duì)時(shí)使用:
?4級(jí),適用于具有以下屬性的服務(wù):
MITM保護(hù)要求
使用FIPS所需的鏈路和加密密鑰具有128位等效強(qiáng)度批準(zhǔn)的算法(不允許E0、不允許SAFER+和不允許P-192允許;加密密鑰未縮短)
用戶交互可接受
?3級(jí),適用于具有以下屬性的服務(wù):
MITM保護(hù)要求
加密要求加密密鑰至少具有56位等效強(qiáng)度,
用戶交互可接受
?2級(jí),適用于具有以下屬性的服務(wù):
MITM保護(hù)不需要
加密要求
至少使用56位等效強(qiáng)度的加密密鑰
?1級(jí),適用于具有以下屬性的服務(wù):
進(jìn)行加密時(shí),加密密鑰不需要至少56位等效強(qiáng)度的MITM保護(hù)應(yīng)使用enabled(已啟用)
減少所需的用戶交互
?0級(jí):服務(wù)要求如下:
不需要MITM保護(hù)
不需要加密
不需要用戶交互
安全模式4級(jí)0應(yīng)僅用于以下情況:a)CID在CID0x0001、0x0003和0x003Fb)SDPC)L2CAP通道(CID0x0002)d)服務(wù)上發(fā)送的廣播數(shù)據(jù)以及核心規(guī)范補(bǔ)充第C部分第1節(jié)中列出的服務(wù)類(lèi)UUID和L2CAP通信類(lèi)型的組合。
7.空閑模式程序–BR/EDR物理傳輸
8.操作模式和程序–LE物理傳輸
廣播模式和觀察程序
廣播模式和觀察程序允許兩個(gè)設(shè)備使用廣告事件以單向無(wú)連接的方式進(jìn)行通信。
廣播模式
廣播模式提供了一種供設(shè)備在廣告中發(fā)送無(wú)連接數(shù)據(jù)的方法
在廣播模式下的設(shè)備應(yīng)使用不可連接的廣告事件發(fā)送數(shù)據(jù)。
廣播模式下的設(shè)備可以通過(guò)排除廣播器的地址來(lái)匿名發(fā)送不可連接和不可掃描的不可定向或不可連接和不可掃描的定向廣告事件。
注意:一個(gè)設(shè)備在廣播模式下發(fā)送的所有數(shù)據(jù)都被認(rèn)為是不可靠的,因?yàn)闆](méi)有來(lái)自可能已經(jīng)接收到該數(shù)據(jù)的任何設(shè)備的確認(rèn)。
該設(shè)備可以配置和啟用多個(gè)獨(dú)立的廣告集。每個(gè)廣告集都可能有一個(gè)獨(dú)立的廣告過(guò)濾策略。
觀察程序
觀察程序提供了一種設(shè)備接收信號(hào)的方法來(lái)自發(fā)送廣告事件的設(shè)備的無(wú)連接數(shù)據(jù)。
執(zhí)行觀察程序的設(shè)備可以使用被動(dòng)掃描或主動(dòng)掃描來(lái)接收廣告事件。
執(zhí)行觀察程序的設(shè)備也可以使用活動(dòng)掃描來(lái)接收由使用可掃描廣告事件進(jìn)行廣告的任何設(shè)備發(fā)送的掃描響應(yīng)數(shù)據(jù)。
當(dāng)執(zhí)行“觀察”程序的設(shè)備在廣告事件中接收到可解析的私有地址時(shí),該設(shè)備可以通過(guò)可解析的私有地址解析程序來(lái)解析該私有地址。
注意:在廣播模式下的設(shè)備發(fā)送動(dòng)態(tài)數(shù)據(jù)的使用情況下,接收設(shè)備應(yīng)禁用控制器中的重復(fù)過(guò)濾功能,以便主機(jī)接收由控制器接收到的所有廣告包。
發(fā)現(xiàn)模式和過(guò)程
所有設(shè)備都應(yīng)處于不可發(fā)現(xiàn)模式或可發(fā)現(xiàn)模式之一。在可發(fā)現(xiàn)模式下的設(shè)備應(yīng)處于一般的可發(fā)現(xiàn)模式或有限的可發(fā)現(xiàn)模式。無(wú)法發(fā)現(xiàn)處于不可發(fā)現(xiàn)模式下的設(shè)備。發(fā)現(xiàn)設(shè)備可找到以一般可發(fā)現(xiàn)模式或有限可發(fā)現(xiàn)模式運(yùn)行的設(shè)備。
有些設(shè)備可能只使用傳統(tǒng)的廣告pdu來(lái)掃描廣告事件。因此,建議使用帶有擴(kuò)展廣告pdu的廣告事件的設(shè)備也使用帶有使用遺留廣告pdu的廣告事件的廣告集。
如果設(shè)備處于一種可發(fā)現(xiàn)的模式,并且如果多個(gè)廣告集使用相同的身份地址或相同的IRK,那么這些廣告集也應(yīng)共享相同的過(guò)濾策略。
不可發(fā)現(xiàn)的模式
任何正在執(zhí)行常規(guī)發(fā)現(xiàn)過(guò)程或有限發(fā)現(xiàn)過(guò)程的設(shè)備都不會(huì)發(fā)現(xiàn)配置為不可發(fā)現(xiàn)模式的設(shè)備。
處于不可發(fā)現(xiàn)模式下的設(shè)備可以發(fā)送廣告事件。如果設(shè)備發(fā)送廣告事件,則不應(yīng)在FlagsAD類(lèi)型中設(shè)置“LE通用發(fā)現(xiàn)模式”標(biāo)志或“LE有限發(fā)現(xiàn)模式”標(biāo)志。
如果設(shè)備發(fā)送廣告事件,則建議主機(jī)將控制器配置如下:
主機(jī)應(yīng)將所有廣告集的廣告過(guò)濾策略設(shè)置為“僅來(lái)自白列表中設(shè)備的進(jìn)程掃描和連接請(qǐng)求”或“來(lái)自所有設(shè)備的進(jìn)程掃描和連接請(qǐng)求”。
?主機(jī)定義設(shè)置廣告間隔。
有限發(fā)現(xiàn)模式
在有限的可發(fā)現(xiàn)模式下配置的設(shè)備可以由執(zhí)行有限的或一般的設(shè)備發(fā)現(xiàn)過(guò)程的其他設(shè)備在有限的時(shí)間內(nèi)被發(fā)現(xiàn)。當(dāng)用戶執(zhí)行特定的操作時(shí),設(shè)備通常會(huì)進(jìn)入有限的可發(fā)現(xiàn)模式。
使用有限的可發(fā)現(xiàn)模式有兩個(gè)常見(jiàn)的原因:
可以使用有限的可發(fā)現(xiàn)模式,允許使用通用發(fā)現(xiàn)程序的遠(yuǎn)程設(shè)備在向最終用戶展示已發(fā)現(xiàn)的設(shè)備時(shí)進(jìn)行優(yōu)先排序或以其他方式識(shí)別設(shè)備,因?yàn)橥ǔ#脩粽谂c它們交互。
有限的可發(fā)現(xiàn)模式也可用于允許遠(yuǎn)程設(shè)備使用有限的發(fā)現(xiàn)程序,以使用一般的可發(fā)現(xiàn)模式過(guò)濾掉設(shè)備。
當(dāng)設(shè)備處于外圍設(shè)備角色時(shí),該設(shè)備可能支持有限的可發(fā)現(xiàn)模式。雖然設(shè)備僅在廣播器、觀察器或中心角色中,但該設(shè)備不應(yīng)支持有限的可發(fā)現(xiàn)模式。
處于有限可發(fā)現(xiàn)模式的設(shè)備應(yīng)發(fā)送廣告事件類(lèi)型和廣告數(shù)據(jù),包括核心規(guī)范補(bǔ)充,并按描述設(shè)置了所有以下標(biāo)志:
將LE有限的可發(fā)現(xiàn)模式標(biāo)志設(shè)置為1。
LE常規(guī)可發(fā)現(xiàn)模式標(biāo)志設(shè)置為零。
對(duì)于具有以下所有標(biāo)志設(shè)置的唯一的設(shè)備類(lèi)型的設(shè)備:a)“BR/EDR不支持”標(biāo)志來(lái)設(shè)置一個(gè)。b)“同時(shí)使用LE和BR/EDR到相同設(shè)備容量(控制器)”標(biāo)志設(shè)置為零。c)“同時(shí)LE和BR/EDR到相同設(shè)備容量(主機(jī))”標(biāo)志設(shè)置為零。
注:遺留廣告事件經(jīng)常使用的主機(jī)數(shù)據(jù)應(yīng)該放在廣告數(shù)據(jù)中,靜態(tài)數(shù)據(jù)應(yīng)該放在掃描響應(yīng)數(shù)據(jù)中。
注:廣告間隔的選擇是功耗和設(shè)備發(fā)現(xiàn)時(shí)間之間的權(quán)衡。
該設(shè)備可以配置和啟用多個(gè)獨(dú)立的廣告集。
通用發(fā)現(xiàn)模式
在一般可發(fā)現(xiàn)模式下配置的設(shè)備可以通過(guò)執(zhí)行一般發(fā)現(xiàn)過(guò)程的設(shè)備不確定地發(fā)現(xiàn)。設(shè)備通常會(huì)自動(dòng)進(jìn)入一般的可發(fā)現(xiàn)的模式。
執(zhí)行有限的發(fā)現(xiàn)過(guò)程的設(shè)備將不會(huì)發(fā)現(xiàn)處于一般可發(fā)現(xiàn)模式下的設(shè)備。如果已知執(zhí)行發(fā)現(xiàn)的設(shè)備將使用有限的發(fā)現(xiàn)程序,則不應(yīng)使用一般的可發(fā)現(xiàn)模式。
當(dāng)設(shè)備處于外圍設(shè)備角色時(shí),該設(shè)備可能支持一般的可發(fā)現(xiàn)模式。雖然設(shè)備僅在廣播器、觀察者或中心角色中,但該設(shè)備不支持一般可發(fā)現(xiàn)模式。
有限的發(fā)現(xiàn)程序
執(zhí)行有限發(fā)現(xiàn)過(guò)程的設(shè)備僅從有限可發(fā)現(xiàn)模式下的設(shè)備接收設(shè)備地址、廣告數(shù)據(jù)和掃描響應(yīng)數(shù)據(jù)。
只有當(dāng)已知要發(fā)現(xiàn)的設(shè)備使用有限的可發(fā)現(xiàn)模式時(shí),才應(yīng)該使用有限的發(fā)現(xiàn)過(guò)程。當(dāng)希望發(fā)現(xiàn)所有設(shè)備時(shí),應(yīng)使用通用發(fā)現(xiàn)程序,無(wú)論它們是使用有限的可發(fā)現(xiàn)模式還是通用的可發(fā)現(xiàn)模式。
當(dāng)設(shè)備處于中心角色時(shí),該設(shè)備可能支持有限的發(fā)現(xiàn)過(guò)程。雖然設(shè)備僅在廣播器、觀察器或外圍設(shè)備角色中,但該設(shè)備不應(yīng)支持有限的發(fā)現(xiàn)程序。
建議該設(shè)備對(duì)其支持的所有phy進(jìn)行掃描。
當(dāng)主機(jī)執(zhí)行有限的發(fā)現(xiàn)過(guò)程時(shí),主機(jī)配置控制器如下:
1。主機(jī)應(yīng)將掃描器過(guò)濾器策略設(shè)置為“處理所有廣告數(shù)據(jù)包”。
2.主機(jī)設(shè)置掃描間隔和掃描窗口。
3.主機(jī)應(yīng)將控制器配置為使用主動(dòng)掃描。
主機(jī)應(yīng)開(kāi)始掃描廣告包,并在掃描LE1MPHY和掃描LE編碼PHY時(shí)繼續(xù)掃描至少TGAP(lim_disc_scan_min),除非主機(jī)結(jié)束有限的發(fā)現(xiàn)程序。
9.廣播和掃描響應(yīng)數(shù)據(jù)格式
廣播、定期廣告和掃描響應(yīng)數(shù)據(jù)的格式如圖所示。這些數(shù)據(jù)由重要部分和不重要部分組成。最重要的部分包含了一系列的AD結(jié)構(gòu)。每個(gè)AD結(jié)構(gòu)應(yīng)有一個(gè)八位的長(zhǎng)度字段,其中包含長(zhǎng)度值,和一個(gè)長(zhǎng)度八位的數(shù)據(jù)字段。數(shù)據(jù)字段的第一個(gè)八進(jìn)位字段包含AD類(lèi)型字段。數(shù)據(jù)字段中其余的長(zhǎng)度-1八進(jìn)制的內(nèi)容取決于AD類(lèi)型字段的值,它被稱(chēng)為AD數(shù)據(jù)。
如果“長(zhǎng)度”字段設(shè)置為零,則“數(shù)據(jù)”字段設(shè)為零八位字節(jié)。這只能允許提前終止重要部分。
10.GATT服務(wù)器的GAP服務(wù)和特性
GATT服務(wù)器應(yīng)包含表12.1中GAP服務(wù)需求中定義的GAP服務(wù)。一個(gè)設(shè)備在GATT服務(wù)器中應(yīng)該只有一個(gè)GAP服務(wù)的實(shí)例。GAP服務(wù)是一個(gè)基于GATT的服務(wù),服務(wù)UUID作為在分配編號(hào)中定義的GAP服務(wù)。
支持多個(gè)GAP角色的設(shè)備包含滿足所支持角色的要求的所有特性。當(dāng)設(shè)備在特性無(wú)效的角色中運(yùn)行時(shí),設(shè)備必須繼續(xù)公開(kāi)特性。
設(shè)備名稱(chēng)特性
設(shè)備名稱(chēng)特性應(yīng)包含UTF-8字符串。當(dāng)設(shè)備被發(fā)現(xiàn)時(shí),設(shè)備名稱(chēng)特征值應(yīng)不經(jīng)認(rèn)證或授權(quán)即可可讀。當(dāng)設(shè)備無(wú)法發(fā)現(xiàn)時(shí),如果沒(méi)有身份驗(yàn)證或授權(quán),設(shè)備名稱(chēng)不應(yīng)可讀特性。設(shè)備名稱(chēng)特征值可以可寫(xiě)入。如果可寫(xiě),身份驗(yàn)證和授權(quán)可以由更高級(jí)的規(guī)范定義,或者特定于實(shí)現(xiàn)。
設(shè)備名稱(chēng)特征值的長(zhǎng)度應(yīng)為0至248八進(jìn)制。一個(gè)設(shè)備應(yīng)只有一個(gè)設(shè)備名稱(chēng)特性的實(shí)例。
外觀特征
外觀特征定義了設(shè)備外觀的表示。這使得發(fā)現(xiàn)設(shè)備能夠使用圖標(biāo)、字符串或類(lèi)似的方式向用戶表示該設(shè)備。外觀特征值應(yīng)未經(jīng)身份驗(yàn)證或授權(quán)即可可讀。外觀特征值可能是可寫(xiě)入。如果可寫(xiě),身份驗(yàn)證和授權(quán)可以由更高級(jí)的規(guī)范定義,或者特定于實(shí)現(xiàn)。
外觀特征值應(yīng)為規(guī)定的枚舉值以指定的號(hào)碼。外觀特征值應(yīng)為2個(gè)八位長(zhǎng)度。裝置應(yīng)僅具有一個(gè)外觀特征實(shí)例。
外圍設(shè)備首選連接參數(shù)特征
外設(shè)首選連接參數(shù)(PPCP)特性包含外設(shè)的首選連接參數(shù)。
外圍首選連接參數(shù)特征值應(yīng)可讀。身份驗(yàn)證和授權(quán)可以由更高的層規(guī)范定義或特定于實(shí)現(xiàn)。
外圍首選連接參數(shù)特征值不可寫(xiě)。
外圍首選連接參數(shù)特征值的長(zhǎng)度應(yīng)為8位。一個(gè)設(shè)備應(yīng)僅具有一個(gè)外圍設(shè)備首選連接參數(shù)特性的實(shí)例。
中心地址解析
在使用將啟動(dòng)器地址設(shè)置為可解析的專(zhuān)用地址(RPA)的定向廣告之前,外圍設(shè)備應(yīng)通過(guò)讀取中心地址解析特征來(lái)檢查地址對(duì)等設(shè)備是否支持地址解析。
中心地址解析特性定義設(shè)備是否支持地址解析隱私。
中央地址分辨率特征值長(zhǎng)度應(yīng)為1個(gè)字節(jié):
本設(shè)備不支持 0=地址
本設(shè)備支持 1=地址
2-255=保留供將來(lái)使用
一個(gè)設(shè)備應(yīng)僅具有一個(gè)中心地址分辨率特性的實(shí)例。如果不存在中央地址解析特征,則應(yīng)假定不支持中心地址解析。
僅可解析的私有地址
設(shè)備應(yīng)通過(guò)讀取“僅可解析專(zhuān)用地址”特性,檢查對(duì)等設(shè)備是否只在綁定后使用可解析專(zhuān)用地址(rpa),以確定其是否滿足隱私模式。
“僅可解析專(zhuān)用地址”特性定義了設(shè)備是否只使用可解析私有地址(rpa)作為本地地址。
設(shè)備應(yīng)只有一個(gè)僅可解析專(zhuān)用地址特性的實(shí)例。如果不存在僅可解析私有地址特性,則不能假定僅使用可解析私有地址。
TCP/IP
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。