日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssdp协议 upnp_SSDP 简单服务发现协议

發布時間:2024/1/23 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssdp协议 upnp_SSDP 简单服务发现协议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SSDP 簡單服務發現協議,是應用層協議,是構成UPnP(通用即插即用)技術的核心協議之一。它為網絡客戶端(network client)提供了一種發現網絡服務(network services)的機制,采用基于通知和發現路由的多播方式實現。

SSDP多播地址:239.255.255.250:1900(IPv4),FF0x::C(IPv6)

兩種類型的SSDP請求消息會通過SSDP多播地址發送:

1. 發現請求(Discovery request 或查詢請求)。SSDP客戶端向此地址發送HTTP UDP 發現請求,查詢某種類型的服務。SSDP服務在此地址上監聽服務發現請求。當服務監聽到的HTTP UDP 發現請求和它自己提供的服務匹配時,它以單播方式發送HTTP UDP 響應。

2. 存在通知(notification)。SSDP服務向此多播地址發送HTTP UDP 通知消息來宣布自己的存在。

發現結果(discovery results)和存在通知消息(presence announcements)提供的信息包括:

服務的類型URI

服務名稱USN:唯一標識一種服務實例。

位置信息:發現結果和存在通知可包含一個或多個位置URI,客戶端利用位置信息可以找到它需要的服務。

期限信息:客戶端在自己的cache中保存此服務多長時間。如果期限過了,關于此服務的信息會被從cache中拿掉。當客戶端接收到的發現結果或存在通知包含的USN和cache中的某條匹配,則更新。

客戶端的服務緩存像下面這樣:

【SSDP發現請求】ssdp:discover

ssdp:discover 必須包含一個ST頭,客戶端使用ST頭來表明他們想發現的服務類型。ssdp:discover 必須包含一個帶 *? 的請求URI。

M-SEARCH * HTTP/1.1

S: uuid:ijklmnop-7dec-11d0-a765-00a0c91e6bf6

Host: 239.255.255.250:1900

Man: "ssdp:discover"

ST: ge:fridge

MX: 3

各HTTP協議頭的含義:

HOST:設置為協議保留多播地址和端口,必須是:239.255.255.250:1900(IPv4)或FF0x::C(IPv6)

MAN:設置協議查詢的類型,必須是:ssdp:discover

MX:設置設備響應最長等待時間。設備響應在0和這個值之間隨機選擇響應延遲的值,這樣可以為控制點響應平衡網絡負載。

ST:設置服務查詢的目標,它必須是下面的類型:

-ssdp:all 搜索所有設備和服務

-upnp:rootdevice 僅搜索網絡中的根設備

-uuid:device-UUID 查詢UUID標識的設備

-urn:schemas-upnp-org:device:device-Type:version 查詢device-Type字段指定的設備類型,設備類型和版本由UPNP組織定義。

-urn:schemas-upnp-org:service:service-Type:version 查詢service-Type字段指定的服務類型,服務類型和版本由UPNP組織定義。

SSDP服務發現自己的服務類型和ST中指明的服務類型匹配時,可以向ssdp:discover來自的IP地址/端口響應。響應消息應該包含服務的位置信息(Location 或AL頭),ST和USN頭。響應消息應該包含cache控制信息(max-age 或者 Expires頭),如果兩者都包含了,Expires 頭優先,如果兩者都缺失,那么這條服務消息不能被cache。

HTTP/1.1 200 OK

S: uuid:ijklmnop-7dec-11d0-a765-00a0c91e6bf6

Ext:

Cache-Control: no-cache="Ext", max-age = 5000

ST: ge:fridge

USN: uuid:abcdefgh-7dec-11d0-a765-00a0c91e6bf6

AL:

各HTTP協議頭的含義簡介:

CACHE-CONTROL:max-age指定通知消息存活時間,如果超過此時間間隔,控制點可以認為設備不存在

DATE:指定響應生成的時間

EXT:向控制點確認MAN頭域已經被設備理解

LOCATION:包含根設備描述得URL地址

SERVER:飽含操作系統名,版本,產品名和產品版本信息

ST:內容和意義與查詢請求的相應字段相同

USN:表示不同服務的統一服務名,它提供了一種標識出相同類型服務的能力。

【SSDP存在通知消息】

SSDP服務通過存在通知消息來向客戶端宣布自己的存在,更新期限信息,更新位置信息。

ssdp:alive 消息必須將 NT 設置成自己的服務類型,USN頭設置成自己的USN。ssdp:alive 應該包括Location或者AL頭,如果沒有DNS支持的話,使用SSDP服務的IP地址來代表位置。ssdp:alive還應該包括cache控制信息,max-age或者Expires頭。

NOTIFY * HTTP/1.1

Host: 239.255.255.250:reservedSSDPport

NT: blenderassociation:blender

NTS: ssdp:alive

USN: someunique:idscheme3

AL:

Cache-Control: max-age = 7393

ssdp:alive 沒有響應消息。

SSDP服務可以發送ssdp:byebye 來宣布自己下線。ssdp:byebye 必須將NT設置成自己的服務類型,將USN頭設置成自己的USN。ssdp:byebye 也沒有響應消息。當客戶端接收到ssdp:byebye 消息,刪掉cache里面的相關條目。

NOTIFY * HTTP/1.1

Host: 239.255.255.250:reservedSSDPport

NT: someunique:idscheme3

NTS: ssdp:byebye

USN: someunique:idscheme3

【SSDP Auto-Shut-Off Algorithm】

A mechanism is needed to ensure that SSDP does not cause such a high level of traffic that it overwhelms the network it is running on.

【ssdp:all】

A mechanism is needed to enable a client to enumerate all the services available on a particular SSDP multicast channel/port.

【參考】

總結

以上是生活随笔為你收集整理的ssdp协议 upnp_SSDP 简单服务发现协议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。