關於UPNP的一些問題

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

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

問:什麼是 UPnP 論壇?
答:“通用即插即用論壇”是一個開放式業界協會,成立於 1999 年 6 月,旨在幫助定義 UPnP 標準以簡化家庭(長遠上講則是企業)智能設備的聯網。爲實現上述目標,該論壇正在制定和公佈 UPnP 設備控制協議及服務控制協議。截止到 2001 年 6 月初,已有 350 多家公司成爲 UPnP 論壇的成員。UPnP 論壇受由 22 名成員組成的 UPnP Steering Committee(UPnP 指導委員會)的管理。此外還設立了技術委員會、市場推廣委員會及各種工作委員會(分別面向某種特定的設備),旨在努力實現該機構的目標。有關論壇成員的列表及加入論壇的信息,請見論壇 Web 站點。

問:UPnP 的技術要素是什麼?

答:UPnP 範圍廣泛,原因是它面向的是家庭網絡、臨近網絡及小型企業和商住樓中的網絡。在網絡控制設備的管理下,它支持任何兩個設備之間的數據通訊。UPnP 不依賴於特定的操作系統、編程語言或物理媒體。

UPnP 支持零配置網絡及自動查找功能,這樣以來,設備即可動態加入網絡,獲取 IP 地址,宣佈自己的名稱,根據需要提供功能,並瞭解其它設備的存在和功能。DHCP 和 DNS 服務器爲可選項。只要在網絡上可用,即可加以使用。此外,設備還可自動平穩地脫離網絡,而不會遺留任何不必要的狀態。

UPnP 汲取了 Internet 的成功之處並繼承了它的組件,包括 IP、TCP、UDP、HTTP 及 XML。UPnP 中涉及了多供應商之間的協作,旨在建立標準的設備控制協議 (DCP)。與 Internet 類似,這些協議以公告式線協議爲基礎,表示爲 XML 形式,且通過 HTTP 進行通訊。

問:什麼是 NAT?爲什麼使用它?
答:“網絡地址轉換”是一種 Internet Engineering Task Force (IETF) 標準,用於允許專用網絡(使用專用地址範圍,例如 10.0.x.x、192.168.x.x、172.x.x.x)上的多臺 PC 機或設備共享單個、可全局路由的 IPv4 地址。經常使用 NAT 的一個主要原因就是 IPv4(最新一代 Internet)地址的資源日漸緊缺。

在構成公用 Internet 與專用局域網之間屏障的網關設備中,可以使用 NAT。當專用局域網的 IP 數據包經過網關時,NAT 將把專用 IP 地址和端口號轉換爲公用 IP 地址和端口號,從而跟蹤這些轉換以保持各個會話不變。Microsoft® Windows® XP 和 Windows Me 操作系統中的“Internet 連接共享”及許多 Internet 網關設備都使用 NAT,尤其是在通過 DSL 或電纜調制解調器連接寬帶網的情況下。隨着越來越多的家庭和小型企業將自己的 PC 機連接起來並共享 Internet 連接,NAT 的使用量正急劇增加。

問:NAT 的問題在哪?
答:簡言之:NAT 會“瓦解”許多家庭或小型企業中日漸需要的最新型 PC 和家庭網絡技術,例如多玩家遊戲、實時通訊及其它對等服務。如果在公用 Internet 上使用專用地址或同時使用同一端口號,這些應用程序就會中止。應用程序必須使用公共地址,且每個會話都須使用唯一的端口號。大型機構有專門的 IT 人員來確保其公司應用程序在 NAT 上正常使用,但較小的機構和消費者卻不具備這樣奢侈的條件。UPnP NAT Traversal 可以自動解決 NAT 給應用程序帶來的許多問題,使之成爲小型企業和消費者理想的解決方案。

問:誰提出的 NAT Traversal 解決方案?

答:NAT Traversal 解決方案是 UPnP IGD Working Committee 爲制定 Internet 網關設備 (IGD) 規範所從事工作的一部分。UPnP 的成員公司可以加入該委員會,也可以只選擇跟蹤其工作進展。委員會的主席是 Intel 公司的 Prakash Iyer ([email protected])。許多公司,包括 Microsoft,都在爲此而努力。

