概述
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檢測協定允許該設備向控制點廣播自己的服務。類似地,當一個控制點加入到網路中的時候,它也能夠搜尋到網路中存在的、感興趣的設備相關信息。這兩種類型的基礎互動是一種僅包含少量、重要相關設備信息或者它的某個服務。比如,類型、標識和指向更詳細信息的連結。UPnP檢測協定是基於簡單服務發現協定(SSDP)的。
描述
UPnP網路的下一步是描述。當一個控制點檢測到一個設備時,它對該設備仍然知之甚少。為了使控制點了解更多關於該設備的信息或者和設備進行互動,控制點必須從設備發出的檢測信息中包含的URL獲取更多的信息。某個設備的UPnP描述是XML的方式,包括品牌、廠商相關信息,如型號名和編號、序列號、廠商名、品牌相關URL等。描述還包括一個嵌入式設備和服務列表,以及控制、事件傳遞和存在相關的URL。對於每種設備,描述還包括一個命令或動作列表,包括回響何種服務,針對各種動作的參數;這些變數描述出運行時設備的狀態信息,並通過它們的數據類型、範圍和事件來進行描述。
控制
UPnP網路的下一步是控制。當一個控制點獲取到設備描述信息之後,它就可以向該設備傳送指令了。為了實現此,控制點傳送一個合適的控制訊息至服務相關控制URL(包含在設備描述中)。控制訊息也是通過簡單對象訪問協定(SOAP)用XML來描述的。類似函式調用,服務通過返回動作相關的值來回應控制訊息。動作的效果,如果有的話,會反應在用於刻畫運行中服務的相關變數。
事件通知
下一步是事件通知。一個UPnP描述包括一組命令列表和刻畫運行時狀態信息的變數。服務在這些變數改變的時候進行更新,控制點可以進行訂閱以獲取相關改變。服務通過傳送事件訊息來發布更新。事件訊息包括一個或多個狀態信息變數以及它們的當前數值。這些訊息也是採用XML的格式,用通用事件通知體系(GENA)進行格式化。一個特殊的初始化訊息會在控制點第一次訂閱的時候傳送,它包括服務相關的變數名及值。為了支持多個控制點並存的情形,事件通知被設計成對於所有的控制點都平行通知。因此,所有的訂閱者同等地收到所有事件通知。
存在
最後一步是存在。如果設備帶有存在URL,那么控制點可以通過它來獲取設備存在信息,即在瀏覽器中載入URL,並允許用戶來進行相關控制或查看操作。具體支持哪些操作則是由存在頁面和設備完成的。
NAT穿透
UPnP為NAT(網路地址轉換)穿透帶來了一個解決方案:網際網路網關設備協定(IGD)。NAT穿透允許UPnP數據包在沒有用戶互動的情況下,無障礙的通過路由器或者防火牆(假如那個路由器或者防火牆支持NAT)。
套用
網路地址轉換
在數量以百萬計而且數目仍然在繼續增長的家庭網路出現很久以前,Internet上的定址系統就已經開發出來了。實際上,在Internet尚處於幼年的時候所開發的這個定址系統到目前為止仍然能夠正常工作真可以說是一個奇蹟。
因為Internet地址資源正在迅速被耗盡,大多數的家庭網路都使用網路地址轉換(NAT)技術建立了一個網關。NAT是Internet工程任務組(IETF)制訂的一種標準,它允許私有網路中的多台PC或設備共享一個全球唯一的公共地址(所使用私有地址的範圍為10.0.0.0/8、192.168.0.0/16和172.0.0.0/12)。作為對IP位址短缺的一種臨時補救措施,NAT可以很好地完成很多工作--例如Windows XP的Internet連線共享就使用NAT,就像很多網關設備(例如DSL和線纜數據機)所做的一樣。
但問題是:NAT希望所有的網路應用程式都以一種標準方式(即在數據包頭中使用IP位址)進行通信,但是有些網路程式未預計到NAT的存在。他們使用了NAT無法轉換的嵌入式IP位址。
NAT 穿越技術
NAT穿越技術允許網路應用程式對它們是否位於一個具有UPnP能力的NAT設備之後進行檢測。然後,這些程式將獲得共享的全球可路由IP位址,並且配置連線埠映射以將來自NAT外部連線埠的數據包轉發到應用程式使用的內部連線埠上--所有這一切都是自動完成的,用戶無需手動映射連線埠或者進行其它工作。NAT穿越技術允許網路設備或者點對點應用程式通過動態開啟和閉合與外部服務之間的通信連線埠穿過NAT網關與外界通信。
安全性
由於UPnP技術的簡單性和堅持開放標準,UPnP技術已經得到了眾多設備廠商的採納。Windows XP率先實現了對UPnP技術的支持,但是,它現在還存在一些安全漏洞,攻擊者可以使用這些漏洞減慢您的PC的運行速度,或者,在極少數的情況下,攻擊者可以對他在您的系統中的許可權進行提升。但是,如果你在Windows XP中安裝了防火牆,這些問題都將不稱其為問題。實際上,Windows XP自身就附帶了一個Internet連線防火牆,默認情況下,該防火牆安裝在您的Internet連線上,因此能夠保護您免遭Internet攻擊者的攻擊。UPnP中的這個安全性漏洞已經得到了修補。Microsoft 安全性公告MS01-059對該問題進行了討論,並且提供了與此有關的更多資源連結,你可以通過這些連結查看知識庫文章了解更多信息,或者下載相應的安全補丁。
特色
1. 以網路為套用環境,不考慮“孤島”中的計算機。
2. 以TCP/IP和整個Internet為基礎。這樣是“中立”的,不依附於任何作業系統或應用程式,不使用特定的API函式,不受程式設計語言的局限。可以無縫地接入傳統網路。
3. 設備可以動態地進入網路中,隨後獲得IP位址,“學習” 或查找自己應當進行的操作和服務的信息;“感知”別的設備是否存在以及它們的作用和當前的狀態。所有這些,都應當是可自動完成的。
4. 每個設備都可讀取屬於自己的、特定的狀態和參數;完成控制操作後應當發出“操作完成”的回響信號。如果失敗,則應發出控制失敗的信號。
未來的發展
UPnP影音媒體伺服器存儲和共享數字媒體,比如:圖片、電影或是音樂。