• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Win XP中網絡地址轉換(NAT)概述(一)

    發表于:2007-07-13來源:作者:點擊數: 標簽:
    簡介 隨著越來越多的家庭和小型企業添置計算機,它們會發現網絡是一種非常強大的計算機資源共享工具。Internet 連接則是網絡上更珍貴的資源,有可能被共享。為共享 Internet 連接,同時利用價格便宜、管理簡單的家庭或小型辦公網絡,需要部署 Internet 網關

      簡介

      隨著越來越多的家庭和小型企業添置計算機,它們會發現網絡是一種非常強大的計算機資源共享工具。Internet 連接則是網絡上更珍貴的資源,有可能被共享。為共享 Internet 連接,同時利用價格便宜、管理簡單的家庭或小型辦公網絡,需要部署 Internet 網關。Internet 網關通常將 NAT (網絡地址轉換) 作為將多個主機連接到 Internet 以共享單個公共 IP 地址的途徑。但不幸的是,該解決方案卻會破壞多種網絡應用程序。我們將在本文中對此加以說明。

      現有的“NAT 穿越”技術允許網絡應用程序檢測是否存在本地 NAT 設備。檢測到后,應用程序隨即對 NAT 進行配置,定義相應的映射來解決兼容性問題。

      本文屬于概述性文章,將向網絡應用程序的用戶和開發人員簡要介紹一下 NAT,介紹如何識別常見 NAT 問題,同時介紹應用程序如何使用 “NAT 穿越”解決這些問題。需要關注的 Internet 網關設備的一個重要特征是 UPnP 認證。使用者購買或從服務提供商那里租借 Internet 網關設備時,強烈建議只考慮那些通過用于 NAT 穿越的 UPnP 認證的設備,這是因為該功能對于滿足用戶、降低支持費用及使用更有創新性的服務和應用程序而言至關重要。

      對網關設備廠商而言,在 Internet 網關設備中加入對 NAT 穿越的 UPnP 技術支持并不復雜,費用不高,也不用花大量的時間。通過使用 UPnP (已經是基于 Internet 標準和協議的),Internet 網關設備制造商就可以解決 NAT 穿越問題,并將優點延伸至大多數經過該設備的應用程序。這同許多應用程序開發人員或網關設備制造商不得不為解決上述問題而提供一次性解決方案形成鮮明的對比。本文并非旨在為希望在 Internet 網關設備中實施“NAT 穿越”的硬件制造商提供詳細的指南。有關此信息,請參閱 UPnP 論壇 Web 站點。

      Windows 體系結構、網絡以及 UPnP 體系結構方面的知識會對充分理解本文會有所幫助,但并不是必需的。

      什么是 NAT?

      網絡地址轉換 (NAT) 是一個 Internet 工程任務組 (Internet Engineering Task Force,IETF) 標準,用于允許專用網絡上的多臺 PC (使用專用地址段,例如 10.0.x.x、192.168.x.x、172.x.x.x) 共享單個、全局路由的 IPv4 地址。IPv4 地址日益不足是經常部署 NAT 的一個主要原因。Windows XP 和 Windows Me 中的“Internet 連接共享”及許多 Internet 網關設備都使用 NAT,尤其是在通過 DSL 或電纜調制解調器連接寬帶網的情況下。

      NAT 對于解決 IPv4 地址耗費問題 (在 IPv6 部署中卻沒必要) 盡管很有效,但畢竟屬于臨時性的解決方案。這種 IPv4 地址占用問題在亞洲及世界其他一些地方已比較嚴重,且日漸成為北美地區需要關注的問題。這就是人們為什么長久以來一直關注使用 IPv6 來克服這個問題的原因所在。

      除了減少所需的 IPv4 地址外,由于專用網絡之外的所有主機都通過一個共享的 IP 地址來監控通信,因此 NAT 還為專用網絡提供了一個隱匿層。NAT 與防火墻或代理服務器不同,但它確實有利于安全?! ?/P>


    圖 1:使用 NAT 設備進行 Internet 通信的網絡示例。
    正如固定電纜調制解調器或 DSL 調制解調器可以作為 NAT 設備一樣,
    PC 也可以作為 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 需要存在端口映射。但在網絡邊緣上有 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 穿越有關的技術問題。從用戶的角度講,它所造成的影響比較簡單:人們再也無法使用受 NAT 干擾的服務或應用程序。

      現在,大多數用戶甚至沒有意識到自己已成為這種 NAT 問題的“受害者”。他們只是知道,當試圖玩多人游戲或者使用對等應用程序 (例如進行實時通訊) 或其他某些應用程序時,卻無法玩或無法使用。他們可能會在 PC 上看到類似“無法連接”等的錯誤消息,或者在試圖使用應用程序時,程序卻出現故障。

      有時,具有撥號調制解調器 Internet 連接的用戶在使用撥號調制解調器時不會出現上述問題。但當用戶使用寬帶服務并將 DSL 或電纜調制解調器設備與 NAT 一起使用時,卻出現故障。在進行快速 Internet 連接的情況下,這些用戶尤其會受到 NAT 問題的困擾:它們會突然導致用戶無法玩游戲或使用其他服務。

      這導致了用戶的不滿,矛頭指向 PC 生產商、ISP、Internet 網關提供商等等。通常,用戶并不知道問題的根源,而技術支持人員也并不總能知道如何通過電話解決這些問題。

      這已不僅是用戶的問題。它也成為向用戶提供產品和服務的制造商的問題。用戶在試圖解決這些由 NAT 引起的問題時會撥打支持電話,而這部分費用會減少制造商或零售商的利潤,甚至使其無利可圖。這些問題會導致用戶對試用服務的不滿,從而使某些用戶降低了對后續的新服務或新應用程序的興趣。因此,NAT 會妨礙其他創新產品/服務的推出和使用。

      鑒于上述因素,解決 NAT 問題已成為業界的一項重要任務。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>