1. 程式人生 > >什麼是UPNP協議:UPNP協議作用及啟用路由器UPNP支援的方法詳細介紹

什麼是UPNP協議:UPNP協議作用及啟用路由器UPNP支援的方法詳細介紹

目錄
[隱藏]
UPNP簡介
基本概念
官網解釋
以下是微軟官方網站對UPnP的解釋:
以下是BC官方網站對UPnP的解釋:
UPnP是用來幹什麼的?
經典應用
網路地址轉換
NAT 穿越技術
實際應用
UPnP協議特色
UPnP協議的層
UPnP協議內部的詳細情況
裝置:
服務:
控制指標
UPnP的完整工作過程
地址問題:
發現裝置:
裝置的描述:
裝置控制:
裝置事件:
裝置表達:
安全性
UPnP隱藏的安全缺缺陷
啟用Upnp支援的設定方法
1、設定路由器的UPnP支援
2、設定xp作業系統的支援:啟用UPnP使用者介面
UPnP對映失敗的原因
結束語
附錄:相關協議簡介
傳送協議:
最近聯通速度很差勁, 辦公室的三臺電腦上網,有的網站開啟速度很快,但是很多大型的網站如新浪、QQ等網站,開啟速度都很慢很慢。受不了那種慢速度的折磨,於是我就開始折騰路由器,於是就瞭解了這個UPNP功能。

UPNP(Universal Plug and Play)即通用即插即用協議到底能有什麼用呢?簡單的說一點,就是區域網內時,你下載BT等資源時,是不是經常有種子一直沒有速度或者速度很慢的情況?如果你開啟了UPNP功能,那速度可能會變的很快很快了。當然如果你不是在內網,而是電腦直接和網際網路相連的話,就不用折騰了。如果你想了解的更多一些,那麼請看下面詳細介紹。

UPNP簡介
UPNP(Universal Plug and Play)即通用即插即用協議,是為了實現電腦與智慧的電器裝置對等網路連線的體系結構。而內網地址與網路地址的轉換就是基於此協議的,因此只要我們的路由器支援upnp,並且我們使用支援此協議的xp作業系統,那麼我們就可以藉此提高點對點傳輸速度。

基本概念
UPnP技術對即插即用進行了擴充套件,它簡化了家庭或企業中智慧裝置的聯網過程。在結合了UPnP技術的裝置以物理形式連線到網路中之後,它們可以通過網路自動彼此連線在一起,而且連線過程無需使用者的參與和使用中央伺服器。
UPnP規範基於TCP/IP協議和針對裝置彼此間通訊而制訂的其它Internet協議。這就是它之所以被稱作”通用”的原因所在–UPnP技術不依賴於特定的裝置驅動程式,而是使用標準的協議。UPnP裝置可以自動配置網路地址,宣佈它們在某個網路子網的存在,以及互相交換對裝置和服務的描述。基於Windows XP的計算機可以充當一個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 來滿足客戶的需求。

官網解釋
以下是微軟官方網站對UPnP的解釋:
問:什麼是 UPnP?

答:通用即插即用 (UPnP) 是一種用於 PC 機和智慧裝置(或儀器)的常見對等網路連線的體系結構,尤其是在家庭中。UPnP 以 Internet 標準和技術(例如 TCP/IP、HTTP 和 XML)為基礎,使這樣的裝置彼此可自動連線和協同工作,從而使網路(尤其是家庭網路)對更多的人成為可能。

問:UPnP 對消費者意味著什麼?

答:簡單、更多選擇和更新穎的體驗。包含通用即插即用技術的網路產品只需實際連到網路上,即可開始正常工作。實際上,UPnP 可以和任何網路媒體技術(有線或無線)協同使用。舉例來說,這包括:Category 5 乙太網電纜、Wi-Fi 或 802.11B 無線網路、IEEE 1394(“Firewire”)、電話線網路或電源線網路。當這些裝置與 PC 互連時,使用者即可充分利用各種具有創新性的服務和應用程式。

