UPnP 體系架構和基本原理 —— UPnP 協議棧

UPnP 體系架構和基本原理 —— UPnP 協議棧

UPnP 協議棧

UPnP 協議棧基於標準IP協議,脫離底層的網絡介質。主要由包含:TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/因特網協議)、HTTP(HyperText Transfer Protocol,超文本傳輸協議)、SSDP(Simple Service Discovery Protocol,簡單服務發現協議)、GENA(General Event Notification Architecture,通用事件通知架構)、SOAP(Simple Object Access Protocol,簡單對象訪問協議)和XML(Extensible Markup Language,可擴展標記語言)等協議規範。

UPnP 協議棧架構

TCP/IP

TCP/IP是構成互聯網的基礎協議之一,是互聯網中應用最廣泛的協議之一,是UPnP協議體系建立的基礎。IP層進行數據的發送與接收,對於需要可靠傳送的信息,使用TCP進行傳送,而不要求可靠傳輸的信息可以選擇使用UDP進行傳送。由於TCP/IP協議與下層的數據鏈路層和物理層無關,因此被UPnP體系架構採納,利用其跨越不同物理介質的能力,實現不同設備之間的跨平臺通信和操作,保證各設備的兼容性。

TCP/IP是一個應用廣泛的成熟協議,因此建立在TCP/IP基礎上的UPnP設備的開發也變得相對簡單。

HTTP

HTTP是UPnP協議棧的核心協議之一,工作在TCP/IP之上,其中HTTPU和HTTPMU是HTTP協議的拓展,而SSDP、GENA、SOAP等協議則建立在HTTP的拓展協議之上。

HTTPU和HTTPMU中的“U”是UDP,指它們不使用TCP/IP作爲傳送信息的方式,而是採用非可靠的UDP/IP方式傳送信息,協議格式基本與HTTP相同。HTTPMU的“M”是Multicast(廣播),表示HTTPMU使用UDP的IP廣播發送,不需要接收方響應信息。而HTTPU發送的信息則需要接收方發送回執。

SSDP

SSDP是UPnP協議棧的核心協議之一。其建立在HTTPU和HTTPMU基礎之上,通過向一個廣播地址或廣播端口發送信息以實現在局域網內發現設備或感興趣的資源的一種應用層協議。

控制點和設備都必須使用SSDP協議。當控制點加入網絡時,會通過HTTPMU向特定的SSDP廣播地址及端口發送搜索信息(M-SEARCH)。設備收到該廣播的搜索信息時,將檢查自身與搜索信息是否匹配,如果匹配將使用HTTPU進行響應,使控制點實現設備和服務的發現。而設備加入網絡時,也會向特定的SSDP廣播地址及端口發送通知信息(NOTIFY)以表明其存在。設備離開網絡時,同樣也會往特定的SSDP廣播地址及端口發送離線信息(BYEBYE)表示離開。

同時,考慮設備異常終止而來不及發送離線信息,必須在協議中附加超時值。設備必須在協議規定的超時時間到達前發送通知信息以保持連接,否則將任務設備已離線。

GENA

GENA以HTTP協議爲基礎,爲實現在HTTP資源之間發送和接受事件通知而建立的一個基於HTTP的通知架構。GENA定義了事件通知過程中的操作對象:提供事件,並在事件發生時發送事件通知的事件發佈者(publisher);訂閱事件,接收事件通知的事件訂閱者(subscriber)。

事件通知有兩種形式:

  1. 單播事件。事件發生變化後,事件發佈者向訂閱了該事件的事件訂閱者單獨發送通知,採用可靠的TCP/IP發送機制。在UPnP協議棧中,採用HTTP協議。

  2. 廣播事件。事件發生變化後,事件發佈者向所有訂閱了該事件的事件訂閱者廣播發送通知,採用非可靠的UDP廣播發送。在UPnP協議棧中,採用HTTPMU協議。

爲了事件訂閱者可以持續獲取通知,必須週期性向需要監控的事件進行續訂。不需要監控時,可以進行事件退訂。

SOAP

SOAP基於HTTP和XML協議,用於實現UPnP網絡內的控制點和設備之間控制信息的傳遞。控制點向設備發送的所有控制請求都使用SOAP封裝,而設備收到SOAP請求在執行完畢後將返回執行結果或者出錯信息的過程採用SOAP響應。

SOAP具備簡單、可拓展、與編程語言無關、與平臺無關、與開發者無關五大優點。因此被UPnP協議棧選擇,用於控制點和設備之間控制信息的傳遞。

XML

XML是W3C(World Wide Web Consortium,萬維網聯盟)定義的一個語言標準,用於描述XML文件的數據對可以對文檔和數據進行結構化處理,使標記的文件具有結構性,也可以用來標記數據和定義數據類型。

XML設計時有十個主要設計目標:

  1. XML應該可以在互聯網中直接地使用。
  2. XML應該支持各種各樣的應用。
  3. XML應該與SGML兼容。
  4. XML文檔應該是程序容易處理的。
  5. XML的可選特性應該儘可能地少。
  6. XML應該是清晰易於人理解的。
  7. XML的設計應該是可以快速準備的。
  8. XML的設計應該是簡潔而正式的。
  9. XML文檔應該是方便創建的。
  10. XML的標記不需要重視簡潔。

XML是UPnP協議體系中很重要的組成,被用於描述(設備描述和服務描述),控制消息和事件通知中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章