UPNP

UPNP

網絡協議
通用即插即用(英語:Universal Plug and Play,簡稱UPnP)是由“通用即插即用論壇”(UPnP™ Forum)推廣的一套網絡協議。該協議的目标是使家庭網絡(數據共享、通信和娛樂)和公司網絡中的各種設備能夠相互無縫連接,并簡化相關網絡的實現。UPnP通過定義和發布基于開放、因特網通訊網協議标準的UPnP設備控制協議來實現這一目标。[1]
    中文名:通用即插即用 外文名:Universal Plug and Play 别名: 簡稱:UPNP 簡單定義:P2P的結構

經典應用

網絡地址轉換

在數量以百萬計而且數目仍然在繼續增長的家庭網絡出現很久以前,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控制家用設備,将給我們的生活帶來很大的方便和很多新的體驗。所以windows系統也加入了UPnP協議,因為UPnP是一個協議,UPnP的使用可跨越各種操作系統平台,開發應用程序也沒有開發語言的局限。可工作于各種形式的網絡結構。且僅以現在的網絡設施為基礎,僅僅加上這個UPnP協議,既不用添加新的設施,也不用重新架設網絡介質就可以投入使用!

僅現在而言,UPnP已經可以實現好多看似科學幻想的操作了,隻是這些操作還未普及而已。

1.在下班之前,或在回去的路上,就可以先打開家裡的空調器和廚房設備,等進入家門,立刻就是一個溫度宜人的環境――廚房裡的飯也做好了。

房間溫度的高低和廚房内煮飯的過程,洗衣機的定時開啟、微波爐的定時加熱功能、都是根據事先設計好的“腳本”程序進行的,絕對可靠。

2.使用上UPnP,将根據用戶習慣調整音響音量、燈光亮度、音箱的高度等等,以你認為最佳的參數寫到執行腳本中,以後可以都以此為準。

3.當用戶在公司用上UPnP,隻要在家裡安裝攝像頭,建立好與網絡的連接。在辦公室内,啟用桌面電腦的WEBTV,連通網絡後,可以即時看到家裡的一舉一動。目前市場現在已經有了不要第三方DDNS方支持的設備,如動态域名解析服務器設備,内置DDNS不要第三方支持,你買回去後,隻要在裡面做一下端口映射,就可以直接訪問自己内網的DVR、視頻服務器或采集卡了。類似的應用有網絡攝像機、硬盤錄像機(DVR)、網絡硬盤錄像機(NVR)等。

4.UPnP是因特網及LAN中使用的以TCP/IP協議為基礎的技術。通過無線網絡上網的用戶都是處于内網,為了保證像BT這樣的P2P軟件正常工作,開啟UPnP是必須的,而目前大多數無線路由器都具有此功能。(大多數無線路由器的UPnP默認為關閉,用戶可手動開啟該功能,重啟路由器後即可生效)

(二)對于一台内網電腦,AnyChat的UPnP功能可以使網關或路由器的NAT模塊做自動端口映射,将AnyChat監聽的端口從網關或路由器映射到内網電腦上。

進入路由器的設置界面,如果路由器支持upnp的話那麼在“轉發規則選項卡”下就會看到upnp設置選項(不同路由器可能會有不同),在此選項中,選擇啟用upnp,然後重啟一下路由器。這樣就完成了路由器的設置。

開啟UPnP後,就可提高AnyChat系統的P2P成功率,節省服務器的帶寬。

主要特色

1. 以網絡為應用環境,不考慮“孤島”中的計算機。

2. 以TCP/IP和整個Internet為基礎。這樣是“中立”的,不依附于任何操作系統或應用程序,不使用特定的API函數,不受程序設計語言的局限。可以無縫地接入傳統網絡。

3. 設備可以動态地進入網絡中,随後獲得IP地址,“學習” 或查找自己應當進行的操作和服務的信息;“感知”别的設備是否存在以及它們的作用和當前的狀态 。所有這些,都應當是可自動完成的。

4. 每個設備都可讀取屬于自己的、特定的狀态和參數;完成控制操作後應當發出“操作完成”的響應信号。如果失敗,則應發出控制失敗的信号。

安全性能

由于UPnP技術的簡單性和堅持開放标準,UPnP技術已經得到了衆多設備廠商的采納。Windows XP率先實現了對UPnP技術的支持,但是,它現在還存在一些安全漏洞,攻擊者可以使用這些漏洞減慢您的PC的運行速度,或者,在極少數的情況下,攻擊者可以對他在您的系統中的權限進行提升。

但是,如果你在Windows XP中安裝了防火牆,這些問題都将不成其為問題。實際上,Windows XP自身就附帶了一個Internet連接防火牆,默認情況下,該防火牆安裝在您的Internet連接上,因此能夠保護您免遭Internet攻擊者的攻擊。UPnP中的這個安全性漏洞已經得到了修補。Microsoft 安全性公告MS01-059對該問題進行了讨論,并且提供了與此有關的更多資源鍊接,你可以通過這些鍊接查看知識庫文章了解更多信息,或者下載相應的安全補丁。

服務設備

設備執行用戶請求的控制過程,可劃分成一個個很小的階段或單位,每個單位就稱為一個服務。每一個服務,對外都表現為具體的行為和模式,而行為和模式又可以用狀态和變量值進行描述。隻要可以用數值描述,在計算機裡面就容易處理了。例如,模仿一個時鐘,它隻有一個工作模式:這個模式就是模拟并顯示當前的時間。而一個時鐘的行為共有兩種(也隻有兩種):1. 設置時間(用來“即平時說的對表”).

2. 得到時間(用于顯示時間)。

其它設備服務,也是用這樣思路來描述和定義的,一個設備也可以被定義多個服務。不論是設備的定義信息和服務的描述信息,都保存在一個XML文件中,這個文件也是UPnP協議構成的一部分。當設備建立和使用服務的時候,XML文件可以與它們進行關聯。

XML文件中還有一個很關鍵的“狀态表”,狀态表可進一步分為“服務狀态表”和“事件狀态表”。整個UPnP設備運行的全過程内,狀态表貫穿始終,當設備狀态改變的時候,例如發生參數變化或狀态刷新的時候,立即就在“狀态表”中反映出來。如控制服務器在接收到設置時間的行為請求時,就立即執行請求(對時操作),并給出響應,同時更新狀态表中的有關數據。相應地,事件服務器負責向對此事件感興趣的設備公布所發生的狀态改變。例如,一個火災事件發生後,事件服務器就向火災報警器發布這個事件,導緻報警器動作産生報警信号。

控制指針

在UPnP網絡中,用戶請求設備執行的控制是通過控制指針實現的,控制指針首先是一個有能力控制别的設備的控制者,還要具有在網絡中 “發現”控制目标的能力。在發現(控制目标)之後,控制指針應當:

①取得設備的描述信息并得到所關聯的服務列表。

②取得相關服務的描述。

③調用控制服務行為。

④确定服務的事件 “源”,不論何時,隻要服務狀态發生改變,事件服務器會立即向控制指針發送一個事件信息。

從上面說到的各種信息,都保存在XML文件中,不同用途的信息,格式不同。保證可以各取所需,不會混淆。

工作過程

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設備更好地融入現有網絡。

上一篇:運維

下一篇:rabbitmq

相關詞條

相關搜索

其它詞條