專(zhuān)利名稱(chēng):便于對(duì)等應(yīng)用通信的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理在因特網(wǎng)上交換數(shù)據(jù)的應(yīng)用之間通信的設(shè)備。更具體 地,本發(fā)明涉及網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備和使用這種NAT設(shè)備以便于在因特 網(wǎng)上對(duì)等數(shù)據(jù)通信的系統(tǒng)及方法。
背景技術(shù):
如圖l所示,傳統(tǒng)類(lèi)型的網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備20通常放置在兩個(gè)不 同地址區(qū)域50和30之間的邊界上的因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)中。 一個(gè)區(qū)域50 可以是專(zhuān)用組織的內(nèi)部網(wǎng)10,而另一個(gè)區(qū)域30可以是公用的全球因特網(wǎng)。由 這種傳統(tǒng)設(shè)備尋址的問(wèn)題在于一個(gè)組織可能需要較大的內(nèi)部網(wǎng)絡(luò),該網(wǎng)絡(luò)具有 許多設(shè)備,每個(gè)設(shè)備需要唯一的IP地址??紤]到當(dāng)前可用的唯一 IP地址的可 用地址空間(2 32個(gè)可用地址)和現(xiàn)在地址定位方式,該組織也許不能通過(guò)指定 這種地址的管理機(jī)構(gòu)分配足夠數(shù)目正式的IP地址給它。因此,該組織被迫有 效地對(duì)它自己的內(nèi)部網(wǎng)絡(luò)作出內(nèi)部有效的地址。這能使其內(nèi)部網(wǎng)絡(luò)正確地運(yùn) 作;在這種情況不需要使用正式分配的IP地址。當(dāng)在較大的內(nèi)部網(wǎng)絡(luò)中的設(shè) 備或應(yīng)用(在特定設(shè)備中運(yùn)行的程序)需要與全球因特網(wǎng)(我們是指使用正式 指定IP地址的任何公共或?qū)S玫腎P網(wǎng)絡(luò))通信時(shí),就會(huì)引起困難。因?yàn)橛稍?組織內(nèi)部指定的地址或者與屬于某些其他組織的正式指定的地址重疊,或者不 是正式指定的,全球的因特網(wǎng)不能使用這些地址將數(shù)據(jù)正確地發(fā)送到該組織的 內(nèi)部網(wǎng)絡(luò)。為了發(fā)送數(shù)據(jù)到連網(wǎng)設(shè)備,例如,發(fā)送的應(yīng)用必須具有目標(biāo)應(yīng)用的 地址,而且接收數(shù)據(jù)的網(wǎng)絡(luò)本身必須知道如何定位目標(biāo)應(yīng)用。僅當(dāng)所有有關(guān)的 應(yīng)用在關(guān)于哪個(gè)IP地址屬于哪個(gè)設(shè)備及應(yīng)用方面達(dá)成一致,這些操作才能工 作。
對(duì)該組織的一個(gè)解決辦法是為它分配某組織正式的IP地址。這些是唯一 的地址。在全球因特網(wǎng)上發(fā)送數(shù)據(jù)到這些地址的任何應(yīng)用可以依賴(lài)于到達(dá)該組織的內(nèi)部網(wǎng)絡(luò)的入口的數(shù)據(jù)。即,全球的因特網(wǎng)底層結(jié)構(gòu)正確地提交數(shù)據(jù)到該 組織,而然后(用IP的這種正常情況)依賴(lài)該組織定位在組織中的正確的終 點(diǎn)應(yīng)用,作最終的數(shù)據(jù)提交。
該組織然后能在不定的時(shí)間周期指定分配給單獨(dú)應(yīng)用的每個(gè)正式IP地址, 使得有幸的幾個(gè)應(yīng)用能作因特網(wǎng)訪問(wèn)。允許更廣泛訪問(wèn)的更好的解決方法是使
用一個(gè)設(shè)備,它實(shí)際上在任何給定時(shí)刻動(dòng)態(tài)地將正式分配的IP地址指定給需 要訪問(wèn)全球因特網(wǎng)的應(yīng)用。不再使用地址的應(yīng)用將地址返回,可用于再次分配。
此共享系統(tǒng)工作得很好,并且確實(shí)是傳統(tǒng)的網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT)通常使用 的最簡(jiǎn)單的方式。(見(jiàn)RFC 2663 "IP網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT)術(shù)語(yǔ)和考慮", 由因特網(wǎng)工程任務(wù)組(IETF)發(fā)表。這是描述圍繞NAT設(shè)備的操作和問(wèn)題的基 本IETF文檔)
通常,給一個(gè)組織都分配很少量的正式IP地址??赡苌俚?1或255個(gè)這 樣的地址給予一個(gè)組織。對(duì)于在其內(nèi)部網(wǎng)絡(luò)有數(shù)以千計(jì)的應(yīng)用的組織,只能分 配正式IP地址的初級(jí)NAT是不夠的。比如說(shuō)5000個(gè)應(yīng)用(每個(gè)對(duì)應(yīng)于單獨(dú)的 雇員)中若只有31個(gè)能同時(shí)使用全球因特網(wǎng),就不能認(rèn)為完全地解決問(wèn)題。
為了有效地?cái)U(kuò)展正式分配的地址庫(kù)的有效規(guī)模,該組織的NAT通常有能力 對(duì)多個(gè)內(nèi)部應(yīng)用使用同一個(gè)正式的地址。到達(dá)特定正式IP地址,如X,的數(shù)據(jù) 可以進(jìn)一步通過(guò)屬于若干數(shù)據(jù)流之一,如A,B和C,加以區(qū)分。NAT可指定地 址X,數(shù)據(jù)流A給一個(gè)應(yīng)用的特定數(shù)據(jù)流,而地址A,數(shù)據(jù)流B和C屬于兩個(gè) 另外的其他應(yīng)用。
數(shù)據(jù)流識(shí)別符稱(chēng)為端口號(hào)。在IP網(wǎng)絡(luò)中的數(shù)據(jù)流由稱(chēng)為"5—元組"識(shí) 別,它由5個(gè)單獨(dú)的數(shù)字量組成
1) 源IP地址
2) 目標(biāo)IP地址
3) 源端口號(hào)
4) 目標(biāo)端口號(hào)
5) 傳輸協(xié)議
IP網(wǎng)絡(luò)中的每個(gè)數(shù)據(jù)項(xiàng)(包)中具有這5個(gè)數(shù)字識(shí)別符。這兩個(gè)IP地址 (上述項(xiàng)1或項(xiàng)2)或多或少地能識(shí)別源和目標(biāo)應(yīng)用。協(xié)議識(shí)別使用哪個(gè)機(jī)制 保證可靠的數(shù)據(jù)傳輸。對(duì)現(xiàn)在的目標(biāo),協(xié)議被忽略,因?yàn)樗cNAT沒(méi)有太多關(guān) 系。源和目標(biāo)端口號(hào)(上述3和4項(xiàng))分別是識(shí)別網(wǎng)絡(luò)中哪個(gè)應(yīng)用發(fā)送和接收此數(shù)據(jù)包。
如本文檔所見(jiàn),傳統(tǒng)的網(wǎng)絡(luò)地址轉(zhuǎn)換器(如由Cisco System, Inc. of San Jose, CA制造的Private Internet Exchange (PIX))通過(guò)修改數(shù)據(jù)包中的 這5個(gè)數(shù)字識(shí)別符工作。如上所見(jiàn),NAT設(shè)備駐留在兩個(gè)地址區(qū)域的邊界。通 常是在全球的因特網(wǎng)和一個(gè)組織的專(zhuān)用網(wǎng)之間,但不限于此,在那里兩個(gè)網(wǎng)絡(luò) 具有不兼容的IP地址方案。NAT設(shè)備使用對(duì)經(jīng)過(guò)它的每個(gè)包中的四個(gè)源/目標(biāo) 單元的智能重寫(xiě),為兩個(gè)網(wǎng)絡(luò)的每一個(gè)網(wǎng)絡(luò)提供一個(gè)虛假但兼容的對(duì)其它網(wǎng)絡(luò) IP地址方案的查看。每個(gè)NAT必須具有一組確定內(nèi)部地址一外部地址配對(duì)的規(guī) 則,用于地址轉(zhuǎn)換。有用的NAT必須建立這些配對(duì),使內(nèi)部應(yīng)用能有效地使用 可用的外部地址,若外部地址區(qū)域需要正式的IP地址,它將是很有限的。
與內(nèi)部網(wǎng)絡(luò)有關(guān)的傳統(tǒng)的NAT設(shè)備主要地支持兩個(gè)并行的操作模式。第一
個(gè)允許從內(nèi)部網(wǎng)絡(luò)的應(yīng)用向外到全球的因特網(wǎng)(例如, 一個(gè)訪問(wèn)網(wǎng)頁(yè)的協(xié)會(huì)用 戶(hù))的數(shù)據(jù)處理,這是內(nèi)部客戶(hù)對(duì)外部服務(wù)器的訪問(wèn)。第二個(gè)允許在全球因特 網(wǎng)的應(yīng)用能訪問(wèn)在內(nèi)部網(wǎng)絡(luò)的特定設(shè)備上的特定服務(wù)(例如訪問(wèn)一個(gè)組織的網(wǎng) 站的客戶(hù))。這是外部客戶(hù)對(duì)內(nèi)部服務(wù)器的訪問(wèn)。傳統(tǒng)NAT設(shè)備建立允許第一 和第二類(lèi)型訪問(wèn)的地址配對(duì)的方法是略有不同的。
傳統(tǒng)的NAT設(shè)備如下實(shí)現(xiàn)第一模式當(dāng)初始的數(shù)據(jù)包到達(dá)NAT設(shè)備的輸出 時(shí),NAT設(shè)備檢查源地址和端口 (它識(shí)別發(fā)出該數(shù)據(jù)包的內(nèi)部設(shè)備及應(yīng)用)。 然后,NAT從其有效的正式地址和端口庫(kù)中選擇外部有效的IP地址及端口以替
代數(shù)據(jù)包中的內(nèi)部有效的源地址和端口。從內(nèi)部有效的源地址和端口到外部有 效的源地址和端口的映射以某種方式保持在NAT之內(nèi),例如保持在定義對(duì)應(yīng)規(guī) 則的表中。最后,NAT修改在輸出數(shù)據(jù)包中的內(nèi)部有效源地址和端口字段并將 其送出。當(dāng)在NAT處發(fā)現(xiàn)從外面來(lái)的響應(yīng)初始數(shù)據(jù)包的輸入回答數(shù)據(jù)包時(shí),在 回答數(shù)據(jù)包中的目標(biāo)地址和端口應(yīng)匹配外部有效的源地址和端口 (因?yàn)樵诨卮?中很自然地發(fā)送者的地址和接收者的地址改變了位置,就象郵政信件)。NAT 使用此進(jìn)入的外部有效的源地址和端口從初始的輸出數(shù)據(jù)包定位內(nèi)部可用的 源地址及端口。然后,NAT使用此定位的內(nèi)部有效的源地址和端口替代在此進(jìn) 入的回答數(shù)據(jù)包中的目標(biāo)地址及端口。至此,進(jìn)入的回答數(shù)據(jù)包具有正確的內(nèi) 部有效目標(biāo)地址及端口用于提交數(shù)據(jù)包給發(fā)出初始輸出數(shù)據(jù)包的設(shè)備及應(yīng)用。
傳統(tǒng)的NAT設(shè)備應(yīng)用第二種模式,它使用由管理該NAT的人所定義的固定 內(nèi)部-外部地址對(duì)照配置信息。對(duì)此模式,初始數(shù)據(jù)包是進(jìn)入的包,從外部到
10達(dá)NAT,并帶有某些包含正式分配的IP地址的目標(biāo)信息,因?yàn)檫@些外部有效的 地址是唯一地址,全球因特網(wǎng)就能用來(lái)將數(shù)據(jù)包傳送給具有NAT的目標(biāo)組織。 在目標(biāo)組織中的NAT咨詢(xún)其配置信息以確定它應(yīng)使用哪個(gè)(固定的)內(nèi)部有效 的IP地址和端口來(lái)替代包含在進(jìn)入的數(shù)據(jù)包中的外部有效的目標(biāo)地址和端口。 實(shí)際上,若一個(gè)應(yīng)用(如網(wǎng)絡(luò)服務(wù)器)出現(xiàn)在內(nèi)部設(shè)備A (非正式的,但內(nèi)部 有效的IP地址)的目標(biāo)組織處,期待在端口X上的數(shù)據(jù)包,則配置NAT來(lái)識(shí) 別,編址為IP地址M (正式指定并外部有效),端口 Y的包應(yīng)重編址到內(nèi)部有 效地址,設(shè)備A/端口X。在目標(biāo)組織處的另外應(yīng)用應(yīng)在另一內(nèi)部設(shè)備上運(yùn)行, 該設(shè)備外部識(shí)別成端口 Z處的設(shè)備B,而且NAT應(yīng)再次按照某些固定的,預(yù)定 的配置數(shù)據(jù)對(duì)具有同一內(nèi)部地址A和某個(gè)其它端口的該應(yīng)用使用內(nèi)部-外部地 址配對(duì)。
困難在于第一種模式只允許內(nèi)部客戶(hù)發(fā)送數(shù)據(jù)到外部服務(wù)器(并隨后從其 接收數(shù)據(jù)),而第二種模式只允許外部的客戶(hù)發(fā)送數(shù)據(jù)到與內(nèi)部服務(wù)有關(guān)的NAT
中預(yù)定的固定的IP地址和端口的一小組內(nèi)部服務(wù)器(并隨后從其接收回答)。 不支持外部客戶(hù)連接到剛創(chuàng)建的端口號(hào)處剛建立的內(nèi)部服務(wù)器的處理。
各種現(xiàn)有技術(shù)的參考資料都討論NAT設(shè)備和在其基本地址轉(zhuǎn)換功能的變
化
題為 ('Method And System For Locating Network Services With Distributed Network Address Translation"美國(guó)專(zhuān)利6055236包括了實(shí)際 上是針對(duì)服務(wù)安全的方法。美國(guó)專(zhuān)利6055236沒(méi)有提到對(duì)客戶(hù)方信息提供地址 的對(duì)稱(chēng)問(wèn)題,而完全著重于對(duì)服務(wù)器外部有用的地址,而未能提及對(duì)由客戶(hù)使 用的有關(guān)外部地址。
題為 "Security System For Network Address Translation System" 的美國(guó)專(zhuān)利5793763是有關(guān)某種類(lèi)型的NAT設(shè)備,只是,它只轉(zhuǎn)換IP地址, 而且它涉及安全考慮。沒(méi)有談到使用端口號(hào)來(lái)擴(kuò)展"邏輯"地址可用空間的 話題。
SOCKS. SOCKS是因特網(wǎng)工程任務(wù)組(IETF)標(biāo)準(zhǔn),它提供一個(gè)機(jī)制,借助 此機(jī)制一個(gè)應(yīng)用能詢(xún)問(wèn)一個(gè)應(yīng)用防火墻關(guān)于能發(fā)布到遠(yuǎn)程的客戶(hù)應(yīng)用的外部 有用的地址。Socks是該應(yīng)用的代理,它提供類(lèi)似于NAT的服務(wù),但完全不同 地運(yùn)作。Socks (如任何應(yīng)用的代理)不是在數(shù)據(jù)包流過(guò)設(shè)備時(shí)重寫(xiě)包的內(nèi)容, 而是端接兩個(gè)通信通道,并在其本身的高層次上邏輯上將其互相連接。例如,在網(wǎng)絡(luò)內(nèi)部的服務(wù)器可以開(kāi)始其服務(wù),并隨后在網(wǎng)絡(luò)的邊緣作出對(duì)Socks應(yīng)用 的請(qǐng)求。Socks應(yīng)用在其網(wǎng)絡(luò)邊緣的主機(jī)上起動(dòng)一個(gè)"瘦"服務(wù)器,并隨后通
知原始服務(wù)器可以找到該"瘦"服務(wù)器的地址和端口。原始服務(wù)器能將此信息
通知連接到運(yùn)行SOCKS的"瘦"的服務(wù)器的客戶(hù)。然后SOCKS將作為客戶(hù)連接 到原始服務(wù)器,將從外部客戶(hù)接收到的數(shù)據(jù)復(fù)制到原始服務(wù)器,并將從原始服 務(wù)器接收到的數(shù)據(jù)復(fù)制回外部客戶(hù)。尤其是,SOCKS不是NAT,并不是逐包地 操作,具有某些性能和度量的含義。有關(guān)SOCKS的更多的信息見(jiàn) http://www. socks, nec. com。
可以期望有越來(lái)越多的ip網(wǎng)絡(luò)使用需求增長(zhǎng)以發(fā)送包括數(shù)字化的語(yǔ)音, 音頻或視頻("媒體"內(nèi)容)。人們需要的是用于便于對(duì)等數(shù)據(jù)交換的網(wǎng)絡(luò)地 址轉(zhuǎn)換的方法和裝置,數(shù)據(jù)交換包括經(jīng)過(guò)因特網(wǎng)和其它ip網(wǎng)絡(luò)的媒體傳輸。
發(fā)明內(nèi)容
本發(fā)明包括為便于在第一地址區(qū)域的第一應(yīng)用及在不同的地址區(qū)域的第 二應(yīng)用之間通信的網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備。該設(shè)備使用地址轉(zhuǎn)換器,根據(jù)轉(zhuǎn)換規(guī)則 將在第一地址區(qū)域中有效的地址轉(zhuǎn)換到在第二地址區(qū)域中有效的地址,并將第 二地址區(qū)域中有效的地址轉(zhuǎn)換到在第一地址區(qū)域中有效的地址。它也使用地址 管理器,通過(guò)將在第一地址區(qū)域中有效的地址與在第二地址區(qū)域中有效的地址 相關(guān)聯(lián)而建立轉(zhuǎn)換規(guī)則。還有一個(gè)與地址管理器通信的控制通道,用于從第一 應(yīng)用接收對(duì)與在第一區(qū)域中有效的特定地址相關(guān)的在第二地址區(qū)域有效的地 址的請(qǐng)求,并用于為第一應(yīng)用提供對(duì)在第二地址區(qū)域的地址訪問(wèn),以便于在第 二區(qū)域中有效地址到第二應(yīng)用的通信。
在本發(fā)明的一個(gè)實(shí)施例中,該應(yīng)用是ip電話連接的實(shí)體。在本發(fā)明的另 一個(gè)實(shí)施例中,地址管理器建立更復(fù)雜的轉(zhuǎn)換規(guī)則,使得外部有效的目標(biāo)地址 能根據(jù)進(jìn)入的源地址轉(zhuǎn)換成一個(gè)值或另一不同值的內(nèi)部有效地址。特定的遠(yuǎn)程
地址,較大的遠(yuǎn)程地址組,或任何遠(yuǎn)程地址完全能用作對(duì)專(zhuān)門(mén)的,更復(fù)雜的NAT 規(guī)則使用的觸發(fā)。在又一個(gè)實(shí)施例中,應(yīng)用被編程為在指定的范圍內(nèi)控制由地 址管理器建立的轉(zhuǎn)換規(guī)則。
圖1是方塊圖,示出在現(xiàn)有技術(shù)網(wǎng)絡(luò)上用于將具有多個(gè)設(shè)備或應(yīng)用的內(nèi)部
12網(wǎng)絡(luò)連接到因特網(wǎng)的NAT設(shè)備。
圖2是方塊圖,示出按現(xiàn)有技術(shù)完成地址轉(zhuǎn)換的NAT設(shè)備。 圖3是方塊圖,示出按本發(fā)明的實(shí)施例的NAT設(shè)備,便于在由該NAT服務(wù)
的地址區(qū)域中的應(yīng)用和在另外地址區(qū)域的應(yīng)用之間的通信。
具體實(shí)施方式
I、對(duì)等應(yīng)用
使用本發(fā)明的系統(tǒng)至少對(duì)以對(duì)等(兩個(gè)或多個(gè)位于任何處的設(shè)備,并主要 對(duì)稱(chēng)地通信)方式工作的新的因特網(wǎng)應(yīng)用類(lèi)是有用的。它與傳統(tǒng)方式不同,在 傳統(tǒng)方式中一個(gè)設(shè)備在一個(gè)己知的位置(IP地址),而另一個(gè)可以在或可以不 定位在已知的位置(IP地址)。
如IP電話,即時(shí)發(fā)消息等新一代的因特網(wǎng)應(yīng)用使得在不同地址區(qū)域內(nèi)的 用戶(hù)能直接連接到彼此的計(jì)算機(jī),共享數(shù)據(jù)或協(xié)同操作,或以持續(xù)實(shí)時(shí)交互方 式交談。在這些協(xié)議中,每個(gè)用戶(hù)的計(jì)算機(jī)將建立一個(gè)可稱(chēng)之為微一服務(wù)器的 應(yīng)用,并隨后與位于該微服務(wù)器能達(dá)到的不同的地址區(qū)域,IP地址和端口的其 它計(jì)算機(jī)通信。(這是在傳統(tǒng)的NAT設(shè)備未能處理的"剛分配的端口號(hào)"處的 "剛建立的內(nèi)部服務(wù)器")。為完成對(duì)等連接,每個(gè)用戶(hù)的計(jì)算機(jī)隨后起動(dòng)一 個(gè)客戶(hù)應(yīng)用以連接到在其它地址區(qū)域的微-服務(wù)器。然后,對(duì)應(yīng)客戶(hù)應(yīng)用必須 占有其它地址區(qū)域中的其它計(jì)算機(jī)上的微服務(wù)器能達(dá)到的地址。其后,使用NAT 處理不同的地址區(qū)域,能夠開(kāi)始在兩個(gè)客戶(hù)/微服務(wù)器對(duì)之間的雙向通信。
如上所述,圖1示出使用傳統(tǒng)的NAT的情況。通常要解決的問(wèn)題是存在于 非正式的或非指定的IP地址區(qū)域50中較大的內(nèi)部網(wǎng)絡(luò)10的問(wèn)題,這些IP地 址對(duì)全球因特網(wǎng)是未知,或不能正確路由的。NAT設(shè)備20配置在內(nèi)部網(wǎng)10到 全球因特網(wǎng)30的互連點(diǎn)(或多個(gè)點(diǎn))處。使用正式指定的地址的較小庫(kù),NAT 20采用正式指定的IP地址對(duì)全球因特網(wǎng)30建立小的設(shè)備網(wǎng)絡(luò)的虛象,并對(duì)內(nèi) 部網(wǎng)絡(luò)10中的許多或所有設(shè)備提供對(duì)全球因特網(wǎng)30的某些訪問(wèn)。
對(duì)等應(yīng)用將不通過(guò)當(dāng)前型號(hào)的NAT設(shè)備工作,部分是因?yàn)閼?yīng)用和它對(duì)應(yīng)NAT 通信的局限方法。正常地,NAT設(shè)備只處理消息包的IP地址字段,按照有限的 規(guī)則組完成地址轉(zhuǎn)換。圖2示出傳統(tǒng)的NAT 120的基本地址轉(zhuǎn)換功能。主機(jī)A 110 是由傳統(tǒng)的NAT 120服務(wù)的地址區(qū)域100的一部分。應(yīng)用Al 121在主機(jī)A上 運(yùn)行。它具有目標(biāo)或終端地址,這在內(nèi)部有效并用于得到路由到它的進(jìn)入的消
13息包。應(yīng)用Al也能具有起始地址,它被用于將應(yīng)用Al識(shí)別為應(yīng)用Al產(chǎn)生的 消息包的源。如上所討論,IP消息包包括五部分的IP頭標(biāo)。因此,應(yīng)用A1希 望發(fā)到遠(yuǎn)程的外部地址區(qū)域中的主機(jī)R 210的輸出包130在其IP頭標(biāo)140中 具有下列分量
1) 源IP地址
2) 目標(biāo)IP地址
3) 源端口號(hào)
4) 目標(biāo)端口號(hào)
5) 傳輸協(xié)議
IP頭標(biāo)后是數(shù)據(jù)142,它可以是媒體。當(dāng)應(yīng)用Al將輸出消息130提供給 NAT 120時(shí),NAT120必須用外部有效地址和端口號(hào)代替任何內(nèi)部有效的地址和 端口號(hào)。NAT 120可以具有硬件和軟件122,它們可應(yīng)用以任何形式(如對(duì)應(yīng) 表124)存儲(chǔ)的轉(zhuǎn)換規(guī)則。通常,應(yīng)用A1 121只占有其內(nèi)部有效的源IP地址 和源端口號(hào)(其起始地址),而NAT 120在將這些包發(fā)送到主機(jī)R 210之前必 須將插入在任何輸出消息130中的那些地址轉(zhuǎn)換成用于包230的外部有效的地 址頭標(biāo)240。若我們?yōu)榱撕?jiǎn)單起見(jiàn)假設(shè)主機(jī)R是在使用正式的IP地址的地址區(qū) 域200內(nèi),則不需要NAT或地址轉(zhuǎn)換將帶有外部有效地址的頭標(biāo)240的包230 傳送給在主機(jī)R的地址區(qū)域200中指定的目標(biāo)IP地址及端口。
主機(jī)R的回答包250將在其地址頭標(biāo)260中使用外部有效的IP地址。NAT 120需要將這些外部有效地址轉(zhuǎn)換成對(duì)其地址區(qū)域100內(nèi)部有效的IP地址。而 且,NAT將使用硬件和軟件122,它們應(yīng)用其以任何形式,如對(duì)應(yīng)表124,存放 的轉(zhuǎn)換規(guī)則。從主機(jī)R發(fā)送到主機(jī)A的結(jié)果是帶有適當(dāng)轉(zhuǎn)換的地址頭標(biāo)160的 內(nèi)部有效的包150,而頭標(biāo)具有內(nèi)部有效的目標(biāo)地址和端口 (即對(duì)應(yīng)用A1的終 點(diǎn)地址)。這使帶有數(shù)據(jù)內(nèi)容162的內(nèi)部有效的包150達(dá)到應(yīng)用Al。
用于得益于本發(fā)明的對(duì)等通信的微服務(wù)器可能駐留在組織內(nèi)部網(wǎng)絡(luò)中的
任何主機(jī)設(shè)備。這些微服務(wù)器通常由底層操作系統(tǒng)(以操作系統(tǒng)特定的方式)
指定一個(gè)隨機(jī)的可用的端口號(hào)作為用于其服務(wù)的端口;這應(yīng)是該微服務(wù)器運(yùn)行
的主機(jī)設(shè)備上任何其它應(yīng)用當(dāng)前沒(méi)有使用的端口號(hào)。當(dāng)然,微服務(wù)器沒(méi)有理由
必須駐留在與該微服務(wù)器地址通信的應(yīng)用的同一設(shè)備上,在另外地址區(qū)域中的 微服務(wù)器的客戶(hù)也不是必須駐留在為建立數(shù)據(jù)交換而與微服務(wù)器的地址通信
的同一個(gè)設(shè)備上。但是,若確實(shí)發(fā)生這種分離,就必須發(fā)生某些網(wǎng)間通信,所
14以所有的應(yīng)用應(yīng)知道它們需要知道的所有地址及端口信息。
我們稱(chēng)這里討論的應(yīng)用類(lèi)為"對(duì)等應(yīng)用",它試圖覆蓋在網(wǎng)絡(luò)上主要以對(duì) 稱(chēng)方式通信的所有應(yīng)用,其中在分別提供服務(wù)或接收服務(wù)的應(yīng)用的意義上沒(méi)有 哪個(gè)應(yīng)用明確是服務(wù)器或客戶(hù);而是雙方應(yīng)用完成與另一個(gè)應(yīng)用相同或類(lèi)似的 功能。注意,在本文的整個(gè)余下部分,我們使用術(shù)語(yǔ)"客戶(hù)"表示發(fā)起數(shù)據(jù)傳 輸會(huì)話的應(yīng)用,而術(shù)語(yǔ)"服務(wù)器"表示接收來(lái)自客戶(hù)數(shù)據(jù)傳輸會(huì)話的應(yīng)用。這 是傳統(tǒng)的術(shù)語(yǔ),它協(xié)助確定在兩個(gè)應(yīng)用之間所通過(guò)的起始數(shù)據(jù)包以哪個(gè)方向通 過(guò)。這個(gè)起始的步驟對(duì)討論NAT的工作情況是重要的。為了我們的目的,除非 另外說(shuō)明,術(shù)語(yǔ)"客戶(hù)"表示發(fā)送數(shù)據(jù)傳輸?shù)某跏紩?huì)話包的應(yīng)用或設(shè)備,而"服 務(wù)器"表示初始數(shù)據(jù)包指向的應(yīng)用或設(shè)備。
IP電話是對(duì)等應(yīng)用的重要例子。在此例中,每個(gè)端點(diǎn)應(yīng)用通過(guò)起動(dòng)所謂的 "媒體"連接來(lái)發(fā)送包含數(shù)字化語(yǔ)音的包到另一方而起著客戶(hù)的作用,另一方 接收包含數(shù)字化語(yǔ)音的包而起著服務(wù)器的作用。這種關(guān)系或多或少是對(duì)稱(chēng)的, 因?yàn)閿?shù)字化語(yǔ)音通常雙向傳送。
在IP電話中,在內(nèi)部網(wǎng)絡(luò)上的微服務(wù)器(例如,等待從遠(yuǎn)處電話來(lái)的數(shù) 字化語(yǔ)音包流的IP電話)通常需要將它的主設(shè)備的IP地址通知給遠(yuǎn)處客戶(hù)(另 外的IP電話,或某些其它設(shè)備,如虛擬PBX或起著另外的電話作用的其它IP 電話網(wǎng)關(guān))。微服務(wù)器的內(nèi)部有效的網(wǎng)絡(luò)地址對(duì)在全球因特網(wǎng)上的客戶(hù)不能用, 因?yàn)榇说刂凡皇钦街付ǖ腎P地址。在微服務(wù)器能設(shè)法獨(dú)立發(fā)現(xiàn)或計(jì)算能連 接到原始包中的遠(yuǎn)程客戶(hù)的正式的IP地址的情況下,傳統(tǒng)的NAT仍然沒(méi)有處 理過(guò)程或規(guī)則來(lái)處理由遠(yuǎn)程客戶(hù)應(yīng)用發(fā)出的第一個(gè)回答包。除非NAT本身參與 在原始包中正式的IP地址的發(fā)現(xiàn)或計(jì)算,NAT將沒(méi)有與內(nèi)部網(wǎng)絡(luò)地址和在進(jìn)入 消息中的任何正式IP地址相關(guān)聯(lián)的轉(zhuǎn)換規(guī)則。
II、改善的對(duì)等網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備
下面的討論參考圖3,描述本發(fā)明如何使用改善的NAT設(shè)備和方法來(lái)建立 對(duì)等的因特網(wǎng)通信。
在不同地址區(qū)域之間有效的對(duì)等應(yīng)用通信需要該應(yīng)用(為簡(jiǎn)單起見(jiàn),我們 將討論限止在兩個(gè)應(yīng)用之間交換數(shù)據(jù),而不是一對(duì)多或多對(duì)多的交換)訪問(wèn)在 它們的通信中將使用的正式的,外部有效的IP地址信息。在最簡(jiǎn)單的情況, 第一個(gè)應(yīng)用需要訪問(wèn)(1)另外的應(yīng)用用來(lái)達(dá)到第一應(yīng)用的外部有效地址信息, 使得第一應(yīng)用能將該地址信息通知在另外地址區(qū)域中的第二應(yīng)用,和(2)第二應(yīng)用的外部有效地址。實(shí)際上,為了對(duì)稱(chēng)并為了便于得到安全性及其它功能, 最好第一和第二應(yīng)用的每一個(gè)具有兩個(gè)地址 一個(gè)起始地址A。,用于識(shí)別發(fā)送 應(yīng)用的設(shè)備和端口為輸出消息包的源,和不同的終點(diǎn)地址At,用于識(shí)別接收輸 入消息包的另外的設(shè)備及端口。因此,借助第一和第二應(yīng)用的每一個(gè)具有并通 信兩個(gè)有關(guān)的正式地址(起始的和終點(diǎn)的)來(lái)建立理想的通信。此外,第一和 第二應(yīng)用的每一個(gè)訪問(wèn)它想要作對(duì)等通信的對(duì)方的起始和終點(diǎn)地址。
圖3示出一種便于改善在不同地址區(qū)域中兩個(gè)對(duì)等應(yīng)用之間通信的系統(tǒng)。 主機(jī)A 110和主機(jī)B 310都是地址區(qū)域100的一部分。主機(jī)A具有在其上運(yùn)行 的一個(gè)或多個(gè)應(yīng)用。通過(guò)實(shí)例,示出應(yīng)用A1 121和應(yīng)用A2 122.每個(gè)具有內(nèi)部 有效終點(diǎn)地址和內(nèi)部有效起始地址。主機(jī)B也可以具有在其上運(yùn)行的一個(gè)或多 個(gè)應(yīng)用。通過(guò)實(shí)例,示出應(yīng)用B1 321和應(yīng)用B2 322。主機(jī)A和主機(jī)B可以在 同一網(wǎng)絡(luò)上,或相連,從而使得在主機(jī)A和主機(jī)B之間有用于通信的通道370 (例如到公共通信網(wǎng)絡(luò)的連接)。在該地址區(qū)域100中還可以有額外的主機(jī), 但未示出。
改善的NAT 320服務(wù)于地址區(qū)域100。改善的NAT 320具有兩個(gè)功能部分。 一個(gè)是地址轉(zhuǎn)換部分322,它完成如參考圖2中的NAT 120討論的傳統(tǒng)地址轉(zhuǎn) 換功能。另一個(gè)是地址管理器部分324。 IP消息通道360將主機(jī)A 110連接到 地址轉(zhuǎn)換部分。當(dāng)在主機(jī)A或由NAT 320服務(wù)的其它主機(jī)上的應(yīng)用需要送出一 個(gè)輸出消息并需要轉(zhuǎn)換成外部有效地址的內(nèi)部有效地址時(shí),就使用通道360。 當(dāng)帶有外部有效的地址的進(jìn)入消息到達(dá),NAT 320將在進(jìn)入消息中的外部有效 地址轉(zhuǎn)換成內(nèi)部有效的地址,并需要將該消息送到地址區(qū)域100中的合適應(yīng)用 時(shí),也使用通道360。
地址轉(zhuǎn)換部分322連接到"外部"地址區(qū)域。作為例子,圖3示出連接到 地址轉(zhuǎn)換部分322的全球因特網(wǎng)區(qū)域400。在地址區(qū)域400中,另外的地址區(qū) 域200包含主機(jī)R 410和主機(jī)S 510,它們可以安裝另外的主機(jī)A或主機(jī)B可 以與其通信的應(yīng)用(作為例子示出應(yīng)用Rl, R2, Sl和S2)。通道470 (例如 公用網(wǎng)絡(luò)連接)提供主機(jī)R 410和主機(jī)S 510之間的通信。
控制通道350將主機(jī)A 110 (和間接主機(jī)B 310)連接到地址管理器部分 324。當(dāng)在主機(jī)A或由NAT 320服務(wù)的任何另外主機(jī)上的應(yīng)用需要與NAT 320 通信,以請(qǐng)求地址管理器324服務(wù)時(shí),使用控制通道350。地址管理器對(duì)請(qǐng)求 應(yīng)用能完成若干服務(wù)。首先,請(qǐng)求應(yīng)用能提出內(nèi)部有效的地址(起始地址或終點(diǎn)地址),并請(qǐng)求地址管理器324提供與內(nèi)部有效的地址配對(duì)的外部有效的地 址,并使地址轉(zhuǎn)換部分322訪問(wèn)此配對(duì)。這樣做使得地址轉(zhuǎn)換部分322使用此 對(duì)照作為其對(duì)輸入和輸出消息包的轉(zhuǎn)換規(guī)則。
第二, 一個(gè)應(yīng)用可以使地址管理器324將附加的或更復(fù)雜的規(guī)則加到NAT 320中使用的規(guī)則中,超越簡(jiǎn)單的內(nèi)部/外部地址配對(duì)。例如,借助地址管理器 324在應(yīng)用的請(qǐng)求處可建立更復(fù)雜的轉(zhuǎn)換規(guī)則,而不是只對(duì)于在輸入消息中找 到的指定外部有效的目標(biāo)地址或端口完成用對(duì)應(yīng)的內(nèi)部有效的目標(biāo)地址或端 口的無(wú)條件替代。能形成一個(gè)規(guī)則,使得地址轉(zhuǎn)換部分322校驗(yàn)進(jìn)入的源地址 和/或端口,并根據(jù)該字段的內(nèi)容應(yīng)用不同的轉(zhuǎn)換規(guī)則。例如,若某個(gè)源地址 出現(xiàn)在在NAT 320接收的包中,則該包中的外部有效地址AE被轉(zhuǎn)換成內(nèi)部有效 地址An;但若不存在源地址,則不作地址轉(zhuǎn)換并丟棄該包。這對(duì)安全性是有利 的。另外,外部有效的目標(biāo)端口號(hào)PE能根據(jù)進(jìn)入的源地址轉(zhuǎn)換成內(nèi)部有效的值 為Pu或不同的值Pu的端口號(hào)。特定的遠(yuǎn)程地址,較大的遠(yuǎn)程地址組,或任何 遠(yuǎn)程源地址都能用作對(duì)使用特定NAT規(guī)則的觸發(fā)。
第三,應(yīng)用可以對(duì)地址管理器324指定所請(qǐng)求與內(nèi)部有效的地址關(guān)聯(lián)的外 部有效地址規(guī)定的及希望的特征。這對(duì)于使一個(gè)應(yīng)用能規(guī)定,由轉(zhuǎn)換得出的外 部IP地址必須是特定的IP地址或在IP地址的指定范圍內(nèi)來(lái)說(shuō)是有用的。因 此,用適當(dāng)?shù)恼?qǐng)求,應(yīng)用能建立一個(gè)NAT規(guī)則,它要求消息包指向或強(qiáng)制指向 公共全球因特網(wǎng)中的特定外部服務(wù)器,轉(zhuǎn)而又將該消息導(dǎo)向特定的專(zhuān)用網(wǎng)絡(luò), 在那里在該包再次進(jìn)入到公共的全球因特網(wǎng)之前進(jìn)行某種類(lèi)型的發(fā)送和計(jì)費(fèi)。
然后可以看到,控制通道350和地址管理器部分324表示靈活的工具,用 于為應(yīng)用提供它們用傳統(tǒng)的NAT不能得到的信息以及為NAT的地址轉(zhuǎn)換部分 322建立某些轉(zhuǎn)換規(guī)則的能力。地址管理器324能以硬件,軟件或其組合實(shí)現(xiàn)。 例如,可以希望,地址管理器324具有自己的微處理器和用于存儲(chǔ)代碼的存儲(chǔ) 器,該代碼確定為響應(yīng)從應(yīng)用來(lái)的控制消息哪些服務(wù)和功能是可用的。還可看 到,與地址管理器324通信的每個(gè)應(yīng)用需要硬件和/或軟件,以允許經(jīng)過(guò)控制 通道350作出請(qǐng)求,并將請(qǐng)求的信息或狀態(tài)信息返回到應(yīng)用。
III、使用控制通道的對(duì)等交換實(shí)例
回到上面的服務(wù)器和客戶(hù)關(guān)系的討論,能解釋在若干不同例子情況下,控 制通道350的功能以及在應(yīng)用和地址管理器部分324與地址轉(zhuǎn)換部分322之間 的通信。參考圖3介紹每個(gè)例子。服務(wù)器地址/端口的分配和發(fā)現(xiàn)的例子
在地址區(qū)域100中的主機(jī)A110起動(dòng)一個(gè)微服務(wù)器, 一個(gè)應(yīng)用A1 121,其
目的是將地址信息通知在地址區(qū)域100之外的地址區(qū)域200中的主機(jī)410,它 具有主機(jī)R 410能用來(lái)連接到微服務(wù)器,應(yīng)用Al的地址信息。為了向主機(jī)R 提供有用的地址信息,發(fā)生下列步驟
(1)、應(yīng)用Al 121經(jīng)控制通道350接觸NAT設(shè)備320,通知地址管理器 324應(yīng)用Al正使用的內(nèi)部有效的IP地址和端口。
(2)、應(yīng)用Al 121從地址管理器324接收作為回答的外部有效的IP地址 和端口號(hào),NAT設(shè)備320將其轉(zhuǎn)換成由應(yīng)用Al在其請(qǐng)求中提供的內(nèi)部有效的終 點(diǎn)地址。
(3) 、然后應(yīng)用A1(我們必須假設(shè)它有能力編址一個(gè)到主機(jī)R,應(yīng)用Rl 421 的IP消息包)經(jīng)NAT 320的地址轉(zhuǎn)換部分322發(fā)送IP消息包。包的數(shù)據(jù)部分 包含外部有效的IP地址和端口號(hào)以通知主機(jī)R 410, 一個(gè)應(yīng)用Rl 421如何發(fā) 送包到應(yīng)用Al。
(4) 、在主機(jī)R 410的應(yīng)用Rl 421對(duì)應(yīng)用Al給出并(正確地選址到正 式IP地址)達(dá)到NAT 320的每個(gè)外部有效的IP地址和端口號(hào)發(fā)出連接請(qǐng)求, 其中外部有效地址被轉(zhuǎn)換成應(yīng)用Al的內(nèi)部有效的地址及端口。
(5) 、 NAT 320從應(yīng)用R1 421發(fā)出回答數(shù)據(jù)包到主機(jī)A上的應(yīng)用Al 121。 客戶(hù)地址/端口分配及發(fā)現(xiàn)的例子
在地址區(qū)域200中的外部主機(jī)R410起動(dòng)一個(gè)微服務(wù)器,如應(yīng)用Rl 421。 應(yīng)用Al試圖將地址信息通知在地址區(qū)域100之外地址區(qū)域200之中的主機(jī)R, 主機(jī)R可使用該地址信息驗(yàn)證從主機(jī)A來(lái)的輸入連接。為了向主機(jī)R 420提供 有用的地址信息,發(fā)生下列步驟
1) 應(yīng)用Rl 421發(fā)送一個(gè)包給主機(jī)A,需要從主機(jī)A,應(yīng)用Al 121得到有 關(guān)從哪個(gè)IP地址和端口起動(dòng)來(lái)自應(yīng)用Al 121的連接的信息。該起始地址信息 對(duì)安全性是有用的,并能由應(yīng)用Rl為其自己的目的,如符合通信協(xié)議,所需 要。
2) 主機(jī)A上的應(yīng)用A1 121經(jīng)控制通道350接觸NAT 320,通知地址管理器 324有關(guān)應(yīng)用Al將使用的內(nèi)部有效的IP地址和端口以便與主機(jī)R上的微服務(wù) 器通信。
3) 應(yīng)用Al 121從地址管理器324接收作為回答的外部有效的IP地址和端口號(hào),NAT設(shè)備320將由應(yīng)用Al在其請(qǐng)求中提供的內(nèi)部的有效起始地址轉(zhuǎn)換成 該外部有效的IP地址和端口號(hào)。
4) 然后應(yīng)用Al 121 (我們必須假設(shè)它有能力編址一個(gè)到主機(jī)R,應(yīng)用Rl 的IP消息包)經(jīng)NAT 320的地址轉(zhuǎn)換部分發(fā)送IP消息包包的數(shù)據(jù)部分包含 外部有效的IP地址和端口號(hào),以通知主機(jī)R,應(yīng)用R1421,來(lái)自應(yīng)用A1, 121 的包從哪個(gè)IP地址及端口發(fā)出。
5) 然后應(yīng)用Al 121通過(guò)發(fā)送編址到主機(jī)R, 應(yīng)用Rl 421的輸出包而發(fā)起 連接,該包到達(dá)NAT設(shè)備320的地址轉(zhuǎn)換部分322。
6) NAT設(shè)備320的地址轉(zhuǎn)換部分322將包的源地址和端口 (指應(yīng)用Al的內(nèi) 部IP地址和端口)轉(zhuǎn)換成其外部有效的版本(在步驟3它被送到應(yīng)用Al,而 在步驟4應(yīng)用Al將其送到應(yīng)用Rl)。
7) 地址轉(zhuǎn)換部分322將帶著應(yīng)用Rl所期待的源信息的包送到主機(jī)R,應(yīng)用Rl。
服務(wù)器地址/端口分配和發(fā)現(xiàn)及分別的請(qǐng)求器/服務(wù)器的例子
在此例中,主機(jī)A和主機(jī)B使用它們之間的通信通道370。這就允許在主 機(jī)A上的應(yīng)用起著在主機(jī)B上的應(yīng)用的代理的作用。例如,若在主機(jī)B上應(yīng)用 是沒(méi)有很多智能的IP電話,則主機(jī)A可以是帶有能選擇由IP電話所需的各種 服務(wù)(如目錄幫助,電話號(hào)到IP地址的關(guān)聯(lián))的應(yīng)用的虛擬PBX,或者可以是 某些形式的IP電話網(wǎng)關(guān)。使用了代理,很顯然不再需要在由請(qǐng)求實(shí)體實(shí)際擁 有或使用的地址和端口以及在到地址管理器324的請(qǐng)求中引出的那些地址和端 口之間的關(guān)系。
在地址區(qū)域100中的主機(jī)B 310起動(dòng)一個(gè)微服務(wù)器,如應(yīng)用B1321,其目 的是將地址信息通知在地址區(qū)域100之外在地址區(qū)域200之內(nèi)的主機(jī)R,主機(jī) R (其作用如客戶(hù))能使用該地址信息連接到微服務(wù)器,應(yīng)用Bl,為了向主機(jī) R提供有用的地址信息,出現(xiàn)下列步驟
1) 應(yīng)用Al 121經(jīng)通道370與應(yīng)用Bl通信,以發(fā)現(xiàn)能用于接觸到應(yīng)用Bl 321
的內(nèi)部有效的地址和端口。
2) 應(yīng)用Al 121需要接觸在地址區(qū)域200中的應(yīng)用Rl,以向應(yīng)用Rl提供對(duì) 應(yīng)用Bl的外部有效地址信息。應(yīng)用A1經(jīng)控制通道350接觸NAT設(shè)備320,以 通知地址管理器324應(yīng)用Bl正使用的內(nèi)部有效地址和端口。
3) 應(yīng)用Al 121從地址管理器324接收作為回答的外部有效IP地址和端口
19號(hào),NAT設(shè)備320將其轉(zhuǎn)換成由應(yīng)用Al在其請(qǐng)求中提供的對(duì)應(yīng)用Bl的內(nèi)部有 效的終點(diǎn)地址。
4) 然后應(yīng)用A1, 121 (我們必須假設(shè)它具有編址到主機(jī)R,應(yīng)用R1421的 IP消息包的能力)經(jīng)NAT 320的地址轉(zhuǎn)換部分322發(fā)送IP消息包。包的數(shù)據(jù) 部分包含外部有效的IP地址和端口號(hào),以通知主機(jī)R,應(yīng)用Rl 421如何將包 發(fā)送給應(yīng)用Bl 321。
5) 在主機(jī)R的應(yīng)用Rl 421對(duì)應(yīng)用Al 121給出并(正確地選址到正式IP 地址)達(dá)到NAT 320的每個(gè)外部有效的IP地址和端口號(hào)發(fā)出連接請(qǐng)求,其中 外部有效的地址被轉(zhuǎn)換成應(yīng)用Bl的內(nèi)部有效的地址及端口。
6) NAT 320從應(yīng)用Rl發(fā)出到主機(jī)B的應(yīng)用Bl的回答。 客戶(hù)地址/端口分配和發(fā)現(xiàn)及從協(xié)商實(shí)體分離的客戶(hù)/服務(wù)器例子 在此例中,主機(jī)R410和主機(jī)S 510使用它們之間的通信通道470。這允
許在主機(jī)R 410上的應(yīng)用對(duì)在主機(jī)S 510上的應(yīng)用起著代理的作用。例如,若 在主機(jī)S上的應(yīng)用是沒(méi)有很多智能的IP電話,則主機(jī)R 410可以是能選擇由 IP電話所需的各種服務(wù)(如目錄幫助,電話號(hào)碼與IP地址的關(guān)聯(lián))的應(yīng)用的 虛擬PBX,或能是某種其它形式的IP電話網(wǎng)關(guān)。
在地址區(qū)域100中的主機(jī)S 510起動(dòng)微服務(wù)器,如應(yīng)用S1。應(yīng)用B1試圖 將地址信息通知在地址區(qū)域100之外在地址區(qū)域200中的主機(jī)S 510,主機(jī)S 510 能使用該地址信息驗(yàn)證從主機(jī)B進(jìn)入的連接。為了向主機(jī)S 510提供有用的地 址信息,進(jìn)行下列步驟
1) 應(yīng)用Rl 421發(fā)送一個(gè)包到主機(jī)A 110,需要從主機(jī)A,應(yīng)用Al 121得 到有關(guān)從哪個(gè)IP地址和端口起動(dòng)與應(yīng)用Bl 321的連接的信息。該起始地址信 息對(duì)安全性是有用的,并能由應(yīng)用Sl為其自己的目的,如符合通信協(xié)議,所 需要。
2) 應(yīng)用Al 121與應(yīng)用Bl 321經(jīng)通道370通信以發(fā)現(xiàn)應(yīng)用Bl 321將使用 哪個(gè)內(nèi)部有效的地址和端口接觸應(yīng)用Sl 521。
3) 在主機(jī)A上應(yīng)用Al 121經(jīng)控制通道350接觸NAT設(shè)備320,將應(yīng)用Bl 用于與主機(jī)S 510上的微服務(wù)器通信的內(nèi)部有效的IP地址及端口通知地址管 理器324。
4) 應(yīng)用Al 121從地址管理器324接收作為回答的外部有效的IP地址和端 口號(hào),NAT設(shè)備320將由應(yīng)用Al 121在其請(qǐng)求中提供的內(nèi)部有效的起始地址所要轉(zhuǎn)換成的外部有效的IP地址及端口號(hào)。
5) 然后應(yīng)用A1 121 (我們必須假設(shè)它具有能力選址到主機(jī)R,應(yīng)用R1421 的IP消息包)經(jīng)NAT 320的地址轉(zhuǎn)換部分322發(fā)送IP消息包。包的數(shù)據(jù)部分 包含外部有效的IP地址和端口號(hào)以通知主機(jī)R,應(yīng)用R1421,來(lái)自應(yīng)用B1321 的包從哪個(gè)IP地址及端口發(fā)出。
6) 應(yīng)用Rl 421經(jīng)通信通道470與應(yīng)用Sl 521通信以通知應(yīng)用Sl 521,應(yīng) 用Bl 321與應(yīng)用Sl 521通信使用的IP地址及端口。
7) 然后應(yīng)用Bl 321通過(guò)發(fā)送一個(gè)選址到主機(jī)S的輸出包,而起動(dòng)到應(yīng)用 Sl 521的連接,那個(gè)包到達(dá)NAT設(shè)備320的地址轉(zhuǎn)換部分322。
8) NAT設(shè)備320的地址轉(zhuǎn)換部分322將包的源地址和端口 (它指出應(yīng)用Bl 的內(nèi)部IP地址及端口)轉(zhuǎn)換到它們的外部有效的版本(它在步驟4中送到應(yīng) 用A1 121,而在步驟5中應(yīng)用Al將其送到應(yīng)用Rl 421)。
9) 地址轉(zhuǎn)換部分322將帶著應(yīng)用Sl正期待的源信息的包經(jīng)主機(jī)R 410發(fā) 送到主機(jī)S,應(yīng)用Sl 521。
IV、語(yǔ)音通信應(yīng)用 A、沒(méi)有NAT
為更詳細(xì)地解釋本發(fā)明對(duì)IP電話的應(yīng)用,說(shuō)明使用稱(chēng)為SIP協(xié)議的簡(jiǎn)單 電話呼叫如何進(jìn)行工作是很有幫助的。SIP是話路初始化協(xié)議,但通常以SIP 的簡(jiǎn)寫(xiě)方式使用,而且所有一起工作的有關(guān)協(xié)議使用戶(hù)能通過(guò)如IP這種數(shù)據(jù) 網(wǎng)絡(luò)通電話(和做某些其它事情)。
在一個(gè)簡(jiǎn)單的例子中,基本上有兩個(gè)發(fā)送的消息來(lái)建立電話呼叫(此討論
刪除了某些細(xì)節(jié),實(shí)際上可能有很多事要做)。我們所關(guān)心的兩個(gè)消息是INVITE (請(qǐng)求)消息,和對(duì)它的OK (好)響應(yīng)。
假設(shè)某人(使用指定為電話A的SIP電話)希望對(duì)可能由電話號(hào)碼或如電 子郵件地址其它識(shí)別符所識(shí)別的其他人作出電話呼叫。作出呼叫的人應(yīng)通過(guò)鍵 入電話號(hào)碼或其它識(shí)別符來(lái)輸入所希望的目標(biāo)方。當(dāng)然,電話A不知道有關(guān)目 標(biāo)方在哪里的任何事,但它確實(shí)知道稱(chēng)為代理服務(wù)器的智能設(shè)備的位置。因此, 電話A形成一個(gè)INVITE消息,它包括有關(guān)誰(shuí)是目標(biāo)的信息,某些其它信息和 重要的目標(biāo)信息,目標(biāo)信息是關(guān)于一旦目標(biāo)被定位,聽(tīng)到鈴聲,并拿起電話, 電話A希望在哪里接收從目標(biāo)來(lái)的媒體消息包。電話A通常以其自己的IP地 址和端口號(hào)的形式提供此信息。我們假定分別是1. 1. 1. 1和1111。電話A接觸的代理服務(wù)器可能跟隨某個(gè)網(wǎng)絡(luò)搜索路徑發(fā)出INVITE到另外 的代理服務(wù)器設(shè)備,直到目標(biāo)被定位。此時(shí),由電話A初始形成的INVITE消 息被提交到我們指定為電話B的目標(biāo)。電話B可能會(huì)響一會(huì)鈴,且(運(yùn)氣好的 話)某人會(huì)拿起話筒。此時(shí)電話B用OK消息回答,它包括各種信息,包括電 話B期望接收媒體消息的目標(biāo)地址。我們假定這是IP地址2.2.2.2,端口號(hào) 2222。
電話B可立即開(kāi)始發(fā)送帶有數(shù)字化語(yǔ)音的媒體消息包到1. 1. 1. 1/1111,因 為它在INVITE消息內(nèi)接收到該消息。當(dāng)0K消息返回(通過(guò)代理服務(wù)器)到電 話A,該電話能開(kāi)始發(fā)送類(lèi)似的媒體消息包到2.2.2.2/2222。此時(shí)數(shù)字聲音數(shù) 據(jù)雙向發(fā)送,談話可能接著發(fā)生。
B、帶有NAT
對(duì)于圖中的NAT,我們有三種情況要討論。在第一種情況,目標(biāo)電話最終 由在某個(gè)NAT設(shè)備中的代理服務(wù)器定位。在第二種情況,源電話定位在某個(gè)NAT 設(shè)備中。在第三種情況,沒(méi)有電話定位在NAT設(shè)備"內(nèi)部",但是它們之間的 媒體通信量需要經(jīng)過(guò)定位在NAT設(shè)備中的網(wǎng)絡(luò)。在下面討論的例子中,所有NAT 設(shè)備是在圖3中討論的類(lèi)型。
當(dāng)然,各種情況可以組合。通常,某個(gè)代理服務(wù)器將提供給網(wǎng)絡(luò)中的其它 代理服務(wù)器以及有關(guān)的電話以沒(méi)有NAT設(shè)備的假象。因?yàn)檫@能成功地做到,你 能實(shí)際上具有許多與許多代理服務(wù)器一起工作的NAT設(shè)備,每個(gè)設(shè)備相信這是 僅有的NAT,且每個(gè)設(shè)備使網(wǎng)絡(luò)的其它成員相信,實(shí)際上"此處沒(méi)有NAT"。
1、 目標(biāo)電話是在NAT之內(nèi)
在此情況,在NAT的地址區(qū)域內(nèi)部的目標(biāo)電話B將毫無(wú)問(wèn)題地發(fā)送數(shù)據(jù)到 起始的電話,因?yàn)镹AT通常有能力通過(guò)將其編址到外部地址而簡(jiǎn)單地發(fā)送信息 量到外部的任何地方以"內(nèi)部"提供事物,但是。困難在于選出什么告訴起始 的電話,因?yàn)槟繕?biāo)電話是在NAT "內(nèi)部",沒(méi)有NAT的某種幫助它不能從外部 達(dá)到。目標(biāo)電話不使用全球路由的IP地址;它可能使用專(zhuān)用的IP地址,世界 上其它設(shè)備不知道如何將包提交到這個(gè)地址。只有在目標(biāo)電話的當(dāng)?shù)鼐W(wǎng)絡(luò)上的 設(shè)備在需要將數(shù)據(jù)提交給目標(biāo)電話時(shí),能將數(shù)據(jù)定址到目標(biāo)電話的實(shí)際IP地 址。
在此情況,必須牽涉到在目標(biāo)電話的網(wǎng)絡(luò)中的代理服務(wù)器。當(dāng)然,它總是 要牽涉進(jìn)來(lái)的,因?yàn)樗胸?zé)任將INVITE消息路由到局部網(wǎng)絡(luò)中的正確電話,以完成呼叫。此代理服務(wù)器也將處理從目標(biāo)電話來(lái)的0K響應(yīng)。記住,目標(biāo)電 話將其地址和端口 2.2.2./2222寫(xiě)入此0K消息。在此情況,2. 2. 2. 2對(duì)起始電 話不是有用的地址,因?yàn)樗菍?zhuān)用的且僅在內(nèi)部有效。因而,代理服務(wù)器必須 獲得不同的外部有效的地址,并在將其發(fā)回到起始電話前,替代包含在0K消 息中的地址(和可能的端口)。
代理服務(wù)器將作出對(duì)目標(biāo)電話的NAT設(shè)備的請(qǐng)求, 一個(gè)"Server Address/Port Allocation/Discovery"(服務(wù)器地址/端口分配/發(fā)現(xiàn))請(qǐng)求。 NAT將用地址和端口,如3.3. 3. 3/3333回答,借此在NAT設(shè)備的另一側(cè)("外 部")的設(shè)備可以達(dá)到在2.2.2.2/2222 (目標(biāo)電話)處的設(shè)備。代理服務(wù)器重 寫(xiě)0K消息,指出用3. 3. 3. 3/3333代替2. 2. 2. 2/2222,并發(fā)送該新的0K消息 到電話A。
現(xiàn)在,當(dāng)電話B發(fā)出媒體消息包到電話A,它被定址到1. 1. 1. 1/1111,且 NAT使之能很好工作,輸出信息量能簡(jiǎn)單地定址到"正確的"外部有效的地址。 然而,當(dāng)電話A發(fā)送媒體消息包到電話B,它將發(fā)送到3.3.3. 3/3333 —它在0K
消息中收到的目標(biāo)終點(diǎn)消息。假設(shè)能正確配置,對(duì)每個(gè)由代理服務(wù)器作出的請(qǐng) 求此包將到達(dá)NAT設(shè)備,它將轉(zhuǎn)換該包,使得它被定址到2.2.2.2/2222,并發(fā)
送到網(wǎng)絡(luò)內(nèi)部?,F(xiàn)在此媒體消息包被正確地定址,并在當(dāng)?shù)鼐W(wǎng)絡(luò)中,該網(wǎng)絡(luò)知 道如何傳送此"專(zhuān)門(mén)定址"的媒體消息包,使得媒體消息包如所希望那樣到達(dá) 電話B。
2、 目標(biāo)電話在NAT外部
這是幾乎與上述例子幾乎相同的情況,差別在于在此情況中靠近電話A(它 現(xiàn)在是在NAT"內(nèi)部"的電話,而且具有只在其當(dāng)?shù)鼐W(wǎng)絡(luò)有用的專(zhuān)用IP地址) 的代理服務(wù)器在向NAT設(shè)備詢(xún)問(wèn)外部有效地址之后必須改寫(xiě)INVITE消息。在 請(qǐng)求的NAT規(guī)則下,1. 1. 1. 1/1111地址可能被改寫(xiě)成4. 4. 4. 4/4444 (在此情 況1. 1. 1. 1/1111認(rèn)為是專(zhuān)用IP地址,而4.4.4.4不是)。
從電話A來(lái)的媒體消息包不加改變地通過(guò)NAT設(shè)備發(fā)出,而從電話B來(lái)的 媒體消息包(在NAT之外將被定址為4.4. 4. 4/4444)將到達(dá)NAT設(shè)備并被轉(zhuǎn)換 到1. 1. 1. 1/1111,并最終提交給內(nèi)部的電話A。
3、 兩個(gè)電話均在外部一過(guò)渡網(wǎng)絡(luò)有NAT
在此情況我們假設(shè)兩個(gè)電話在"外面"某些地方,而帶有NAT設(shè)備的網(wǎng)絡(luò) 是過(guò)渡網(wǎng)絡(luò)—對(duì)IP電話來(lái)說(shuō)可能是遠(yuǎn)距離載體。我們還假設(shè)此網(wǎng)絡(luò)參與處理
23和路由INVITE和OK消息。此網(wǎng)絡(luò)可能提供到個(gè)人位置的服務(wù)以及媒體消息的 處理。
我們分別將電話A和電話B放在1. 1. 1. 1/1111和2.2. 2. 2/2222處。
假設(shè)從電話A來(lái)的INVITE到達(dá)所考慮的裝有NAT設(shè)備的過(guò)渡網(wǎng)絡(luò)中的代 理服務(wù)器。我們稱(chēng)之為入口 (Ingress)代理服務(wù)器,因?yàn)樗谖覀兊睦又?處理"輸入"INVITE。入口代理服務(wù)器完成與以前例子一樣的"Server Address/Port Discovery —服務(wù)器地址/端口發(fā)現(xiàn)",發(fā)現(xiàn)在過(guò)渡網(wǎng)絡(luò)中的設(shè) 備能用于達(dá)到電話A的地址。讓我們假設(shè),它在特定的NAT設(shè)備(指定為NAT A) 完成此操作,它是在從過(guò)渡網(wǎng)絡(luò)到電話A的出口 (egress)點(diǎn)。比如說(shuō)NAT A 返回一個(gè)地址/端口,它是10.10.10.10/1010。這是在過(guò)渡網(wǎng)絡(luò)上有用的專(zhuān)用 地址,在過(guò)渡網(wǎng)絡(luò)內(nèi)部的設(shè)備能使用它達(dá)到電話A。即,在過(guò)渡網(wǎng)絡(luò)中地址為 10.10.10.10/1010的任何消息包將由網(wǎng)絡(luò)路由到NAT A,它將該地址轉(zhuǎn)換成 1.1.1.1/1111,并將其發(fā)送到電話A。
INVITE消息(現(xiàn)指出電話A希望在10. 10. 10. 10/1010處接收媒體消息) 通過(guò)過(guò)渡網(wǎng)絡(luò)被發(fā)送。在某些點(diǎn),另外的代理服務(wù)器將接收此INVITE,我們稱(chēng) 它為出口代理服務(wù)器,因?yàn)樗陔x開(kāi)過(guò)渡網(wǎng)絡(luò)的路上處理INVITE。此出口代理 服務(wù)器對(duì)位置很適合于提供電話B往返消息流的另一個(gè)NAT設(shè)備(如NAT B) 進(jìn)行又一個(gè)請(qǐng)求,以便發(fā)現(xiàn)一個(gè)地址,用此地址在NAT B "外部"的設(shè)備能達(dá) 到當(dāng)前包含在INVITE—10. 10. 10. 10/1010中的終點(diǎn)。NATB應(yīng)用某地址作為響 應(yīng),如20. 20. 20. 20/2020。此地址點(diǎn)是由定址到20. 20. 20. 20/2020的外部設(shè) 備發(fā)送并到達(dá)NAT B的包將被改寫(xiě),具體說(shuō)來(lái)將被轉(zhuǎn)換成IO. 10. 10. 10/1010。 然后過(guò)渡網(wǎng)絡(luò)將此數(shù)據(jù)路由(因?yàn)樗唤⒁源朔椒酚?到NAT A,如前面 段落所示,它將再被改變數(shù)據(jù)地址到1. 1. 1. 1/1111。
然后INVITE被發(fā)送到電話B,對(duì)每個(gè)INVITE的內(nèi)容,它將發(fā)送媒體消息 包到地址20. 20.20. 20/2020。媒體消息包將經(jīng)過(guò)地址20. 20. 20, 20,假設(shè)有正 確的網(wǎng)絡(luò)配置,使得它到達(dá)NAT B,在那里被轉(zhuǎn)換成10. 10. 10. 10/1010,并隨 后送到NATA。 NAT A將其轉(zhuǎn)換成1. 1. 1. 1/1111,并將其送到電話A。 NAT A將 其轉(zhuǎn)換成1.1. 1.1/1111,并將其送到電話A。
雖然導(dǎo)致不同的地址,對(duì)從電話B返回的OK將應(yīng)用完全相同的操作組, 但是沿不同的方向。首先出口代理服務(wù)器向NAT B請(qǐng)求地址,借此在過(guò)渡網(wǎng)絡(luò) 內(nèi)部的設(shè)備能達(dá)到電話B (在2.2.2.2/2222處)。NAT B可能將返回地址
2440.40.40.40/4040。 0K消息將被出口代理服務(wù)器改寫(xiě)以指出這點(diǎn),并被發(fā)送到 入口代理服務(wù)器。此代理服務(wù)器向NATA請(qǐng)求一個(gè)地址,借此在外部的設(shè)備(如 電話A)可達(dá)到地址40. 40. 40. 40/4040。NAT A可以返回地址50. 50. 50. 50/5050。 OK將再次改寫(xiě)以指出這點(diǎn),并被發(fā)送到電話A,它將隨后發(fā)送所有媒體消息包 到地址50. 50. 50. 50/5050。
其結(jié)果是電話B將其媒體消息包發(fā)送到20. 20. 20. 20/2020,而電話A將其 媒體消息包發(fā)送到50.50. 50. 50/5050,所有地址最終得到轉(zhuǎn)換,以便媒體消息 包最后到達(dá)正確的位置。
這樣做的優(yōu)點(diǎn)是如20. 20. 20. 20/2020和50. 50. 50. 50這種的IP地址能被 有能力控制NAT的應(yīng)用強(qiáng)制實(shí)施并能選成屬于過(guò)渡網(wǎng)絡(luò)本身的地址,保證從兩 個(gè)電話來(lái)的包到達(dá)過(guò)渡網(wǎng)絡(luò)本身的適合的入口點(diǎn),保證過(guò)渡網(wǎng)絡(luò)實(shí)際上處理媒 體數(shù)據(jù),并進(jìn)一步保證對(duì)每個(gè)媒體消息流的入口點(diǎn)。缺少這一點(diǎn),過(guò)渡網(wǎng)絡(luò)就 不能對(duì)在媒體消息包如何從一個(gè)電話到另一個(gè)方面進(jìn)行先驗(yàn)控制。
IV、結(jié)論和另外實(shí)施例
本專(zhuān)業(yè)的熟練人士容易明白,能做出這些實(shí)施例和原理的無(wú)數(shù)變化,修改, 應(yīng)用,和擴(kuò)展而不背離本發(fā)明的原則和精神。因而本發(fā)明的范圍僅受附后的權(quán) 利要求來(lái)限制。
權(quán)利要求
1.一種用于方便在第一內(nèi)部地址區(qū)域中的第一應(yīng)用和在一外部地址區(qū)域中的一個(gè)或多個(gè)應(yīng)用之間的消息包通信的方法,所述內(nèi)部地址區(qū)域具有其可用的至少一個(gè)在所述外部地址區(qū)域中有效使用的地址以及一個(gè)地址轉(zhuǎn)換器,用于根據(jù)轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的消息包的頭部中所包括的地址進(jìn)行轉(zhuǎn)換,所述轉(zhuǎn)換規(guī)則映射了所述內(nèi)部和外部地址區(qū)域的尋址之間的對(duì)應(yīng)關(guān)系,其特征在于,所述方法包括從所述第一應(yīng)用發(fā)送一服務(wù)請(qǐng)求以在所述地址轉(zhuǎn)換器處建立新轉(zhuǎn)換規(guī)則,所述服務(wù)請(qǐng)求從來(lái)自所述至少一個(gè)在所述外部地址區(qū)域中有效使用的地址中指定了要與外部地址映射的一個(gè)內(nèi)部地址;以及在第一應(yīng)用處接收所述外部地址。
2. 如權(quán)利要求1所述的方法,其特征在于,所述服務(wù)請(qǐng)求指定用于要在所述新轉(zhuǎn)換規(guī)則中建立的外部地址的規(guī)定的或希望的特征。
3. 如權(quán)利要求1所述的方法,其特征在于,所述規(guī)定的或希望的特征是 指所述新轉(zhuǎn)換規(guī)則的所述外部地址必須是一特定地址或在IP地址的指定范圍 中。
4. 如權(quán)利要求2所述的方法,其特征在于,所述外部地址的規(guī)定的或希 望的特征是要轉(zhuǎn)換成內(nèi)部有效的端口號(hào)的外部有效端口號(hào)。
5. 如權(quán)利要求4所述的方法,其特征在于,所述內(nèi)部有效的端口號(hào)是根 據(jù)進(jìn)入的源地址的一個(gè)值或不同的值。
6. 如權(quán)利要求4所述的方法,其特征在于,所述外部地址包括外部有效 IP地址和外部有效端口號(hào),所述地址轉(zhuǎn)換器將它們轉(zhuǎn)換成所述第一應(yīng)用的內(nèi)部 地址的內(nèi)部有效IP地址和內(nèi)部有效端口號(hào)。
7. 如權(quán)利要求1所述的方法,其特征在于,所述第一應(yīng)用在控制信道上 發(fā)送服務(wù)請(qǐng)求并從所述地址轉(zhuǎn)換器接收所請(qǐng)求的信息或狀態(tài)信息。
8. 如權(quán)利要求1所述的方法,其特征在于,包括在來(lái)自所述第一應(yīng)用 的消息的數(shù)據(jù)部分中提供所述外部地址,來(lái)自所述外部地址區(qū)域中的所述一個(gè) 或多個(gè)應(yīng)用的消息將被發(fā)送到該外部地址以與所述第一應(yīng)用通信。
9. 如權(quán)利要求1或8所述的方法,其特征在于,所述外部地址區(qū)域中的所 述一個(gè)或多個(gè)應(yīng)用通過(guò)尋址消息到所述外部地址啟動(dòng)與所述第一應(yīng)用的通信。
10. 如權(quán)利要求1所述的方法,其特征在于,包括在來(lái)自所述第一應(yīng)用 的消息的數(shù)據(jù)部分中提供所述外部地址給第二應(yīng)用,所述第二應(yīng)用用作代表所 述外部地址區(qū)域中的所述一個(gè)或多個(gè)應(yīng)用的代理。
11. 如權(quán)利要求l所述的方法,其特征在于,所述第一應(yīng)用和所述外部地 址區(qū)域中的所述一個(gè)或多個(gè)應(yīng)用是主要以對(duì)稱(chēng)方式通信的對(duì)等應(yīng)用。
12. 如權(quán)利要求ll所述的方法,其特征在于,每個(gè)對(duì)等應(yīng)用用作客戶(hù)機(jī)或 服務(wù)器。
13. —種用于方便在一內(nèi)部地址區(qū)域中的一內(nèi)部應(yīng)用和在一外部地址區(qū)域中的外部應(yīng)用之間的消息包通信的方法,所述內(nèi)部地址區(qū)域具有其可用的至少 一個(gè)在所述外部地址區(qū)域中有效使用的地址以及一個(gè)地址轉(zhuǎn)換器,用于根據(jù)轉(zhuǎn) 換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的消息包的頭部 中所包括的地址進(jìn)行轉(zhuǎn)換,所述轉(zhuǎn)換規(guī)則映射了所述內(nèi)部和外部地址區(qū)域的尋址之間的對(duì)應(yīng)關(guān)系,其特征在于,所述方法包括所述內(nèi)部應(yīng)用指定了在所述地址轉(zhuǎn)換器處建立第一轉(zhuǎn)換規(guī)則,所述第一轉(zhuǎn) 換規(guī)則為所述內(nèi)部應(yīng)用定義了要與第一外部地址映射的來(lái)自所述至少一個(gè)在所述外部地址區(qū)域中有效使用的地址中的第一內(nèi)部地址;從所述內(nèi)部應(yīng)用發(fā)送輸出消息,其頭部包括通過(guò)所述地址轉(zhuǎn)換器的到所述外部地址的第一內(nèi)部地址;其中,根據(jù)第一轉(zhuǎn)換規(guī)則將所述輸出消息的頭部中包括的所述第一內(nèi)部地 址轉(zhuǎn)換成所述第一外部地址,該被轉(zhuǎn)換的輸出消息啟動(dòng)與所述外部應(yīng)用的通 信,并且響應(yīng)于所述內(nèi)部應(yīng)用啟動(dòng)的通信,在外部地址區(qū)域中的所述外部應(yīng)用 發(fā)送編址到所述第一外部地址的進(jìn)入消息,所述地址轉(zhuǎn)換器將根據(jù)所述第一轉(zhuǎn) 換規(guī)則將該第一外部地址轉(zhuǎn)換成用于所述內(nèi)部應(yīng)用的第一內(nèi)部地址。
14. 如權(quán)利要求13所述的方法,其特征在于,包括步驟 由內(nèi)部應(yīng)用指定在所述地址轉(zhuǎn)換器處的第二轉(zhuǎn)換規(guī)則的建立,所述第二轉(zhuǎn)換規(guī)則定義了要與第二外部地址映射的來(lái)自所述至少一個(gè)在所述外部地址區(qū) 域中有效使用的地址中的第二內(nèi)部地址;以及在來(lái)自所述內(nèi)部應(yīng)用的消息的數(shù)據(jù)部分提供所述第二外部地址給外部地 址區(qū)域中的所述外部應(yīng)用;其中,所述外部應(yīng)用可以通過(guò)尋址消息到所述第二外部地址啟動(dòng)與所述內(nèi) 部應(yīng)用的通信,該第二外部地址將被所述地址轉(zhuǎn)換器根據(jù)所述第二轉(zhuǎn)換規(guī)則轉(zhuǎn)換為用于所述內(nèi)部應(yīng)用的第二內(nèi)部地址。
15. —種用于方便在一內(nèi)部地址區(qū)域中的第一應(yīng)用和在一外部地址區(qū)域中 的一個(gè)或多個(gè)應(yīng)用之間的消息包通信的設(shè)備,所述內(nèi)部地址區(qū)域具有其可用的 至少一個(gè)在所述外部地址區(qū)域中有效使用的地址,所述設(shè)備包括消息組件,用于將消息包從所述第一應(yīng)用發(fā)送到一地址轉(zhuǎn)換器,所述地址 轉(zhuǎn)換器根據(jù)轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的 消息包的頭部中所包括的地址進(jìn)行轉(zhuǎn)換,所述轉(zhuǎn)換規(guī)則映射了所述內(nèi)部和外部 地址區(qū)域的尋址之間的對(duì)應(yīng)關(guān)系;和服務(wù)組件,用于從所述第一應(yīng)用向用于所述內(nèi)部地址區(qū)域的地址管理器發(fā) 送在所述地址轉(zhuǎn)換器處建立新轉(zhuǎn)換規(guī)則的服務(wù)請(qǐng)求,并接收所述地址管理器的 響應(yīng),所述服務(wù)請(qǐng)求從來(lái)自所述至少一個(gè)在所述外部地址區(qū)域中有效使用的地 址中指定了要與外部地址映射的一個(gè)內(nèi)部地址。
16. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述服務(wù)請(qǐng)求指定用于要在所述新轉(zhuǎn)換規(guī)則中建立的外部地址的規(guī)定的或希望的特征。
17. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述規(guī)定的或希望的特征 是指所述新轉(zhuǎn)換規(guī)則的所述外部地址必須是一特定地址或在IP地址的指定范 圍中。
18. 如權(quán)利要求16所述的設(shè)備,其特征在于,所述外部地址的規(guī)定的或 希望的特征是要轉(zhuǎn)換成內(nèi)部有效的端口號(hào)的外部有效端口號(hào)。
19. 如權(quán)利要求18所述的設(shè)備,其特征在于,所述內(nèi)部有效的端口號(hào)是 根據(jù)進(jìn)入的源地址的一個(gè)值或不同的值。
20. 如權(quán)利要求18所述的設(shè)備,其特征在于,所述外部地址包括外部有 效IP地址和外部有效端口號(hào),所述地址轉(zhuǎn)換器將它們轉(zhuǎn)換成所述第一應(yīng)用的 內(nèi)部地址的內(nèi)部有效IP地址和內(nèi)部有效端口號(hào)。
21. 如權(quán)利要求15所述的設(shè)備,其特征在于,進(jìn)一步包括用于在來(lái)自所 述第一應(yīng)用的消息的數(shù)據(jù)部分中提供所述外部地址的組件,來(lái)自所述外部地址 區(qū)域中的所述一個(gè)或多個(gè)應(yīng)用的消息將被發(fā)送到該外部地址以與所述第一應(yīng) 用通信。
22. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述第一應(yīng)用和所述外部地 址區(qū)域中的所述一個(gè)或多個(gè)應(yīng)用是主要以對(duì)稱(chēng)方式通信的對(duì)等應(yīng)用。
23. 如權(quán)利要求15所述的設(shè)備,其特征在于,所述地址管理器的響應(yīng)包括所述第一應(yīng)用使用的所述外部地址。
24. —種用于方便在一內(nèi)部地址區(qū)域中的第一應(yīng)用和在一外部地址區(qū)域中的一個(gè)或多個(gè)應(yīng)用之間的消息包通信的方法,所述內(nèi)部地址區(qū)域具有其可用的 至少一個(gè)在所述外部地址區(qū)域中有效使用的地址以及一個(gè)地址轉(zhuǎn)換器,用于根 據(jù)轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的消息包的 頭部中所包括的地址進(jìn)行轉(zhuǎn)換,所述轉(zhuǎn)換規(guī)則映射了所述內(nèi)部和外部地址區(qū)域的尋址之間的對(duì)應(yīng)關(guān)系,其特征在于,所述方法包括從所述第一應(yīng)用發(fā)送一服務(wù)請(qǐng)求以在所述地址轉(zhuǎn)換器處建立新轉(zhuǎn)換規(guī)則, 所述服務(wù)請(qǐng)求從來(lái)自所述至少一個(gè)在所述外部地址區(qū)域中有效使用的地址中指定了要與外部地址映射的一個(gè)內(nèi)部地址;以及接收并存儲(chǔ)所述外部地址以供所述第一應(yīng)用訪問(wèn)。
25. —種用于方便在一內(nèi)部地址區(qū)域中的第一應(yīng)用和在一外部地址區(qū)域中 的一個(gè)或多個(gè)應(yīng)用之間的消息包通信的設(shè)備,所述內(nèi)部地址區(qū)域具有其可用的 至少一個(gè)在所述外部地址區(qū)域中有效使用的地址,并且所述設(shè)備具有一個(gè)消息 組件,用于將消息包從第一應(yīng)用發(fā)送到一個(gè)地址轉(zhuǎn)換器,所述地址轉(zhuǎn)換器用于 根據(jù)轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的消息包 的頭部中所包括的地址進(jìn)行轉(zhuǎn)換,所述轉(zhuǎn)換規(guī)則映射了所述內(nèi)部和外部地址區(qū) 域的尋址之間的對(duì)應(yīng)關(guān)系,其特征在于,所述設(shè)備包括-服務(wù)組件,用于從所述第一應(yīng)用向用于所述內(nèi)部地址區(qū)域的地址管理器發(fā) 送在所述地址轉(zhuǎn)換器處建立新轉(zhuǎn)換規(guī)則的服務(wù)請(qǐng)求,并接收所述地址管理器對(duì) 所述服務(wù)請(qǐng)求的響應(yīng),所述服務(wù)請(qǐng)求從來(lái)自所述至少一個(gè)在所述外部地址區(qū)域 中有效使用的地址中指定了要與外部地址映射的一個(gè)內(nèi)部地址。
26. —種用于方便在具有一內(nèi)部地址區(qū)域中有效的地址的第一主機(jī)和在一 外部地址區(qū)域中的一個(gè)或多個(gè)主機(jī)之間的消息包通信的第一SIP應(yīng)用,所述內(nèi) 部地址區(qū)域具有其可用的至少一個(gè)在所述外部地址區(qū)域中有效使用的一組地 址,所述第一應(yīng)用具有存儲(chǔ)在計(jì)算機(jī)可讀媒體上的指令,并由處理器執(zhí)行以進(jìn) 行下述步驟在所述內(nèi)部地址區(qū)域中向網(wǎng)絡(luò)地址轉(zhuǎn)換裝置發(fā)送一服務(wù)請(qǐng)求,以在所述網(wǎng) 絡(luò)地址轉(zhuǎn)換裝置處建立轉(zhuǎn)換規(guī)則,所述網(wǎng)絡(luò)地址轉(zhuǎn)換裝置適用于根據(jù)解決了所 述內(nèi)部和外部地址區(qū)域中不兼容性的轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從所述內(nèi)部地址區(qū)域發(fā)出的消息包的頭部中所包括的地址進(jìn)行轉(zhuǎn)換;響應(yīng)于所述服務(wù)請(qǐng)求,在所述內(nèi)部地址區(qū)域中從所述網(wǎng)絡(luò)地址轉(zhuǎn)換裝置接 收在所述外部地址區(qū)域中有效的第一地址;以及使得所述第一地址在SIP消息中被發(fā)送到所述外部地址區(qū)域。
27. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述SIP消息是 SIP INVITE消息。
28. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述SIP消息被 發(fā)送給所述外部地址區(qū)域中的第二SIP應(yīng)用。
29. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述第一地址包括 IP地址和端口號(hào)。
30. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,在將所述第一地址 發(fā)送給所述外部地址區(qū)域中的第二SIP應(yīng)用時(shí),喚醒SIP代理服務(wù)器。
31. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述SIP消息用于 建立對(duì)等通信會(huì)話。
32. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述SIP消息用于 建立IP電話通信會(huì)話。
33. 如權(quán)利要求26所述的第一SIP應(yīng)用,其特征在于,所述SIP消息用于 建立即時(shí)消息會(huì)話。
34. —種用于方便在具有一內(nèi)部地址區(qū)域中有效的地址的第一主機(jī)和在一外部地址區(qū)域中的一個(gè)或多個(gè)主機(jī)之間的消息包通信的方法,所述內(nèi)部地址區(qū) 域具有其可用的至少一個(gè)在所述外部地址區(qū)域中有效使用的一組地址,所述方法包括在所述內(nèi)部地址區(qū)域中向網(wǎng)絡(luò)地址轉(zhuǎn)換裝置發(fā)送一服務(wù)請(qǐng)求,以在所述網(wǎng) 絡(luò)地址轉(zhuǎn)換裝置處建立轉(zhuǎn)換規(guī)則,所述網(wǎng)絡(luò)地址轉(zhuǎn)換裝置適用于根據(jù)解決了所 述內(nèi)部和外部地址區(qū)域中不兼容性的轉(zhuǎn)換規(guī)則對(duì)進(jìn)入所述內(nèi)部地址區(qū)域或從 所述內(nèi)部地址區(qū)域發(fā)出的消息包的頭部中所包括的地址進(jìn)行轉(zhuǎn)換;響應(yīng)于所述服務(wù)請(qǐng)求,從所述網(wǎng)絡(luò)地址轉(zhuǎn)換裝置接收在所述外部地址區(qū)域 中有效的第一地址;以及使得所述第一地址在SIP消息中被發(fā)送到所述外部地址區(qū)域。
35. 如權(quán)利要求34所述的方法,其特征在于,所述SIP消息是SIP INVITE 消息。
36. 如權(quán)利要求34所述的方法,其特征在于,所述SIP消息被發(fā)送給所述外部地址區(qū)域中的一SIP應(yīng)用。
37. 如權(quán)利要求34所述的方法,其特征在于,所述第一地址包括IP地址 和端口號(hào)。
38. 如權(quán)利要求34所述的方法,其特征在于,在將所述第一地址發(fā)送給所 述外部地址區(qū)域中的SIP應(yīng)用時(shí),喚醒SIP代理服務(wù)器。
39. 如權(quán)利要求34所述的方法,其特征在于,所述SIP消息用于建立對(duì)等 通信會(huì)話。
40. 如權(quán)利要求34所述的方法,其特征在于,所述SIP消息用于建立IP 電話通信會(huì)話。
41. 如權(quán)利要求34所述的方法,其特征在于,所述SIP消息用于建立即時(shí) 消息會(huì)話。
全文摘要
本發(fā)明為一種便于對(duì)等應(yīng)用通信的方法和設(shè)備。一個(gè)用于完成網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)的系統(tǒng),它使應(yīng)用(121,122,321,322,421,521,522)能請(qǐng)求關(guān)于要完成的地址轉(zhuǎn)換的信息,使得這些應(yīng)用為了在特定的通信通道缺乏靜態(tài)定義的規(guī)則的情況下允許應(yīng)用通過(guò)NAT設(shè)備(320)通信的目標(biāo)而向其它的應(yīng)用發(fā)送有用的信息。
文檔編號(hào)H04L29/08GK101668051SQ20091014542
公開(kāi)日2010年3月10日 申請(qǐng)日期2001年9月4日 優(yōu)先權(quán)日2000年9月13日
發(fā)明者A·T·莫利特 申請(qǐng)人:阿爾開(kāi)泰爾-盧森特美國(guó)股份有限公司