問:是否有其它途徑來解決 NAT Traversal 的問題?如果有,爲什麼將 UPnP 視爲最佳選擇?
答:是的,確實有其它途徑來解決此問題,但目前還沒有其它機制來作爲解決該問題的業界標準,從而能對消費者自動實現,而對開發人員則普遍可行。其它方案或者要求用戶進行人工干預,或者要求 Internet 網關設備製造商進行專門的開發,並要求軟件開發人員處理 NAT Traversal 對特殊應用程序的需要。因此,只有 UPnP 能解決該重大問題。

用戶的工作: NAT Traversal 的手工干預法要求用戶使用瀏覽器(PC 機上一種基於圖形用戶界面的工具)或 PC 上的命令行界面工具來更改家中 Internet 網關設備上的某些設置。儘管有些熱衷技術的用戶不會有很大困難,但許多用戶卻感到困難重重。此外,許多用戶甚至不知道 NAT Traversal 問題正對其 Internet 服務的使用造成干擾。用戶可能想體驗一種多玩家遊戲或使用其它某些對等服務,卻發現由於某種原因而無法連接。這會導致用戶採取疑難解答步驟、尋求電話支持、感到不滿,甚至以後不打算使用新的服務或不打算嘗試新的技術感受。

開發人員的工作: 爲避免要求用戶手動解決此 NAT Traversal 問題,有些 Internet 網關設備製造商已編寫出應用層網關支持,並將其包含到設備中。該應用層網關軟件的設計思路是特殊的應用程序。換言之,設備製造商將編寫和測試特殊的代碼,自動使一個應用程序完成 NAT。如果該應用程序軟件進行了更新,則設備製造商所編寫的應用層代碼將必須重新進行更新和測試。當只需要考慮幾個對等或相關的應用程序時,這種一對一解決 NAT Traversal 問題的方式對於設備製造商而言是可管理的,但它無法對數百或數千個應用程序伸展自如,這時不僅開發成本高,並可能需要有關這些應用程序各自原理方面的知識。解決該問題較好的方法就是讓設備製造商爲設備添加能理解 UPnP 的軟件或固件,然後讓其它設備和軟件能利用同一技術與 NAT 設備進行通訊。現在只有 UPnP 能夠完成這種職責。

問:UPnP NAT Traversal 解決方案的作用是什麼?
答:支持 UPnP 的 NAT Traversal 可確保下列情況的實現:

* 多玩家遊戲
* 對等連接
* 實時通訊
* 遠程協助(Windows XP 的功能之一)

對於 IHV 而言,該解決方案免去了編寫和維護應用層網關 (ALG) 數據庫以通過 NAT 的必要。它受 Windows XP 和 Direct Play(一種 Windows 編程資源)的支持,因此爲 DPlay 編寫的軟件應用程序將能自動對 NAT Traversal 使用 UPnP 解決方案。

通過提供下列操作的方法,UPnP 論壇的 IGD 規範可進行自動 NAT Traversal:

* 瞭解公用 IP 地址
* 列舉現有的端口映射
* 添加和刪除端口映射
* 指定映射的租用期

問:哪些製造商在實施 UPnP NAT Traversal 解決方案?
答:目前,大多數大型網關(DSL/電纜路由器)製造商都宣佈計劃從 2001 年(不遲於 7 月份)在提供的產品中實施 UPnP NAT Traversal 解決方案。其中包括:Microsoft(WindowsXP 中)、Linksys、D-Link、Intel、Netgear and Buffalo Technology 及 Arescom。

其中的一些製造商已宣佈將爲已擁有其設備的用戶提供固件或軟件升級,從而爲支持 UPnP 的 NAT Traversal 提供支持。

問:用戶怎樣才能知道哪些 Internet 網關設備支持 UPnP?
答:用戶可以查閱 Internet 網關設備製造商的 Web 站點,或者閱讀產品包裝上的標籤,以確定是否提供該功能。後面幾個月內,有些零售商將會知道這個情況。在未來的幾個月中,UPnP 論壇會提供一個 UPnP 徽標。製造商可以在自己的產品包裝、營銷資料或產品上包含該徽標,以表明該產品滿足 UPnP 論壇的測試要求。

問:開發人員實施該方案時有哪些可用的資源?
答:資源有很多,範圍從白皮書到互操作性測試事件 (PlugFests)。有關技術性的文章,請訪問 http://www.upnp.org/resources.htm。有關未來的重大事件,請參閱 http://www.upnp.org/events.htm。Microsoft 在 MSDN Online 上提供有關 Windows XP 的開發人員信息。 

