本頁使用了標題或全文手工轉換

簡單服務發現協定

維基百科,自由的百科全書
跳至導覽 跳至搜尋
SSDP的OSI模型
應用層 簡單服務發現協定
HTTPU HTTPMU
傳輸層 UDP
網絡層 IP (IPv4, IPv6)
數據鏈路層 乙太網路 Token
Ring
FDDI ……

簡單服務發現協定SSDP,Simple Service Discovery Protocol)是一種應用層協定,是構成通用隨插即用(UPnP)技術的核心協定之一。[1]

簡單服務發現協定提供了在局部網絡裏面發現裝置的機制。控制點(也就是接受服務的客戶端)可以通過使用簡單服務發現協定,根據自己的需要查詢在自己所在的局部網絡裏面提供特定服務的裝置。裝置(也就是提供服務的伺服器端)也可以通過使用簡單服務發現協定,向自己所在的局部網絡裏面的控制點宣告它的存在。[2]

實現[編輯]

簡單服務發現協定是在HTTPUHTTPMU的基礎上實現的協定。[2]

按照協定的規定,當一個控制點(客戶端)接入網絡的時候,它可以向一個特定的多播地址的SSDP埠使用M-SEARCH方法傳送「ssdp:discover」訊息。當裝置監聽到這個保留的多播地址上由控制點傳送的訊息的時候,裝置會分析控制點請求的服務,如果自身提供了控制點請求的服務,裝置將通過單播的方式直接響應控制點的請求。[3]

類似的,當一個裝置接入網絡的時候,它應當向一個特定的多播地址的SSDP埠使用NOTIFY方法傳送「ssdp:alive」訊息。控制點根據自己的策略,處理監聽到的訊息。考慮到裝置可能在沒有通知的情況下停止服務或者從網絡上解除安裝,「ssdp:alive」訊息必須在HTTP協定頭CACHE-CONTROL裏面指定超時值,裝置必須在約定的超時值到達以前重發「ssdp:alive」訊息。如果控制點在指定的超時值內沒有再次收到裝置傳送的「ssdp:alive」訊息,控制點將認為裝置已經失效。[3]

當一個裝置計劃從網絡上解除安裝的時候,它也應當向一個特定的多播地址的SSDP埠使用NOTIFY方法傳送「ssdp:byebye」訊息。但是,即使沒有傳送「ssdp:byebye」訊息,控制點也會根據「ssdp:alive」訊息指定的超時值,將超時並且沒有再次收到的「ssdp:alive」訊息對應的裝置認為是失效的裝置。[3]

IPv4環境,當需要使用多播方式傳送相關訊息的時候,SSDP一般使用多播地址239.255.255.250和UDP埠號1900。

根據互聯網地址指派機構的指派,SSDP在IPv6環境下使用多播地址FF0X::C,這裏的X根據scope的不同可以有不同的取值。[4]

參考資料[編輯]

  1. ^ 曾輝、費雲、唐亮:《通用隨插即用服務自動發現技術》,http://www.zte.com.cn/main/include/showemagazinearticle.jsp?articleId=977&catalogId=12165[永久失效連結]
  2. ^ 2.0 2.1 微軟公司:《Windows XP中的通用隨插即用》,http://www.microsoft.com/china/windowsxp/pro/techinfo/planning/upnp/protocol.mspx
  3. ^ 3.0 3.1 3.2 於辰濤:《UPnP協定編程實踐(二)》,http://www.ibm.com/developerworks/cn/linux/other/UPnP/part2/index.html
  4. ^ IANA:《INTERNET PROTOCOL VERSION 6 MULTICAST ADDRESSES》,http://www.iana.org/assignments/ipv6-multicast-addresses/

參見[編輯]