BLE SDP服務發現協議

2021-07-22 05:41:28 字數 1149 閱讀 3550

sdp的全稱是service discovery protocol,中文是服務發現協議。sdp(服務發現協議)是藍芽協議體系中的核心協議,是藍芽系統重要組成部分,是所有使用者模式的基礎。在藍芽系統中.客戶只有通過服務發現協議才能獲得裝置資訊、服務資訊及服務特徵,才能在此基礎上建立相互間的連線。通過這個協議,應用程式可以發現哪些服務可用以及服務的特性是什麼。

sdp伺服器-客戶端模型:

客戶端通過傳送sdp請求給伺服器查詢服務以及服務的屬性。

service record包含了sdp server的所有資訊,它由一系列的service attributes組成,如圖:

service record控制代碼是32位的數,它在每個service中必須唯一,但在不同service中可以相同。代表伺服器本身的控制代碼值0x00000000在研有sdp伺服器上都是有效的。服務記錄控制代碼值保留範圍:oxo0000001~0x0000ffff。

在sdp協議中,乙個service records的新增和刪除不會通知sdp客戶端。當l2cap連線和sdp伺服器建立後,乙個service record handle一直有效直到伺服器刪除了它,客戶端的將返回乙個無效service handle的錯誤。

service attribute描述了服務的特性。它由屬性id和屬性值組成。屬性id 是乙個16位無符號整數,以便區別於服務記錄中的其他服務屬性。服務類屬性由屬性id和屬性值組成。屬性值是一千長度可變的字段。它的含義由屬性記錄中樞應的屬性id和服務類確定。

uuid是乙個128位無符號整數,但在藍芽協議棧中僅使用16位,藍芽uuid的 基數(bluetooth—base—uuid),其值為00000000-0000—1000—7007—00805f9b34fb。

如果客戶端得到了屬性記錄控制代碼,就可以容易得到屬性內容。可以使用sdp服務搜尋得到服務記錄控制代碼,記錄控制代碼sdp提供了基於uuids的服務記錄搜尋功能,它允許客戶獲取指定的服務記錄旬柄。

服務搜尋樣本(sdp pattern)用於確定服務記錄是否匹配的uuid一列表。

服務瀏覽用於檢視伺服器提供的服務。

簡單服務發現協議 SSDP 程式設計指導

本文主要講解如何使用ssdp進行程式設計,不涉及過多關於ssdp的理論知識 網上對ssdp理論介紹的一大把,缺乏從程式設計角度的乙個指導,這裡不會長篇大論ssdp理論,只是根據實際編碼經驗對用ssdp進行編碼做個淺顯的指導,希望能讓同行少走一些彎路。ssdp是在httpu和httpmu基礎上實現的協...

lldp協議 LLDP(鏈路層發現協議)

隨著網路技術的發展,接入網路的裝置的種類越來越多,配置越來越複雜,來自不同裝置廠商的裝置也往往會增加自己特有的功能,這就導致在乙個網路中往往會有很多具有不同特性的 來自不同廠商的裝置,為了方便對這樣的網路進行管理,就需要使得不同廠商的裝置能夠在網路中相互發現並互動各自的系統及配置資訊。lldp 鏈路...

LLDP 鏈路層發現協議

lldp link layer discovery protocol 是ieee 802.1ab中定義的鏈路層發現協議。lldp是一種標準的二層發現方式,可以將本端裝置的管理位址 裝置標識 介面標識等資訊組織起來,並發布給自己的鄰居裝置,鄰居裝置收到這些資訊後將其以標準的管理資訊庫mib manag...