UPnP是什么
UPnP是各種各樣的智能設備、無線設備和個人電腦等實現遍布全球的對等網絡連接(P2P)的結構。UPnP 是一種分布式的,開放的網絡架構。UPnP 是獨立的媒介。在任何操作系統中,利用任何編程語言都可以使用 UPnP 設備。
中文譯名:通用即插即用
UPnP協議統一即插即用英文是Universal Plug and Play,縮寫為UPnP。要說計算機外設的即插即用(Plug and Play(縮寫PnP)),大家可能很熟悉,但對通用即插即用,多數人會感到是一頭霧水。由于windows xp加入對UPnP的支持,并且被查出存在很嚴重的安全問題,所以,一時間,使得UPnP名聲大噪。巧的是,本人原來查閱過關于UPnP的技術白皮書,而且也較為詳細地看了關于此次發現的安全缺陷的介紹。因此,趁著這個機會,將UPnP以及引起安全缺陷的詳情披露出來。
UPnP 的應用范圍非常大,以致足夠可以實現許多現成的、新的及令人興奮的方案,包括家庭自動化、打印、圖片處理、音頻 / 視頻娛樂、廚房設備、汽車網絡和公共集會場所的類似網絡。它可以充分發揮 TCP/IP 和網絡技術的功能,不但能對類似網絡進行無縫連接,而且還能夠控制網絡設備及在它們之間傳輸信息。在 UPnP 架構中沒有設備驅動程序,取而代之的是普通協議。
UPnP 并不是周邊設備即插即用模型的簡單擴展。在設計上,它支持0設置、網絡連接過程“不可見”和自動查找眾多供應商提供的多如繁星的設備的類型。換言之,一個 UPnP 設備能夠自動跟一個網絡連接上、并自動獲得一個 IP 地址、傳送出自己的權能并獲悉其它已經連接上的設備及其權能。最后,此設備能自動順利地切斷網絡連接,并且不會引起意想不到的問題。
UPnP 推動了因特網技術的發展,包括 IP、TCP、UDP、HTTP、SSDP和 XML 等技術。在因特網上契約以有線應用協議為基礎,而該協議是說明性的、利用 XML 進行表述和 HTTP 進行傳輸的。與此相同的是,UPnP 的明確設計目標就是提供這樣的環境。再者,當成本、技術或經費等方面的因素阻止了在某種媒介里或接入其中的設備上運用 IP 時,UPnP 能夠通過橋接的方式提供非 IP 協議的媒體通道。UPnP 不會為應用程序指定 API,因此供應商們就可以自己創建 API 來滿足客戶的需求。
經典應用
網絡地址轉換
在數量以百萬計而且數目仍然在繼續增長的家庭網絡出現很久以前,Internet上的尋址系統就已經開發出來了。實際上,在Internet尚處于幼年的時候所開發的這個尋址系統到目前為止仍然能夠正常工作真可以說是一個奇跡。
因為Internet地址資源正在迅速被耗盡,大多數的家庭網絡都使用網絡地址轉換(NAT)技術建立了一個網關。NAT是Internet工程任務組(IETF)制訂的一種標準,它允許私有網絡中的多臺PC或設備共享一個全球唯一的公共地址(所使用私有地址的范圍為10.0.0.0/8、192.168.0.0/16和172.0.0.0/11)。作為對IP地址短缺的一種臨時補救措施,NAT可以很好地完成很多工作--例如Windows XP的Internet連接共享就使用NAT,就像很多網關設備(例如DSL和線纜調制解調器)所做的一樣。
但問題是:NAT希望所有的網絡應用程序都以一種標準方式(即在數據包頭中使用IP地址)進行通信,但是有些網絡程序預計到NAT的存在。他們使用了NAT無法轉換的嵌入式IP地址。
NAT 穿越技術
NAT穿越技術允許網絡應用程序對它們是否位于一個具有UPnP能力的NAT設備之后進行檢測。然后,這些程序將獲得共享的全球可路由IP地址,并且配置端口映射以將來自NAT外部端口的數據包轉發到應用程序使用的內部端口上--所有這一切都是自動完成的,用戶無需手動映射端口或者進行其它工作。NAT穿越技術允許網絡設備或者點對點應用程序通過動態開啟和閉合與外部服務之間的通信端口穿過NAT網關與外界通信。
實際應用
網絡發展到現在,我們已經實現的有很多,但還有許多目標沒有達到。例如在網絡上,像平時用遙控器那樣,操作家用電器或網絡遠端的電器設備等等。實現諸如此類的效果,將是有巨大需求的應用技術。如果實現通過網絡用UPnP控制家用設備,將給我們的生活帶來很大的方便和很多新的體驗。所以windows系統也加入了UPnP協議,因為UPnP是一個協議,UPnP的使用可跨越各種操作系統平臺,開發應用程序也沒有開發語言的局限。可工作于各種形式的網絡結構。且僅以現在的網絡設施為基礎,僅僅加上這個UPnP協議,既不用添加新的設施,也不用重新架設網絡介質就可以投入使用!
僅現在而言,UPnP已經可以實現好多看似科學幻想的操作了,只是這些操作還未普及而已。
1.在下班之前,或在回去的路上,就可以先打開家里的空調器和廚房設備,等進入家門,立刻就是一個溫度宜人的環境――廚房里的飯也做好了。房間溫度的高低和廚房內煮飯的過程,都是根據事先設計好的“腳本”程序進行的,絕對可靠。
2.使用上UPnP,將根據用戶習慣調整音響音量、燈光亮度、音箱的高度等等,以你認為最佳的參數寫到執行腳本中,以后可以都以此為準。
3.當用戶在公司用上UPnP,只要在家里安裝攝像頭,建立好與網絡的連接。在辦公室內,啟用桌面電腦的WEBTV,連通網絡后,可以即時看到家里的一舉一動。
4.UPnP是因特網及LAN中使用的以TCP/IP協議為基礎的技術。通過無線網絡上網的用戶都是處于內網,為了保證像BT這樣的P2P軟件正常工作,開啟UPnP是必須的,而目前大多數無線路由器都具有此功能。(大多數無線路由器的UPnP默認為關閉,用戶可手動開啟該功能,重啟路由器后即可生效)
特色
1. 以網絡為應用環境,不考慮“孤島”中的計算機。
2. 以TCP/IP和整個Internet為基礎。這樣是“中立”的,不依附于任何操作系統或應用程序,不使用特定的API函數,不受程序設計語言的局限。可以無縫地接入傳統網絡。
3. 設備可以動態地進入網絡中,隨后獲得IP地址,“學習” 或查找自己應當進行的操作和服務的信息;“感知”別的設備是否存在以及它們的作用和當前的狀態 。所有這些,都應當是可自動完成的。
4. 每個設備都可讀取屬于自己的、特定的狀態和參數;完成控制操作后應當發出“操作完成”的響應信號。如果失敗,則應發出控制失敗的信號。
設置
如何設置UPnP支持
UPNP的英文全稱是Universal Plug and Play,即通用即插即用協議,是為了實現電腦與智能的電器設備對等網絡連接的體系結構。而內網地址與網絡地址的轉換就是基于此協議的,因此只要我們的路由器支持upnp,并且我們使用支持此協議的xp操作系統,那么我們就可以借此提高點對點傳輸速度。
進入路由器的設置界面,如果你的路由器支持upnp的話那么在轉發規則選項卡下就會看到upnp設置選項(不同路由器可能會有不同),在此選項中,我們選擇啟用upnp,然后我們重啟一下路由器。這樣我們就完成了路由器的設置。
啟用UPnP用戶界面
在某些情況下,Windows XP可以發現UPnP設備,并且提供它自己的用戶界面控制這些設備。一個很好的例子便是"網絡連接"文件夾中UPnP住宅網關設備的用戶界面(UI)。市場上流行的Linksys BEFSR41W無線路由器在安裝完畢后,會自動顯示在"網絡連接"文件夾中,因為Windows XP已經內置了一個相關的應用程序。
除此之外,你可以使用以下步驟安裝可選的UI組件。該UI組件會在系統發現新的設備后顯示一個"氣球"通知,并且在"網上鄰居"文件夾中為每個設備防止一個圖標。為了啟用UPnP UI,請按照以下步驟操作:
1.點擊"開始",點擊"控制面板",然后點擊"添加或刪除程序"。
2.在"添加或刪除程序"對話框中,點擊"添加/刪除Windows組件"。
3.在"Windows組件向導"中,點擊"網絡服務",點擊"詳細",然后選擇"通用即插即用"復選框。
4.點擊"確定",然后點擊"Windows組件向導"對話框中的"下一步"。您可能需要提供您的Windows XP安裝CD。
UPnP映射失敗的原因
1.系統服務中禁止了SSDP服務(用于尋找upnp設備)
2.開啟了XP下的SP1的ICF(網絡連接防火墻)。(XP的ICF與UPnP設備發現有沖突,SP2修復了這個問題,但是仍然需要在防火墻設置中允許例外:UPnP 框架。)
3.路由器不支持UPnP,請向制造商詢問。
工作過程
UPnP在控制指針和被控制設備之間提供通訊功能。而網絡介質、TCP/IP協議、HTTP僅提供基本的連接和IP地址分配。整個工作過程需要處理六個方面的內容,即設備尋址、發現設備、對設備的描述、設備控制、設備事件、設備表達。
設備尋址:
地址是整個UPnP系統工作的基礎條件,每個設備都應當是DHCP(Dynamic Host Configuration Protocol動態主機配置協議)的客戶。當設備首次與網絡建立連接后,利用DHCP服務,使設備得到一個IP地址。這個IP地址可以是DHCP系統指定的,也可以是由設備選擇的。當局域網內沒有提供DHCP服務時,UPnP設備將按照Auto-IP的協議,從169.254/169.16地址范圍獲取一個局域網內唯一的IP地址。設備還能使用昵稱(friendly name),這就需要域名解析服務(DNS)來解決。
發現設備:
可分成兩種情況,一種是在有控制請求之后,在當前的網絡中查找有無對應的可用設備;另一種情況是某一設備接入網絡、取得IP地址之后,就開始向網絡“廣播”自己已經進入網絡,即尋找控制請求。
設備的描述:
簡單說,這是聲明“自己”是什么樣的設備,例如名稱、制造廠商、序列號碼等等。剛開始“發現”設備后,控制指針對這個設備的“了解”還很少,需要依據URL找到該設備的描述文件,從這些文件中讀取更多的描述信息。描述信息的范圍很廣,一般都是由設備的制造廠商提供的。主要的描述項目有:控制的模式名稱和模式號碼、設備序列號、制造廠商名稱、廠商的WEB的URL……等等。這些一般都存放在特定的XML文件中。
設備控制:
控制指針找到設備描述之后,會從描述中“提煉”出要進行的操作并獲悉所有的服務;對每個UPnP設備來說,這些描述必須是很確切、很詳細的,描述中可能包含有命令或行為列表、服務響應信息、用到的參數等等。對于服務的每個行為,也伴有描述信息:主要是整個服務進行期間的變量、變量的數據類型、可用的取值范圍和事件的特征。
要控制某個設備,控制點必須先發送一個控制行為請求,要求設備開始服務,然后再按設備的URL發送相應的控制消息,控制消息就是放置在XML文件中的那些SOAP格式的信息。最后,服務會返回響應信息,指出服務是成功或是失敗。
設備事件:
在服務進行的整個時間內,只要變量值發生了變化或者模式的狀態發生了改變,就產生了一個事件,系統將修改上述提到的事件列表的內容。隨之,事件服務器把事件向整個網絡進行廣播。另一方面,控制點也可以事先向事件服務器訂閱事件信息,保證將該控制點感興趣的事件及時準確地傳送過來。
廣播或訂閱事件,傳送的都是事件消息,事件消息也放在XML文件中,使用的格式是GENA。
設備投入工作之前的準備―――初始化過程,也是一個事件,初始化需要的各種信息也是用事件消息傳送的。包括的內容主要是:變量初始值,模式的初始狀態等等。
設備表達:
只要得到了設備的URL,就可以取得該設備表達的URL,然后可以將此表達納入用戶的本地瀏覽器上。這部分還包括與用戶對話的界面,以及與用戶進行會話的處理。
簡要介紹下UPnP的工作流程:設備加入網絡后通過設備尋址就可自動獲得IP地址,通過設備發現,控制點就可知道網絡上存在哪些設備,通過設備描述控制點就可知道設備詳細信息以及設備提供哪些服務,通過設備控制控制點可以使用設備的服務,通過設備事件設備就可以將其狀態變化及時告訴給感興趣的控制點,通過設備表達控制點可以用瀏覽器察看設備狀態和控制設備。通過上述的六個方面,UPnP設備可以做到在“零配置”的前提下提供了聯網設備之間的自動發現、自動聲明、“直接”信息交換和互操作等功能,真正實現“設備即插即用”。
UPnP所用到的主要協議還有:SSDP(Simple Service Discovery Protocol 簡單服務發現協議)、GENA(Generic Event Notification Architecture 通用事件通知結構)、SOAP(Simple Object Access Protocol 簡單對象訪問協議)、XML(Extensible Markup Language 可擴張標記語言)。采用IP協議來保證UPnP獨立與網絡傳輸的物理介質,SOAP協議來保證UPnP設備具有互操作能力,XML來對設備和服務進行統一的描述,HTTP協議來進行UPnP設備的信息交互。采用這些現存的、廣泛應用的協議能減少開發UPnP設備的工作量,使UPnP設備更好地融入現有網絡。
評論
查看更多