用於 UPnP 的網絡媒體
UPnP 使用標準的 IP 協議集,從而保持了網絡媒體的不可知性。UPnP 網絡設備可以使用任何通訊媒體連接,包括無線頻率(RF,無線)、電話線、IrDA、以太網以及 IEEE 1394。換言之,任何可以和網絡設備一同使用的媒體都可以啓用 UPnP。唯一要關心的可能是使用的媒體是否支持目標用途所要求的帶寬。 UPnP 使用開放的標準協議,如 TCP/IP、HTTP 和 XML。但是,由於多種原因(包括成本、技術要求或兼容支持),其它的技術也可能與網絡設備一起被使用。這些包括網絡技術,如 HAVi、CeBus、LonWorks、EIB 或 X10。通過 UPnP 網橋或代理,這些技術也可以加入到 UPnP 網絡中。包含橋接設備的 UPnP 網絡看起來可能如下圖所示。

20050413BridgedNet2.gif
圖 3:橋接的 UPnP 網絡

UPnP 使用的協議
UPnP 利用了多種現有的標準協議。使用這些標準化的協議有助於確保供應商實現之間的互操作性。對於用以實現 UPnP 的協議,您經常可以發現它們用在 Internet 和局域網的各個位置。這種普遍性確保了有大量的人員知道該如何實現和部署基於這些協議的解決方案。由於相同的協議已在使用之中,因此幾乎不需要執行任何操作就可以讓 UPnP 設備在現有的網絡化環境中工作。在本節的其餘部分概述了一些用於實現 UPnP 的協議。
20050413FullProtocolStack.gif
圖 4:UPnP 協議組合

UPnP 特有的協議
UPnP 供應商、UPnP 協會工作委員會以及 UPnP 設備架構文檔定義了可用於實現 UPnP 的最高級協議。基於設備架構,該工作委員會定義了特定於設備類型的規範,這些類型比如 VCR、HVAC 系統、洗碗機以及其它設備。此後,UPnP 設備供應商可以添加特定於各自設備的數據,如型號名稱、URL 等等。

TCP/IP
TCP/IP 網絡協議集充當了建立其餘 UPnP 協議的基礎。通過使用該標準(普遍使用的 TCP/IP 集),UPnP 可以利用其跨越不同物理媒體的能力並確保多個供應商之間的互操作性。

UPnP 設備可以使用 TCP/IP 集合中的多種協議(包括 TCP、UDP、IGMP、ARP、IP)和 TCP/IP 服務(比如 DHCP 和 DNS)。當我們在本節介紹了其它協議和在下一節介紹了 UPnP 的工作方式之後,如何使用這些協議和服務來提供 UPnP 工作所需的內容也就會變得一目瞭然。

由於 TCP/IP 是使用最爲普遍的網絡協議之一,因此定位或創建一個對覆蓋面和/或性能進行優化的 UPnP 設備實現將相當容易。

本文檔假定您對 TCP/IP 協議集和服務有基本的瞭解。有關 TCP/IP 的詳細信息,可以在本文檔結束位置所列出的參考中找到。

HTTP、HTTPU、HTTPMU
TCP/IP 提供了用來實現 UPnP 設備間網絡連接的基本協議集。對 Internet 的成功作出了巨大貢獻的 HTTP 也是 UPnP 的核心部分。UPnP 的所有組件都建立在 HTTP 或其變體之上。

HTTPU(和 HTTPMU)是 HTTP 的變體,定義它們是爲了通過 UDP/IP(而不是 TCP/IP)發送消息。下面介紹的 SSDP 將使用這些消息。這些協議的基本消息格式沿襲了 HTTP,並且是多播通訊和當消息傳輸不要求與可靠性有關的開銷時所需要的。

一些關於較爲高級的協議和 UPnP 工作的說明需要您基本瞭解 HTTP 協議。有關 HTTP 的詳細信息,可以通過在本文檔結束位置所列出的參考中找到。

SSDP
顧名思義,簡單服務發現協議 (SSDP) 定義了網絡服務是如何在網絡上被發現的。SSDP 基於 HTTPU 和 HTTPMU 創建,定義了控制點定位網絡上感興趣的資源和設備通知它們在網絡上的可用性的方法。通過定義同時使用搜索請求和展示通知,SSDP 避免了在僅使用這兩種機制中的任一種時所必需的開銷。這樣,網絡中的每個控制點都可以獲得關於網絡狀態的完整信息,同時保持了低水平的網絡流量。

