1. 程式人生 > >轉載_藍芽的SDP協議總結

轉載_藍芽的SDP協議總結


2.ServiceRecord     每一個Service利用ServiceRecord來表示(具有唯一的32bit的Handle),每一個ServiceRecord由若干ServiceAttribute組成,由下圖表示: 藍芽的SDP協議總結

每一個ServiceAttribute的結構由下圖所示:     藍芽的SDP協議總結 Attribute ID是由Assigned Value定義好的,例如Record Handle Attribute的ID為0x0000。 正因為SDP Record由許多Attribute組成,所以,可以把Record看成AtributeList,這在後面的SDP resposne中會常用到。 裝置通過SDP request來訪問這些record的相關資訊。這裡有個很好的SDP例項,如下:
藍芽的SDP協議總結
Service Class ID List描述了Service的型別,如0x00000000代表SDP service Protocol Descriptior List 列出了可能使用這種Service的protocol 3.Data Element Data Element是在SDP中定義的一種資料結構,用來表示ServiceAttribute的Value域。每一個data element由Type+Size兩部分組成。 Type的定義如下圖: 藍芽的SDP協議總結
Size的定義如下圖: 藍芽的SDP協議總結

幾個Data Element的例子: 藍芽的SDP協議總結

4.Service Class     每一個Service都是ServiceClass的一個例項,一個Service Record就是一個Service Class的例項,Service Class可以表示一個Record裡的所有Attribute。每一個Service Class有一個ID,包含在ServiceClassIDList這個Attribute的value裡,稱之為UUID。 5.UUID
   一個全域性惟一的識別符號,128bit。為了節省儲存和傳輸開銷,UUID的一些位已經固定,出現了16bit和32bit的兩種UUID。這些不同bit的UUID可以相互轉化,如下式: 藍芽的SDP協議總結

6.SDP的資料單元格式(SDU)     傳輸時都是以Big-Endian的形式,資料格式如下: 藍芽的SDP協議總結
PUD ID有如下幾種定義: 藍芽的SDP協議總結
Transaction ID和Length定義如下: 藍芽的SDP協議總結
7.SDP中的PDU (1)Error PDU 藍芽的SDP協議總結

(2)SDP_ServiceSearchRequest PDU