UPnP
通用隨插即用(英語:Universal Plug and Play,簡稱UPnP)是由「通用隨插即用討論區」(UPnP™ Forum)推廣的一套網絡協定。該協定的目標是使家庭網絡(數據共用、通訊和娛樂)和公司網絡中的各種裝置能夠相互無縫連接,並簡化相關網絡的實現。UPnP通過定義和發佈基於開放、互聯網通訊網協定標準的UPnP裝置控制協定來實現這一目標。
UPnP這個概念是從隨插即用(Plug-and-play)衍生而來的,隨插即用是一種熱拔插技術。
概述
UPnP體系允許PC間的對等連接、網際互連和無線裝置。它是一種基於TCP/IP、UDP和HTTP的分散式、開放體系。
UPnP使得任意兩個裝置能在LAN控制裝置的管理下相互通訊。其特性包括:
- 傳輸媒介和裝置獨立。UPnP技術可以套用在許多媒體上,包括電話線、電線(電力線通訊PLC)、乙太網路、紅外通訊技術(IrDA)、無線電(Wi-Fi,藍牙)和Firewire(1394)。無需任務裝置驅動;而是採用共同的協定。
- 用戶介面(UI)控制。UPnP技術使得裝置廠商可以通過網頁瀏覽器來控制裝置並進行互動。
- 作業系統和程式語言獨立。任何作業系統和程式語言均可以用於構建UPnP產品。UPnP並沒有設定或限制執行於控制裝置上的應用程式API;OS廠商可以建立滿足他們客戶需求的API。UPnP使得廠商可以像開發常規應用程式一樣來控制裝置UI和互動。
- 基於互聯網技術。UPnP構建於IP、TCP、UDP、HTTP,和XML等許多協定之上。
- 編程控制。UPnP體系同時支援常規應用程式編程控制。
- 擴充性。每個UPnP裝置都可以有構建於基本體系之上、與具體裝置相關的服務。
UPnP支援零組態,"看不見的網絡"和自動檢測;任何裝置能自動加入一個網絡,取得一個IP位址,廣播自己的名字,根據請求檢查自身功能以及檢測出其它裝置和它們的功能。DHCP和DNS服務是可選的,並只有它們在網絡上存在的時候才會使用。裝置可以自動離開網絡而不會遺留下任何不需要的狀態資訊。
UPnP的基礎是IP位址解析。每一個裝置都應當有一個DHCP客戶端並在連入網絡的時候自動搜尋DHCP服務。如果沒有找到DHCP服務,也就是說網絡是缺乏管理狀態,那麼裝置必須給自己設定一個地址。如果在和DHCP伺服器互動的過程中,裝置獲得了一個域名(比如通過DNS伺服器或者DNS傳遞),那麼它應當在接下來的網絡操作中使用這個域名;否則,裝置應當使用它的IP位址。
協定
發現
給定一個IP位址,UPnP網絡中的第一步是發現。UPnP的發現協定,是基於簡單服務發現協定(SSDP)。當一個裝置被加入到網絡中,UPnP檢測協定允許該裝置向控制點廣播自己的服務。類似地,當一個控制點加入到網絡中的時候,它也能夠搜尋到網絡中存在的、感興趣的裝置相關資訊。裝置之間交換的發現訊息,主要包含此裝置的必要資訊以及其所提供的一項服務,例如裝置的類型、標識和指向詳細資訊的連結(網絡位置)。
描述
UPnP網絡的下一步是描述。當一個控制點檢測到一個裝置時,它對該裝置仍然知之甚少。為了使控制點了解更多關於該裝置的資訊或者和裝置進行互動,控制點必須從裝置發出的檢測資訊中包含的URL取得更多的資訊。某個裝置的UPnP描述是XML的方式,包括品牌、廠商相關資訊,如型號名和編號、序列號、廠商名、品牌相關URL等。描述還包括一個嵌入式裝置和服務列表,以及控制、事件傳遞和存在相關的URL。對於每種裝置,描述還包括一個命令或動作列表,包括響應何種服務,針對各種動作的參數;這些變數描述出執行時裝置的狀態資訊,並通過它們的資料類型、範圍和事件來進行描述。
控制
UPnP網絡的下一步是控制。當一個控制點取得到裝置描述資訊之後,它就可以向該裝置傳送指令了。為了實現此,控制點傳送一個合適的控制訊息至服務相關控制URL(包含在裝置描述中)。控制訊息也是通過簡單對象訪問協定(SOAP)用XML來描述的。類似函數呼叫,服務通過返回動作相關的值來回應控制訊息。動作的效果,如果有的話,會反應在用於刻畫執行中服務的相關變數。
事件通知
下一步是事件通知。一個UPnP描述包括一組命令列表和刻畫執行時狀態資訊的變數。服務在這些變數改變的時候進行更新,控制點可以進行訂閱以取得相關改變。服務通過傳送事件訊息來發佈更新。事件訊息包括一個或多個狀態資訊變數以及它們的當前數值。這些訊息也是採用XML的格式,用通用事件通知體系進行格式化。一個特殊的初始化訊息會在控制點第一次訂閱的時候傳送,它包括服務相關的變數名及值。為了支援多個控制點並存的情形,事件通知被設計成對於所有的控制點都平行通知。因此,所有的訂閱者同等地收到所有事件通知。
存在
最後一步是存在。如果裝置帶有存在URL,那麼控制點可以通過它來取得裝置存在資訊,即在瀏覽器中載入URL,並允許使用者來進行相關控制或檢視操作。具體支援哪些操作則是由存在頁面和裝置完成的。
NAT穿透
UPnP為NAT(網絡地址轉換)穿透帶來了一個解決方案:互聯網閘道器裝置協定(IGD)。NAT穿透允許UPnP封包在沒有使用者互動的情況下,無障礙的通過路由器或者防火牆(假如那個路由器或者防火牆支援NAT)。
未來的發展
UPnP影音媒體伺服器
UPnP影音媒體伺服器儲存和共用數碼媒體,比如:圖片、電影或是音樂。
參考資料
- UPnP™ Forum Universal Plug and Play Device Standards (頁面存檔備份,存於互聯網檔案館)
- Golden G. Richard:Service and Device Discovery : Protocols and Programming, McGraw-Hill Professional, ISBN 0-07-137959-2
- Michael Jeronimo,Jack Weast:UPnP Design by Example: A Software Developer's Guide to Universal Plug and Play, Intel Press, ISBN 0-9717861-1-9
外部連結
檔案
- UPnP™ Forum(頁面存檔備份,存於互聯網檔案館)
- DLNA (Digital Living Network Alliance) (頁面存檔備份,存於互聯網檔案館)
- The Jini, Vision
- technique comparison
- Microsoft WHDC UPnP webpage & links
- Universal Plug and Play in Windows XP
新聞
- Security firm predicts Microsoft Windows UPnP exploit by the end of the week at The Inquirer (Wednesday, 11 April 2007)
- Microsoft security updates for April 2007 to fix the above Microsoft Windows UPnP security issue.