專利名稱:私網(wǎng)與公網(wǎng)進(jìn)行數(shù)據(jù)通信的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的方 法及系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation)是一種將內(nèi)部私有 網(wǎng)絡(luò)地址翻譯成合法公有網(wǎng)絡(luò)IP地址的技術(shù)。簡單地說,NAT就是在局域 網(wǎng)內(nèi)部網(wǎng)絡(luò)中使用內(nèi)部地址,而當(dāng)局域網(wǎng)內(nèi)部節(jié)點要與外部互聯(lián)網(wǎng)絡(luò)進(jìn)行通 信時,就在網(wǎng)關(guān)處將私網(wǎng)地址替換成公網(wǎng)地址,從而實現(xiàn)與外部互聯(lián)網(wǎng)的正常通信。圖1為現(xiàn)有的通過NAT實現(xiàn)私網(wǎng)和公網(wǎng)數(shù)據(jù)通信的流程圖,如圖1所 示,其具體步驟如下步驟101:私網(wǎng)的客戶端確定要連接到公網(wǎng)的服務(wù)器上,向公網(wǎng)服務(wù)器 發(fā)送控制連接請求報文如登錄請求報文,該報文的IP頭中的源IP地址為 私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址、目的IP地 址為公網(wǎng)服務(wù)器的IP地址,報文的TCP頭中的源端口號為私網(wǎng)客戶端與公 網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)端口號、目的端口號為公網(wǎng)服務(wù)器的 端口號,報文的數(shù)據(jù)載荷中的IP地址、端口號分別為私網(wǎng)客戶端與公網(wǎng)服 務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號。步驟102: NAT單元截獲到該控制連接請求報文,根據(jù)預(yù)先配置的私公 網(wǎng)IP地址轉(zhuǎn)換規(guī)則,確定該報文的IP頭中的源IP地址,即私網(wǎng)客戶端與公 網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址對應(yīng)的公網(wǎng)IP地址,并獲取 一個與該公網(wǎng)IP地址對應(yīng)且未被使用的公網(wǎng)端口號,以該公網(wǎng)端口號替換
該報文的IP頭中的源端口號,以所述公網(wǎng)IP地址替換該報文的IP頭中的源IP地址,將該報文發(fā)送給應(yīng)用網(wǎng)關(guān)(ALG, Application Gateway),并在 NAT表項中建立私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng) IP地址、私網(wǎng)端口號,私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的公 網(wǎng)IP地址、公網(wǎng)端口號,以及報文中的傳輸協(xié)議號間的對應(yīng)關(guān)系。步驟103: ALG收到該控制連接請求報文,對該報文的數(shù)據(jù)載荷進(jìn)行解 析,得到私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、 私網(wǎng)端口號,將該私網(wǎng)IP地址、私網(wǎng)端口號發(fā)送癥合NAT單元。NAT單元和ALG —4殳位于同一物理設(shè)備上。步驟104: NAT單元收到該私網(wǎng)IP地址、私網(wǎng)端口號,根據(jù)預(yù)先配置 的私/>網(wǎng)IP地址轉(zhuǎn)換MJ,j,確定與該私網(wǎng)IP地址對應(yīng)的乂A網(wǎng)IP地址,并獲 取一個與該公網(wǎng)IP地址對應(yīng)且未^皮使用的公網(wǎng)端口號,將該公網(wǎng)端口號、 公網(wǎng)IP地址返回給ALG。通常, 一個公網(wǎng)IP地址對應(yīng)2"個公網(wǎng)端口。步驟105: ALG收到該公網(wǎng)IP地址、公網(wǎng)端口號,以該公網(wǎng)端口號和 公網(wǎng)IP地址替換控制連接請求報文的數(shù)據(jù)載荷中的私網(wǎng)IP地址和私網(wǎng)端口 號,然后將該控制連接請求報文發(fā)送給公網(wǎng)服務(wù)器,同時在NAT表項中建 立私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng) 端口號,私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、 公網(wǎng)端口號,以及控制連接請求報文中的傳輸協(xié)議號間的對應(yīng)關(guān)系。步驟106:公網(wǎng)服務(wù)器接收到該控制連接請求報文,根據(jù)該控制連接請 求報文的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號,向私網(wǎng)客戶端發(fā)送數(shù)據(jù) 連接請求報文,該數(shù)據(jù)連接請求報文中的目的IP地址、目的端口號分別為 控制連接請求報文的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號。公網(wǎng)服務(wù)器接收到控制連接請求報文,也可根據(jù)控制連接請求報文的IP 頭中的源IP地址,以及TCP頭中的源端口號,向私網(wǎng)客戶端發(fā)送控制連接 響應(yīng)報文如登錄響應(yīng)報文,該控制連接響應(yīng)報文的目的IP地址、目的端 口號分別為控制連接請求報文中的源IP地址、源端口號,NAT單元截獲到 該控制連接響應(yīng)報文后,會根據(jù)步驟102中在NAT表項中建立的對應(yīng)關(guān)系, 將該控制連接響應(yīng)報文中的目的IP地址、目的端口號分別替換為私網(wǎng)客戶 端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號,然后 將該控制連接響應(yīng)報文發(fā)送給私網(wǎng)客戶端。步驟107: NAT單元截獲到該數(shù)據(jù)連接請求報文,在自身的NAT表項 中,查找與該寺艮文中的目的IP地址、目的端口號對應(yīng)的私網(wǎng)IP地址、私網(wǎng) 端口號,以該私網(wǎng)IP地址、私網(wǎng)端口號替換報文中的目的IP地址、目的端 口號,將該報文發(fā)送給私網(wǎng)客戶端。步驟108:私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)送數(shù)據(jù)連接請求報文,該報文的 源IP地址、源端口號分別為私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使 用的私網(wǎng)IP地址、私網(wǎng)端口號,目的IP地址、目的端口號分別為公網(wǎng)服務(wù) 器的IP地址、公網(wǎng)服務(wù)器的端口號。步驟109: NAT單元截獲到該數(shù)據(jù)連接請求報文,在自身的NAT表項 中,查找到與該報文的源IP地址、源端口號、傳輸協(xié)議號對應(yīng)的公網(wǎng)IP地 址、公網(wǎng)端口號,以該公網(wǎng)IP地址、公網(wǎng)端口號替換該報文中的源IP地址、 源端口號,將該報文發(fā)送給公網(wǎng)服務(wù)器??梢钥闯?,對從私網(wǎng)發(fā)往公網(wǎng)的控制協(xié)議報文,ALG對報文的數(shù)據(jù)載 荷中的私網(wǎng)地址、私網(wǎng)端口進(jìn)行轉(zhuǎn)換時,需要由NAT為該私網(wǎng)地址、私網(wǎng) 端口分配公網(wǎng)地址、公網(wǎng)端口 ,即ALG依賴于NAT對數(shù)據(jù)連接分配公網(wǎng)地 址和公網(wǎng)端口,實現(xiàn)成本較高。另外,NAT分配公網(wǎng)地址、公網(wǎng)端口時, 采用端口隊列機制,即 一個公網(wǎng)地址的公網(wǎng)端口在同一時刻不能被重復(fù)使 用,由于端口資源有限,很容易造成NAT已成功為控制連接分配了公網(wǎng) 地址和公網(wǎng)端口,而無法為數(shù)據(jù)連接分配公網(wǎng)地址和公網(wǎng)端口的情況,從而 導(dǎo)致數(shù)據(jù)連接無法建立。
發(fā)明內(nèi)容本發(fā)明提供一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的方法及系統(tǒng),以降低私網(wǎng)和公 網(wǎng)進(jìn)行數(shù)據(jù)通信的成本。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的方法,包括私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā) 起控制連接請求的第一過程,和公網(wǎng)服務(wù)器與私網(wǎng)客戶端建立數(shù)據(jù)連接的第二 過程;在所述第一過程中,NAT單元截獲私網(wǎng)客戶端發(fā)起的控制連接請求報文, 以公網(wǎng)地址和公網(wǎng)端口替換該報文的IP頭中的私網(wǎng)地址和TCP頭中的私網(wǎng)端 口 ,然后將該報文發(fā)送給ALG, ALG以報文的IP頭中的所述替換得到的公網(wǎng) 地址替換報文的數(shù)據(jù)載荷中的私網(wǎng)地址,并選擇一個公網(wǎng)端口,將該公網(wǎng)端口 信息放入報文的數(shù)據(jù)載荷中發(fā)送給公網(wǎng)服務(wù)器。所述ALG將公網(wǎng)端口信息放入報文的數(shù)據(jù)載荷中時進(jìn)一步包括ALG在 已有的會話表項中建立所述公網(wǎng)地址、所述選擇的數(shù)據(jù)載荷中的公網(wǎng)端口信 息及控制連接請求報文中的傳輸協(xié)議信息的對應(yīng)關(guān)系;且,所述第一過程,ALG選擇的公網(wǎng)端口滿足條件所述公網(wǎng)地址和該公 網(wǎng)端口未包含在會話表項中。所述會話表項進(jìn)一步包括控制連接請求報文的數(shù)據(jù)栽荷中原私網(wǎng)地址、 原私網(wǎng)端口信息,所述第二過程包括NAT單元截獲公網(wǎng)服務(wù)器發(fā)起的數(shù)據(jù)連接請求報文, 在由ALG建立的會話表項中,查找與數(shù)據(jù)連接請求報文的目的地址、目的端口 信息及報文中的傳輸協(xié)議信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端口信息,以該私網(wǎng)地址、 私網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的目的地址、目的端口信息,將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端。所述NAT單元查找私網(wǎng)地址、私網(wǎng)端口信息進(jìn)一步包括NAT單元建立 包括數(shù)據(jù)連接請求報文的源地址、源端口信息,原目的地址、原目的端口信
息,替換后的目的地址、目的端口信息,傳輸協(xié)議信息的對應(yīng)關(guān)系的NAT表項, 所述NAT單元將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端之后進(jìn)一步包括 NAT單元截獲到私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)送的數(shù)據(jù)連接請求報文,在 NAT表項中,查找該數(shù)據(jù)連接請求報文的源地址、源端口信息、目的地址、目 的端口信息、傳輸協(xié)議信息對應(yīng)的/>網(wǎng)地址、乂>網(wǎng)端口信息,以該/〉網(wǎng)地址、 公網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的源地址、源端口信息,將數(shù)據(jù)連接請求 報文發(fā)送給公網(wǎng)服務(wù)器。所述會話表項進(jìn)一步包括控制連接請求報文的數(shù)據(jù)載荷中原私網(wǎng)地址、 原私網(wǎng)端口信息,所述第二過程包括NAT單元截獲私網(wǎng)客戶端發(fā)起的數(shù)據(jù)連接請求報文, 在由ALG建立的會話表項中,查找與數(shù)據(jù)連接請求報文的源地址、源端口信息 及報文中的傳輸協(xié)議信息對應(yīng)的公網(wǎng)地址、公網(wǎng)端口信息,以該公網(wǎng)地址、公 網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的源地址、源端口信息,將數(shù)據(jù)連接請求報 文發(fā)送給公網(wǎng)服務(wù)器。所述NAT單元查找公網(wǎng)地址、公網(wǎng)端口信息進(jìn)一步包括NAT單元建立 包括數(shù)據(jù)連接請求報文的原源地址、原源端口信息,替換后的源地址、源端 口信息,目的地址、目的端口信息,傳輸協(xié)議信息的對應(yīng)關(guān)系的NAT表項,所述NAT單元將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端之后進(jìn)一步包括NAT單元截獲到公網(wǎng)服務(wù)器向私網(wǎng)客戶端發(fā)送的數(shù)據(jù)連接請求報文,在 NAT表項中,查找該數(shù)據(jù)連接請求報文的源地址、源端口信息、目的地址、目 的端口信息、傳輸協(xié)議信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端口信息,以該私網(wǎng)地址、 私網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的目的地址、目的端口信息,將數(shù)據(jù)連接 請求報文發(fā)送給私網(wǎng)客戶端。所述第一過程,所述NAT單元以公網(wǎng)端口替換控制連接請求報文的TCP 頭中的私網(wǎng)端口包括NAT單元獲取一個與所述公網(wǎng)地址對應(yīng)的公網(wǎng)端口信息,判斷該公網(wǎng)地址、 該公網(wǎng)端口信息以及控制連接請求報文中的目的地址、目的端口信息、傳輸協(xié)
議信息間的對應(yīng)關(guān)系是否包含在NAT表項中,若是,則重新獲取一個與所述公網(wǎng)地址對應(yīng)的么、網(wǎng)端口信息,返回執(zhí)4亍所述判斷動作;否則,以所獲取的,么、網(wǎng)端口信息替換控制連接請求報文的TCP頭中的私網(wǎng)端口信息。 一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的系統(tǒng),該系統(tǒng)包括NAT單元,截獲私網(wǎng)客戶端發(fā)給公網(wǎng)服務(wù)器的控制連接請求報文,以公網(wǎng) 地址和公網(wǎng)端口替換報文的IP頭中的私網(wǎng)地址和TCP頭中的私網(wǎng)端口 ,然后 將報文發(fā)送給ALG;ALG,接收NAT單元發(fā)來的控制連接請求報文,以報文的IP頭中的公網(wǎng) 地址替換報文的數(shù)據(jù)載荷中的私網(wǎng)地址,選擇一個公網(wǎng)端口,將該公網(wǎng)端口信 息放入控制連接請求報文中發(fā)送給公網(wǎng)服務(wù)器。該系統(tǒng)進(jìn)一步包括會話表項存儲單元,存儲控制連接請求報文的數(shù)據(jù)載荷中原有的私網(wǎng)地址、 私網(wǎng)端口信息,控制連接請求報文的數(shù)據(jù)載荷中的所述替換后的公網(wǎng)地址、所述選擇的公網(wǎng)端口信息,及控制連接請求報文中的傳輸協(xié)議信息間的對應(yīng)關(guān)系, 且,所述ALG選擇一個公網(wǎng)端口進(jìn)一步包括該公網(wǎng)端口滿足所述公網(wǎng)地址和該選擇的公網(wǎng)端口信息間的對應(yīng)關(guān)系未包含在會話表項存儲單元中。 所述NAT單元包括轉(zhuǎn)換模塊、數(shù)據(jù)報文收發(fā)模塊和NAT表項存儲模塊,其中轉(zhuǎn)換模塊,接收私網(wǎng)客戶端發(fā)來的控制連接請求報文,將報文的IP頭中的 私網(wǎng)地址轉(zhuǎn)換為公網(wǎng)地址,獲取一個與該公網(wǎng)地址對應(yīng)的公網(wǎng)端口號,且,所 述轉(zhuǎn)換后的公網(wǎng)地址、獲取的公網(wǎng)端口信息以及控制連接請求報文中的目的地 址、目的端口信息、傳輸協(xié)議信息間的對應(yīng)關(guān)系未包含在NAT表項存儲單元中, 以所獲取的公網(wǎng)端口信息替換控制連接請求報文的TCP頭中的私網(wǎng)端口信息, 并在NAT表項存儲模塊中建立控制連接請求報文的IP頭中原有的私網(wǎng)地址、 TCP頭中原有的私網(wǎng)端口信息,控制連接請求報文的目的IP地址、目的端口信 息,控制連接請求報文的IP頭中替換后的公網(wǎng)地址、TCP頭中替換后的公網(wǎng)端 口信息,以及控制連接請求報文中的傳輸協(xié)議信息間的對應(yīng)關(guān)系;
數(shù)據(jù)報文收發(fā)模塊,接收公網(wǎng)服務(wù)器發(fā)起的數(shù)據(jù)連接請求報文,在會話表 項存儲單元中查找與報文的目的地址、目的端口信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端 口信息,以該私網(wǎng)地址、私網(wǎng)端口信息替換該目的地址、目的端口信息,將該報文發(fā)送給私網(wǎng)客戶端;或者,接收私網(wǎng)客戶端發(fā)起的數(shù)據(jù)連接請求報文,在會話表項存儲單元中 查找與報文的源地址、源端口信息對應(yīng)的公網(wǎng)地址、公網(wǎng)端口信息,以該公 網(wǎng)地址、公網(wǎng)端口信息替換該源地址、源端口信息,將該報文發(fā)送給公網(wǎng)服 務(wù)器。與現(xiàn)有技術(shù)相比,本發(fā)明通過ALG收到NAT單元發(fā)來的控制連接請求 報文后,直接以該報文的IP頭中的公網(wǎng)地址替換報文的數(shù)據(jù)載荷中的私網(wǎng) 地址,并選擇一個公網(wǎng)端口 ,將該公網(wǎng)端口信息放入報文中發(fā)送給公網(wǎng)服務(wù) 器,使得ALG在為控制連接請求報文的數(shù)據(jù)載荷分配公網(wǎng)地址、公網(wǎng)端口 時,不需要依賴NAT單元重新分配公網(wǎng)地址和公網(wǎng)端口 ,降低了實現(xiàn)成本。另外,本發(fā)明通過在NAT單元為控制連接分配與7〉網(wǎng)地址對應(yīng)的 >網(wǎng) 端口時,只需考慮該公網(wǎng)地址、公網(wǎng)端口信息及公網(wǎng)服務(wù)器地址、端口信息、 傳輸協(xié)議信息是否已包含在NAT表項中,而不是必須選擇一個未使用的公 網(wǎng)端口,使得一個公網(wǎng)端口在同一時刻被重復(fù)使用,實現(xiàn)了控制連接和數(shù)據(jù) 連接的無限連接,提高了私網(wǎng)和公網(wǎng)建立數(shù)據(jù)連接的成功率。
圖1為現(xiàn)有的通過NAT實現(xiàn)私網(wǎng)和公網(wǎng)數(shù)據(jù)通信的流程圖;圖2為本發(fā)明實施例提供的通過NAT實現(xiàn)私網(wǎng)和公網(wǎng)數(shù)據(jù)通信的流程圖;圖3為本發(fā)明實施例提供的私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的系統(tǒng)組成圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一 步詳細(xì)的說明。圖2為本發(fā)明實施例提供的通過NAT實現(xiàn)私網(wǎng)和公網(wǎng)數(shù)據(jù)通信的流程 圖,如圖2所示,其具體步驟如下步驟201:私網(wǎng)的客戶端確定要連接到公網(wǎng)的服務(wù)器上,向公網(wǎng)服務(wù)器 發(fā)送控制連接請求報文如登錄請求報文,該報文的IP頭中的源IP地址為 私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址、目的IP地 址為公網(wǎng)服務(wù)器的IP地址,TCP頭中的源端口號為私網(wǎng)客戶端與公網(wǎng)服務(wù) 器進(jìn)行控制通信時所使用的私網(wǎng)端口號、目的端口號為公網(wǎng)服務(wù)器的端口 號,數(shù)據(jù)載荷中的IP地址、端口號為私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通 信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號。根據(jù)協(xié)議的不同,控制連接請求報文的數(shù)據(jù)載荷中可能攜帶端口號,也 可能不攜帶私網(wǎng)端口號;若不攜帶端口號,則協(xié)議會規(guī)定一個默認(rèn)的私網(wǎng)客 戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)端口號。步驟202: NAT單元截獲到該控制連接請求報文,根據(jù)預(yù)先配置的私公 網(wǎng)IP地址轉(zhuǎn)換規(guī)則,確定該報文的IP頭中的源IP地址,即私網(wǎng)客戶端與公 網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址對應(yīng)的公網(wǎng)IP地址,并獲取 一個與該/>網(wǎng)IP地址對應(yīng)的/A網(wǎng)端口號。步驟203: NAT單元判斷所確定的公網(wǎng)IP地址、公網(wǎng)端口號與寺艮文的 目的IP地址、目的端口號及傳輸協(xié)議號間的對應(yīng)關(guān)系是否包含在已有的 NAT表項中,若是,執(zhí)行步驟204;否則,執(zhí)行步驟205。步驟204: NAT重新獲取一個與該公網(wǎng)IP地址對應(yīng)的公網(wǎng)端口號,轉(zhuǎn) 至步驟203。步驟205: NAT單元以所確定的乂>網(wǎng)IP地址替換該才艮文的IP頭中的源 IP地址,以所確定的公網(wǎng)端口號替換IP頭中的源端口號,將該報文發(fā)送給 ALG,并在NAT表項中建立控制連接請求報文的IP頭中的原源IP地址 即私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址,TCP 頭中的原源端口號,替換后的IP頭中的源IP地址即私網(wǎng)客戶端與公網(wǎng)服 務(wù)器進(jìn)行控制通信時所使用的公網(wǎng)IP地址,替換后的TCP頭中的源端口號, IP頭中的目的IP地址,TCP頭中的目的端口號,報文中的傳輸協(xié)議號間的
對應(yīng)關(guān)系。步驟206: ALG收到該控制連接請求報文,以該報文的IP頭中的源IP 地址,即私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的公網(wǎng)IP地址替 換該報文的數(shù)據(jù)載荷中的私網(wǎng)IP地址。步驟207: ALG判斷控制連接請求報文的數(shù)據(jù)載荷中的公網(wǎng)地址、公網(wǎng) 端口號及控制連接請求報文中的傳輸協(xié)議號間的對應(yīng)關(guān)系是否包含在會話 表項中,若是,執(zhí)行步驟208;否則,執(zhí)行步驟209。若控制連接請求報文的數(shù)據(jù)載荷中不攜帶私網(wǎng)端口號,本步驟中的數(shù)據(jù) 載荷中的私網(wǎng)端口號指的是協(xié)議規(guī)定的默認(rèn)的私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn) 行數(shù)據(jù)通信時所使用的私網(wǎng)端口號。步驟208: ALG重新獲取一個與公網(wǎng)地址對應(yīng)的公網(wǎng)端口號,轉(zhuǎn)至步驟207。步驟209: ALG以獲取的公網(wǎng)端口號替換數(shù)據(jù)載荷中的私網(wǎng)端口號,將 控制連接請求報文發(fā)送給公網(wǎng)服務(wù)器,同時在已有的會話表項中建立控制 連接請求報文數(shù)據(jù)載荷中原有的私網(wǎng)IP地址、私網(wǎng)端口號,即私網(wǎng)客戶端 與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號,替換后 的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號,即私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn) 行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、公網(wǎng)端口號,以及控制連接請求報文 中的傳輸協(xié)議號間的對應(yīng)關(guān)系。以上步驟201~209為NAT單元和ALG將私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行 控制、數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號轉(zhuǎn)換為公網(wǎng)IP地址、 公網(wǎng)端口號的第一過程,以下步驟210-211給出公網(wǎng)服務(wù)器使用私網(wǎng)客戶端 的公網(wǎng)IP地址、公網(wǎng)端口號向私網(wǎng)客戶端發(fā)送數(shù)據(jù)連接請求報文的第二過 程。步驟210:公網(wǎng)服務(wù)器接收到該控制連接請求報文,向私網(wǎng)客戶端發(fā)送 數(shù)據(jù)連接請求報文,該數(shù)據(jù)連接請求報文中的目的IP地址、目的端口號為 控制連接請求報文的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號。
公網(wǎng)服務(wù)器接收到控制連接請求報文,也可根據(jù)控制連接請求報文的IP 頭中的源IP地址,以及TCP頭中的源端口號,向私網(wǎng)客戶端發(fā)送控制連4妄響應(yīng)報文如登錄響應(yīng)報文,該控制連接響應(yīng)報文的目的IP地址、目的端 口號分別為控制連接請求報文中的源IP地址、源端口號,NAT單元截獲到 該控制連接響應(yīng)報文后,會根據(jù)步驟205中在NAT表項中建立的對應(yīng)關(guān)系, 將該控制連接響應(yīng)報文中的目的IP地址、目的端口號分別替換為私網(wǎng)客戶 端與公網(wǎng)服務(wù)器進(jìn)行控制通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號,然后 將該控制連接響應(yīng)報文發(fā)送給私網(wǎng)客戶端。私網(wǎng)客戶端收到控制連接響應(yīng)報文后,可主動向公網(wǎng)服務(wù)器發(fā)起數(shù)據(jù)連接請求報文,該報文的源IP地址、源端口號即為步驟201中的控制連接請 求報文的數(shù)據(jù)載荷中的私網(wǎng)IP地址、私網(wǎng)端口號。NAT單元收到該數(shù)據(jù)連 接請求報文后,會在ALG建立的會話表項中,查找該報文的源IP地址、源 端口號、傳輸協(xié)議號對應(yīng)的公網(wǎng)IP地址、公網(wǎng)端口號,以該公網(wǎng)IP地址、 公網(wǎng)端口號替換該數(shù)據(jù)連接請求報文的源IP地址、源端口號,并建立包括 該報文的原有的源IP地址、原有的源端口號、替換后的源IP地址、替換后 的源端口號、目的IP地址、目的端口號、傳輸協(xié)議號間的對應(yīng)關(guān)系的NAT 表項,然后將該數(shù)據(jù)連接請求報文發(fā)送給公網(wǎng)服務(wù)器。此后,若NAT單元 收到公網(wǎng)服務(wù)器發(fā)來的數(shù)據(jù)連接請求報文,則可根據(jù)上述建立的NAT表項 中的所述對應(yīng)關(guān)系,將該數(shù)據(jù)連接請求報文中的目的IP地址、目的端口號 轉(zhuǎn)換為私網(wǎng)IP地址、私網(wǎng)端口號,從而將該報文發(fā)送給私網(wǎng)客戶端。步驟211: NAT單元截獲到該數(shù)據(jù)連接請求報文,在ALG建立的會話 表項中,查找到該報文的目的IP地址、目的端口號、傳輸協(xié)議號對應(yīng)的私 網(wǎng)IP地址、私網(wǎng)端口號,以查找到的私網(wǎng)IP地址、私網(wǎng)端口號替換該報文 的目的IP地址、目的端口號,將該報文發(fā)送給私網(wǎng)客戶端,同時在NAT表 項中建立報文的源IP地址、源端口號即公網(wǎng)服務(wù)器的IP地址、公網(wǎng)服 務(wù)器的端口號,替換前的目的IP地址、目的端口號,即私網(wǎng)客戶端與公網(wǎng) 服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、公網(wǎng)端口號,替換后的目的 IP地址、目的端口號,即私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的 私網(wǎng)IP地址、私網(wǎng)端口號,以及^艮文中的傳輸協(xié)i義號間的對應(yīng)關(guān)系。NAT單元和ALG位于同一物理設(shè)備上,因此,在步驟209中ALG建 立的會話表項會位于ALG和NAT單元都可以訪問的存儲空間中。以下步驟212 213為私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)送數(shù)據(jù)連接請求報文 的過程。步驟212:私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)送數(shù)據(jù)連接請求報文,該報文的 源IP地址、源端口號為私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的 私網(wǎng)IP地址、私網(wǎng)端口號,目的IP地址、目的端口號為公網(wǎng)服務(wù)器的IP 地址、公網(wǎng)服務(wù)器的端口號。步驟213: NAT單元截獲到該數(shù)據(jù)連接請求報文,在自身的NAT表項 中,查找與該報文的源IP地址、源端口號、目的IP地址、目的端口號、傳 輸協(xié)議號對應(yīng)的公網(wǎng)IP地址、公網(wǎng)端口號,以查找到的公網(wǎng)IP地址、公網(wǎng) 端口號替換該報文的源IP地址、源端口號,將該報文發(fā)送給公網(wǎng)服務(wù)器??梢钥闯觯静襟E中,在NAT表項中查找到公網(wǎng)IP地址、公網(wǎng)端口號 是在步驟211中在NAT表項中建立的對應(yīng)關(guān)系中查找到的。圖3為本發(fā)明實施例提供的私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的系統(tǒng)組成圖,如 圖3所示,其主要包括私網(wǎng)客戶端31、 NAT單元32、 ALG33、會話表項 存儲單元34和公網(wǎng)服務(wù)器35,且,NAT單元32包括控制報文收發(fā)模塊 321、轉(zhuǎn)換模塊322、數(shù)據(jù)報文收發(fā)模塊323和NAT表項存儲模塊324,具 體功能如下私網(wǎng)客戶端31:用于在確定要連接到公網(wǎng)服務(wù)器35上時,向公網(wǎng)服務(wù) 器35發(fā)送控制連接請求報文;向公網(wǎng)服務(wù)器35發(fā)送數(shù)據(jù)連接請求報文。NAT單元32中的控制報文收發(fā)模塊321、轉(zhuǎn)換模塊322、數(shù)據(jù)報文收 發(fā)模塊323和NAT表項存儲模塊324的功能分別如下控制報文收發(fā)模塊321:截獲到私網(wǎng)客戶端31發(fā)來的控制連接請求報 文,將該報文發(fā)送給轉(zhuǎn)換模塊322。
轉(zhuǎn)換模塊322:接收到控制報文接收模塊321發(fā)來的控制連接請求報文, 才艮據(jù)預(yù)先配置的私公網(wǎng)IP地址轉(zhuǎn)換少見則,確定該控制連接請求4艮文的IP頭 中的源IP地址,即私網(wǎng)客戶端31與公網(wǎng)服務(wù)器35進(jìn)行控制通信時所使用 的私網(wǎng)IP地址對應(yīng)的爿^網(wǎng)IP地址,并獲取一個與該7/^網(wǎng)IP地址對應(yīng)的^^網(wǎng) 端口號,判斷所確定的公網(wǎng)IP地址、公網(wǎng)端口號與控制連接請求報文的目 的IP地址、目的端口號及傳輸協(xié)議號是否包含在NAT表項存儲模塊324中 存儲的NAT表項中,若是,重新獲取一個與該公網(wǎng)IP地址對應(yīng)的公網(wǎng)端口 號;否則,以所確定的公網(wǎng)IP地址替換該控制連接請求報文的IP頭中的源 IP地址,以所確定的公網(wǎng)端口號替換IP頭中的源端口號,將該控制連接請 求報文發(fā)送給ALG33,并在NAT表項存儲模塊324中建立控制連接請求 報文的原源IP地址即私網(wǎng)客戶端31與公網(wǎng)服務(wù)器35進(jìn)行控制通信時所 使用的私網(wǎng)IP地址、原源端口號,替換后的源IP地址即私網(wǎng)客戶端31 與公網(wǎng)服務(wù)器35進(jìn)行控制通信時所使用的公網(wǎng)IP地址、替換后的源端口號, 控制連接請求報文中的目的IP地址、目的端口號、控制連接請求報文中的 傳輸協(xié)議號間的對應(yīng)關(guān)系。數(shù)據(jù)報文收發(fā)模塊323:接收公網(wǎng)服務(wù)器35發(fā)起的數(shù)據(jù)連接請求報文, 在會話表項存儲單元34中,查找到該數(shù)據(jù)連接請求報文的目的IP地址、目 的端口號、傳輸協(xié)議號對應(yīng)的私網(wǎng)IP地址、私網(wǎng)端口號,以查找到的私網(wǎng) IP地址、私網(wǎng)端口號替換該數(shù)據(jù)連接請求報文的目的IP地址、目的端口號, 將該數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端31,同時在NAT表項存儲模塊324 中建立數(shù)據(jù)連接請求報文的源IP地址、源端口號,即公網(wǎng)服務(wù)器的IP地 址、公網(wǎng)服務(wù)器的端口號,替換前的目的IP地址、目的端口號,即私網(wǎng)客 戶端31與公網(wǎng)服務(wù)器35進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、公網(wǎng)端口 號,替換后的目的IP地址、目的端口號,即私網(wǎng)客戶端31與公網(wǎng)服務(wù)器35 進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號,以及l(fā)t據(jù)連接請求報 文中的傳輸協(xié)議號間的對應(yīng)關(guān)系;接收私網(wǎng)客戶端31發(fā)來的數(shù)據(jù)連接請求 報文,在NAT表項存儲模塊324中,查找與該數(shù)據(jù)連接請求報文的源IP地
址、源端口號、目的IP地址、目的端口號、傳輸協(xié)議號對應(yīng)的公網(wǎng)IP地址、 公網(wǎng)端口號,以查找到的公網(wǎng)IP地址、公網(wǎng)端口號替換該數(shù)據(jù)連接請求報 文的源IP地址、源端口號,將該數(shù)據(jù)連接請求報文發(fā)送給公網(wǎng)服務(wù)器35?;蛘撸瑪?shù)據(jù)報文收發(fā)模塊323用于,接收私網(wǎng)客戶端31發(fā)起的數(shù)據(jù)連 接請求報文,在會話表項存儲單元34中,查找該數(shù)據(jù)連接請求報文的源IP 地址、源端口號、傳輸協(xié)議號對應(yīng)的々V網(wǎng)IP地址、公網(wǎng)端口號,以該/>網(wǎng) IP地址、公網(wǎng)端口號替換該數(shù)據(jù)連接請求報文的源IP地址、源端口號,并 在NAT表項存儲模塊324中建立該報文的原有的源IP地址、原有的源端 口號、替換后的源IP地址、替換后的源端口號、目的IP地址、目的端口號、 傳輸協(xié)議號間的對應(yīng)關(guān)系,然后將該數(shù)據(jù)連接請求報文發(fā)送給公網(wǎng)服務(wù)器 35。此后,接收到公網(wǎng)服務(wù)器35發(fā)來的數(shù)據(jù)連接請求報文,則在NAT表項 存儲模塊324中查找該報文的源IP地址、源端口號、目的IP地址、目的端 口號、傳輸協(xié)i義號對應(yīng)的私網(wǎng)IP地址、私網(wǎng)端口號,以該私網(wǎng)IP地址、私 網(wǎng)端口號替換該報文的目的IP地址、目的端口號,然后將該報文發(fā)送給私 網(wǎng)客戶端31。NAT表項存儲模塊324:存儲NAT表項,該表項包括私網(wǎng)客戶端31 與公網(wǎng)服務(wù)器35進(jìn)行控制通信或數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、端口號, 私網(wǎng)客戶端31與公網(wǎng)服務(wù)器35進(jìn)行控制通信或數(shù)據(jù)通信時所使用的公網(wǎng)IP 地址、端口號,公網(wǎng)服務(wù)器的IP地址、端口號,以及傳輸協(xié)議號。ALG33:接收NAT單元32發(fā)來的控制連接請求報文,以該控制連接請 求報文的IP頭中的源IP地址,即私網(wǎng)客戶端31與公網(wǎng)服務(wù)器35進(jìn)行控制 通信時所使用的公網(wǎng)IP地址替換該控制連接請求報文的數(shù)據(jù)載荷中的私網(wǎng) IP地址,選擇一個公網(wǎng)端口 ,使該公網(wǎng)端口滿足所述公網(wǎng)地址、該公網(wǎng)端 口及該控制連接請求報文中的傳輸協(xié)議號未包含在會話表項存儲單元34中 存儲的會話表項中,將該公網(wǎng)端口號放入數(shù)據(jù)載荷中,然后將該控制連接請 求報文發(fā)送給公網(wǎng)服務(wù)器35,同時建立在會話表項存儲單元34中建立控 制連接請求^艮文數(shù)據(jù)載荷中原有的私網(wǎng)IP地址、私網(wǎng)端口號,即私網(wǎng)客戶
端31與公網(wǎng)服務(wù)器35進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號, 替換后的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號,即私網(wǎng)客戶端31與公網(wǎng) 服務(wù)器35進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、公網(wǎng)端口號,以及控制連 接請求報文中的傳輸協(xié)議號間的對應(yīng)關(guān)系。會話表項存儲單元34:存儲會話表項,該表項包括私網(wǎng)客戶端31與 公網(wǎng)服務(wù)器35進(jìn)行數(shù)據(jù)通信時所使用的私網(wǎng)IP地址、私網(wǎng)端口號,私網(wǎng)客 戶端31與公網(wǎng)服務(wù)器35進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)IP地址、公網(wǎng)端口 號,以及傳輸協(xié)議號。公網(wǎng)服務(wù)器35:接收ALG33發(fā)來的控制連接請求報文,向私網(wǎng)客戶端 31發(fā)送數(shù)據(jù)連接請求報文,該數(shù)據(jù)連接請求報文中的目的IP地址、目的端 口號為控制連接請求報文的數(shù)據(jù)載荷中的公網(wǎng)IP地址、公網(wǎng)端口號。以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的方法,該方法包括私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)起控制連接請求的第一過程,和公網(wǎng)服務(wù)器與私網(wǎng)客戶端建立數(shù)據(jù)連接的第二過程;其特征在于,在所述第一過程中,網(wǎng)絡(luò)地址轉(zhuǎn)換NAT單元截獲私網(wǎng)客戶端發(fā)起的控制連接請求報文,以公網(wǎng)地址和公網(wǎng)端口替換該報文的IP頭中的私網(wǎng)地址和TCP頭中的私網(wǎng)端口,然后將該報文發(fā)送給應(yīng)用網(wǎng)關(guān)ALG,ALG以報文的IP頭中的所述替換得到的公網(wǎng)地址替換報文的數(shù)據(jù)載荷中的私網(wǎng)地址,并選擇一個公網(wǎng)端口,將該公網(wǎng)端口信息放入報文的數(shù)據(jù)載荷中發(fā)送給公網(wǎng)服務(wù)器。
2、 如權(quán)利要求l所述的方法,其特征在于,所述ALG將公網(wǎng)端口信息放 入報文的數(shù)據(jù)載荷中時進(jìn)一步包括ALG在已有的會話表項中建立所述公網(wǎng) 地址、所述選擇的數(shù)據(jù)載荷中的公網(wǎng)端口信息及控制連接請求報文中的傳輸協(xié) 議信息的對應(yīng)關(guān)系;且,所述第一過程,ALG選擇的公網(wǎng)端口滿足條件所述公網(wǎng)地址和該公 網(wǎng)端口未包含在會話表項中。
3、 如權(quán)利要求2所述的方法,其特征在于,所述會話表項進(jìn)一步包括控 制連接請求報文的數(shù)據(jù)載荷中原私網(wǎng)地址、原私網(wǎng)端口信息,所述第二過程包括NAT單元截獲公網(wǎng)服務(wù)器發(fā)起的數(shù)據(jù)連接請求報文, 在由ALG建立的會話表項中,查找與數(shù)據(jù)連接請求報文的目的地址、目的端口 信息及寺艮文中的傳輸協(xié)議信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端口信息,以該私網(wǎng)地址、 私網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的目的地址、目的端口信息,將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端。
4、 如權(quán)利要求3所述的方法,其特征在于,所述NAT單元查找私網(wǎng)地址、 私網(wǎng)端口信息進(jìn)一步包括NAT單元建立包括數(shù)據(jù)連接請求報文的源地址、 源端口信息,原目的地址、原目的端口信息,替換后的目的地址、目的端口信 息,傳輸協(xié)議信息的對應(yīng)關(guān)系的NAT表項,所述NAT單元將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端之后進(jìn)一步包括 NAT單元截荻到私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)送的數(shù)據(jù)連接請求報文,在 NAT表項中,查找該數(shù)據(jù)連接請求報文的源地址、源端口信息、目的地址、目 的端口信息、傳輸協(xié)議信息對應(yīng)的公網(wǎng)地址、公網(wǎng)端口信息,以該公網(wǎng)地址、 公網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的源地址、源端口信息,將數(shù)據(jù)連接請求 報文發(fā)送給公網(wǎng)服務(wù)器。
5、 如權(quán)利要求2所述的方法,其特征在于,所述會話表項進(jìn)一步包括控 制連接請求報文的數(shù)據(jù)載荷中原私網(wǎng)地址、原私網(wǎng)端口信息,所述第二過程包括NAT單元截獲私網(wǎng)客戶端發(fā)起的數(shù)據(jù)連接請求報文, 在由ALG建立的會話表項中,查找與數(shù)據(jù)連接請求報文的源地址、源端口信息 及報文中的傳輸協(xié)議信息對應(yīng)的公網(wǎng)地址、公網(wǎng)端口信息,以該公網(wǎng)地址、公 網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的源地址、源端口信息,將數(shù)據(jù)連接請求報 文發(fā)送給公網(wǎng)服務(wù)器。
6、 如權(quán)利要求5所述的方法,其特征在于,所述NAT單元查找公網(wǎng)地址、 公網(wǎng)端口信息進(jìn)一步包括NAT單元建立包括數(shù)據(jù)連接請求報文的原源地址、 原源端口信息,替換后的源地址、源端口信息,目的地址、目的端口信息,傳 輸協(xié)議信息的對應(yīng)關(guān)系的NAT表項,所述NAT單元將數(shù)據(jù)連接請求報文發(fā)送給私網(wǎng)客戶端之后進(jìn)一步包括 NAT單元截獲到公網(wǎng)服務(wù)器向私網(wǎng)客戶端發(fā)送的數(shù)據(jù)連接請求報文,在 NAT表項中,查找該數(shù)據(jù)連接請求報文的源地址、源端口信息、目的地址、目 的端口信息、傳輸協(xié)議信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端口信息,以該私網(wǎng)地址、 私網(wǎng)端口信息替換數(shù)據(jù)連接請求報文的目的地址、目的端口信息,將數(shù)據(jù)連接 請求報文發(fā)送給私網(wǎng)客戶端。
7、 如權(quán)利要求1所述的方法,其特征在于,所述第一過程,所述NAT單 元以公網(wǎng)端口替換控制連接請求報文的TCP頭中的私網(wǎng)端口包括NAT單元獲取一個與所述公網(wǎng)地址對應(yīng)的公網(wǎng)端口信息,判斷該公網(wǎng)地址、 該公網(wǎng)端口信息以及控制連接請求報文中的目的地址、目的端口信息、傳輸協(xié)議信息間的對應(yīng)關(guān)系是否包含在NAT表項中,若是,則重新獲取一個與所述公 網(wǎng)地址對應(yīng)的公網(wǎng)端口信息,返回執(zhí)行所述判斷動作;否則,以所獲取的公網(wǎng) 端口信息替換控制連接請求報文的TCP頭中的私網(wǎng)端口信息。
8、 一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的系統(tǒng),其特征在于,該系統(tǒng)包括 NAT單元,截獲私網(wǎng)客戶端發(fā)給公網(wǎng)服務(wù)器的控制連接請求報文,以公網(wǎng)地址和公網(wǎng)端口替換報文的IP頭中的私網(wǎng)地址和TCP頭中的私網(wǎng)端口 ,然后 將報文發(fā)送給ALG;ALG,接收NAT單元發(fā)來的控制連接請求報文,以報文的IP頭中的公網(wǎng) 地址替換^J:的數(shù)據(jù)載荷中的私網(wǎng)地址,選擇一個公網(wǎng)端口 ,將該公網(wǎng)端口信 息放入控制連接請求報文中發(fā)送給公網(wǎng)服務(wù)器。
9、 如權(quán)利要求8所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括 會話表項存儲單元,存儲控制連接請求報文的數(shù)據(jù)載荷中原有的私網(wǎng)地址、私網(wǎng)端口信息,控制連接請求報文的數(shù)據(jù)載荷中的所述替換后的公網(wǎng)地址、所 述選擇的公網(wǎng)端口信息,及控制連接請求報文中的傳輸協(xié)議信息間的對應(yīng)關(guān)系, 且,所述ALG選擇一個公網(wǎng)端口進(jìn)一步包括該公網(wǎng)端口滿足所述公網(wǎng) 地址和該選擇的公網(wǎng)端口信息間的對應(yīng)關(guān)系未包含在會話表項存儲單元中。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述NAT單元包括轉(zhuǎn)換模 塊、數(shù)據(jù)報文收發(fā)模塊和NAT表項存儲模塊,其中轉(zhuǎn)換模塊,接收私網(wǎng)客戶端發(fā)來的控制連接請求報文,將報文的IP頭中的 私網(wǎng)地址轉(zhuǎn)換為公網(wǎng)地址,獲取一個與該公網(wǎng)地址對應(yīng)的公網(wǎng)端口號,且,所 述轉(zhuǎn)換后的公網(wǎng)地址、獲取的公網(wǎng)端口信息以及控制連接請求報文中的目的地 址、目的端口信息、傳輸協(xié)議信息間的對應(yīng)關(guān)系未包含在NAT表項存儲單元中, 以所獲取的公網(wǎng)端口信息替換控制連接請求報文的TCP頭中的私網(wǎng)端口信息, 并在NAT表項存儲模塊中建立控制連接請求報文的IP頭中原有的私網(wǎng)地址、 TCP頭中原有的私網(wǎng)端口信息,控制連接請求報文的目的IP地址、目的端口信 息,控制連接請求報文的IP頭中替換后的公網(wǎng)地址、TCP頭中替換后的公網(wǎng)端 口信息,以及控制連接請求報文中的傳輸協(xié)議信息間的對應(yīng)關(guān)系; 數(shù)據(jù)報文收發(fā)模塊,接收公網(wǎng)服務(wù)器發(fā)起的數(shù)據(jù)連接請求報文,在會話表 項存儲單元中查找與報文的目的地址、目的端口信息對應(yīng)的私網(wǎng)地址、私網(wǎng)端 口信息,以該私網(wǎng)地址、私網(wǎng)端口信息替換該目的地址、目的端口信息,將該報文發(fā)送給私網(wǎng)客戶端;或者,接收私網(wǎng)客戶端發(fā)起的數(shù)據(jù)連接請求凈良文,在會話表項存儲單元中 查找與報文的源地址、源端口信息對應(yīng)的公網(wǎng)地址、公網(wǎng)端口信息,以該公網(wǎng) 地址、公網(wǎng)端口信息替換該源地址、源端口信息,將該報文發(fā)送給公網(wǎng)服務(wù)器。
全文摘要
本發(fā)明公開了一種私網(wǎng)和公網(wǎng)進(jìn)行數(shù)據(jù)通信的方法及系統(tǒng)。方法包括私網(wǎng)客戶端向公網(wǎng)服務(wù)器發(fā)起控制連接請求的第一過程,和公網(wǎng)服務(wù)器與私網(wǎng)客戶端建立數(shù)據(jù)連接的第二過程;在所述第一過程中,NAT單元截獲私網(wǎng)客戶端發(fā)給公網(wǎng)服務(wù)器的控制連接請求報文,以公網(wǎng)地址和公網(wǎng)端口替換報文的IP頭中的私網(wǎng)地址和TCP頭中的私網(wǎng)端口,將該報文發(fā)送給ALG,ALG以報文的IP頭中的所述公網(wǎng)地址替換報文的數(shù)據(jù)載荷中的私網(wǎng)地址,選擇一個公網(wǎng)端口,將公網(wǎng)端口信息放入報文中發(fā)送給公網(wǎng)服務(wù)器。本發(fā)明中ALG不需要依賴NAT單元重新分配私網(wǎng)客戶端與公網(wǎng)服務(wù)器進(jìn)行數(shù)據(jù)通信時所使用的公網(wǎng)地址和公網(wǎng)端口,降低了實現(xiàn)成本。
文檔編號H04L12/66GK101141420SQ200710121389
公開日2008年3月12日 申請日期2007年9月5日 優(yōu)先權(quán)日2007年9月5日
發(fā)明者溫衛(wèi)真 申請人:杭州華三通信技術(shù)有限公司