用于實現nat穿越的方法和系統的制作方法【專利摘要】本發明涉及一種用于促進NAT的穿越的方法和系統。該方法包括:服務器將針對第一NAT類型的NAT的NAT相關信息提供給第一局部網絡中的至少一個終端,第一局部網絡包括第一NAT類型的NAT。針對第一NAT類型的NAT的NAT相關信息能夠使第一局部網絡中的終端穿越該局部網絡中的NAT。通過測試特定NAT類型(諸如例如,NAT的特定品牌、型號和/或固件版本)的NAT獲得的NAT相關信息可被重新用于相同類型的其它NAT,而不管其中使用這些NAT的局部網絡如何,因此減輕單獨測試包含這些NAT的每個局部網絡中的相同類型的NAT的需要。【專利說明】【
技術領域:
】[0001]一般地,本發明涉及數據通信的領域。更具體地講,本發明涉及NAT穿越的領域。用于實現NAT穿越的方法和系統【
背景技術:
】[0002]網絡地址轉換器(NAT)已被設計用于通過針對放置在路由器后面的內部局部網絡(例如,家庭和公司網絡)中的裝置允許使用私有互聯網協議(IP)地址來減緩IPv4地址耗盡,該路由器具有被呈現給外部網絡(諸如,互聯網)的單個公共IP地址。通過將輸出請求的源地址改變為局部網絡中的NAT的源地址并且隨后將輸入答復轉送回起源EUD,NAT允許局部網絡中的終端用戶裝置(EUD)與外部網絡中的裝置通信。這意味著:僅當由屬于局部網絡的裝置發起時,穿過NAT的通信是可能的。作為結果,需要建立由來自外部網絡的裝置發起的連接的服務(諸如例如,對等(P2P)文件共享、IP語音(VoIP)服務或視頻游戲控制臺的在線服務)失敗,除非采取用于避免這種失敗的特殊措施。現有技術中的這種特殊措施包括通用即插即用(UPnP)、會話邊界控制器(SBC)和交互式連接建立(ICE)。[0003]許多目前的NAT穿越技術需要對關于NAT及其行為的某一類型的信息進行確定,即能夠被稱為"行為發現"的過程。通常,所謂的STUN協議被用于這個目的,其中在NAT后面的EUD上的通信應用(被稱為"STUN客戶機")與外部網絡中的STUN服務器交換許多消息以便確定NAT的行為。在IETFRFC5389中描述了STUN服務器的使用,并且還在IETFRFC5780中描述了可能的行為發現。[0004]在大多數當前的解決方案中,例如在VoIP呼叫建立期間,緊接在使用相關NAT信息之前執行相關NAT信息的確定,在VoIP呼叫建立中,該信息被請求,并且作為結果,確定被立即進行。然而,這產生許多另外的問題。一個問題是:NAT相關信息的發現(特別地,NAT行為的詳細調查)需要在網絡上交換許多消息,這在局部和外部網絡上以及在輔助NAT行為確定的STUN服務器上都增加了負載。另一問題時:NAT行為發現花費時間,并且在需要更詳細的信息的情況下,花費相應地更長的時間以進行發現。這意味著:在能夠建立連接之前的等待時間可能相當長。[0005]W02009/018004提出一種用于在確定NAT行為時減少時間的量和交換的消息的量的解決方案。該解決方案包括:局部網絡中的EUD共享關于它們的局部網絡中的NAT的被發現行為的信息。另外,EUD能夠主動地協作以進一步確定它們的網絡中的NAT的行為,而非被動地共享它們彼此獨立發現的NAT行為。關于該NAT的NAT信息隨后被存儲在位于該NAT后面的所有EUD能夠訪問的中心位置。現有技術文檔XP002512209"Anonymous:〃HomeGatewayTechnicalRequirements:ResidentionalProfileversion1.029-04-2008,'解釋了位于NAT后面的終端(CPE)如何能夠以通信方式耦合到管理服務器(ACS)。在XP002512209中描述的方法包括:每個終端使用STUN發現它的NAT相關信息。【
發明內容】[0006]本發明的目的在于提供用于NAT穿越的改進的方法和系統。[0007]為此,根據本發明的一個方面,提供一種用于促進NAT的穿越的方法。該方法包括:優選地由"NAT信息提供商"或"NIP"將針對第一NAT類型的NAT的NAT相關信息提供給第一局部網絡中的至少一個終端,其中第一局部網絡包括第一NAT類型的第一NAT并且其中針對第一NAT類型的NAT的NAT相關信息使終端能夠穿越第一NAT。[0008]NIP被配置為:優選地在必須將NAT相關信息提供給第一終端之前獲得并且保持存儲針對不同NAT類型的NAT的NAT相關信息的數據庫;以及從數據庫選擇針對第一NAT類型的NAT相關信息。[0009]如這里所使用,短語"終端穿越NAT"及其變型被用于描述使位于NAT后面的終端上的一個或多個軟件應用能夠接收來自外部網絡中的應用或客戶機的數據交通,換句話說,使來自外部網絡中的一個或多個應用或客戶機的數據交通能夠到達位于NAT后面的一個或多個應用或客戶機。而且,換句話說,短語"穿越NAT"被在一般意義上使用,意味著實現位于NAT后面的終端和外部網絡中的裝置之間的通信。這種通信是雙向的,不僅允許從里面到NAT外面的交通,而且具有從外面去到NAT里面的終端的交通。[0010]如這里所使用,術語"終端"表示局部網絡內的任何終端用戶裝置或計算系統。終端能夠包括但不限于例如計算機、手提式互聯網瀏覽器、電子郵件裝置、VoIP電話、游戲控制臺或手提式游戲裝置。[0011]另外,如這里所使用,術語"NAT相關信息"表示允許在某個點穿越NAT的任何信息。本領域技術人員將會理解,這種信息能夠包括但不限于例如由NAT使用的一個或多個當前端口、NAT的當前WANIP地址、實現在NAT中的當前虛擬服務器規則、NAT的端口映射行為和過濾行為、對發夾的支持、由NAT使用的一個或多個端口分配算法、NAT綁定的超時值、在擁塞期間、在繁忙網絡交通期間、在大量同時會話期間和/或在多個同時NAT綁定期間的NAT的行為。[0012]還另外,在本發明的實施例的上下文中,如果兩個NAT在多數實際上可行的情況下表現基本上相同,則它們被稱為"是相同的NAT類型"。這通常意味著它們是相同品牌、型號和固件,但這也可以意味著它們只是相同的品牌(如果該品牌的所有NAT裝置具有基本上相同的行為的話)。[0013]本發明基于這樣的認識:通過測試特定NAT類型(例如,NAT的特定品牌、型號和/或固件版本)的NAT獲得的NAT相關信息可被重新用于相同類型的其它NAT,而不管在其中使用這些NAT的局部網絡如何。針對相同類型的不同NAT裝置的相同或基本上相同的NAT相關信息因此應該被稱為類型特有信息或類型特有NAT相關信息。這種類型特有信息被提供給需要通過NAT與外部網絡中的終端或裝備建立通信的第一(優選地,局部)網絡中的終端。本發明基于這樣的認識:類型特有信息能夠被重新用于第一NAT類型的不同NAT。類型特有(NAT相關)信息的例子包括:第一NAT類型的NAT的端口映射行為;第一NAT類型的NAT的過濾行為;由第一NAT類型的NAT對發夾的支持;在第一NAT類型的NAT中實現的端口分配算法中的一個或多個;第一NAT類型的NAT中的NAT綁定的一個或多個超時值;以及在擁塞期間、在繁忙網絡交通期間、在多個同時會話期間和/或在多個同時NAT綁定期間的第一NAT類型的NAT的行為。裝置特有(NAT相關)信息也能夠被單獨地或與類型特有(NAT相關)信息同時提供給終端。裝置特有信息也能夠由終端以現有技術中已知的其它方式獲得。[0014]換句話說,特定NAT類型的NAT可被測試一次,并且作為測試的結果獲得的NAT相關信息可被重新用于在其中部署這個特定類型的NAT的任何情況,因此減輕單獨測試包含這些NAT的每個局部網絡中的相同類型的NAT的需要。以這種方式,與在W02009/018004中描述的技術不同,可設想這樣的情況:位于這個類型的特定NAT后面的終端都不需要執行任何NAT測試以便獲得必要的NAT相關信息。提出的方法允許減小網絡上和參與NAT行為發現過程的STUN服務器上的負載,因為不需要由每個局部網絡中的每個個體終端執行復雜的NAT發現處理,甚至不需要由部署特定NAT類型的NAT的局部網絡內的一個終端執行復雜的NAT發現處理。在本發明的實施例中,可利用被實現在NAT上的STUN服務器功能執行NAT的測試。STUN客戶機功能可能也能夠被實現在NAT上。本發明的這個實施例中的STUN服務器被以這種方式實現在NAT上,即通過NAT的地址轉換部分對例如用于NAT的NAT行為的測試的消息(例如,STUN消息)進行路由。[0015]提出的方案具有幾個另外的優點。一個另外的優點是:至少針對一些NAT類型在每個類型基礎上將服務器上的NAT相關信息存儲在數據庫中提供節省服務器存儲空間的優點,與針對那些NAT類型的NAT裝置在每個裝置基礎上存儲NAT相關信息形成對比。另一優點包括增加局部網絡內的安全和信任的水平。本領域技術人員將會理解,與從同一局部網絡中的另一終端接收NAT相關信息相比,終端從終端"信任"的運營商接收NAT相關信息是更有價值的,因為另一終端可能正在提供惡意的或僅僅不正確的NAT相關信息。另外,通過在請求NAT相關信息的時間之前執行NAT測試,在建立來自和去往局部網絡中的終端的連接中的延遲能夠減小。[0016]當然,設想一些實施例并且這些實施例落在本發明的范圍內,其中位于特定類型的NAT后面的終端仍然需要執行一些附加的測試以便例如補充從NIP獲得的NAT相關信息。然而,即使對于這種實施例,上述優點仍然顯著。[0017]根據本發明的另一方面,還公開了一種用在以上方法中的服務器,該服務器被描述為NAT信息提供商(NIP)。而且,本公開涉及:一種計算機程序,具有用于執行這里描述的各種功能的部分,可能是分布式的;以及針對這種軟件部分的數據載體。另外,本公開還涉及一種用于與如這里所述的NIP-起使用的中間網絡節點,諸如例如家庭網關、路由器或包括路由器的家庭網關。本公開還涉及一種至少包括如上所述的服務器的電信系統。[0018]以下,將更詳細地描述本發明的實施例。然而,應該認識到,這些實施例不可被解釋為限制本發明的保護的范圍。【專利附圖】【附圖說明】[0019]在附圖中:圖1是根據本發明的一個實施例的具有將NAT相關信息提供給一個或多個EUD的NIP的計算環境的示意性示圖;圖2是根據本發明的一個實施例的實踐中如何能夠實現圖1中圖示的環境的示意性示圖;圖3闡述根據本發明的一個實施例的EUD的NIP管理的TR-069序列的方法步驟的流程圖;圖4是根據本發明的一個實施例的使用RPC執行圖3的方法的例子的示意性示圖;圖5提供根據本發明的一個實施例的可能的CWMP設置參數值請求的例子;圖6A-6C圖示根據本發明的各種實施例標識EUD位于其后面的NAT的類型的NAT類型標識符如何能夠被提供給NIP。圖7是根據本發明的一個實施例的其中NIP能夠將NAT相關信息提供給EUD的示例性設置的示意性示圖;圖8A和8B闡述根據本發明的不同實施例的NIP收集NAT相關信息的方法步驟的流程圖;圖9是根據本發明的一個實施例的NIP、STUN客戶機和STUN服務器之間的交互的示意性示圖;圖10和11提供根據本發明的各種實施例的用于部署STUN客戶機的不同方式的示意性示圖;圖12A提供根據本發明的一個實施例的用于部署STUN客戶機的再另一方式;圖12B提供根據本發明的一個實施例的能夠實現如圖12A中所示的STUN客戶機功能的NAT的示意性示圖;圖13A提供根據本發明的一個實施例的部署STUN服務器作為NAT的一部分的示意性示圖;圖13B提供根據本發明的一個實施例的能夠實現如圖13A中所示的STUN服務器功能的NAT的示意性示圖;圖14A提供根據本發明的一個實施例的部署STUN客戶機和STUN服務器兩者作為NAT的部分的示意性示圖;和圖14B提供根據本發明的一個實施例的能夠實現如圖14A中所示的STUN客戶機和STUN服務器功能的NAT的示意性示圖。【具體實施方式】[0020]圖1是根據本發明的一個實施例的具有將NAT相關信息提供給一個或多個EUD3的NIP2的計算環境1的示意性示圖。在本發明的上下文中,如以上所定義,術語"EUD"被用于描述"終端"。如所示的,NIP2可經IP網絡4連接到許多NAT5-7。每個NAT可將存在于位于相應NAT后面的局域網(LAN)中的一個或多個EUD3連接到IP網絡4,如針對NAT6和7所示。當然,位于NAT后面的LAN也可以沒有EUD,如針對NAT5所示。[0021]不同的NAT5-7可具有相同的類型,但也可具有不同的類型。在示例性實施例中,在圖1中分派給NAT的不同數字(5、6和7)意圖圖示:NAT5可以是一個NAT類型的NAT,兩個NAT6可以是另一NAT類型的NAT,而NAT7可以是第三NAT類型的NAT。[0022]要注意的是,利用相同參考數字在圖1中圖示的兩個或更多的元件(諸如例如,兩個NAT6和多個EUD3)不意圖指示具有這些參考數字中的每一個的元件是唯一裝置,而是更意圖指示它們中的每一個是這些裝置中的不同裝置。因此,圖1圖示相同終端(即,EUD3)的多個實現方式和相同NAT類型的NAT(即,NAT6)的多個實現。[0023]NIP2被配置為:一旦NIP2獲得特定類型的NAT的標識,針對該特定類型的NAT需要NAT相關信息,就把針對特定NAT類型的NAT相關信息提供給任何一個或多個EUD3和/或NAT5-7自身。為此,NIP2可至少包括數據庫8,數據庫8包含針對不同NAT類型的NAT相關信息,其中針對不同NAT類型的NAT相關信息被以這種方式存儲,即能夠基于特定NAT類型的標識(NAT類型ID)檢索NAT相關信息。NIP2還可包括用于處理NAT相關信息的處理器9。NIP2還可包括用于將消息/數據發送給其它裝置和從其它裝置接收消息/數據的通信模塊(圖1中未示出)。[0024]能夠由NIP2針對特定NAT類型提供的NAT相關信息包括使位于該類型的NAT后面的局部網絡中的終端能夠穿越該NAT的信息,即由NIP2提供的NAT相關信息使位于NAT后面的終端上的一個或多個客戶機能夠從外部網絡中的一個或多個客戶機接收數據交通。[0025]在每個類型基礎上而非每個裝置基礎上將NAT相關信息提供給終端的NIP2允許把通過測試特定NAT類型(例如,NAT的特定品牌、型號和/或固件版本)的一個或多個NAT獲得的NAT相關信息重新用于相同類型的其它NAT,而不管使用這些NAT的局部網絡如何。換句話說,特定NAT類型可被測試一次,并且作為測試的結果獲得的NAT相關信息可被重新用于其中部署這個類型的NAT的任何情況,因此減輕單獨測試包含這些NAT的每個局部網絡中的相同類型的NAT的需要。對于圖1中圖示的示例性方案,這意味著NIP2可將相同的NAT相關信息提供給在第一局部網絡中位于第一NAT6后面的一個EUD3和在第二局部網絡中位于第二NAT6后面的三個EUD3中的一個或多個,在圖1中利用虛線圖示局部網絡。[0026]可實現NAT相關信息的這種重新使用,因為這些NAT6是相同NAT類型的NAT裝置,例如相同品牌、型號和固件的NAT。[0027]要注意的是,圖1將NAT5-7中的每一個圖示為被包括在相應局部網絡內,并且這里提供的討論適應于NAT的典型使用,即NAT將局域網連接到外部網絡或廣域網的情況。然而,本領域技術人員將認識到,這里提供的構思也將會起作用于并且能夠適應于NAT的其它實現方式,諸如提供商NAT,即提供商在網絡中實現NAT并且將私有地址分派給用戶裝備的情況。在這種實現方式中,NAT將不必被包括在局部網絡中。而且,盡管典型NAT問題針對IPv4NAT穿越,但本發明的實施例也適用于其它形式的NAT,諸如IPv4/IPv6NAT或提供商間NAT,即由網絡提供商在與其它網絡提供商的互連中應用的NAT。[0028]在各種實施例中,針對每個不同NAT類型的NAT相關信息可包括例如使用中的當前端口中的一個或多個、一個或多個當前WANIP地址、當前虛擬服務器規則、端口映射行為、過濾行為、對發夾(hairpinning)的支持、端口分配算法中的一個或多個、NAT綁定的超時值、在擁塞期間的行為、在繁忙網絡交通期間的行為、在大量的同時會話和/或多個同時NAT綁定期間的行為。當然,能夠設想能夠被用于促進NAT穿越的其它種類的NAT相關信息并且這些其它種類的NAT相關信息落在本發明的范圍內。[0029]上述NAT相關信息中的一些可能看起來是裝置特有的而非類型特有的。換句話說,上述NAT相關信息中的一些可能看起來針對特定NAT是特有的而不是針對特定NAT類型的所有不同NAT的特性。這種信息的一些例子包括使用中的當前端口或虛擬服務器規貝1J。然而,結果表明:令人驚訝地,這種信息可實際上對于某一類型的NAT的所有實現方式而言是典型的,并且因此可被視為是類型特有的。[0030]在各種實施例中,NIP2還能夠被配置為不僅提供針對某些NAT類型的NAT相關信息,而且提供針對特定NAT的特有信息。NIP2還可被配置為把提供針對某一NAT類型的NAT的一般NAT相關信息與提供關于特定NAT的特有信息組合。[0031]在本發明的上下文中,如果兩個NAT在多數或所有實際上可行的情況下基本上相同地表現,則它們被稱為"是相同的NAT類型"。這通常意味著它們是相同品牌、型號和固件,但這也可意味著它們只是相同的品牌(如果該品牌的所有NAT裝置具有基本上相同的行為的話)。在各種實施例中,特定NAT類型的標識(S卩,NAT類型ID)可包括指示下面的一項或多項的信息:例如NAT的銷售商的組織唯一標識符(0UI)、銷售商或制造商的名稱、型號編號、型號名稱、硬件版本、軟件版本、引導rom版本、NAT裝置序列號、銷售商的企業編號和銷售商的分類數據。然而,NAT類型ID不一定必須是作為上述例子之一的實際ID,而能夠是使NIP2能夠確定NAT類型ID的任何信息,諸如例如由NIP2接收的對NAT相關信息的請求中所包括的NAT的公共IP地址(如果NIP2知道哪個NAT具有這個IP地址的話)。因此,可設想使NIP2能夠標識特定NAT類型的各種其它方式并且這些其它方式落在本發明的范圍內。[0032]應該注意的是,與由上述W02009/018004提出的技術不同,根據本發明的實施例,獨自使用媒體訪問控制(MAC)地址作為NAT類型的標識符通常將是不足夠的。如果NAT相關信息在每個裝置基礎上在NIP2中可用,則這將會是足夠的,因為MAC地址在世界范圍是唯一的。然而,根據本發明的實施例,至少針對一些NAT類型的ΝΑΤ,ΝΙΡ2的數據庫8在每個類型基礎上包含NAT相關信息。由于雖然MAC地址標識NAT的銷售商,但它不標識特定產品類型,所以當使用數據庫8時,獨自使用MAC地址作為NAT類型標識符將是不足夠的。MAC地址仍然能夠被用于標識裝置類型,但在那種情況下,數據庫8將會需要包含MAC地址或MAC地址范圍和裝置類型的列表。在一些實現方式中,諸如例如由互聯網服務提供商提供的家庭網關,這種列表可以是可獲得的,因為這種提供商經常為了其它目的(諸如例如,為了網絡中的網關驗證)而保持對該信息的跟蹤。此外,裝置制造商能夠通過某種離線過程供應該信息。[0033]類似于使用MAC地址,NAT的廣域網(WAN)IP地址也可在某一時間點被用作唯一標識符。當例如使用DHCP分派WANIP地址時,這個IP地址在該時間被鏈接到MAC地址,并且因此在該時間被鏈接到特定裝置。[0034]結合圖8A-14B更詳細地描述NIP2如何可獲得以及保持數據庫8。[0035]圖2是根據本發明的一個實施例的如何能夠在實踐中實現圖1中圖示的環境1的示意性示圖。為此,圖2圖示針對遵循寬帶論壇的TR-069規范的遠程裝置管理的典型設置。圖2中示出的NAT可以是圖1中圖示的NAT5-7之一,并且可以包括管理的互聯網網關裝置(管理的IGD)(諸如例如,家庭網關(HG))或者被包括在管理的IGD中。在本描述中,符號"NAT5-7"被用于指示NAT,該NAT可以是圖1中圖示和描述的NAT5、NAT6或NAT7。[0036]如圖2中所示,NAT5-7在其的WAN接口上連接到NIP2。NIP2能夠被實現為自動配置服務器(ACS)的部分。在圖2的右側,示出典型的LAN,包括NAT5-7和各種EUD3,諸如電話、機頂盒(STB)、平板計算機或PC。[0037]NIP2能夠執行對LAN中的各種EUD3的遠程管理,或者換句話說,能夠將NAT相關信息提供給各種EUD3和/或根據提供的NAT相關信息配置EUD。為此,NIP2具有南向接口并且可具有許多北向接口,如圖2中所示。可經NIP的、基于IP的、南向接口使用例如CPEWAN管理協議(CWMP)執行管理。在典型設置中,將會在互聯網服務提供商(ISP)的IP核心網絡中在某處連接NIP2。NAT5-7可隨后經邊緣和接入網絡連接到這個IP核心網絡。以這種方式,NAT5-7將會具有與NIP2的IP連接。北向接口將NIP2連接到OSS/BSS11和策略中心12,用于執行例如預定履行、賬單編制、訂戶管理、策略管理、改變管理、制造管理、性能分析或服務水平協議管理。北向接口還將NIP2連接到呼叫中心13,用于例如接收配置、安裝以及供呼叫中心雇員使用。[0038]圖3闡述根據本發明的一個實施例的EUD的NIP管理的TR-069序列的方法步驟的流程圖。盡管結合圖1和2描述這些方法步驟,但本領域技術人員將會認識到,被配置為以任何順序執行這些方法步驟的任何系統落在本發明的范圍內。[0039]該方法開始于步驟15,在步驟15,EUD3發起NIP發現過程以發現NIP2。為此,在根據TR-069的一個實施例中,能夠在EUD3中預先配置NIP2的URL。在另一實施例中,EUD3能夠從I⑶接收NIP2的URL作為DHCP選項。TR-069也提供落在本發明的范圍內的其它選項。一個這種選項是:EUD3將不會被配置有NIP2的地址,而是配置有中間實體(諸如例如,某一中間網絡節點)的地址。這個中間實體能夠隨后將來自EUD3的請求轉發或代理發送給NIP2。能夠出于可擴展性目的,或者為了例如根據做出的請求的類型將請求路由至不同的NIP而執行這種設置。[0040]在由EUD3發現NIP2之后,在步驟16中,EUD3可設立與NIP2的傳輸控制協議(TCP)連接。可通過交換TCPsyn數據包和TCPack數據包來實現這一點,如關于TCP的IETFRFC793中所規定的。如果連接設立由于某一原因而失敗,則EUD3可重試連接發起直至成功,如步驟17中所示。[0041]在發起連接之后,在步驟18中,通過將CWMP通知請求發送給NIP2并且接收CWMP通知響應并且隨后將空的HTTPPost發送給NIP2,EUD3發起事務會話(transactionsession)的設立。在已建立這個會話之后,EUD3能夠從NIP2接收請求。如果EUD3接收到請求(步驟19),則EUD3分析請求(步驟20)。作為分析的結果,EUD3確定請求的類型(步驟21),即確定請求包含空的HTTPPost還是包含遠程過程調用(RPC)。空的HTTPPost是可以結束會話的標志,如步驟22中所示。然而,如果在步驟21中EUD確定該請求包含PRC的形式的實際指令,則EUD3可繼續根據指令繼續執行RPC方法(步驟23)。[0042]在步驟19中由EUD3接收的請求的一個例子可以是CWMPGetParameterValues請求。利用這種請求,NIP2將會在步驟18中建立會話之后請求EUD3中存在的參數的列表。由于這個請求不是空的HTTPPost,所以EUD3將會發送CWMPGetParameterValues響應,作為步驟23的部分。在此之后,NIP2將會知道哪些參數存在于EUD3中,并且能夠隨后使用EUD3將會在步驟19中接收的CWMPSetParameterValues請求設置這些的值。因此,CWMPSetParameterValues請求能夠由NIP2用于指令EUD配置NAT行為參數(S卩,提供針對EUD位于其后面的NAT的特定NAT類型的NAT相關信息,其中提供的信息允許配置EUD以便能夠穿越NAT),作為接收CWMPSetParameterValues請求之后的步驟23的一部分。這些步驟的流程被示出在圖4中。如本領域技術人員將理解的,圖4中的步驟的流程從圖4的頂部到底部以時間順序被示出,并且遵循與圖3中所示的方法步驟的相同順序,但該流程是RPC方法GetParameterValues和SetParameterValues的使用的具體例子。[0043]圖5提供根據本發明的一個實施例的作為能夠由NIP2發送給EUD3的請求的可能的CWMPSetParameterValues請求的例子。CWMP使用SOAP作為包絡并且使用HTTP作為應用層協議,在TCP上面作為傳輸協議。SetParameterValues請求因此是典型SOAP請求,在這種情況下,SOAP請求符合如TR-069中所規定的XML方案。盡管TR-069未規定參數NATMappingType和NATFilteringType,但它們被包括在圖5中作為在TR-069被適配為包含對NAT行為描述參數的支持的情況下CWMPSetParameterValues請求將會如何使用TR-069工作的例子。這個特定CWMPSetParameterValues請求將會指令EUD3將兩個參數設置為新值。參數NATMappingType將會被設置為DevicePortDependent并且參數NATFilteringType將會被設置為Devicelndependent。[0044]圖2-5圖示EUD如何能夠根據EUD位于其后面的NAT的特定類型從NIP請求NAT相關信息。為此,NIP需要知道這個NAT的身份。可按照不同方式發現這個身份,并且這個身份可被以不同方式提供給NIP。[0045]圖6A-6C圖示根據本發明的各種實施例標識EUD3位于其后面的NAT的類型的NAT類型標識符(NAT類型ID)如何能夠被提供給NIP2。[0046]如圖6A中所示,根據一個實施例,EUD3能夠自己將NAT類型ID提供給NIP2。EUD3能夠通過允許唯一標識特定NAT類型的各種方式訪問NAT類型ID,諸如例如使用來自IETFRFC1925的DHCP銷售商標識DHCP選項、使用UPnP裝置描述或使用裝置網關協會的TR-069規范。在這種實施例中,EUD3將會把NAT類型ID提供給NIP2,可能作為對NAT相關信息的請求的部分或作為一般配置請求的部分,該NAT相關信息針對由NAT類型ID標識的類型的NAT。[0047]如圖6B中所示,根據另一實施例,NIP2可以是NAT5-7的部分,并且作為結果,知道NAT5-7的NAT類型的身份。在這種實施例中,EUD3將會把對NAT相關信息的請求發送給包含NIP2的NAT5-7。[0048]如圖6C中所示,根據再另一實施例,來自EUD3的對NAT相關信息的請求能夠經過NAT5-7而到達NIP2。在這種實施例中,NIP2可以獲知NAT類型ID,因為NAT5-7將NAT類型ID附著于從EUD3發送的請求,或者因為NIP2能夠例如基于NAT5-7的公共IP地址從接收的請求標識NAT類型ID(如果NIP2知道哪個NAT具有這個IP地址的話)。[0049]在圖6C的一個實施例中,EUD3可不配置有NIP2的地址。替代地,可在NAT5-7中配置NIP2的地址。EUD3可隨后將它的請求發送給NAT5-7,并且NAT5-7可隨后用作針對這些請求的代理,將這些請求轉發給NIP2。[0050]針對圖6B和6C中圖示的實施例提供的討論對于下面的實施例也是有效的:在這些實施例中這些附圖中圖示的NAT5-7由某一中間網絡節點(例如,家庭網關、路由器或包含路由器的家庭網關)替換,這種中間網絡節點包含NAT5-7。[0051]在另外的其它實施例(圖6A-6C中未圖示)中,NAT類型ID可在沿著EUD3和NIP2之間的路徑的其它某處被附著于該請求。例如,位于NAT5-7和NIP2之間的網絡節點(諸如,DSLAM或路由器)可將NAT類型ID附著于該請求。這種網絡節點甚至可位于EUD3和NAT5-7之間的家庭網絡中。在所有這些情況下,這些網絡節點還可用作對于由EUD3發送給NIP2的請求的代理。[0052]只要NAT類型ID經某一中間網絡節點被提供給NIP2(作為對于針對特定NAT類型的NAT的NAT相關信息的請求的部分或者沒有這種明確的請求),中間網絡節點就可被配置成用能夠對NIP2有用的附加信息(諸如例如,根據例如對該特定NAT的網絡負載表達的網絡狀態)來補充消息。如果EUD3和NIP2不使用相同協議,則中間網絡節點還可被配置為重新格式化該消息,例如在相同協議的不同版本之間重新格式化。另外,中間網絡節點可被配置為確認在消息中發送的NAT類型ID是正確的。在EUD3或EUD3上的客戶機不"受信任"并且中間網絡節點受信任的情況下,這可能是有用的。對于將NAT類型ID提供給NIP2的所有的不同方式,NIP2能夠通過從數據庫8把針對由NAT類型ID標識的NAT類型的NAT相關信息提供給EUD3來響應于對NAT相關信息的請求,NAT相關信息能夠由EUD3在接收時使用或者被存儲在EUD3中供稍后使用。在圖6C中圖示的實施例中,NIP2能夠經NAT5-7或包含NAT5-7的中間網絡節點把NAT相關信息提供給EUD3,直接地(換句話說,通過跳過NAT5-7或包含NAT5-7的中間網絡節點)把NAT相關信息提供給EUD3。替代地,NIP2能夠經圖6C中未示出的某一其它中間網絡節點把NAT相關信息提供給EUD3。在由NIP2經某一中間網絡節點(例如,NAT5-7、包含NAT5-7的網絡節點或不包含NAT5-7的某一其它網絡節點)把NAT相關信息提供給EUD3的實施例中,中間網絡節點可被配置成用可能對EUD3有用的附加信息(諸如例如,網絡的狀態)來補充該響應,或者在EUD3或EUD3上的客戶機和NIP2不使用相同協議的情況下重新格式化該消息。替代地或附加地,例如如果中間網絡節點也代理發送初始請求,則中間網絡節點可被配置為代理發送響應消息。[0053]盡管以上在NIP2接收對NAT相關信息的請求的情況下解釋了圖6A-6C中圖示的例子,但如結合圖6A-6C所述將NAT類型ID提供給NIP2的各種方式也對于下面的實施例有效:該實施例中在沒有對NAT相關信息的明確請求的情況下提供NAT類型ID。在這種實施例中,只要NIP2訪問例如以圖6A-6C中圖示的方式之一獲得的針對該EUD的NAT類型ID,以及只要EUD3被配置為從NIP2收聽消息,NIP2就能夠在NIP2被利用某一其它觸發因素觸發時提供NAT相關信息。以上例子中的觸發因素可以是例如:NIP2被配置為周期地提供NAT相關信息的特定時間段到期、EUD3啟動、EUD3連接到局部網絡或在網絡中發生的某一其它改變。而且,NIP2能夠被配置為將NAT相關信息提供給EUD3作為對來自EUD3的更一般的請求(諸如例如,一般配置請求)的響應。這可以例如是當NIP2是圖6A-6C中未示出的自動配置服務器(ACS)的部分、還將其它非NAT相關配置信息提供給EUD3時的情況。EUD3可能不知道ACS能夠提供NAT相關信息,但可接收NAT相關信息作為對非NAT相關配置請求的響應。[0054]圖7是根據本發明的一個實施例的其中NIP2能夠將NAT相關信息提供給EUD3的示例性設置的示意性示圖。如圖7中所示,NAT能夠被包括在家庭網關(HG)10內,并且NIP2能夠是ACS14的部分。HG10能夠是例如路由器或包含路由器以及包含附加功能的家庭網關。在啟動(步驟25)之后,HG10將會使用例如TR-069從ACS14請求配置(步驟26)。這個配置請求的部分能夠被用于獲得附加信息,該附加信息將在稍后用在對EUD3的DHCP響應中。由于HG10正在將請求提供給ACS14,所以ACS14知道HG10中的NAT5-7的NAT類型的身份,并且能夠提供針對標識的NAT類型的NAT相關信息(步驟27)。HG10不需要理解從ACS14接收的NAT相關信息,因為HG10能夠被配置為僅僅立即將信息傳送給EUD或存儲信息以在稍后將其提供給EUD。[0055]如圖7中另外所示,在啟動(步驟28)時,EUD3能夠使用DHCP向HG10請求配置(步驟29)。在各種實施例中,IP地址信息、默認網關和DNS服務器地址可以是由EUD3經DHCP提供的主要信息,但更多信息能夠被包含在DHCP響應中。在這種情況下,HG10將會在它的響應中包括NAT相關信息(步驟30)。以這種方式,HG10用作NIP2的代理,存儲適合于EUD3的NAT相關信息(S卩,針對EUD3位于其后面的特定NAT類型的NAT的NAT相關信息)并且在某一稍后時點將該信息提供給EUD3,可能響應于來自EUD3的請求而這樣做。[0056]圖7可以被視為圖6C中圖示的實施例的特殊情況。因此,這里關于圖6C提供的所有討論(包括關于圖6C中的可能的變型的那些討論)適用于圖7。為了簡潔,這里不重復那些討論。[0057]圖8A和8B闡述根據本發明的各種實施例的NIP2收集NAT相關信息的方法步驟的流程圖。盡管結合圖1和2描述這些方法步驟,但本領域技術人員將會認識到,被配置為以任何順序執行這些方法步驟的任何系統落在本發明的范圍內。[0058]圖8A圖示針對NIP2的基本流程。該方法開始于步驟31,在步驟31中,NIP2確定對NAT相關信息的需要。例如,在一個實施例中,如果NIP2不具有針對特定NAT類型的任何NAT相關信息或僅具有不完整的NAT相關信息,則NIP2可以確定需要針對該NAT類型的NAT相關信息。在另一實施例中,外部網絡能夠檢測到新的網關裝置的存在(新的網關裝置是新的NAT和/或包括新的NAT),并且向NIP2指示可能存在應該確定針對其的NAT相關信息的新的NAT。在再另一實施例中,NIP2可能接收到NIP2不能履行的對NAT相關信息的請求,并且因此確定應該獲取附加的NAT相關信息。NIP2還能夠被配置為從某些IP范圍嘗試和收集NAT相關信息,而預先不知道這些IP地址是否被NAT使用。在它們的LAN中的NAT或EUD還可被配置為向NIP2指示它們向NIP2提供NAT相關信息(包括它們相應的NAT的標識)的能力。[0059]該方法然后前進至步驟32,在步驟32,NIP2可明確地或暗示地將對NAT相關信息的請求發送給STUN客戶機。以下結合圖9-14B更詳細地描述STUN客戶機的功能。[0060]在步驟33中,STUN客戶機執行NAT行為檢測并且將這種檢測的結果提供給NIP2作為針對對NAT相關信息的請求的響應(步驟34)。該方法結束于步驟35,在步驟35,NIP2以這種方式將接收的NAT相關信息存儲在數據庫8中,即NIP2能夠基于NAT類型IDNAT類型ID來檢索這種信息。[0061]根據例如可用于NAT目的的存儲和處理的量并且因此根據由裝置上的其它過程或應用使用的量,NAT可在不同情況下表現不同。NAT還可根據網絡負載和/或活動會話的數量而表現不同。因此,可能有益的是,實現多個STUN客戶機,每個STUN客戶機提供針對特定NAT類型的NAT相關信息的部分,和/或實現一個或多個STUN客戶機,所述一個或多個STUN客戶機可在一個時間點提供NAT相關信息的部分并且在另一時間點提供附加的NAT相關信息。圖8B示出根據這種實施例的用于收集針對某一NAT類型的NAT行為信息的更復雜的流程。[0062]如圖8B中所示,該方法在步驟36中開始于NIP2確定對NAT相關信息的需要,類似于上述步驟31。然而,在步驟36中,NIP2可被配置為不僅確定NIP2不具有關于哪些NAT類型的NAT相關信息,而且確定它具有關于哪些NAT類型的部分信息。附加或者替代地,NIP2可被配置為確定它在當時不需要或者根本不需要關于某一NAT類型的完整NAT相關信息,而僅需要部分NAT相關信息。如果存在或預期存在對部分NAT相關信息的請求(例如,對在特定情況下的NAT行為信息的請求),則情況可能是這樣。[0063]在確定對NAT相關信息的需要和需要的信息的類型之后,NIP2找到可用的STUN客戶機(步驟37)。在一個實施例中,NIP2可能已經知道某些STUN客戶機能夠提供關于某些NAT類型的特定信息。NIP2還可與網絡管理系統交互以獲取這種信息和/或可被配置為通過試錯法(例如,通過嘗試某些IP地址范圍)來找到可用的STUN客戶機。[0064]如果在步驟37中NIP2不能找到任何可用的STUN客戶機,則它能夠延遲一定量的時間并且稍后再次嘗試,如圖8B中利用步驟38和39所示的。這種實施例可以是有益的,因為NAT和STUN客戶機兩者都可以來來去去,即隨著時間而變為與網絡連接和從網絡斷開。[0065]當NIP2找到一個或多個可用的STUN客戶機時,NIP2隨后確定它們的情況(步驟40)。當NIP2僅需要要求特定情況(例如,特定網絡負載或特定數量的同時會話)的部分NAT相關信息時,需要標識在那些特定情況下的一個或多個NAT。為了確定這些情況,NIP2可從NAT自己和/或從LAN或WAN中的監測功能請求這些情況。在標識能夠提供需要的信息的STUN客戶機之后,該方法前進至步驟41,在步驟41,NIP2把對特定NAT相關信息的一個或多個請求發送給在步驟4〇中標識的所述一個或多個STUN客戶機。在步驟42中,NIP2從STUN客戶機接收請求的信息。該方法結束于步驟43,在步驟43,NIP2把接收的NAT相關信息存儲在數據庫8中。[0066]圖9是根據本發明的一個實施例的使用STUN協議獲得NAT相關信息的NIP2的示意性示圖。盡管這里描述的實施例參照如IETFRFC5389中所規定的STUN協議,但也能夠使用類似的、可能的非標準化的協議,利用對于本領域技術人員而言將顯而易見的適當修改來實現這些實施例。換句話說,盡管參照STUN客戶機和STUN服務器描述了圖8A-14B,但對于被配置為出于根據除STUN協議之外的某一協議確定NAT相關信息的目的而交換一個或多個消息的任何客戶機和任何服務器,可獲得類似的教導。本領域技術人員將會認識至IJ,術語"任何客戶機"和"任何服務器"在這個上下文中能夠指代在裝置上的合適地配置的軟件段。[0067]結合圖9提供的、STUN客戶機獲得NAT相關信息以提供給NIP2的描述可以例如被應用于在圖8A和8B中討論的STUN客戶機。[0068]如圖9中所示,在步驟47中,NIP2可將對NAT相關信息的請求發送給STUN客戶機(SC)45。如果STUN客戶機45不具有已經可用的NAT相關信息,則STUN客戶機45可能必須確定請求的信息,可通過與STUN服務器(SS)46交換許多STUN消息來實現這一點(步驟48)。也如圖9中所示,在最后的步驟49中,STUN客戶機45把包含所請求的NAT相關信息的消息發送給NIP2。[0069]在一個實施例中,STUN客戶機45能夠被實現在位于NAT的一側的EUD上,而STUN服務器46能夠被實現在位于NAT的另一側的服務器上,其中NAT可以是這里描述的NAT5-7之一。在一個特定實施例中,STUN客戶機45能夠被實現在位于NAT的LAN側的EUD(諸如,這里描述的EUD3之一)上,而STUN服務器46能夠被實現在位于NAT的WAN側的服務器上。然而,以下描述其它實施例,其中STUN客戶機45和/或STUN服務器46可被以不同方式實現。[0070]在步驟48中在STUN客戶機45和STUN服務器46之間交換的特定消息的性質和消息的數量取決于待確定的NAT相關信息的性質。如以上所討論的,例如,如果不能確定所有的請求的信息和/或如果僅在特定時間點向特定STUN客戶機45請求部分信息,則STUN客戶機45能夠被配置為遞送部分信息。[0071]圖9中圖示的實施例假設NIP2主動地發送對NAT相關信息的請求,如利用圖9中示出的步驟47所示。然而,步驟47是可選的,因為結合圖9提供的討論也能夠被應用于這樣的實施例:STUN客戶機45將會被配置為在NIP2未發送明確的對NAT相關信息的請求的情況下把NAT相關信息提供給NIP2。STUN客戶機45能夠被配置為可能響應于某一其它觸發因素將信息提供給NIP2。例如,在特定預定時間、在預定時間間隔到期時、在STUN客戶機和/或EUD啟動時、當EUD正連接到LAN時或者當在LAN中某些事物改變時,信息能夠被從STUN客戶機45提供給NIP2。這種用于將NAT相關信息從STUN客戶機45提供給NIP2的觸發因素類似于可被用于NIP2將NAT相關信息提供給EUD3的觸發因素。[0072]不管步驟47是否存在于NIP2從STUN客戶機45獲得NAT相關信息的過程中,STUN客戶機45應該位于NAT"后面",因為在上述步驟48中在STUN客戶機45和STUN服務器46之間交換的消息應該在合適的方向經過NAT,以便能夠獲得NAT相關信息。對于存在步驟47的實施例,另外的要求也將會是:STUN客戶機45應該能夠接收來自NIP2的對NAT相關信息的請求。圖10、11、12A-12B和14A-14B提供根據本發明的各種實施例的用于部署滿足這些要求的STUN客戶機的不同方式的示意性示圖。在這些圖中圖示的NAT能夠是這里描述的NAT5-7中的任何一個。[0073]圖10圖示:STUN客戶機45可被實現為LAN中的一個或多個EUD3的一部分或其附加物。盡管這種設置將會滿足第一要求,即STUN客戶機45將會位于NAT50后面,但通常將會不滿足第二要求,因為來自NAT50的WAN側的NIP2的請求通常將不經過NAT50并且因此將不會到達STUN客戶機45。為了滿足第二要求,在一個實施例中,NAT50可被配置為包含虛擬服務器規則以允許來自NIP2的請求經過NAT50到達EUD3。在另一實施例中,EUD3可包括兩個或更多的接口,其中至少一個接口將位于NAT50后面并且至少一個其它接口不位于NAT50后面。在再其它實施例中,EUD3可被配置為例如在啟動之后發起到NIP2的連接,以使得稍后NIP2能夠穿越NAT50以到達EUD3。[0074]圖11圖示另一設置,其中,類似于圖10,STUN客戶機45被實現為LAN中的一個或多個EUD3的部分或其附加物。為了滿足第二要求,NAT51包含服務代理(SP)52。月艮務代理52允許來自NIP2的請求去往NAT51,并且然后NAT51將這個請求轉發給EUD3。這種實現方式的例子可以是對LAN中的UPnP服務的遠程訪問。NAT51(例如,家庭網關和/或路由器)可支持這種類型的遠程訪問,并且STUN客戶機45能夠被實現為EUD3上的UPnP服務。[0075]圖12A圖示用于部署STUN客戶機45的第三設置。在如圖12A中所示的設置中,因為STUN客戶機45被實現為NAT53的部分,所以來自NIP2的消息能夠到達STUN客戶機45。然而,對于這種實現方式,除非如下所述那樣采取附加的措施,否則不滿足STUN客戶機45的第一要求,因為STUN客戶機45將不會位于NAT53后面。[0076]圖12B是根據本發明的一個實施例的能夠滿足具有STUN客戶機功能的要求的圖12A中圖示的NAT53的示意性示圖。圖12B圖示:NAT53包括STUN客戶機45、被配置為在NAT53內實際執行NAT的功能的NAT單元54(NAT的地址轉換部分)并且可選地包括一個或多個應用60,諸如例如具有例如裝置上的web接口的形式的VoIP應用、VPN應用、存儲應用、IPTV應用、安全應用、家庭自動化應用和管理應用。也如圖12B中所示,NAT53包括與WAN的接口57和與LAN的接口58。還如所示的,NAT53包括被配置用于對IP數據包進行路由的路由功能56。[0077]NAT單元54被配置用于經路由功能56將網絡地址轉換應用于交通,該交通經接口58來自LAN并經接口57去往WAN,并且反之亦然。另外,NAT53在NAT53的LAN側包括針對STUN客戶機45的虛擬網絡接口59。虛擬網絡接口59像與路由功能56的正常網絡接口一樣表現,即虛擬網絡接口59允許發送和接收IP數據包并且具有分派給它的IP地址。然而,替代于作為用于硬件段(諸如,網絡接口卡)的驅動器,虛擬網絡接口59是將網絡交通遞送給特定軟件應用(在這種情況下,STUN客戶機45)的驅動器。[0078]虛擬網絡接口59應該被配置為任何其它接口。為了實現適當的NAT測試,接口59和路由規則兩者都能夠被配置為類似于LAN接口58或多個LAN接口,以使數據包通過NAT單元54經過正確的路線。接口59也能夠被配置為例如與位于LAN側的硬件接口一起(即,接口58)形成橋組,在這種情況下,虛擬網絡接口59和接口58兩者都將使用相同路由配置,因此數據包將經過正確的路線。[0079]路由功能56被配置為對在NAT53內的STUN客戶機45和位于NAT53外面某處(可能位于WAN中)的STUN服務器之間交換的消息進行路由,以使得消息穿越NAT單元54。這種配置確保STUN客戶機45在網絡意義上位于NAT"后面",因為以與STUN客戶機45被實現在連接到NAT的LAN側的EUD上的情況類似的方式,經NAT單元54對在STUN客戶機45和STUN服務器46之間交換的消息進行路由。[0080]在各種實施例中,路由功能56能夠被實現于硬件、軟件、固件或這些項中的兩項或更多項的任何組合。[0081]在圖12B的實現方式中,可實現另外的措施以確保NIP2可到達STUN客戶機45,類似于結合圖10和11描述的例子。為了簡潔,這里不重復那些描述。[0082]在一個實施例中,當前用于創建虛擬私有網絡(VPN)連接的LinuxTun或Tap實現方式能夠被用于實現虛擬網絡接口59。在其它實施例中,某一其它虛擬網絡接口實現方式也能夠被用于實現虛擬網絡接口59,只要以這種方式編程路由配置,即虛擬網絡接口59位于NAT53的LAN側,如圖12B中所述。[0083]在NAT53上或在具有NAT功能的任何網絡節點上實現STUN客戶機45而非在位于這種NAT或這種網絡節點后面的局部網絡中的EUD3上實現客戶機允許由NIP2發送的消息到達STUN客戶機45,而路由單元56確保STUN客戶機45在網絡意義上位于NAT"后面"。以這種方式,NIP2可請求NAT行為發現并且從STUN客戶機45獲得NAT相關信息。其后,NIP2能夠將合適的NAT相關信息提供給局部網絡中的終端,提供的NAT相關信息使終端能夠穿越它們位于其后面的NAT。[0084]另外,在NAT53上或在具有NAT功能的類似網絡節點上實現STUN客戶機45消除了使終端位于可用于NAT行為發現的NAT53后面的需要。這意味著:NAT53-變為可用(意味著NAT53"在線",被接通并且連接),就可立即執行NAT的測試。[0085]類似于如上所述在NAT自身上實現STUN客戶機45,STUN服務器46也可被實現在NAT上。圖13A提供根據本發明的一個實施例部署STUN服務器46作為NAT61的部分的示意性示圖。NAT61能夠是這里描述的NAT5-7中的任何一個。[0086]這種實現方式的一個優點是消除了使STUN服務器46位于WAN中的需要。將STUN服務器46包括在NAT61中允許使用STUN協議更快地確定NAT相關信息,因為沒有STUN消息必須經過網絡的WAN側。另外,甚至可在不需要NAT61的WAN部分上的實際連接的情況下測試NAT61。[0087]再另外,這種解決方案是可擴展的,因為每個NAT可包含用于連接到NAT的LAN中的EUD的STUN服務器。在NAT上實現STUN服務器46的構思基于這樣的認識:單個網絡節點(諸如例如,NAT或包括NAT的家庭網關)通常具有足夠處理能力以便針對位于這種網絡節點后面的LAN中的相對較少的EUD處理NAT行為發現。因此,在NAT上實現STUN服務器46消除了對具有為許多個體終端服務的足夠容量的中央服務器(諸如,STUN服務器)的需要。[0088]圖13B提供根據本發明的一個實施例的能夠實現如圖13A中所示的STUN服務器功能的NAT61的示意性示圖。圖13B圖示與圖12B的基本元件相同的基本元件,諸如例如NAT單元54、應用60、LAN接口58和WAN接口57。為了簡潔,這里不重復這些元件的描述。[0089]也如圖13B中所示的,NAT61還包括STUN服務器46、路由功能62和接口63。類似于圖12A中示出的虛擬網絡接口59,接口63也是虛擬網絡接口,但位于NAT61的WAN偵k虛擬網絡接口63包括與接口59類似的功能并且被以與配置圖12B中示出的針對STUN客戶機45的接口59的方式類似的方式配置,不同之處在于,不需要另外的措施以使得可到達STUN服務器46。通常僅由STUN客戶機通過NAT向STUN服務器發送消息,并且STUN服務器不需要用于使STUN服務器針對其它功能可訪問的附加接口或虛擬服務器規則。STUN服務器當然可以具有用于例如STUN服務器自身的遠程管理的接口。[0090]為了使用位于NAT的WAN側的虛擬網絡接口,必須分派地址。這個地址通常將是可在外部網絡中路由的公共地址,因為這些是在NAT的WAN側使用的地址。這種公共地址因為在WAN中的路由目的而通常是唯一的,并且通常在相同時間僅被分派一次,即分派給單個裝置。但由于在圖13B中示出的實施例中,交通通過NAT單元54被路由至這個地址,即不離開包含NAT單元54的節點61,所以相同公共地址在相同時間能夠被用于NAT的不同實現方式。還要注意的是,由于去往NAT61上的STUN服務器46的交通不經過外部網絡,所以分派給STUN服務器46的地址不必須是公共地址。如果NAT61能夠被以這種方式配置,即起源于NAT61的LAN側并且以位于NAT的WAN側的STUN服務器的這種私有地址為目的地的交通將會實際上經過NAT單元54,則地址還可以是私有地址,即通常用在NAT的LAN側。[0091]將相同公共地址分派給各種NAT中的STUN服務器也能夠與實際上將這個相同的公共地址分派給外部網絡中的STUN服務器組合。隨后STUN客戶機能夠在其配置中接收到STUN服務器的這個地址。如果STUN客戶機位于其后面的NAT已如圖13B中所示實現STUN服務器,則隨后它們的STUN請求將會被路由至該STUN服務器。如果STUN客戶機位于其后面的NAT未以這種方式實現STUN服務器,則它們的請求將會被自動地路由至外部網絡中的STUN服務器。[0092]對于本領域技術人員來說,將明顯的是,為了使用這種虛擬網絡接口,將必須相應地配置路由規則。能夠以各種方式實現這一點,諸如創建包含虛擬網絡接口和實際網絡接口的橋組,或通過配置用于這個特定目的的路由表。[0093]類似于路由功能56,路由功能62被配置為對在NAT61內的STUN服務器46和位于別的某處(但在LAN內,以使得STUN客戶機45位于NAT61后面)的STUN客戶機45之間交換的消息進行路由,以使得消息穿越NAT單元54。[0094]在再另一實施例中,STUN客戶機和STUN服務器兩者都可以被實現在NAT上。在圖14A中示出這一點,圖14A提供根據本發明的一個實施例部署STUN客戶機45和STUN服務器46兩者作為NAT70的部分的示意性示圖。圖14B提供根據本發明的一個實施例的能夠實現如圖14A中所示的STUN客戶機和STUN服務器功能的NAT70的示意性示圖。如所示的,例如,具有虛擬網絡接口59和63,圖14B是圖12B和圖13B的組合。如果需要可從NAT70的WAN側到達STUN客戶機45,則它將仍然需要例如虛擬服務器規貝丨』。如果STUN客戶機45和STUN服務器46兩者都使用這種虛擬網絡接口被實現在同一NAT上,則STUN行為發現可以是非常快速的,因為沒有STUN消息必須實際經過該網絡。而且,在沒有任何可用連接的情況下仍然能夠完成發現,或者如果連接可用,則它們不會負擔用于NAT發現的網絡交通,從而節省用于其它目的的網絡資源。[0095]雖然圖12A-12B、13A-13B和14A-14B被描述為分別描繪NAT53、NAT61和NAT70,但在其它實施例中,裝置53、61和70可以不是NAT"本身",而是包括NAT功能的任何中間網絡節點,諸如例如家庭網關、路由器或包括路由器的家庭網關。在這種裝置中,將通過NAT單元54實現NAT功能。另外,裝置53、61和70中的每一個還能夠可選地包括:至少一個存儲器,用于存儲數據和計算機程序;處理器,用于運行計算機程序以及用于處理數據;和通信模塊,用于發送和接收消息/數據交通。例如,路由功能56、63和71的功能能夠被實現為存儲在存儲器中以用于在處理器上運行的計算機程序。[0096]另外,參照至少針對一些NAT在每個類型基礎上存儲和分發NAT相關信息的NIP2并且在該NIP2的背景下描述了NAT53、61和70的功能。然而,在其它實施例中,可由任何NAT信息提供商(諸如例如,被配置為在每個裝置基礎上存儲和分發NAT相關信息的傳統NAT信息提供商)采用使用分別如圖12A-B、13A-B和14A-B中所示的NAT53、61和70的NAT行為發現。[0097]下面的討論適用于這里描述的所有實施例。[0098]在各種實施例中,STUN客戶機45可以是應用的部分或者可以是網頁的部分。例如,STUN客戶機45可被實現為互聯網應用(例如,瀏覽器或即時消息應用)的插件或實現為網頁上的Java腳本段。每次用戶將使用EUD瀏覽某一網頁時,這種Java腳本段能夠被下載并且運行。能夠在前臺實現這一點,例如可出于檢測NAT相關信息的目的而專門創建網頁,例如主控NIP2的運營商的網頁。替代地,Java腳本也可以是其它網頁的部分并且在后臺運行,而用戶不知道腳本正在運行。[0099]在另外的實施例中,替代于僅監測情況并且報告在其期間確定NAT相關信息的情況,STUN客戶機45可被配置為主動地影響這些情況。例如,STUN客戶機45可被配置為設立多個會話或引起附加的網絡負載以便能夠在多個會話或重網絡負載的情況期間確定NAT行為。[0100]這里描述的實施例主要涉及在確定的時刻存在的情況下使用已有STUN客戶機確定STUN客戶機位于其后面的NAT的NAT相關信息。然而,類似于STUN客戶機45的STUN客戶機也可按需部署。可把這種STUN客戶機例如使用TR-069、使用OSGii框架或使用用于將STUN客戶機軟件傳輸到NAT并且將它安裝在NAT上的某一其它手段部署在EUD或NAT上。按需實現STUN客戶機可提供如下的優點:STUN客戶機將例如僅在終端用戶不使用NAT的夜晚或在低使用率的其它時間期間占用資源。一旦NAT和/或EUD為了其它目的而被再次使用,這種STUN客戶機就可被移除,或者能夠保持被實現但變為不活動直至另一空閑時間段。[0101]另外,可能除了上述方式之外,還存在各種其它離線手段,通過這些離線手段,NIP2可獲得NAT相關信息。在一個例子中,NAT的制造商能夠供應這種信息。在另一例子中,能夠在測試環境中測試NAT,在該測試環境中能夠模擬或復制各種情況。通過使用STUN協議可以實現這一點,但使用位于NAT的兩端的網絡嗅探器并且隨后測試經過NAT的、來自和去往不同IP地址和端口的各種消息也能夠實現這一點。在再另一例子中,能夠通過對實現NAT的實際代碼的分析推斷NAT行為。這種代碼能夠是可獲得的(例如,因為它是開源的或由制造商提供),或者能夠通過對NAT的反向工程來取得。如果特定裝置類型使用與一些其它特定裝置類型相同的NAT實現方式,例如如果它基于相同的Linuxiptable版本并且使用相同配置,則也能夠推斷該特定裝置類型的NAT行為。[0102]在各種實施例中,NAT5-7、STUN客戶機45和/或STUN服務器46中的每一個能夠被實現于軟件、硬件、固件或這些項中的兩項或更多項的任何組合中。[0103]這里描述的NIP2被描述為單個實體。實際上,經常為了可擴展性的目的,NIP2可被實現為被配置為一起工作(例如,以分布式方式)的兩個或更多的各種實體。例如通過具有多個實體,每個實體為許多終端裝置服務,通過具有位于多個物理實體頂上的虛擬化層以及具有位于其頂上的NIP(即,作為"云服務"的NIP),通過具有合適的負載共享或負載分配機制等等,能夠實現這一點。[0104]本發明的一個實施例可被實現為用于與計算機系統一起使用的程序產品。程序產品的(一個或多個)程序定義實施例的功能(包括這里描述的方法)并且能夠被包含在各種優選的非暫態計算機可讀存儲介質上。說明性的計算機可讀存儲介質包括但不限于:(i)不可寫入存儲介質(例如,計算機內的只讀存儲裝置,諸如可由CD-ROM驅動器讀取的CD-ROM盤、ROM芯片或任何類型的固態非易失性半導體存儲器),信息被永久地存儲在該存儲介質上;和(ii)可寫入存儲介質(例如,軟磁盤驅動器內的軟盤或硬盤驅動器或任何類型的固態隨機訪問半導體存儲器、閃存)可改變的信息被存儲在該存儲介質上。可在這里描述的處理單元上運行計算機程序。【權利要求】1.一種用于促進位于第一網絡地址轉換器類型的網絡地址轉換器(NAT)后面的第一網絡中的終端和外部網絡中的裝置之間的通信的方法,所述方法包括下述步驟:把針對第一NAT類型的一個或多個NAT的類型特有信息提供給第一網絡中的至少一個終端,其中針對第一NAT類型的所述一個或多個NAT的類型特有信息由第一局部網絡中的所述至少一個終端在設立或保持第一網絡中的所述終端和所述外部網絡中的所述裝置之間的通信中使用。2.如權利要求1所述的方法,還包括:保持存儲針對一個或多個NAT類型的NAT的類型特有信息的數據庫,所述一個或多個NAT類型至少包括第一NAT類型;以及至少部分地基于第一NAT類型的標識從數據庫選擇針對第一NAT類型的NAT的類型特有信息以提供給第一局部網絡中的所述至少一個終端。3.如權利要求2所述的方法,其中存儲在數據庫中的、針對所述一個或多個NAT類型的NAT的類型特有信息的至少部分由一個或多個NAT制造商提供,通過在測試環境中測試所述一個或多個NAT類型中的至少一個NAT類型來獲得,通過對所述一個或多個NAT類型中的至少一個NAT類型的實現代碼的分析來獲得,和/或根據STUN協議使用消息的交換來獲得。4.如前面權利要求中的一項或多項所述的方法,其中響應于接收到對NAT相關信息的請求提供針對第一NAT類型的NAT的類型特有信息,所述請求使服務器能夠確定第一NAT類型的標識。5.如權利要求4所述的方法,其中在接收到所述請求之前獲得針對第一NAT類型的NAT的類型特有信息。6.如前面權利要求中的一項或多項所述的方法,其中針對第一NAT類型的NAT的類型特有信息包括下面各項中的一項或多項:第一NAT類型的NAT的端口映射行為;第一NAT類型的NAT的過濾行為;由第一NAT類型的NAT對發夾的支持;在第一NAT類型的NAT中實現的一個或多個端口分配算法;第一NAT類型的NAT中的NAT綁定的超時值;以及在擁塞期間、在繁忙網絡交通期間、在多個同時會話期間和/或在多個同時NAT綁定期間的第一NAT類型的NAT的行為。7.如前面權利要求中的一項或多項所述的方法,其中針對第一NAT類型的NAT的類型特有信息包括下面各項中的一項或多項:由第一NAT類型的NAT使用的當前端口;針對第一NAT類型的NAT的當前虛擬服務器規則。8.如前面權利要求中的一項或多項所述的方法,還包括:將針對第一NAT類型的NAT的類型特有信息提供給第二局部網絡中的至少一個終端,第二局部網絡不同于第一局部網絡并且包括第一NAT類型的第二NAT。9.一種服務器,包括被配置用于執行如權利要求1-8中的一項或多項所述的方法的裝置。10.-種中間網絡節點,包括如權利要求9所述的服務器并且還包括第一NAT類型的NAT。11.一種用于與如權利要求9所述的服務器一起使用的中間網絡節點,所述中間網絡節點包括第一NAT類型的NAT并且被配置至少用于:將第一NAT類型的標識提供給服務器;從服務器接收針對第一NAT類型的NAT的類型特有信息;以及將針對第一NAT類型的NAT的類型特有信息提供給第一局部網絡中的所述至少一個終端。12.-種用于與如權利要求9所述的服務器一起使用的中間網絡節點,所述中間網絡節點被配置至少用于:將第一NAT類型的標識提供給服務器。13.如權利要求10-12中的一項或多項所述的中間網絡節點,所述中間網絡節點包括家庭網關和/或路由器。14.一種終端,用于:在如權利要求1-8中的一項或多項所述的方法中使用,與如權利要求10所述的服務器一起使用,和/或與如權利要求10-13中的一項或多項所述的中間網絡節點一起使用,所述終端被配置至少用于:接收針對第一NAT類型的NAT的類型特有信息;以及使用針對第一NAT類型的NAT的類型特有信息來穿越第一NAT。15.如權利要求14所述的終端,還被配置用于將第一NAT類型的標識提供給服務器。16.-種計算機程序,包括軟件代碼部分,所述軟件代碼部分被配置為:當由處理器執行時,執行權利要求1-8中的至少一個權利要求的步驟。【文檔編號】H04L29/12GK104106254SQ201280069761【公開日】2014年10月15日申請日期:2012年12月13日優先權日:2011年12月14日【發明者】H.M.斯托克金,F.登哈托格,M.赫雷拉范德努德,B.希爾倫,H.穆德申請人:皇家Kpn公司,荷蘭應用自然科學研究組織