訪問點和設備都可以使用 SSDP。UPnP 訪問點啓動後可以發送 SSDP 搜索請求(通過 HTTPMU)來發現網絡上可用的設備和服務。訪問點可以細化該搜索,從而僅查找特定類型的設備(如 VCR)、特定服務(如具有時鐘服務的設備)乃至特定設備。

UPnP 設備會偵聽多播端口。一旦收到搜索請求,該設備就檢查該搜索條件以確定它們是否匹配。如果匹配,一個單播 SSDP(通過 HTTPU)響應將被髮送到該控制點。

同樣,當將設備插入網絡時,它會發出多播 SSDP 展示通知消息,通知它所支持的服務。

在展示通知和單播設備響應消息中都包含該設備描述文檔(含有該設備支持的屬性和服務組合的信息)所在位置的指示符。

除了提供發現功能外,SSDP 還提供了設備及其關聯的服務適當地從網絡離開的方式(再見通知),幷包含清除陳舊信息的緩存超時設置來進行自我維護。

GENA
定義普通事件通知架構 (GENA) 是爲了提供收、發使用了 HTTP over TCP/IP 和多播 UDP 的通知的能力。GENA 還定義了通知預定者和發佈者的概念以啓用事件。

在 UPnP 中,GENA 格式可用於創建將要使用簡單服務發現協議 (SSDP) 發送的展示通知,併爲 UPnP 事件提供表示服務狀態已更改的能力。希望接收事件通知的控制點會向事件源進行預定,方法是發送一個含有它感興趣的服務、將事件發往的位置以及事件通知的預定時間的請求。

要連續接收通知,所作的預定必須定期予以更新。也可以使用 GENA 取消預定。

SOAP
簡單對象訪問協議 (SOAP) 定義了可擴展標識語言 (XML) 和 HTTP 的使用來執行遠程過程調用。它正在變成 Internet 上基於 RPC 的通訊標準。通過使用 Internet 的現有基礎設施,它可以有效地配合防火牆和代理工作。SOAP 還使用安全套接字層(SSL) 提供安全性,並使用了 HTTP 的連接管理功能,從而使得 Internet 上的分佈式通訊就像訪問網頁一樣簡單。

與遠程過程調用非常相似,UPnP 使用 SOAP 向設備發送控制消息並將結果或錯誤返回到控制點。

每個 UPnP 控制請求都是一個 SOAP 消息,都包含調用操作和一組參數。其響應也是 soap 消息,其中包括狀態、返回值以及任何返回參數。

XML
爲使用 W3C 定義,可擴展標識語言 (XML) 是 Web 上的結構化數據的通用格式。另外,藉助 XML,幾乎可以將任何類型的結構化數據放到文本文件中。

XML 使用標記和屬性,這使它看起來與 HTML 非常相似。實際上,它們在以下方面存在顯著的差別:XML 標記和屬性的含義不是全局定義的,而是在使用它們的上下文中進行解釋。XML 的這些功能使得它成爲開發各種文檔類型架構的最佳選擇。W3C 定義了將 XML 作爲架構語言的使用。

XML 是 UPnP 的核心部分,被用在設備和服務描述、控制消息和事件處理中。


下面就是 UPnP 架構的關鍵構成:

* UPnP 設備 - UPnP 設備應該是由服務程序與相配套的部件構成。例如,一個 VCR 設備可能包括磁帶傳輸服務程序、調諧器部件和計時服務程序。同樣地,TV/VCR 組合設備也不會僅由服務程序構成,還要包括配套的部件。
* UPnP 服務程序 - UpnP 網絡中控制程序的最小的單元就是服務程序。服務程序會顯示操作界面,還會模擬出動作狀態,在模擬的過程中會利用到狀態變量。例如,在時鐘服務程序中,在模擬出時鐘的過程中就利用到當前時間這個狀態變量,用當前時間來定義時鐘的狀態,還有兩個動作,設置時間和獲取時間,可以用來對這個服務程序進行控制。
* UPnP 控制點 - UPnP 網絡中的控制點是一種控制設備,它能夠發現並控制其它設備。
20050413upnp2.jpg
UPnP 架構的組成部分
20050413upnp1.gif

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章