ssdp協議,不知道大家是否聽說過呢?這個協議的使用多出現在埠當中。下面我們就來了解一下這個協議的具體內容吧。什麼是ssdp協議呢?ssdp就是簡單服務發現協議(ssdp,****** service discovery protocol)是一種應用層協議,是構成通用即插即用(upnp)技術的核心協議之一。
簡單服務發現協議提供了在區域性
網路裡面發現裝置的機制。控制點(也就是接受服務的客戶端)可以通過使用簡單服務發現協議,根據自己的需要查詢在自己所在的區域性
網路裡面提供特定服務的裝置。裝置(也就是提供服務的伺服器端)也可以通過使用簡單服務發現協議,向自己所在的區域性
網路裡面的控制點宣告它的存在。
實現
簡單服務發現協議是在httpu和httpmu的基礎上實現的協議。
按照協議的規定,當乙個控制點(客戶端)接入
網路的時候,它可以向乙個特定的多播位址的ssdp埠使用m-search方法傳送「ssdp:discover」訊息。當裝置監聽到這個保留的多播位址上由控制點傳送的訊息的時候,裝置會分析控制點請求的服務,如果自身提供了控制點請求的服務,裝置將通過單播的方式直接響應控制點的請求。
類似的,當乙個裝置接入
網路的時候,它應當向乙個特定的多播位址的ssdp埠使用notify方法傳送「ssdp:alive」訊息。控制點根據自己的策略,處理監聽到的訊息。考慮到裝置可能在沒有通知的情況下停止服務或者從
網路上解除安裝,「ssdp:alive」訊息必須在http協議頭cache-control裡面指定超時值,裝置必須在約定的超時值到達以前重發「ssdp:alive」訊息。如果控制點在指定的超時值內沒有再次收到裝置傳送的「ssdp:alive」訊息,控制點將認為裝置已經失效。
當乙個裝置計畫從
網路上解除安裝的時候,它也應當向乙個特定的多播位址的ssdp協議埠使用notify方法傳送「ssdp:byebye」訊息。但是,即使沒有傳送「ssdp:byebye」訊息,控制點也會根據「ssdp:alive」訊息指定的超時值,將超時並且沒有再次收到的「ssdp:alive」訊息對應的裝置認為是失效的裝置。
在ipv4環境,當需要使用多播方式傳送相關訊息的時候,ssdp一般使用多播位址239.255.255.250和udp埠號1900。
根據網際網路位址指派機構的指派,ssdp字而已在ipv6環境下使用多播位址ff0x::c,這裡的x根據scope的不同可以有不同的取值。
關於SSDP協議的基礎知識
ssdp就是簡單服務發現協議 servicediscoveryprotocol 是一種應用層協議,它是構成通用即插即用 也就是upnp,upnp是各種各樣的智慧型裝置 無線裝置和個人電腦等實現遍布全球的對等網路連線的結構 技術的核心協議之一。簡單服務發現協議提供了在區域性網路裡面發現裝置的機制。控制...
SSDP協議內容解析
ssdp service discovery protocol 簡單服務發現協議,用於發現區域網裡面的裝置和服務。ssdp訊息分為裝置查詢訊息 裝置通知訊息兩種,通常情況下,使用更多地是裝置查詢訊息。1 裝置查詢訊息 格式例子如下 其中第一行是訊息頭,固定 host對應的是廣播位址和埠,239.25...
SSDP協議的Python示例
廢話少說,直接上 服務端ssdp server.py 繫結到任意位址和ssdp組播埠上 self.s.bind any ip,ssdp port info 使用預設值 self.s.setsockopt socket.sol ip,socket.ip multicast ttl,20 self.s....