線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2307
推到 Plurk!
推到 Facebook!

UPNP通用即插即用 NAT

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-19 12:04:59 IP:220.132.xxx.xxx 未訂閱
http://www.cn-cio.org/show.php?article_id=2509&col=art UPNP通用即插即用 NAT 提供者:jzj 簡介 隨著越來越多的家庭和小型企業添置電腦,它們會 發現網路是一種非常強大的電腦資源分享工 具。Internet 連接是網路上較為珍貴的資源之一,有可 能進行共用。為共用 Internet 連接,同時利用價格便 宜、管理簡單的家庭或小型辦公室網路,需要部署 Internet 閘道。Internet 閘道通常將 NAT(網路位址轉 換)作為將多個主機連接到 Internet 以共用單個公共 IP 位址的途徑。但不幸的是,該解決方案卻會破壞多 種網路應用程式。我們將在本文中對此加以說明。 現有的 NAT Traversal 技術允許網路應用程式檢測是否 存在本地 NAT 設備。檢測到後,應用程式隨即對 NAT 進行配置,定義相應的映 射來解決相容性問題。 本文屬於概述性文章,將向網路應用程式的用戶和開發人員簡要介紹一下 NAT, 介紹如何識別常見 NAT 問題,同時介紹應用程式如何使用 NAT Traversal 來解決 這些問題。Windows 中所提供的 NAT Traversal API 的詳細技術資料有望於 2001 年 初夏開始在 Windows Platform SDK 中得到。建議開發人員查閱這些資源,瞭解有 關如何充分利用這些新的作業系統功能(也已擴展到第三方閘道設備上)的詳細說 明。 NAT Traversal 依賴於提供 UpnP(通用即插即用)支援的 NAT 設備,其定義由 UPnP 論壇的 Internet Gateway Device Working Committee 給出。有關 UPnP 的資訊, 可見 UPnP Web 站點。特別詳細的資料位於 UPnP 站點中僅限成員訪問的部分 內。 支援 UPnP 和 NAT Traversal 是 Internet 閘道設備中比較重要的功能,需要加以確 認。對於購買或租用服務提供商 Internet 閘道設備的用戶,我們強烈建議只考慮使 用那些為 NAT Traversal 提供 UPnP 支援的設備,這是因為該功能對於滿足用戶、 降低支持費用及使用更有創新性的服務和應用程式而言至關重要。 對於閘道設備製造商而言,向 Internet 閘道設備添加對 NAT Traversal 的 UPnP 支援 並不複雜,費用不高,也不用花大量的時間。通過使用 UPnP(其基礎已經是 Internet 標準和協定),Internet 閘道設備製造商就可以解決 NAT Traversal 問題,並 將優點延伸給大多數經過該設備的應用程式。這同許多應用程式開發人員或閘道 設備製造商不得不為解決上述問題而提供一次性解決方案形成鮮明的對比。本文 並非旨在為希望在 Internet 閘道設備中實施 NAT Traversal 的硬體製造商提供詳細 的指南。有關此資訊,請參閱 UPnP 論壇 Web 站點。 瞭解 Windows 體系結構、網路和 UPnP 對於充分理解本文會有所幫助,但並非必 須如此。 什麼是 NAT? “網路位址轉換”(NAT) 是一種 Internet Engineering Task Force (IETF) 標準,用於允 許專用網路上的多台 PC 機(使用專用位址範圍,例如 10.0.x.x、192.168.x.x、172.x.x.x)共用單個、可全局路由的 IPv4 地址。經常部署 NAT 的一個主要原因就是 IPv4 位址日漸緊缺。Windows XP 和 Windows Me 中 的“Internet 連接共用”及許多 Internet 閘道設備都使用 NAT,尤其是在通過 DSL 或電纜數據機連接寬頻網的情況下。 NAT 對於解決 IPv4 地址耗費問題(在 IPv6 部署中卻沒必要)儘管成效及時,但畢 竟屬於臨時性的解決方案。這種 IPv4 位址耗費問題在亞洲及世界其他一些地方已 比較嚴重,且日漸成為北美地區需要關注的問題。這就是人們為什麼長久以來一 直關注使用 IPv6 來克服這個問題的原因所在。 除了減少所需的 IPv4 位址外,由於專用網路之外的所有主機都通過一個共用的 IP 位址來監控通訊,因此 NAT 還為專用網路提供了一個隱匿層。NAT 與防火牆或 代理伺服器不同,但它確實有利於安全。 圖 1:使用 NAT 設備進行 Internet 通訊的網路示例。PC 機可以成為 NAT 設備,就 象固態的電纜數據機或 DSL 數據機也能成為 NAT 設備一樣。 常規 NAT 操作 NAT 設備後面的用戶端通常通過 DHCP(動態主機配置協定)分配到專用的 IP 地 址,或者由管理員進行靜態配置。在該專用網路的外面進行通訊時,通常會發生 下列事情。 客戶機上 當應用程式想同伺服器通訊時,它將打開與源 IP 位址、源埠、目標 IP 位址、 目標埠及網路協定相關聯的套接字。這樣可以識別通訊所需的兩個端點。當應 用程式利用該套接字傳輸資訊時,客戶機的專用 IP 位址(源 IP 位址)和埠(源 埠)將被插入資料包的源欄位中。資料包的目標欄位將包含伺服器的 IP 位址 (遠端主機 - 目標 IP 位址)和埠。由於該資料包的目的地是該專用網路之外的 某個位置,因此客戶機將把該資料包轉發給默認的閘道。這種情況下的默認閘道 就是 NAT 設備。 NAT 設備上的輸出資料包 NAT 設備將截獲該輸出資料包,然後利用目標 IP 位址(伺服器)、目標端 口、NAT 設備的外部 IP 位址、外部埠、網路協定及客戶機的內部 IP 位址和端 口來創建埠映射。 NAT 設備將維護這些映射組成的表,並將該埠的映射存儲在表中。外部 IP 地 址和埠就是該資料通訊用於取代內部客戶機 IP 位址和埠的公共 IP 位址和端 口。 NAT 設備隨即將來自客戶機專用內部 IP 位址和埠的資料包的源欄位轉換為 NAT 設備的公共 IP 位址和埠,從而對這些資料包進行轉換。 然後,資料包將通過外部網路進行發送,並最終到達目標伺服器。 圖 2:輸出資料包轉換的示例。 伺服器上 當伺服器接收到資料包時,它認為自己是在和一台具有可全局路由 IP 位址的計算 機進行通訊。它會利用自己源欄位中的 IP 位址和埠將回應資料包定向給 NAT 設備的外部 IP 位址和埠。 NAT 設備上的輸入資料包 NAT 從伺服器那接收到這些資料包,然後將資料包與其埠映射表進行比較。如 果 NAT 發現某個埠映射的遠端主機 IP 位址、遠端埠、外部埠及網路協定 與輸入資料包的源 IP 位址、源埠、目標埠和網路協定匹配,NAT 就會進行 反向轉換。NAT 將把資料包目標欄位中的外部 IP 位址和外部埠替換為客戶機 的專用 IP 位址和內部埠。 隨後,NAT 將內部網路上的資料包發送給客戶機。但如果 NAT 找不到對應的端 口映射,它就會丟棄輸入資料包並中斷連接。 NAT 的作用在於:客戶機將能在全球 Internet 上與專用 IP 位址進行通訊,而應用 程式或客戶機卻無需做任何額外的工作。這意味著應用程式不必調用其他 API,而 客戶機也不必進行其他配置。這種情況下,NAT 對於客戶機和伺服器應用程式就 是透明的 - 所有物件都能正常工作。 但是,並非所有網路應用程式都使用能與 NAT 協同工作的協定。這就是問題的所 在。 NAT 與應用程式之間的常見問題 如果客戶機在開始連接和接收回復時都使用同一埠,則讓客戶機利用 NAT 來共 享單個可全局路由的 IP 地址不會有什麼問題。但是,許多應用程式所用策略的假 定條件在 NAT 設備用於連接 Internet 時都不成立。這裏將討論其中一些問題。 內部網路上的服務 許多網路服務或伺服器假定:如果建立監聽套接字,則 Internet 上的所有客戶機都 可以與之聯繫。但在網路邊緣上有 NAT 設備時,NAT 卻要求進行埠映射,以 便將輸入通訊轉發給內部網路上的服務。因此,該服務僅對專用網路上的客戶機 有效。它對於 Internet 其餘部分而言不可用。 該問題最常見的解決辦法是手動配置埠映射,使 NAT 設備將定向給 NAT 特定 外部 IP 位址和埠的通訊轉發給該服務所用的內部 IP 地址和埠。 利用該埠映射,服務可以接收輸入資料包,從而使服務可被專用網路外部的客 戶機所使用。建立埠映射之前,網路是斷開的。 手動配置該映射的過程通常比較複雜,要求較有經驗的用戶才能正確進行映射的 配置。因此,除非是聯繫自己寬頻 Internet 服務提供商、PC 製造商、零售商或 Internet 閘道製造商的客戶服務中心以嘗試找到問題的根源及解決方案,否則許多 一般用戶或小型企業用戶將無法使用所需的應用程式或服務。上述情況還會造成 映射的不嚴格:許多外部客戶機都可以使用該映射來連接伺服器。 嵌入位址或埠 有些網路應用程式假定客戶機所分配的 IP 位址和埠將始終可進行全局路由,並 可直接在 Internet 上使用。許多情況下,它們屬於 IETF 保留地址範圍內的專用 IP 地址。應用程式會在發送給伺服器的資料包的負載中包含該專用 IP 位址或埠。 伺服器可以將該嵌入地址用作聯繫客戶機時所用的地址。 如果伺服器試圖用嵌入 IP 位址和埠進行回復,而非 NAT 提供的映射位址和端 口,系統就會丟棄該資料包。這是因為嵌入 IP 地址是無法路由的。如果網路應用 程式能找到 NAT 設備並檢索到所要使用的外部 IP 位址和外部埠映射,應用程 序就可以在資料包中嵌入正確的資訊。 使用分散套接字的應用程式 還有一些網路應用程式使用埠 X 上的套接字向伺服器或對等電腦發送通訊信 息,然後等待將伺服器的通訊資訊接收到埠 Y 的獨立監聽套接字上。NAT 將監 視輸出通訊並為埠 X 創建埠映射,但並不對定址到埠 Y 的返回資料包進行 埠映射。定址到埠 Y 的輸入資料包將被丟棄。 需要埠可用 有些網路協定假定始終有可全局路由的已知埠可用。當多個客戶機共用 IP 位址 時,每次將只有一個客戶機能使用已知的埠。例如,每次只有一個 Web 服務能 使用本地網路上的埠 80。如果不是這樣,NAT 設備將無法確定外部請求所適用 的客戶機。即使在配置埠映射的用戶的幫助下,如果從本地網路的外部能找到 多個客戶機,也必須採取某些特殊的措施。 多個 NAT 如果客戶機位於一個 NAT 後面的 NAT 的後面,則出現的問題已超出本文所涵蓋 的範圍。 對用戶和行業的影響 上一段介紹了與 NAT Traversal 有關的技術問題。從用戶的角度講,它所造成的影 響比較簡單:人們再也無法使用受到 NAT 干擾的服務或應用程式。 現在,大多數用戶甚至沒有意識到自己已成為這種 NAT 問題的受害者。他們只是 知道,當試圖玩多方遊戲或者使用對等應用程式(例如進行即時通訊)或其他某些 應用程式時,卻無法玩或無法使用。他們可能會在 PC 機看到類似“無法連 接”等的錯誤消息,或者在試圖使用應用程式時,程式卻出現故障。 有時,具有撥號數據機 Internet 連接的用戶在使用撥號數據機時不會出現 上述問題。但當用戶註冊寬頻服務並將 DSL 或電纜數據機設備與 NAT 一起 使用時,卻出現故障。在進行快速 Internet 連接的情況下,這些用戶尤其會受到 NAT 問題的困擾:它們會突然禁止用戶玩遊戲或使用其他服務。 這樣會引起用戶不滿,並會將這種不滿轉嫁給 PC 製造商、ISP、Internet 閘道製造 商或其他方。通常,用戶並不知道問題的根源,而技術支持人員也並不總能知道 如何通過電話解決這些問題。 這已不僅是用戶的問題。它也成為向用戶提供產品和服務的製造商的問題。用戶 在試圖解決這些由 NAT 引起的問題時會撥打支援電話,而這部分費用會減少製造 商或零售商的利潤,甚至使其無利。這些問題會導致用戶對試用服務的不滿,從 而使某些用戶降低了對後續新服務或應用程式的興趣。因此,NAT 會妨礙其他創 新性產品/服務的推出和使用。 鑒於上述因素,解決 NAT 問題已成為行業的一項重要任務。 什麼是 NAT Traversal? NAT Traversal 是這樣一組功能:它允許網路應用程式能明確自己位於 NAT 設備的 後面,獲得外部 IP 位址,並將埠映射配置為將 NAT 外部埠的資料包轉發給 應用程式所用的內部埠,而所有這些都是自動完成的,因此用戶不必手動配置 埠映射或其他類似的方面。 相對與目前所用的、面向特定應用程式的其他方法而言,這對於解決由 NAT 引起 的連接問題確實是一種更為全面的解決方案。目前使用的那些專門解決方案有的 要求用戶具有一定的技術知識,有的要求應用程式開發人員或 Internet 閘道製造商 進行專門的開發工作,也有的則要求上面兩方面。 儘管 NAT Traversal 可以解決一些 NAT 問題,但它卻不是萬能的,還不能解決所 有的問題。在提高用戶滿意度、減少用戶支持呼叫的次數和支援新的、具有創造 性的服務和應用程式方面,這種自動式 NAT Traversal 代表了非常重要的一步,尤 其對於家庭網路環境而言。 NAT Traversal 應視為一種在需要時使用的處理機制,而非在所有情況下都發揮作 用。在 IPv6 中,每個客戶機都具有可全局路由的 IP 位址,因此已不再需要 NAT 及 NAT Traversal。就 IPv6 能在多長時間得到普遍部署這一問題,有各種不同的預 測。業界(包括 Microsoft)已投入鉅資推進 IPv6,但在現在及未來的幾年內,本文 後面所述的 NAT Traversal 解決方案對於希望解決 NAT 問題的一般用戶和小型企 業用戶而言卻意義非凡。 NAT Traversal 操作 NAT Traversal 依賴于作為通用即插即用 (UPnP) 論壇規範組成部分的 Discovery and Control 協定。UPnP 論壇有一個工作委員會主要負責定義 Internet 閘道設備的控制 協定並定義這些設備的服務。 支援 Internet 閘道設備控制協定基本元素的 Internet 閘道設備可向局域網上的控制 點聲明自己的存在並發佈 XML 描述文檔。利用這些 XML 描述文檔,控制點就能 瞭解用於確定 Internet 閘道是否支持 NAT、獲取 NAT 的外部 IP 位址及創建埠映 射時需要調用的 UPnP 操作。 Windows 中的 NAT Traversal API 對直接使用 UPnP 的要求進行了提煉,可提供用 於檢測、管理和配置 NAT 設備的介面。 NAT Traversal API 當網路應用程式需要檢測是否存在 NAT 設備並調整該設備的行為時,該應用程式 可以使用 Windows 中提供的 NAT Traversal API(完整記錄在 Platform SDK 中)來實 現下列功能: 確定是否存在 NAT 獲取 NAT 的外部 IP 位址。 獲取特定外部埠的靜態埠映射資訊(如果已映射)。 添加靜態埠映射(除非已分配外部埠)。 啟用或禁用特定的埠映射而不刪除 編輯靜態埠映射的介面友好描述 刪除靜態埠映射 獲取局域網靜態埠映射的列表 利用這些功能,應用程式可以解決許多因 NAT 而導致的問題。注意:Windows NAT Traversal API 目前僅在有限的時間內支援埠映射,否則將稱為靜態埠映 射。 Windows XP 中的 NAT Traversal API 默認情況下,Windows XP 中將安裝 NAT Traversal API。這些 API 也可安裝在運行 Windows Me 和 Windows 98 的電腦中,方法是使用 Windows XP CD 上一個名 為“網路安裝嚮導”的工具。為提供附加 XML 分析程式支援,NAT Traversal API 還要求安裝 Internet Explorer 6.0。 Windows 2000 中當前不支持 NAT Traversal。 Internet 閘道中支持 NAT Traversal Internet 閘道對 NAT Traversal 的支持是通過支持“通用即插即用論壇”Internet Gateway Working Committee 所定義的 Internet 閘道設備 (IGD) 規範而實現的。閘道 製造商還應注意到:Windows 中的 NAT Traversal API 對 IGD 進行下列假定: IGD 每次僅聲明一個外部介面。儘管在技術上允許 Internet 閘道設備聲明多個外部介面,但 NAT Traversal API 卻只使用第一個。 IGD 支援允許任何遠端 IP 位址將資料包發送給內部客戶機的埠映射。 IGD 支援具有廣播位址(列為客戶機)的埠映射 IGD 支援 NAT 外部埠數與客戶機內部埠數不同。 IGD 將聲明版本號 1。 靜態埠映射(或稱持續時間設置為無限的埠映射)將無限期存在。即使是重新啟動系統、更改 IP 地 址或是伺服器上存在客戶機,都無法去除靜態埠映射。 本文寫作的過程中,幾個業界領先的製造商已經宣佈在 2001 年提供支援這些 UPnP 方法且能與 Windows NAT Traversal API 協同使用的 Internet 閘道設備。這對 於行業和用戶都是非常重要的一步。 隨著越來越多的 Internet 閘道設備製造商認識到使用 UPnP 解決上述問題所具有的 優勢,隨著更多一般用戶和小型企業用戶開始意識到與 NAT 有關的問題及這些支 持 UPnP 的 NAT Traversal 解決方案的強大功能,為 NAT Traversal 提供 UPnP 支援 有望稱為此類設備的核查項或入市前提。 Internet 閘道製造商應加入 UPnP 論壇,瞭解如何使自己的 Internet 閘道設備符合 UPnP 標準。 應說明的是:Windows XP 上的“Internet 連接共用”支援 UPnP IGD 標準 0.9 版。 預計版本 1.0 將與版本 0.9 相容。 應用程式如何利用 NAT Traversal 應用程式使用 NAT Traversal 的方式與多個因素有關,包括埠映射期望的生存期 及埠是否用於多個客戶機或服務。應用程式應清除自己創建的所有靜態埠映 射,以避免出現孤立映射及埠被其他應用程式占盡的情況。 如果應用程式是一種網路服務(例如 Web 伺服器),並在生存期內要求使用已知 埠,它的安裝程式就可以使用 NAT Traversal API 來配置一個靜態埠映射。假 定其他應用程式、網路管理員、網路拓撲結構都維持原狀,而清除機制也保持映 射不變,則外部客戶機就能在服務生存期內連接該服務。應用程式的卸載服務將 負責刪除該映射。如果出現崩潰,即使服務已不存在,靜態埠映射也仍將存 在。如果外部 IP 位址發生變化,則靜態埠映射將自動獲取更改的內容。 如果應用程式並不始終運行,或者對網路維護其靜態埠映射的信任度降低,它 就可以在每次啟動時保留某個已知的埠,並在每次關閉時恢復資源。這一點可 通過運行某個並行腳本來實現。作為添加和刪除埠映射的替代方案,可以讓應 用程式根據需要啟用和禁用映射。應用程式還可以始終保留靜態埠映射,且只 在每次啟用時刷新一下映射。 同樣,如果外部 IP 位址發生變化,則靜態埠映射將自動獲取更改的內容。 如果專用網路上不同客戶機的多個應用程式使用同一內部埠號,應用程式就會 要求進行修改,以支持多個客戶機的運行。只有單個客戶機能使用外部埠映射 的內部埠號。此處建議讓第一個客戶機使用。其他客戶機應請求內部埠數不 同於外部埠數的非對稱埠映射。 有一種特殊的情況:多個客戶機可監聽同一外部埠,而唯一的目的是被遠端主 機發現。輸入資料包可以轉換為使用內部客戶機 IP 位址的廣播位址,而非特定的 客戶機位址。監聽該埠的客戶機可通過啟動自己與遠端主機之間的連接而予以 回復。建議不要普遍使用這種方案,因為到該位址的輸入資料包將被網路上的所 有客戶機接收,並會反過來對它們造成影響。 如果服務需要短期監聽某個隨機埠,它應在應用程式中請求一個靜態埠映 射,而非使用腳本。服務結束時,應予以清除(刪除映射)。應用程式應保留一份 自己特有埠映射的記錄。這樣,如果應用程式在崩潰時沒有關閉映射,就可以 在下一次啟動時檢索出清除埠映射所需的必要資訊。 如果應用程式離開網路時沒有清除其埠映射,則該映射就會保留下來,而清除 任務就落在用戶的身上。目前 Windows 中尚沒有清除機制,這是因為判斷應用程 序不再使用映射的時間非常難。 NAT Traversal 的局限 儘管 NAT Traversal 可以解決與通過 NAT 設備進行連接時有關的多種問題,但還 有 NAT Traversal 無法解決的問題及由其引起的問題。這些問題包括: NAT Traversal 使用開放式信任模式。這意味著專用網路上的所有應用程式都能訪問 NAT 上的所有端 口映射。儘管這樣可以增加多點管理的靈活性,但應用程式也就失去了對其映射的唯一佔有權。 應用程式將負責解決衝突。如果應用程式嘗試映射某個已映射給其他客戶機的埠,它就應負責查找另 一個埠或改寫應用程式。 NAT Traversal 無法解決在 ISP 分發專用位址和使用 NAT 進行客戶機連接方面的問題。這種情況 下,NAT 位於 Internet 閘道設備的外面,實際上位於服務提供商網路的內部。如果客戶機網路上的 NAT 位於另一個同類 NAT 的後面,家庭或小型企業中的 NAT Traversal 就會出現故障。因此,建議 Internet 服務提供商不要在自己的網路內部署 NAT。 應用程式獲取 NAT Traversal 時並非毫無代價。它們必須同時進行修改以調用 API,或者隨帶腳本以提 供解決方案。這對於大多數開發人員而言仍在可控制的範圍內,尤其是考慮到將這些 NAT Traversal 機 制併入應用程式後,應用程式就能自動與多種 Internet 閘道設備協同使用。 使用完埠映射後,應用程式負責清除工作。靜態映射會無限期存在,最好用於打算在整個應用程式生 存期內監聽已知埠的服務。 提供 NAT 的 Internet 閘道必須支援通用即插即用 Internet 閘道設備規範(至少為版本 0.9)。 結論 NAT 是得到 IETF 認可的解決方案,針對的是 IPv4 名稱空間耗用問題。使用 NAT 的 Internet 閘道經常用於家庭和小型企業。之所以使用它們,是因為它們價格便 宜,易於管理,無需用戶安裝特殊的軟體。 使用 NAT 的不足在於會破壞許多聊天、多玩家遊戲和對等應用程式。這是因為它 們的網路協定對網路體系結構所做的假定已不成立。 NAT Traversal 為應用程式提供了一條查找 NAT 設備、發現可全局路由的共用 IP 位址並配置靜態埠映射以解決某些連接問題的途徑。NAT Traversal 解決方案無 法解決與 NAT 有關的所有問題,但可以緩解部分問題。 本文的主要結論是: Internet 閘道設備製造商應在自己的設備中支援 UPnP,從而支持 NAT Traversal。 網路應用程式開發人員應使用 Windows NAT Traversal API 來檢測 NAT 的存在,並在必要時允許其 應用程式經過 NAT。 用戶應使用支援 UPnP 和 NAT Traversal 的 Internet 閘道設備,以確保最佳的應用程式性能。 DSL 和電纜數據機的服務提供商應指定、銷售和租賃為 NAT Traversal 提供 UPnP 支援的 Internet 閘道設備。 在 IPv6 最終消除 NAT 之前,某些形式的 NAT Traversal 仍會繼續存在。 UPnP NAT Traversal 常見問題 2001年7月17日 問:什麼是 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 (prakash.iyer@intel.com)。許多公司,包括 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 的開發人員資訊。 http://www.upnp.org/ 更詳細的~
系統時間:2024-04-20 9:02:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!