專利名稱:穿透nat設備的方法
技術領域:
本發(fā)明涉及互聯(lián)網(wǎng)通信技術領域,特別是涉及一種穿透NAT設備的方法。
背景技術:
目前,隨著互聯(lián)網(wǎng)用戶的不斷增多,互聯(lián)網(wǎng)所使用的互聯(lián)網(wǎng)協(xié)議第四版(IPv4)地 址資源已經(jīng)非常緊張了,根本不能夠滿足讓每一位用戶都擁有一個能夠直接訪問因特網(wǎng)的 IPv4地址,即外網(wǎng)IP地址。大量的企業(yè)單位也只擁有少量的外網(wǎng)IP地址,因此企業(yè)內部只 能使用大量不能直接訪問因特網(wǎng)的內網(wǎng)(即本地)IP地址來滿足企業(yè)內用戶的內部網(wǎng)絡通 信需求,為了讓企業(yè)內的用戶能夠使用互聯(lián)網(wǎng)資源,企業(yè)一般會采用NAT(Network Address Translation,網(wǎng)絡地址轉換)設備將企業(yè)內部的內網(wǎng)IP地址轉換成能夠直接訪問互聯(lián)網(wǎng) 的外網(wǎng)IP地址,使得企業(yè)內的一個或多個用戶可以使用一個外網(wǎng)IP地址來訪問互聯(lián)網(wǎng)。NAT設備的使用雖然能暫時緩解IPv4地址資源的危機,但是,由于NAT設備會限制 互聯(lián)網(wǎng)用戶對位于NAT設備后的企業(yè)內部用戶的訪問,所以其會影響互聯(lián)網(wǎng)的互通性。為 了能夠讓位于互聯(lián)網(wǎng)中的用戶能夠訪問位于NAT設備后的企業(yè)內部用戶,需要采用一些策 略來穿透NAT設備。根據(jù)互聯(lián)網(wǎng)工程任務組(IETF)制定的STUN (Simple Traversal ofUDP Through NATs,簡單UDP報文穿透NAT)協(xié)議的檢測流程,能夠檢測出的NAT設備類型如表 1所示
類型名稱穿透屬性、外網(wǎng)IP和端口映射屬性NATO端口不規(guī)則型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信 任IP的陌生端口發(fā)送數(shù)據(jù)時映射端口增量不規(guī)則。NATlSymmetric(對稱型)NAT只能被信任IP的信任端口穿透,每次向陌生IP或信 任IP的陌生端口發(fā)送數(shù)據(jù)時映射端口均增加1。NAT2Restricted-Cone(受限圓錐型) NAT能夠被信任IP的任何端口穿透,映射端口固定。Port-Restricted-Cone(端 口 受限圓 錐型)NAT只能被信任IP的信任端口穿透,映射端口固定。NAT3Full Cone(全圓錐型)NAT能夠被任何IP的任何端口穿透,映射端口固定。NAT4Open Net(開放網(wǎng)絡型)NAT能夠被任何IP的任何端口穿透,外網(wǎng)節(jié)點,其內網(wǎng) IP,端口與外網(wǎng)IP、端口一致,不需要映射。
5
表 1由于NATO映射端口增加規(guī)律不規(guī)則,只可能讓它主動連接NAT3或NAT4,不可能向 它進行穿透。NATl每次向陌生IP或信任IP的陌生端口發(fā)送數(shù)據(jù),其映射端口都增加1,做 到NATl與NAT2甚至NATl與NATl之間的穿透都是非常困難的。NAT2是映射端口固定的 NAT,業(yè)界很多P2P(peer-to-peer,端到端)軟件利用互相打洞的方法做到了如表2所示的 各種NAT類型之間的穿透。
權利要求
一種穿透網(wǎng)絡地址轉換NAT設備的方法,其特征在于,該方法包括步驟20、檢測NAT節(jié)點A的設備類型;步驟30、根據(jù)NAT節(jié)點A的設備類型進行NAT設備穿透。
2.如權利要求1所述的方法,其特征在于,步驟20之前,該方法進一步包括 步驟10、對NAT節(jié)點A的指定端口進行通用即插即用UPNP操作。
3.如權利要求1所述的方法,其特征在于,步驟20所述的設備類型具體包括端口不 規(guī)則型NAT、對稱1型NAT、對稱2型NAT、受限圓錐型NAT、端口受限圓錐型NAT、全圓錐型 NAT和開放網(wǎng)絡型NAT ;其中,所述端口不規(guī)則型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌 生端口發(fā)送數(shù)據(jù)時映射端口增量不規(guī)則;所述對稱1型NAT只能被信任IP的信任端口穿透,每次向陌生IP或信任IP的陌生端 口發(fā)送數(shù)據(jù)時映射端口增加1 ;所述對稱2型NAT只能被信任IP的信任端口穿透,每次向陌生IP發(fā)送數(shù)據(jù)時映射端 口增加1 ;所述受限圓錐型NAT能夠被信任IP的任何端口穿透,映射端口固定; 所述端口受限圓錐型NAT只能被信任IP的信任端口穿透,映射端口固定; 所述全圓錐型NAT能夠被任何IP的任何端口穿透,映射端口固定; 所述開放網(wǎng)絡型NAT能夠被任何IP的任何端口穿透,其內網(wǎng)IP和端口與外網(wǎng)IP和端口 一致。
4.如權利要求3所述的方法,其特征在于,當NAT節(jié)點A為對稱1型NAT或對稱2型 NAT, NAT節(jié)點B為受限圓錐型NAT或端口受限圓錐型NAT,且NAT節(jié)點A已知NAT節(jié)點B的 NAT信息時,所述步驟30具體包括步驟SlOl =NAT節(jié)點A獲取本地最新外網(wǎng)端口,并向其連接的所有節(jié)點發(fā)送尋找NAT節(jié) 點B的指令,該指令攜帶NAT節(jié)點A的NAT信息;步驟S102 接收到所述指令的握手節(jié)點C,確定自身與NAT節(jié)點B相連接后,向NAT節(jié) 點B發(fā)送一個通知指令,該指令攜帶NAT節(jié)點A的NAT信息;步驟S103 收到所述通知指令后,NAT節(jié)點B向NAT節(jié)點A打洞,且打洞的目標端口以 NAT節(jié)點A的最新外網(wǎng)端口為基準連續(xù)增長,同時,NAT節(jié)點A根據(jù)NAT節(jié)點B的NAT信息 向所述NAT節(jié)點B打洞,直到NAT節(jié)點A或NAT節(jié)點B中任意一方接收到對方的打洞數(shù)據(jù), 則實現(xiàn)了 NAT節(jié)點A到NAT節(jié)點B的穿透。
5.如權利要求3所述的方法,其特征在于,當NAT節(jié)點A為對稱2型NAT,NAT節(jié)點B 為對稱1型NAT或對稱2型NAT,且NAT節(jié)點A已知NAT節(jié)點B的NAT信息時,所述步驟30 具體包括步驟S201 =NAT節(jié)點A向其連接的所有節(jié)點發(fā)送尋找NAT節(jié)點B的指令,該指令攜帶 NAT節(jié)點A的NAT信息;步驟S202 接收到所述指令的握手節(jié)點C,確定自身與NAT節(jié)點B相連接后,向NAT節(jié) 點B發(fā)送一個通知指令,該指令攜帶NAT節(jié)點A的NAT信息,并同時向NAT節(jié)點A發(fā)送確認 指令,將找到NAT節(jié)點B的消息通知NAT節(jié)點A ;步驟S203 收到所述通知指令后,NAT節(jié)點B獲取本地最新外網(wǎng)端口,并通過握手節(jié)點C將所述NAT節(jié)點B的最新外網(wǎng)端口發(fā)送給NAT節(jié)點A ;同時,收到所述確認指令后,NAT節(jié) 點A獲取本地最新外網(wǎng)端口,并通過握手節(jié)點C將所述NAT節(jié)點A的最新外網(wǎng)端口發(fā)送給 NAT節(jié)點B ;步驟S204 =NAT節(jié)點A和NAT節(jié)點B分別接收到對方的最新外網(wǎng)端口后同時向對方打 洞,且打洞的目標端口以對方的最新外網(wǎng)端口為基準連續(xù)增長;步驟S205 =NAT節(jié)點A或NAT節(jié)點B接收到對方發(fā)送來的打洞數(shù)據(jù),則實現(xiàn)了 NAT節(jié)點 A到NAT節(jié)點B的穿透。
6.如權利要求3所述的方法,其特征在于,當NAT節(jié)點A和NAT節(jié)點B均為對稱1型 NAT,且NAT節(jié)點A已知NAT節(jié)點B的NAT信息時,所述步驟30具體包括步驟S301 =NAT節(jié)點A向其連接的所有節(jié)點發(fā)送尋找NAT節(jié)點B的指令,該指令攜帶 NAT節(jié)點A的NAT信息;步驟S302 接收到所述指令的握手節(jié)點C,確定自身與NAT節(jié)點B相連接后,向NAT節(jié) 點B發(fā)送一個通知指令,該指令攜帶NAT節(jié)點A的NAT信息,并同時向NAT節(jié)點A發(fā)送確認 指令,將找到NAT節(jié)點B的消息通知NAT節(jié)點A ;步驟S303 收到所述通知指令后,NAT節(jié)點B獲取本地最新外網(wǎng)端口,并通過握手節(jié)點 C將所述NAT節(jié)點B的最新外網(wǎng)端口發(fā)送給NAT節(jié)點A ;同時,收到所述確認指令后,NAT節(jié) 點A獲取本地最新外網(wǎng)端口,并通過握手節(jié)點C將所述NAT節(jié)點A的最新外網(wǎng)端口發(fā)送給 NAT節(jié)點B ;步驟S304 =NAT節(jié)點A和NAT節(jié)點B分別接收到對方的最新外網(wǎng)端口后同時向對方打 洞,且打洞的目標端口以對方的最新外網(wǎng)端口為基準,由外界因素導致的最新外網(wǎng)端口增 加和累計到本次打洞導致的最新外網(wǎng)端口增加而決定;步驟S305 =NAT節(jié)點A或NAT節(jié)點B接收到對方發(fā)送來的打洞數(shù)據(jù),則實現(xiàn)了 NAT節(jié)點 A到NAT節(jié)點B的穿透。
7.如權利要求6所述的方法,其特征在于,步驟S304之后,如果NAT節(jié)點A或NAT節(jié) 點B沒有接收到對方的打洞數(shù)據(jù),則所述方法進一步包括NAT節(jié)點A通過握手節(jié)點C通知 NAT節(jié)點B獲取所述NAT節(jié)點B的最新外網(wǎng)端口并發(fā)送給所述NAT節(jié)點A,同時,NAT節(jié)點B 通過握手節(jié)點C通知NAT節(jié)點A獲取所述NAT節(jié)點A的最新外網(wǎng)端口并發(fā)送給所述NAT節(jié) 點B,并再重復執(zhí)行一次步驟S304。
8.如權利要求4所述的方法,其特征在于,步驟S103中所述NAT節(jié)點B向NAT節(jié)點A 打洞包括所述NAT節(jié)點B依次向所述NAT節(jié)點A中,從NAT節(jié)點A的最新外網(wǎng)端口開始, 連續(xù)增長的端口打洞;所述NAT節(jié)點A向NAT節(jié)點B打洞具體包括;所述NAT節(jié)點A向所述 NAT節(jié)點B的固定外網(wǎng)端口打洞。
9.如權利要求5所述的方法,其特征在于,步驟S204中所述NAT節(jié)點A和NAT節(jié)點B 同時向對方打洞包括所述NAT節(jié)點A依次向所述NAT節(jié)點B中,從NAT節(jié)點B的最新外網(wǎng)端口開始,連續(xù)增 長的端口打洞;同時,所述NAT節(jié)點B依次向所述NAT節(jié)點A中,從NAT節(jié)點A的最新外網(wǎng)端口開始,連續(xù)增 長的端口打洞。
10.如權利要求4-9中任一項所述的方法,其特征在于,所述握手節(jié)點C為分別與NAT節(jié)點A和NAT節(jié)點B已經(jīng)實現(xiàn)穿透的節(jié)點;所述NAT信息包括NAT類型、本地IP和端口、 外網(wǎng)IP和端口。
全文摘要
本發(fā)明公開了一種穿透網(wǎng)絡地址轉換NAT設備的方法,該方法包括步驟20、檢測NAT節(jié)點A的設備類型;步驟30、根據(jù)NAT節(jié)點A的設備類型進行NAT設備穿透。步驟20之前,該方法進一步包括步驟10、對NAT節(jié)點A的指定端口進行通用即插即用UPNP操作。本發(fā)明利用UPNP降低了穿透成本,通過劃分更細致全面的NAT類型,根據(jù)各個NAT類型的映射特性和穿透特性采用適當?shù)拇┩阜椒?,從而能夠實現(xiàn)NAT設備的穿透,滿足企業(yè)內部用戶的實時網(wǎng)絡應用需求,提高用戶的網(wǎng)絡體驗。
文檔編號H04L29/12GK101977249SQ20101052766
公開日2011年2月16日 申請日期2010年10月27日 優(yōu)先權日2010年10月27日
發(fā)明者邵思瑤 申請人:北京易視騰科技有限公司