以下是BC官方網站對UPnP的解釋:
UPnP(Universal Plug and Play),通用即插即用,是一組協議的統稱,不能簡單理解為UPnP=“自動埠對映”。在BitComet下載中,UPnP包含了2層意思:
1、對於一臺內網電腦,BitComet的UPnP功能可以使閘道器或路由器的NAT模組做自動埠對映,將BitComet監聽的埠從閘道器或路由器對映到內網電腦上。
2、閘道器或路由器的網路防火牆模組開始對Internet上其他電腦開放這個埠。

UPnP是用來幹什麼的?
網路發展到現在,已經可以使我們在網上衝浪、收發郵件、聽到遠方傳送來的聲音、搜尋感興趣的內容、下載軟體、點播節目、即時聊天等等、等等……實現的功能好像已經不少,但,人的慾望無止境,享福人還想更享福,還有許多目標沒有達到:例如,怎樣才能使我們在網路上,像平時用遙控器那樣,操作空調器、電風扇、廚房電器,或網路遠端的電器裝置呢?如何利用網路上的計算機資源,使這種“遙控”更具智慧化?甚至,將一系列相關的控制寫到一個指令碼中,以便使用者定製自己所喜愛的控制流程?……等等。實現諸如此類的效果,將是有巨大需求的應用技術。如果實現通過網路用UPnP控制家用裝置,將給我們的生活帶來很大的方便和很多新的體驗。例如:

1.你在下班之前,或在回去的路上,就可以先開啟家裡的空調器和廚房裝置,等進入家門,立刻就是一個溫度宜人的環境――廚房裡的飯也做好了。房間溫度的高低和廚房內煮飯的過程,都是根據事先設計好的“指令碼”程式進行的,絕對可靠。
2.你若是一位上檔次的音樂發燒者,肯定對聆聽音樂的環境要求很嚴:音箱位置高低、音量大小、燈光明暗、窗簾拉不拉上都有講究。手動控制隨好,畢竟不方便。你要使用上UPnP,一切都會為你代勞。還能將你習慣的音響音量、燈光亮度、音箱的高度等等,以你認為最佳的引數寫到執行指令碼中,以後可以都以此為準。如果你擁有自己的專門聽音室,只要你開啟聽音室的門,上述的環境就會立刻設定好。曲終人散,只管放心離開好了,UPnP系統會自己關閉音響,熄滅電燈,拉上窗簾。
3.你人在辦公室,心裡卻放不下家裡的孩子。用上UPnP,只要在家裡安裝攝像頭,建立好與網路的連線。在辦公室內,啟用桌面電腦的WEBTV,連通網路後,可以即時監視孩子在家裡的一舉一動。

凡此種種的方便和誘人之處還很多,不勝列舉。

其實,這已經不是科學幻想、也不是專家預言。目前用UPnP協議就可以實現這些操作!這正是windows xp系統急於加入UPnP的原因。正因為UPnP是一個協議,UPnP的使用可跨越各種作業系統平臺,開發應用程式也沒有開發語言的侷限。可工作於各種形式的網路結構。且僅以現在的網路設施為基礎,僅僅加上這個UPnP協議,既不用新增新的設施,也不用重新架設網路介質就可以投入使用!

經典應用
網路地址轉換
在數量以百萬計而且數目仍然在繼續增長的家庭網路出現很久以前,Internet上的定址系統就已經開發出來了。實際上,在Internet尚處於幼年的時候所開發的這個定址系統到目前為止仍然能夠正常工作真可以說是一個奇蹟。
因為Internet地址資源正在迅速被耗盡,大多數的家庭網路都使用網路地址轉換(NAT)技術建立了一個閘道器。NAT是Internet工程任務組(IETF)制訂的一種標準,它允許私有網路中的多臺PC或裝置共享一個全球唯一的公共地址(所使用私有地址的範圍為10.0.x.x、192.168.x.x和172.x.x.x)。作為對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預設為關閉,使用者可手動開啟該功能,重啟路由器後即可生效)

