




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
服務(wù)發(fā)現(xiàn)
1.
服務(wù)發(fā)現(xiàn)的功能
在一個以網(wǎng)絡(luò)為中心的計算環(huán)境中,尋找和使用一個網(wǎng)絡(luò)中的服務(wù)越來越重要。網(wǎng)絡(luò)服務(wù)的形式各種各樣,每個設(shè)備可提供的服務(wù)也日趨多樣。對于藍牙設(shè)備來說,要想訪問另一個設(shè)備的服務(wù),必須知道該設(shè)備所提供的服務(wù),以及獲取該服務(wù)的一些信息(如該服務(wù)使用的各種協(xié)議棧、服務(wù)名稱、服務(wù)提供者和獲得服務(wù)所需要的參數(shù))。查詢服務(wù)服務(wù)記錄1服務(wù)記錄2服務(wù)記錄3………常用的服務(wù)發(fā)現(xiàn)方式:服務(wù)定位協(xié)議SLP(ServiceLocationProtocol)通用即插即用UPnP(UniversalPlugandPlay)藍牙SIG專門為藍牙系統(tǒng)制定了一個服務(wù)發(fā)現(xiàn)協(xié)議SDP(ServiceDiscoveryProtocol),它非常適合藍牙系統(tǒng)移動性較強的的特點,并且可以和其它服務(wù)發(fā)現(xiàn)協(xié)議共存于藍牙環(huán)境中,符合藍牙系統(tǒng)開放性的特點。藍牙服務(wù)發(fā)現(xiàn)協(xié)議的基本出發(fā)點是發(fā)現(xiàn)服務(wù)但不提供對服務(wù)的訪問,對服務(wù)的訪問需要通過其它協(xié)議來實現(xiàn)?;卦砟夸?.
客戶機-服務(wù)器模型
回原理目錄
客戶機-服務(wù)器交互是大多數(shù)網(wǎng)絡(luò)通信的基礎(chǔ)模式??蛻魴C發(fā)送請求,等待響應(yīng)。而服務(wù)器等待請求并完成基于請求的動作,形成響應(yīng)的數(shù)據(jù)包,返回給客戶機。
服務(wù)發(fā)現(xiàn)協(xié)議是典型的客戶機-服務(wù)器模型。每個服務(wù)發(fā)現(xiàn)協(xié)議分為客戶端部分和服務(wù)器端部分,兩部分在不同的藍牙設(shè)備上工作。一個藍牙設(shè)備可以既是服務(wù)器同時又是客戶機。請求服務(wù)的藍牙設(shè)備運行服務(wù)發(fā)現(xiàn)協(xié)議的客戶端部分,提供服務(wù)的藍牙設(shè)備運行服務(wù)發(fā)現(xiàn)協(xié)議的服務(wù)器端部分。服務(wù)發(fā)現(xiàn)協(xié)議中:
客戶機組成服務(wù)查詢請求的協(xié)議數(shù)據(jù)單元PDU(ProtocolDataUnit)發(fā)送給服務(wù)器,服務(wù)器根據(jù)不同的請求,查詢本地服務(wù)記錄數(shù)據(jù)庫,組成適當(dāng)?shù)捻憫?yīng)PDU,返回給客戶機,從而完成一次查詢。流程如下圖所示。服務(wù)器應(yīng)該滿足多個請求同時到達的情況,并且對數(shù)據(jù)庫進行保護。SDP客戶端與服務(wù)器交互模型
3.
數(shù)據(jù)元的編解碼由于查詢結(jié)果多種多樣,因此需要靈活的表示方式。同時這些數(shù)據(jù)在空中交互,所以應(yīng)該采用盡量小的包以節(jié)約帶寬。藍牙協(xié)議中采用數(shù)據(jù)元的形式來表示變長數(shù)據(jù),這樣可以減少對無線信道資源的浪費;數(shù)據(jù)庫中的信息存儲也以數(shù)據(jù)元的形式表示,這樣可以節(jié)約存儲資源。下面我們將介紹數(shù)據(jù)元、通用專有識別符、服務(wù)記錄、服務(wù)屬性的概念。數(shù)據(jù)元的結(jié)構(gòu)數(shù)據(jù)元可以有效地表示可變長和不同屬性的數(shù)據(jù)庫信息,其結(jié)構(gòu)如上圖所示,它由頭域和數(shù)據(jù)域構(gòu)成。頭域用于描述數(shù)據(jù)域的數(shù)據(jù)類型和大小,它又分為類型描述府、尺寸描述符和附加位三部分。(見書28頁)頭域(>8bits)數(shù)據(jù)域(長度根據(jù)頭域)類型描述符(5bits)
尺寸描述符(3bits)附加位數(shù)據(jù)元
數(shù)據(jù)元的編解碼
編碼過程:將服務(wù)記錄用數(shù)據(jù)元格式表示出來,在注冊函數(shù)中調(diào)用。
解碼過程:將查詢返回的服務(wù)屬性數(shù)據(jù)元解析成可以理解的服務(wù)記錄形式,用樹形結(jié)構(gòu)給出?;卦砟夸浲ㄓ脤S凶R別符UUID
a.服務(wù)屬性的屬性值常常需要用通用專有識別符UUID(UniversallyUniqueIdentifier)來標(biāo)識,它在時間和空間上都是唯一的,用于標(biāo)識某一事物如服務(wù)、協(xié)議等。
b.UUID長度為128比特。為了減少存儲和傳輸負擔(dān),對一些常用的和已注冊的用途預(yù)先分配了UUID,這些UUID的長度為16比特或32比特,它們可以轉(zhuǎn)換為128比特UUID。
(書46頁附表)服務(wù)記錄(ServiceRecord) 服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器中關(guān)于一個服務(wù)的所有信息構(gòu)成了一條服務(wù)記錄; 一條服務(wù)記錄含有一個服務(wù)的所有服務(wù)屬性; 每個服務(wù)記錄有一個服務(wù)記錄句柄(Servicerecordhandle)與之對應(yīng);
服務(wù)記錄句柄對于每個服務(wù)記錄來說是唯一的。在同一個服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器端,不同的服務(wù)記錄有不同的服務(wù)記錄句柄值。但在不同的SDP服務(wù)器端,同一種服務(wù)記錄的句柄之間相互獨立,也就是說可能相同。服務(wù)屬性(ServiceAttribute) 用于描述一個服務(wù)中的一條特性。它由屬性ID和屬性值構(gòu)成;
屬性ID用于標(biāo)識該服務(wù)屬性描述的是何種特性,屬性值表示該屬性的具體內(nèi)容; 在服務(wù)發(fā)現(xiàn)協(xié)議服務(wù)器中,屬性ID和屬性值以數(shù)據(jù)元的形式表示; 服務(wù)發(fā)現(xiàn)協(xié)議對服務(wù)的查找機制是基于通用專有識別符UUID的。服務(wù)屬性的屬性值通常用UUID來表示,即一個服務(wù)的特性是由一些UUID描述的。 不同的服務(wù)屬性,屬性值有不同規(guī)定。
(書29頁)
服務(wù)發(fā)現(xiàn)協(xié)議定義的3種服務(wù)屬性:通用屬性:是所有服務(wù)記錄都可以包含的服務(wù)屬性,但并非所有的服務(wù)記錄都必須含有所有的通用屬性。
專門用于描述“服務(wù)發(fā)現(xiàn)服務(wù)器服務(wù)”的服務(wù)屬性:專門用于描述“瀏覽組描述符服務(wù)”的服務(wù)屬性(書30頁)服務(wù)屬性項定義類型屬性值屬性IDServiceClassIDList0x0001ServiceClass0SerialPortUUID
UUIDProtocolDescriptorList0x0004Protocol0UUIDL2CAPProtocol1UUIDRFCOMMProtocolSpecificParameter0UINT8N=serverchannel
ServiceNameTextname
String“COM5”0x0100
由上所述,一個服務(wù)記錄中的所有服務(wù)屬性可以按樹形列舉出來,從而組成針對服務(wù)特定的一條記錄。一個串口服務(wù)的服務(wù)記錄4.
PDU交互的工作流程
SDP定義了2種獲取服務(wù)信息的方式:查找服務(wù)方式:在用戶知道服務(wù)的UUID的情況下,用戶通過指定服務(wù)類型(ServiceSearchPattern)來直接獲得服務(wù)記錄信息; 服務(wù)發(fā)現(xiàn)協(xié)議的服務(wù)器端是根據(jù)服務(wù)類型來找與用戶所要求的服務(wù)相匹配的服務(wù)記錄的,它是唯一的查找服務(wù)的手段。瀏覽服務(wù)方式:不知道服務(wù)的UUID,瀏覽各個服務(wù)記錄; 為了支持該方式,服務(wù)記錄必須含有BrowseGroupList屬性,該屬性說明了該服務(wù)屬于何種瀏覽組。
為了實現(xiàn)上面的兩種服務(wù)方式,協(xié)議定義了協(xié)議數(shù)據(jù)單元PDU(ProtocolDataUnit),服務(wù)器端和客戶端間交換的就是這些協(xié)議數(shù)據(jù)單元。建立邏輯鏈路PDU交互斷開邏輯鏈路
服務(wù)發(fā)現(xiàn)協(xié)議完成服務(wù)發(fā)現(xiàn)流程的前提是已經(jīng)建立好邏輯鏈路。因此工作流程首先是鍵鏈過程,PDU交互,最后斷開鏈接。
由于建立和斷開邏輯鏈路不是本實驗的內(nèi)容,因此我們主要關(guān)注PDU的交互在完成服務(wù)發(fā)現(xiàn)中的作用。對于不同的PDU交互實際上就是對應(yīng)于不同的服務(wù)發(fā)現(xiàn)查詢模式。在實驗中,我們將SDP對等協(xié)議之間傳遞的各種PDU顯示給同學(xué)看。在不同的服務(wù)發(fā)現(xiàn)模式下,了解如何用不同的PDU來完成服務(wù)發(fā)現(xiàn)的功能。
PDUID用于標(biāo)示該PDU的類型,它的值決定了該PDU后面的參數(shù);
TransactionID用于標(biāo)示一個請求類型的PDU。服務(wù)器端發(fā)出響應(yīng)PDU時,其必須與請求類型PDU中的相同。所有發(fā)出的請求類型的PDU的應(yīng)互不相同。
ParameterLength用于標(biāo)示后面參數(shù)的總長度(byte)。
PDU的種類目前有7種:值類型0x00保留0x01SDP_ErrorResponse0x02SDP_ServiceSearchRequest0x03SDP_ServiceSearchResponse0x04SDP_ServiceAttributeRequest0x05SDP_ServiceAttributeResponse0x06SDP_ServiceSearchAttributeRequest0x07SDP_ServiceSearchAttributeResponse0x07-0xFF保留
3種查找服務(wù)方式:ServiceSearchTransaction方式: 這種方式是客戶端指定服務(wù)類型,服務(wù)器端找出滿足條件的服務(wù)記錄后將它們的服務(wù)記錄句柄值返回給客戶端。PDUTypePDUIDParametersSDP_ServiceSearchRequest
0x02ServiceSearchPattern,MaximumServiceRecordCount,ContinuationState
ServiceAttributeTransaction方式:這種方式是客戶端指定一個服務(wù)記錄句柄值,并指定需要服務(wù)器端返回該服務(wù)記錄哪些服務(wù)屬性,服務(wù)器端把這些服務(wù)屬性(如果存在的話)返回給客戶端。該方式是工作于ServiceSearchTransaction基礎(chǔ)上的,因為對同一種服務(wù),在不同的藍牙設(shè)備上,服務(wù)記錄句柄值可以不同。PDUTypePDUIDParametersSDP_ServiceAttributeRequest
0x04ServiceRecordHandle,MaximumAttributeByteCount,AttributeIDList,ContinuationState
ServiceSearchAttributeTransaction方式:這種方式是客戶端指定服務(wù)類型,并指定需要服務(wù)器端返回的服務(wù)屬性,服務(wù)器端找出滿足條件的服務(wù)記錄后,把它們的服務(wù)屬性返回給客戶端。
PDUTypePDUIDParametersSDP_ServiceSearchAttributeRequest
0x06
ServiceSearchPattern,MaximumAttributeByteCount,AttributeIDList,ContinuationState回原理目錄實驗內(nèi)容實驗流程數(shù)據(jù)分析1.
實驗流程在服務(wù)器端注冊本機的服務(wù)記錄客戶端查詢服務(wù)器已注冊的服務(wù)記錄
查詢同組設(shè)備建立物理鏈路的鏈接 用3種方式進行服務(wù)發(fā)現(xiàn)分析交互PDU分析查詢返回的數(shù)據(jù)斷開物理鏈路回內(nèi)容目錄服務(wù)器端注冊界面客戶機端服務(wù)發(fā)現(xiàn)界面2.
數(shù)據(jù)分析觀察客戶機發(fā)起請求,服務(wù)器端給出響應(yīng)的過程。將服務(wù)器端注冊的服務(wù)記錄表示成數(shù)據(jù)元的格式,將查詢結(jié)果的數(shù)據(jù)元的形式改寫為服務(wù)記錄的方式,從中了解對多種類型且可變長的數(shù)據(jù)的一種簡潔的表示方法。觀察同層協(xié)議之間真正傳遞的PDU,了解和比較各種查詢方式的優(yōu)劣。根據(jù)自己填寫的服務(wù)記錄屬性值,寫出數(shù)據(jù)元的二進制碼,和實驗程序給出的是否相同。根據(jù)不同的查找服務(wù)方式,判斷給出的PDU是否正確,是否符合理解。回內(nèi)容目錄實驗知識點客戶機-服務(wù)器模式藍牙服務(wù)發(fā)現(xiàn)協(xié)議ServiceDiscoveryProtocol數(shù)據(jù)元DataElement服務(wù)記錄ServiceRecord服務(wù)屬性ServiceAttribute(3種服務(wù)屬性)服務(wù)記錄句柄ServiceRecordHandle通用專有識別符UniversallyUniqueIdentifier協(xié)議數(shù)據(jù)單元ProtocolDataUnit2種獲取服務(wù)信息的方式:
查找服務(wù)方式SearchingforServices
瀏覽服務(wù)方式Browsingf
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國際法考試試題及答案
- 禿鷲文字排版設(shè)計
- T/TMAC 029-2020基于工業(yè)物聯(lián)網(wǎng)的智能建造機器視覺技術(shù)要求
- 三友商場設(shè)計素描總結(jié)
- 重癥自身免疫性腦炎血漿置換護理專家共識解讀
- 健康中國圓夢工程課件
- 2025年地震專用儀器項目規(guī)劃申請報告
- 安全紀(jì)律衛(wèi)生教育
- 2025年酞菁顏料項目申請報告
- 2025年綜掘設(shè)備項目提案報告
- 互聯(lián)網(wǎng)+時代電商助農(nóng)模式的優(yōu)化策略:以S縣為例9000字(論文)
- 《醫(yī)療器械監(jiān)督管理條例》知識競賽考試題庫300題(含答案)
- 高壓旋噴樁施工技術(shù)交底
- 2024年上海市普通高中學(xué)業(yè)水平等級性考試化學(xué)試卷(含答案)
- 樹立正確就業(yè)觀課件
- 《在馬克思墓前的講話》課件+2023-2024學(xué)年統(tǒng)編版高中語文必修下冊
- 第24屆世界奧林匹克數(shù)學(xué)競賽WMO省級測評五年級試卷【含答案】
- 2024Web網(wǎng)站滲透測試報告模板
- 2023年-2024年新《管理學(xué)原理》考試題庫(含答案)
- 深圳市企業(yè)數(shù)據(jù)合規(guī)指引
- 精神科出院康復(fù)指導(dǎo)與隨訪
評論
0/150
提交評論