本文出自:http://www.cnblogs.com/nehu/archive/2006/05/13/399342.htmlhtml
解釋1、windows
準確地說,UPnP(Universal Plug and Play,通用即插即用)自動端口映射是適合內網,但不只限於內網。內網的特色就是沒法對外打開監聽端口,所以會損失全部外部發起的鏈接。好比ADSL用路由器、Windows網絡共享等等。經常使用的解決辦法是用NAT進行端口映射,將網關/路由上的端口映射到本機,但操做過程相對複雜晦澀。 咱們不能簡單理解爲UPnP等於自動端口映射。UPnP包含了2層意思:對於一臺內網電腦,UPnP功能可使網關或路由器的NAT模塊作自動端口映射,將監聽的端口從網關或路由器映射到內網電腦上。網關或路由器的網絡防火牆模塊開始對Internet上其餘電腦開放這個端口。 外網沒有必要使用UPnP的「自動端口映射」功能,但仍舊有必要使用UPnP配合支持UPnP的網絡防火牆軟件(如Windows XP自帶的ICF、諾頓網絡安全特警2003/2004)自動打開端口。瀏覽器
解釋2、安全
問:我剛上寬帶網,我據說若是運用好「UPNP」協議能夠提升上網速度,請問「UPNP」協議是什麼含義?具體如何應用?
答:UPNP的全稱是Universal Plug and Play。UPnP規範基於TCP/IP協議和針對設備彼此間通信而制訂的新的Internet協議。事實上,UPNP的制定正是但願將來全部聯入Internet中的設備可以不受網關阻礙的相互通訊。好比用MSN Messager傳輸文件將更加快捷方便了
,那到底如何如何利用UPNP呢?
首先咱們須要進入路由器的Web控制界面中打開路由器的UPNP功能。在瀏覽器中輸入路由器的地址,進入路由器的管理頁面以後,找到UPNP功能,並將其設置爲Enable。
而後咱們即可以進入Windows XP的設置。在Windows XP中,UPNP支持模塊並非默認安裝的,所以咱們須要按照如下步驟對其進行手動安裝:
在「添加或刪除程序」對話框中,點擊「添加/刪除Windows組件」。在「Windows組件嚮導」中,點擊「網絡服務」,點擊「詳細」,而後選擇「通用即插即用」複選框。從新啓動以後,Windows XP提示找到新硬件,進入網上鄰居後你會發現路由器,說明UNNP功能就打開了。現今市場上幾乎全部的寬帶路由器都提供UPNP功能的支持,經過咱們的合理配置,可讓咱們在點對點文件傳輸等方面得到更好的體驗和更快的速度。(GSF)
統一即插即用英文是Universal Plug and Play,縮寫爲UPnP。要說計算機外設的即插即用(Plug and Play(縮寫PnP)),你們可能很熟悉,但對統一即插即用,多數人會感到是一頭霧水。因爲windows xp加入對UPnP的支持,而且被查出存在很嚴重的安全問題,因此,一時間,使得UPnP名聲大噪。巧的是,本人原來查閱過關於UPnP的技術白皮書,並且也較爲詳細地看了關於這次發現的安全缺陷的介紹。所以,趁着這個機會,將UPnP以及引發安全缺陷的詳情披露出來。
1、 UPnP是用來幹什麼的?
網絡發展到如今,已經可使咱們在網上衝浪、收發郵件、聽到遠方傳送來的聲音、搜索感興趣的內容、下載軟件、點播節目、即時聊天等等、等等……實現的功能好像已經很多,但,人的慾望無止境,享福人還想更享福,還有許多目標沒有達到:例如,怎樣才能使咱們在網絡上,像平時用遙控器那樣,操做空調器、電風扇、廚房電器,或網絡遠端的電器設備呢?如何利用網絡上的計算機資源,使這種「遙控」更具智能化?甚至,將一系列相關的控制寫到一個腳本中,以便用戶定製本身所喜好的控制流程?……等等。實現諸如此類的效果,將是有巨大需求的應用技術。若是實現經過網絡用UPnP控制家用設備,將給咱們的生活帶來很大的方便和不少新的體驗。例如:
1.你在下班以前,或在回去的路上,就能夠先打開家裏的空調器和廚房設備,等進入家門,馬上就是一個溫度宜人的環境――廚房裏的飯也作好了。房間溫度的高低和廚房內煮飯的過程,都是根據事先設計好的「腳本」程序進行的,絕對可靠。
2.你如果一位上檔次的音樂發燒者,確定對聆聽音樂的環境要求很嚴:音箱位置高低、音量大小、燈光明暗、窗簾拉不拉上都有講究。手動控制隨好,畢竟不方便。你要使用上UPnP,一切都會爲你代勞。還能將你習慣的音響音量、燈光亮度、音箱的高度等等,以你認爲最佳的參數寫到執行腳本中,之後能夠都以此爲準。若是你擁有本身的專門聽音室,只要你打開聽音室的門,上述的環境就會馬上設置好。曲終人散,只管放心離開好了,UPnP系統會本身關閉音響,熄滅電燈,拉上窗簾。
3.你人在辦公室,內心卻放不下家裏的孩子。用上UPnP,只要在家裏安裝攝像頭,創建好與網絡的鏈接。在辦公室內,啓用桌面電腦的WEBTV,連通網絡後,能夠即時監視孩子在家裏的一舉一動。
凡此種種的方便和誘人之處還不少,不勝枚舉。
其實,這已經不是科學幻想、也不是專家預言。目前用UPnP協議就能夠實現這些操做!這正是windows xp系統急於加入UPnP的緣由。正由於UPnP是一個協議,UPnP的使用可跨越各類操做系統平臺,開發應用程序也沒有開發語言的侷限。可工做於各類形式的網絡結構。且僅以如今的網絡設施爲基礎,僅僅加上這個UPnP協議,既不用添加新的設施,也不用從新架設網絡介質就能夠投入使用!
UPnP協議具備下述特點:
1. 以網絡爲應用環境,不考慮「孤島」中的計算機。
2. 以TCP/IP和整個Internet爲基礎。這樣是「中立」的,不依附於任何操做系統或應用程序,不使用特定的API函數,不受程序設計語言的侷限。能夠無縫地接入傳統網絡。
3. 設備能夠動態地進入網絡中,隨後得到IP地址,「學習」 或查找本身應當進行的操做和服務的信息;「感知」別的設備是否存在以及它們的做用和當前的狀態 。全部這些,都應當是可自動完成的。
4. 每一個設備均可讀取屬於本身的、特定的狀態和參數;完成控制操做後應當發出「操做完成」的響應信號。若是失敗,則應發出控制失敗的信號。
2、UPnP協議的層:
UPnP協議的最終目的,是創建一個可用的設備模型, 因篇幅這裏不對整個結構進行詳細的分析,但你應當記住下面的主要特徵:
1. UPnP是一個多層協議構成的框架體系,每一層都以相鄰的下層爲基礎,同時又是相鄰上層的基礎。直至達到應用層爲止。該圖中的最下面是就是IP和TCP,共兩層,負責設備的IP地址。
2. 三層是HTTP、HTTPU、HTTPMU,這一層,你們應當是熟悉的,屬於傳送協議層。傳送的是內容都通過「封裝」後,存放在特定的XML文件中的。對應的SSDP、GENA、SOAP指的是保存在XML文件中的數據格式。到這一層,已經解決了UPnP設備的IP地址和傳送信息問題。
3. 第四層是UPnP設備體系定義,僅僅是一個抽象的、公用的設備模型。任何UPnP設備都必須使用這一層。
4. 第五層是UPnP論壇的各個專業委員會的設備定義層,在這個論壇中,不一樣電器設備由不一樣的專業委員會定義,例如:電視委員會只負責定義網絡電視設備部分,空調器委員會只負責定義網絡空調設備部分……,依此類推。全部的不一樣類型的設備都被定義成一個專門的架構或者模板,供創建設備的時候使用。能夠推知,進入這一層,設備已經被指定了明確用途。固然,這些都必須遵照標準化的規範。從目前看,UPnP已經能夠支持大部分的設備:從電腦、電腦外設,移動設備和家用消費類電子設備等等,無所不包,隨着這個體系的普及,將可能有更多的廠家認可這一標準,最終,可能演化爲公認的行業標準。
5. 最上層,也就是應用層,由UPnP設備製造廠商定義的部分。這一層的信息是由設備製造廠商來「填充」 的,這部分通常有設備廠商提供的、對設備控制和操做的底層代碼,而後,就是名稱序列號呀,廠商信息之類的東西。
3、協議內部的詳細狀況
僅僅有這樣五層UPnP協議,也只不過有了一個共同遵照的框架,實際的UPnP系統到底是如何構成的呢?
完整的UPnP服務系統由支持UPnP的網絡和符合UPnP規範的設備共同構成的。
整個系統是由設備、服務、和控制指針三部分所構成。
設備:
這裏是指符合UPnP規範的設備。一個UPnP設備能夠當作一個包含服務並嵌套了常規設備的「容器」 。例如,一個UPnP的VCR(錄像機)設備能夠包含磁帶傳送服務、調諧服務和時鐘服務。就是說,UPnP之下的設備不能僅僅理解爲硬件意義上的設備,而應當包括服務功能。
不一樣種類的UPnP設備將關聯不一樣的設置、服務和嵌入設備。如打印機和VCR屬於不一樣用途的設備,服務就不可能定義成同樣的。
服務:
設備執行用戶請求的控制過程,可劃分紅一個個很小的階段或單位,每一個單位就稱爲一個服務。每個服務,對外都表現爲具體的行爲和模式,而行爲和模式又能夠用狀態和變量值進行描述。只要能夠用數值描述,在計算機裏面就容易處理了。例如,模仿一個時鐘,它只有一個工做模式:這個模式就是模擬並顯示當前的時間。而一個時鐘的行爲共有兩種(也只有兩種):
1. 設置時間(用來「即平時說的對錶」).
2. 獲得時間(用於顯示時間)。
其它設備服務,也是用這樣思路來描述和定義的,一個設備也能夠被定義多個服務。不管是設備的定義信息和服務的描述信息,都保存在一個XML文件中,這個文件也是UPnP協議構成的一部分。當設備創建和使用服務的時候,XML文件能夠與它們進行關聯。
XML文件中還有一個很關鍵的「狀態表」,狀態表可進一步分爲「服務狀態表」和「事件狀態表」。整個UPnP設備運行的全過程內,狀態表貫穿始終,當設備狀態改變的時候,例如發生參數變化或狀態刷新的時候,當即就在「狀態表」中反映出來。如控制服務器在接收到設置時間的行爲請求時,就當即執行請求(對時操做),並給出響應,同時更新狀態表中的有關數據。相應地,事件服務器負責向對此事件感興趣的設備公佈所發生的狀態改變。例如,一個火災事件發生後,事件服務器就向火災報警器發佈這個事件,致使報警器動做產生報警信號。
控制指針:
在UPnP網絡中,用戶請求設備執行的控制是經過控制指針實現的,控制指針首先是一個有能力控制別的設備的控制者,還要具備在網絡中 「發現」控制目標的能力。在發現(控制目標)以後,控制指針應當:
①取得設備的描述信息並獲得所關聯的服務列表。
②取得相關服務的描述。
③調用控制服務行爲。
④肯定服務的事件 「源」,不論什麼時候,只要服務狀態發生改變,事件服務器會當即向控制指針發送一個事件信息。
從上面說到的各類信息,都保存在XML文件中,不一樣用途的信息,格式不一樣。保證能夠各取所需,不會混淆。
那麼,UPnP的完整工做過程是怎樣的呢?
UPnP在控制指針和被控制設備之間提供通信功能。而網絡介質、TCP/IP協議、HTTP僅提供基本的鏈接和IP地址分配。整個工做過程須要處理六個方面的內容,即地址分配、發現設備、對設備的描述、設備控制、設備事件、設備表達。
地址問題:
地址是整個UPnP系統工做的基礎條件,每一個設備都應當是DHCP(Dynamic Host Configuration Protocol 動態主機配置協議)的客戶。當設備首次與網絡創建鏈接後,利用DHCP服務,使設備獲得一個IP地址。這個IP地址能夠是DHCP系統指定的,也能夠是由設備選擇的,固然,有能力本身選擇IP地址的設備,必然是那些「聰明」的設備才行!這也就是所謂的「自動」IP地址。
若是遇到本地DHCP管理範圍以外的IP地址請求,還須要解決「友好設備」
的地址分配問題,這個問題一般由域名服務器來解決。
發現設備:
可分紅兩種狀況,一種是在有控制請求以後,在當前的網絡中查找有無對應的可用設備;另外一種狀況是某一設備接入網絡、取得IP地址以後,就開始向網絡「廣播」本身已經進入網絡,即尋找控制請求。
設備的描述:
簡單說,這是聲明「本身」是什麼樣的設備,例如名稱、製造廠商、序列號碼等等。剛開始「發現」設備後,控制指針對這個設備的「瞭解」還不多,須要依據ULR找到該設備的描述文件,從這些文件中讀取更多的描述信息。描述信息的範圍很廣,通常都是由設備的製造廠商提供的。主要的描述項目有:控制的模式名稱和模式號碼、設備序列號、製造廠商名稱、廠商的WEB的ULR……等等。這些通常都存放在特定的XML文件中;
上述介紹屬於硬件方面,下面再說做爲控制靈魂的軟件:
在上面的敘述中,屢次提到用XML文件存放須要的信息,由於不管是控制指針或設備服務,都須要不少信息,有讀出的,有傳出的,UPnP協議約定這些都存放在特定的文件XML中。用途不一樣的信息,在XML文件中的格式不一樣。因此,相關的XML文件是控制服務的靈魂。
4、關於UPnP隱藏的安全缺缺陷:
此次發現的安全缺陷共有兩個,其中第一個缺陷是對緩衝區(Buffer)的使用沒有進行檢查和限制。外部的攻擊者,能夠經過這裏取得整個系統的控制特權!因爲UPnp功能必須使用計算機的端口來進行工做,取得控制權的攻擊者,還有可能利用這些端口,達到攻擊者的目的。這個缺陷致使的後果很嚴重,不論那個版本的windows 系統,只要運行UPnP,就都存在這個危險!但嚴格地說,這並不徹底是UPnP技術自己的問題,更多的是程序設計的疏忽。
第二個缺陷就與UPnP的工做機理有關係了!
該缺陷存在於UPnP工做時的「設備發現」階段。發現設備能夠分爲兩種狀況:若是某個具有UPnP功能的計算機引導成功並鏈接到網絡上,就會馬上向網絡發出「廣播」,向網絡上的UPnP設備通知本身已經準備就緒,在程序設計這一級別上看,該廣播內容就是一個M-SEARCH(消息)指示。該廣播將被「聲音所及」範圍以內的全部設備所「聽到」。並向該計算機反饋本身的有關信息,以備隨後進行控制之用。
相相似,若是某個設備剛剛鏈接到網絡上,也會向網絡發出「通知」,表示本身準備就緒,能夠接受來自網絡的控制,在程序設計這一級別上看,該通知就是一個NOTIFY(消息)指示。也將被「聲音所及」範圍以內的全部計算機接受。計算機將 「感知」該設備已經向本身「報到」。實際上,NOTIFY(消息)指示也不是單單發送給計算機聽的,別的網絡設備也能夠聽到。
就是在上述的一播一聽之間,出現了問題!
若是某個黑客向某個用戶系統發送一個NOTIFY(消息)指示,該用戶系統就會收到這個NOTIFY(消息)指示並在其指示下,鏈接到一個特定服務器上,接着向相應的服務器請求下載服務―――下載將要執行的服務內容。服務器固然會響應這個請求。UPnP服務系統將解釋這個設備的描述部分,請求發送更多的文件,服務器又須要響應這些請求。這樣,就構成一個「請求――響應」的循環,大量佔用系統資源,形成UPnP系統服務速度變慢甚至中止。因此,這個缺陷將致使「拒絕服務」攻擊稱爲可能!
結束語
UpnP正在向咱們一步步走近,如今已是足聲可聞了。不久的未來,必然對咱們的工做和生活產生巨大影響。也蘊含着無限商機。儘管如今存在問題,也難保之後就不會再出現新的問題,但這既然體現了人的需求意向,就會有巨大的生命力,暫時的挫折不會使得它停下前進的腳步!
附:這是本文出現的相關名詞解釋:
傳送協議:
主要用HTTP 、HTTPU和HTTPMU:
HTTP:
這是大名鼎鼎的東西,不用多說,但就UPnP系統來講,HTTP及其派生協議都屬於核心部分。
HTTPU和HTTPMU:
這些都是從HTTP協議中派生定義出來的。主要用於傳送SSDP格式的設備消息。
SSDP:
是一個「簡單服務發現協議」 ,即英文「Simple Service Discovery Protocol的縮寫」 , 該協議定義瞭如何在網絡上發現網絡服務的方法。SSDP也規定了存放在XML文件中的信息格式。SSDP信息的傳送是依靠HTTPU和HTTPMU進行的。不管是控制指針,或是UPnP設備,工做中都必然用到SSDP,設備接入網絡以後,要利用它向網絡廣播本身的存在(廣播的信息中還有設備位置的描述),以便儘快與對應的控制指針創建聯繫;控制指針則利用SSDP來搜索本身將要控制的設備在哪裏?而且能夠排除已經存在的設備和控制指針――只爲新近的或還沒有「聯絡」上的雙方服務。
控制指針利用SSDP的方式是經由HTTPU發出搜索請求,這種請求能夠很詳細,能具體到須要什麼樣的設備以及何種服務。例如:請求對特定的VCR機進行設置時鐘的服務。
設備利用SSDP的方式是「收聽」來自網絡端口的消息,從中發現與本身匹配的信息,一旦找到與本身匹配的信息,經由HTTPMU來發送一個響應信息到控制指針。
GENA:
這是事件消息採用格式,是所謂「普通時間通知體系Generic Event Notification Architecture」的縮寫。關於事件消息,在上面已經有介紹。
SOAP:
即簡單對象訪問協議,實際就是經過該協議傳遞控制消息並返回設備對消息的響應結果。它利用XML和HTTP進行遠程調用。使用防火牆或別的網絡安全措施不會影響SOAP的使用。
每一個UPnP控制請求均可做爲一個SOAP控制消息,控制消息中還包含有控制行爲描述和所用到的參數。
如下來自UPnP論壇www.upnp.org
Welcome to the UPnP™ Forum!
The UPnP™ Forum is an industry initiative designed to enable simple and robust connectivity among stand-alone devices and PCs from many different vendors. As a group, we are leading the way to an interconnected lifestyle.
The Forum consists of more than
702
vendors, including industry leaders in consumer electronics, computing, home automation, home security, appliances, printing, photography, computer networking, and mobile products.
Companies with interests in particular device classes are encouraged to become Forum members and participate in designing schema templates for their device classes.
By defining and publishing UPnP™ device and service descriptions, members of the UPnP™ Forum are creating the means to easily connect devices and simplify the implementation of networks. In doing so, the UPnP™ Forum members are creating new product opportunities for their companies and industries.
UPnP™ technology is all about making home networking simple and affordable for users so the connected home experience becomes a mainstream experience for users experience and great opportunity for the industry. UPnP™ architecture offers pervasive peer-to-peer network connectivity of PCs of all form factors, intelligent appliances, and wireless devices. UPnP™ architecture leverages TCP/IP and the Web to enable seamless proximity networking in addition to control and data transfer among networked devices in the home, office, and everywhere in between. UPnP™ technology can be supported on essentially any operating system and works with essentially any type of physical networking media - wired or wireless - providing maximum user and developer choice and great economics. 服務器