UPnP協議特色
1. 以網路為應用環境,不考慮“孤島”中的計算機。
2. 以TCP/IP和整個Internet為基礎。這樣是“中立”的,不依附於任何作業系統或應用程式,不使用特定的API函式,不受程式設計語言的侷限。可以無縫地接入傳統網路。
3. 裝置可以動態地進入網路中,隨後獲得IP地址,“學習” 或查詢自己應當進行的操作和服務的資訊;“感知”別的裝置是否存在以及它們的作用和當前的狀態 。所有這些,都應當是可自動完成的。
4. 每個裝置都可讀取屬於自己的、特定的狀態和引數;完成控制操作後應當發出“操作完成”的響應訊號。如果失敗,則應發出控制失敗的訊號。

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裝置製造廠商定義的部分。這一層的資訊是由裝置製造廠商來“填充” 的,這部分一般有裝置廠商提供的、對裝置控制和操作的底層程式碼,然後,就是名稱序列號呀,廠商資訊之類的東西。

UPnP協議內部的詳細情況
僅僅有這樣五層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檔案中;

裝置控制:
控制指標找到裝置描述之後,會從描述中“提煉”出要進行的操作並獲悉所有的服務;對每個UPnP裝置來說,這些描述必須是很確切、很詳細的,描述中可能包含有命令或行為列表、服務響應資訊、用到的引數等等。對於服務的每個行為,也伴有描述資訊:主要是整個服務進行期間的變數、變數的資料型別、可用的取值範圍和事件的特徵。

要控制某個裝置,控制指標必須先發送一個控制行為請求,要求裝置開始服務,然後再按裝置的ULR傳送相應的控制訊息,控制訊息就是放置在XML檔案中的那些SOAP格式的資訊。最後,服務會返回響應資訊,指出服務是成功或是失敗。

裝置事件:
在服務進行的整個時間內,只要變數值發生了變化或者模式的狀態發生了改變,就產生了一個事件,系統將修改上述提到的事件列表的內容。隨之,事件伺服器把事件向整個網路進行廣播。另一方面,控制指標也可以事先向事件伺服器預約事件資訊,保證將該控制指標感興趣的事件及時準確地傳送過來。

廣播或預約事件,傳送的都是事件訊息,事件訊息也放在XML檔案中,使用的格式是GENA。

裝置投入工作之前的準備―――初始化過程,也是一個事件,初始化需要的各種資訊也是用事件訊息傳送的。包括的內容主要是:變數初始值,模式的初始狀態等等。

裝置表達:
只要得到了裝置的ULR,就可以取得該裝置表達頁面的ULR,然後可以將此表達納入使用者的本地瀏覽器上。這部分還包括與使用者對話的介面,以及與使用者進行會話的處理。

整個UPnP系統,是在“中樞神經”的指揮下協同工作的。其大致情形如下:

凡是具備IP地址的的裝置都必須直接使用網路的IP地址,但有些裝置可能並不具備直接使用網路IP地址的能力,例如,電燈開關的控制就是這樣,這是非IP裝置;非IP裝置通過網橋(UPnP Bridge)來與控制指標交換資訊。

直接使用IP地址的有:控制指標(可在口袋電腦和遠端裝置上發出控制)、本地裝置,例如VCR和時鐘;以及網橋。非IP裝置有所謂輕裝置(如溫度控制器)和非UPnP的裝置(如電燈控制開關等)。
上述介紹屬於硬體方面,下面再說作為控制靈魂的軟體:在上面的敘述中,多次提到用XML檔案存放需要的資訊,因為無論是控制指標或裝置服務,都需要很多資訊,有讀出的,有傳出的,UPnP協議約定這些都存放在特定的檔案XML中。用途不同的資訊,在XML檔案中的格式不同。所以,相關的XML檔案是控制服務的靈魂。

安全性
由於UPnP技術的簡單性和堅持開放標準,UPnP技術已經得到了眾多裝置廠商的採納。Windows XP率先實現了對UPnP技術的支援,但是,它現在還存在一些安全漏洞,攻擊者可以使用這些漏洞減慢您的PC的執行速度,或者,在極少數的情況下,攻擊者可以對他在您的系統中的許可權進行提升。但是,如果你在Windows XP中安裝了防火牆,這些問題都將不成其為問題。實際上,Windows XP自身就附帶了一個Internet連線防火牆,預設情況下,該防火牆安裝在您的Internet連線上,因此能夠保護您免遭Internet攻擊者的攻擊。UPnP中的這個安全性漏洞已經得到了修補。Microsoft 安全性公告MS01-059對該問題進行了討論,並且提供了與此有關的更多資源連結,你可以通過這些連結檢視知識庫文章瞭解更多資訊,或者下載相應的安全補丁。

UPnP隱藏的安全缺缺陷
第一個缺陷是對緩衝區(Buffer)的使用沒有進行檢查和限制。外部的攻擊者,可以通過這裡取得整個系統的控制特權!由於UPnp功能必須使用計算機的埠來進行工作,取得控制權的攻擊者,還有可能利用這些埠,達到攻擊者的目的。這個缺陷導致的後果很嚴重,不論那個版本的windows 系統,只要執行UPnP,就都存在這個危險!但嚴格地說,這並不完全是UPnP技術本身的問題,更多的是程式設計的疏忽。

第二個缺陷就與UPnP的工作機理有關係了!該缺陷存在於UPnP工作時的“裝置發現”階段。發現裝置可以分為兩種情況:如果某個具備UPnP功能的計算機引導成功並連線到網路上,就會立刻向網路發出“廣播”,向網路上的UPnP裝置通知自己已經準備就緒,在程式設計這一級別上看,該廣播內容就是一個M-SEARCH(訊息)指示。該廣播將被“聲音所及”範圍之內的所有裝置所“聽到”。並向該計算機反饋自己的有關資訊,以備隨後進行控制之用。

相類似,如果某個裝置剛剛連線到網路上,也會向網路發出“通知”,表示自己準備就緒,可以接受來自網路的控制,在程式設計這一級別上看,該通知就是一個NOTIFY(訊息)指示。也將被“聲音所及”範圍之內的所有計算機接受。計算機將 “感知”該裝置已經向自己“報到”。實際上,NOTIFY(訊息)指示也不是單單傳送給計算機聽的,別的網路裝置也可以聽到。

就是在上述的一播一聽之間,出現了問題!

如果某個黑客向某個使用者系統傳送一個NOTIFY(訊息)指示,該使用者系統就會收到這個NOTIFY(訊息)指示並在其指示下,連線到一個特定伺服器上,接著向相應的伺服器請求下載服務―――下載將要執行的服務內容。伺服器當然會響應這個請求。UPnP服務系統將解釋這個裝置的描述部分,請求傳送更多的檔案,伺服器又需要響應這些請求。這樣,就構成一個“請求――響應”的迴圈,大量佔用系統資源,造成UPnP系統服務速度變慢甚至停止。所以,這個缺陷將導致“拒絕服務”攻擊稱為可能!

啟用Upnp支援的設定方法
1、設定路由器的UPnP支援
進入路由器的設定介面,如果你的路由器支援upnp的話那麼在轉發規則選項卡下就會看到upnp設定選項(不同路由器可能會有不同),在此選項中,我們選擇啟用upnp,然後我們重啟一下路由器。這樣我們就完成了路由器的設定。

2、設定xp作業系統的支援:啟用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正在向我們一步步走近,現在已經是足聲可聞了。不久的將來,必然對我們的工作和生活產生巨大影響。也蘊含著無限商機。儘管現在存在問題,也難保以後就不會再出現新的問題,但這既然體現了人的需求意向,就會有巨大的生命力,暫時的挫折不會使得它停下前進的腳步!

附錄:相關協議簡介
傳送協議:
主要用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控制訊息,控制訊息中還包含有控制行為描述和所用到的引數。