專利名稱:保持網(wǎng)絡(luò)nat綁定的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種移動終端數(shù)據(jù)通信方法,特別涉及一種通過保持網(wǎng)絡(luò) NAT (Network Address Translation)綁定來維持移動終端與IP網(wǎng)絡(luò)如互聯(lián)網(wǎng)的計算設(shè)備的數(shù)據(jù)鏈路的方法。
背景技術(shù):
由于公共IP地址缺少,并且由于網(wǎng)絡(luò)安全的原因,NAT技術(shù)被大量使用。NAT能讓很多臺計算機共享同一公網(wǎng)IP地址,無障礙的訪問網(wǎng)絡(luò)。為了能讓處于私有網(wǎng)絡(luò)的計算機訪問外網(wǎng),NAT需要將私網(wǎng)的IP地址和端口號映射到公網(wǎng)的一個IP和端口,而且這個映射將保留一段時間。NAT建立映射時將設(shè)置定時器。如果在定時器超時時,沒有任何數(shù)據(jù)活動,這個映射綁定關(guān)系將被取消。如果在定時器超時前,有數(shù)據(jù)包的傳遞,定時器將被重新刷新。一旦綁定關(guān)系取消,從公網(wǎng)側(cè),數(shù)據(jù)包將無法發(fā)往到私網(wǎng)內(nèi)的計算機。因為NAT的特性,對于需要保持實時數(shù)據(jù)鏈接的數(shù)據(jù)應(yīng)用(如IP電話),處于私網(wǎng)下的客戶端軟件需要定時的與處于公網(wǎng)的服務(wù)器交換數(shù)據(jù)包,以刷新NAT的綁定。否則,服務(wù)器無法將IP包發(fā)往客戶端,而引起服務(wù)中斷。在無線通訊環(huán)境下,定時發(fā)送數(shù)據(jù)包到公網(wǎng)的服務(wù)器需要消耗相當(dāng)?shù)膸捄碗姵亍R虼吮緦@岢鲆环N新的方式來保持NAT的映射,而最大程度上減少移動終端的帶寬和電池的消耗。圖1顯示了現(xiàn)有的移動終端上網(wǎng)的系統(tǒng)圖,移動終端10通過各類無線網(wǎng)絡(luò)11與互聯(lián)網(wǎng)(包括NATO 12、INET網(wǎng)13、NATN 14、INET網(wǎng)15及計算設(shè)備16)鏈接,然后通過互聯(lián)網(wǎng)與處于公網(wǎng)下的計算設(shè)備進行IP數(shù)據(jù)交換。在移動終端10與公網(wǎng)下的計算設(shè)備16 之間會存在一個或多個NAT設(shè)備,比如NAT 0和NAT N。處于私網(wǎng)下的移動終端10如果要與公網(wǎng)下的計算設(shè)備進行IP數(shù)據(jù)包(分組)的交換,移動終端10必須主動發(fā)起鏈接請求,建立起IP鏈路。NAT設(shè)備將建立起IP地址和端口的映射關(guān)系。為簡單起見,下面將IP地址和端口號統(tǒng)一稱為地址。假設(shè)移動終端的私有地址是IP-p、Port-p, NAT 0映射出的地址為IP-0、Port-0, NAT N映射的地址為IP_n、 Port-n.從計算設(shè)備來看,移動終端的IP地址為IP-n、Port-n ;從NAT N來看,移動終端的地址為IP-0、Port-O ;從NAT 0來看,移動終端的地址為IP-p、Port-p。當(dāng) NAT 0 建立起 IP-p,Port-p 與 IP_0,Port-p 的映射后,NAT N 建立起 ΙΡ_0, Port-O與IP-n,Port-n的映射關(guān)系后,移動終端與計算設(shè)備之間可以自由的交換在某一特定端口號的IP包或數(shù)據(jù)包。但是為了減小資源的消耗,每個NAT設(shè)備對于這個映射關(guān)系是做了時間限制的。如果在指定的時間(假設(shè)為TO)內(nèi)沒有任何數(shù)據(jù)活動,這個映射關(guān)系將被取消。這個TO的設(shè)置沒有國際標(biāo)準(zhǔn),隨廠商而異。一般來說,對于UDP包,TO在60秒左右,對于TCP包,TO稍長一點。一旦IP鏈路上任何一個NAT設(shè)備將IP地址映射解除,計算設(shè)備將無法主動把IP包發(fā)到移動終端,從此數(shù)據(jù)交換將被終止。在NAT存在的情況下,移動終端10與計算設(shè)備16之間要不停的有數(shù)據(jù)包的交換,這對于VoIP,IM等實時數(shù)據(jù)通訊而言十分重要。如果是使用UDP/IP來傳輸,兩者之間需要 60秒內(nèi)交換一次IP包;如果使用TCP/IP來傳輸,兩者之間交換包的時間間隔可以稍長一點,但計算設(shè)備使用TCP來傳輸,將耗費很大的資源。TTL (Time to Live,生存時間)在IP頭(或數(shù)據(jù)包頭)中,存在TTL這個域。當(dāng)路由器或NAT接收到一個IP包,轉(zhuǎn)發(fā)時,總將TTL減一。如果網(wǎng)絡(luò)設(shè)備收到一個IP包,TTL 值為0,該設(shè)備將會把該IP包扔棄,不繼續(xù)轉(zhuǎn)發(fā)。按照現(xiàn)有已知的方法,如果要保持NAT映射,移動終端與計算設(shè)備之間需要不斷的交換數(shù)據(jù)包。對于PC而言,這不是問題。但對于移動終端而言,將消耗移動終端寶貴的電池、帶寬以及寶貴的空中無線資源。因為每次接收或發(fā)送IP包,移動終端都需要打開射頻模塊,激活天線,申請空中無線資源。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種保持網(wǎng)絡(luò)NAT綁定的方法,通過保持網(wǎng)絡(luò)NAT綁定來維持移動終端與IP網(wǎng)絡(luò)如互聯(lián)網(wǎng)的計算設(shè)備的數(shù)據(jù)鏈路。本發(fā)明所稱的保持網(wǎng)絡(luò)NAT綁定是指通過由互聯(lián)網(wǎng)方的計算設(shè)備發(fā)送心跳包來綁定NAT的地址映射。本發(fā)明的保持網(wǎng)絡(luò)NAT綁定的方法包括以下步驟移動終端通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)、連接無線網(wǎng)的邊緣NAT路由器、一個或多個其他路由器至計算設(shè)備的鏈路;所述邊緣NAT路由器把來自移動終端的數(shù)據(jù)包源地址映射成邊緣NAT路由器的源地址以及把來自計算設(shè)備的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段內(nèi)保持所述兩個地址映射;所述計算設(shè)備按照其時段小于所述第一時間段的時間間隔向所述計算設(shè)備發(fā)送一個心跳包,使所述心跳包中的生存時間TTL設(shè)定值到達所述邊緣NAT路由器時遞減為0, 以便利用計算設(shè)備發(fā)送的心跳包保持邊緣NAT路由器的地址映射,從而維持從所述移動終端至計算設(shè)備的所述鏈路;其中,所述心跳包的生存時間TTL設(shè)定值為來自移動終端的數(shù)據(jù)包到達所述計算設(shè)備所經(jīng)過的包括邊緣NAT路由器在內(nèi)的所有路由器的跳數(shù)(Hops)。其中所述計算設(shè)備通過以下步驟設(shè)置心跳包生存時間TTL設(shè)定值當(dāng)收到來自移動終端的移動終端數(shù)據(jù)包時,解析出其當(dāng)前TTL值Vl ;將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到跳數(shù);然后,把所述跳數(shù)設(shè)為心跳包的TTL設(shè)定值。其中當(dāng)所述心跳包經(jīng)過所述鏈路上的每個路由器轉(zhuǎn)發(fā)時,該路由器將心跳包中的生存時間TTL設(shè)定值遞減一,以致數(shù)據(jù)包到達所述邊緣NAT路由器時,所述心跳包因為其生存時間TTL設(shè)定值被遞減為0而被丟棄,使得所述心跳包僅起到保持所述邊緣NAT路由器地址映射的(數(shù)據(jù)活動)作用,但數(shù)據(jù)包不會下發(fā)到移動終端,而減少對移動終端電池和空中資源的消耗。其中所述計算設(shè)備通過以下步驟設(shè)置心跳包生存時間TTL的設(shè)定值當(dāng)收到來自移動終端的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值Vl ;
將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到跳數(shù)V ;把跳數(shù)V+調(diào)整值D設(shè)為心跳包的TTL初始值ttl ;然后通過與移動終端進行發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值ttl,直至獲得移動終端1不能響應(yīng)的TTL值,以作為心跳包的TTL設(shè)定值。其中所述發(fā)送-響應(yīng)通信包括計算設(shè)備向移動終端發(fā)送包含TTL初始值(ttl) 的心跳包,移動終端響應(yīng)后回送響應(yīng)包;計算設(shè)備收到移動終端回送的響應(yīng)包后,將心跳包的TTL初始值減一;然后計算設(shè)備把TTL初始值減一的心跳包發(fā)送給移動終端,移動終端響應(yīng)后再回送響應(yīng)包;此后,重復(fù)計算設(shè)備將TTL減一后發(fā)送心跳包及移動終端響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備把TTL初始值遞減到移動終端不能響應(yīng)回送響應(yīng)包時的數(shù)值。其中所述移動終端設(shè)有響應(yīng)并回送響應(yīng)包的響應(yīng)模塊。其中所述移動終端通過光盤或網(wǎng)絡(luò)下載方式安裝所述響應(yīng)模塊。根據(jù)本發(fā)明的第一實例,本發(fā)明的保持網(wǎng)絡(luò)NAT綁定的方法可以包括以下步驟移動終端通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)、連接無線網(wǎng)的邊緣NAT路由器、一個或多個其他路由器至計算設(shè)備的鏈路;所述邊緣NAT路由器把來自移動終端的數(shù)據(jù)包源地址映射成本機源地址以及把來自計算設(shè)備的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段內(nèi)保持所述兩個地址映射;所述計算設(shè)備按照其時段小于所述第一時間段的時間間隔向所述計算設(shè)備發(fā)送一個心跳包,使所述心跳包中的生存時間TTL設(shè)定值到達所述邊緣NAT路由器時遞減為0, 以便利用計算設(shè)備發(fā)送的心跳包保持邊緣NAT路由器的地址映射,從而維持從所述移動終端至計算設(shè)備的所述鏈路,但心跳包又不會被下發(fā)到移動終端;其中所述計算設(shè)備按以下步驟設(shè)置所述生存時間TTL設(shè)定值當(dāng)收到來自移動終端的移動終端數(shù)據(jù)包時,解析出其當(dāng)前TTL值Vl ;將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到跳數(shù);然后,把所述跳數(shù)設(shè)為心跳包的TTL設(shè)定值。根據(jù)本發(fā)明的第一實例,本發(fā)明的保持網(wǎng)絡(luò)NAT綁定的方法可以包括以下步驟 移動終端通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)、連接無線網(wǎng)的邊緣NAT路由器、一個或多個其他路由器達到計算設(shè)備的鏈路;所述邊緣NAT路由器把來自移動終端的數(shù)據(jù)包源地址映射成本機源地址以及把來自計算設(shè)備的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段內(nèi)保持所述兩個地址映射;所述計算設(shè)備按照其時段小于所述第一時間段的時間間隔向所述計算設(shè)備發(fā)送一個心跳包,使所述心跳包中的生存時間TTL設(shè)定值到達所述邊緣NAT路由器時遞減為0,以便利用計算設(shè)備發(fā)送的心跳包保持邊緣NAT路由器的地址映射,從而維持從所述移動終端至計算設(shè)備的所述鏈路;其中所述計算設(shè)備按以下步驟設(shè)置所述生存時間TTL設(shè)定值當(dāng)收到來自移動終端的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值Vl ;將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到跳數(shù)V ;把跳數(shù)V+調(diào)整值D設(shè)為心跳包的TTL初始值ttl ;然后通過與移動終端進行發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值ttl,直至獲得移動終端不能響應(yīng)時的TTL值,以作為心跳包TTL的設(shè)定值。
其中所述發(fā)送-響應(yīng)通信包括計算設(shè)備向移動終端發(fā)送包含TTL初始值ttl的心跳包,移動終端響應(yīng)后回送響應(yīng)包;計算設(shè)備收到移動終端回送的響應(yīng)包后,將心跳包的 TTL初始值減一;然后計算設(shè)備把TTL初始值減一的心跳包發(fā)送給移動終端,移動終端響應(yīng)后再回送響應(yīng)包;此后,重復(fù)計算設(shè)備將TTL減一后發(fā)送心跳包及移動終端響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備把TTL初始值遞減到移動終端不能響應(yīng)回送響應(yīng)包時的數(shù)值。在上述方法中,所述移動終端按照其時段大于所述第一時段的間隔向所述計算設(shè)備發(fā)送數(shù)據(jù)包,以便計算設(shè)備利用該數(shù)據(jù)包獲得適應(yīng)鏈路中斷、路由改變等意外事件的TTL 值。采用本發(fā)明的上述方法可以保持NAT地址映射,從而解決了現(xiàn)有技術(shù)中存在的移動終端需要頻繁收發(fā)IP包的技術(shù)問題。下面結(jié)合附圖對本發(fā)明進行詳細說明。
圖1是現(xiàn)有的移動終端上網(wǎng)的系統(tǒng)示意圖;圖2是顯示了實現(xiàn)本發(fā)明的保持網(wǎng)絡(luò)NAT綁定方法的系統(tǒng)示意圖;圖3是顯示了實現(xiàn)本發(fā)明的保持網(wǎng)絡(luò)NAT綁定方法的第一實施例的示意圖;圖4是顯示了實現(xiàn)本發(fā)明的保持網(wǎng)絡(luò)NAT綁定方法的第二實施例的示意圖。
具體實施例方式本發(fā)明的原理是,在移動終端與計算設(shè)備之間的IP鏈路建立后,計算設(shè)備每隔一定的時間(Tp)發(fā)送特定的IP包(以下稱之為“心跳包”)給移動終端,這個Tp小于移動終端與計算設(shè)備之間所有NAT設(shè)備的Tl。而且這個特定的心跳包里的TTL值設(shè)為一特殊量, 為移動終端與計算設(shè)備之間的跳數(shù)(hops)。這樣當(dāng)NAT 0收到計算設(shè)備的這個特殊的心跳時,TTL值已經(jīng)為1,減一后,TTL值為零,因此NAT 0將會扔棄這個心跳包,而不會把這個心跳包發(fā)送到移動終端,從而保證移動終端的無線資源沒有被激活,而節(jié)省了移動終端的電池、帶寬以及空中無線資源。但是因為在NAT的Tl定時器超時之前,NAT設(shè)備收到來自計算設(shè)備發(fā)往移動終端的心跳包,連接無線網(wǎng)的NAT以及鏈路上所有的其他NAT設(shè)備將仍然保留移動終端的IP映射,因此計算設(shè)備仍然能夠?qū)⒄5腎P包(數(shù)據(jù)包)發(fā)往移動終端。本發(fā)明的心跳包也可以稱作NAT綁定包,除了 TTL設(shè)定值由計算設(shè)備根據(jù)跳數(shù)設(shè)定外,其格式遵從移動終端或移動終端與網(wǎng)絡(luò)計算設(shè)備之間傳輸?shù)臄?shù)據(jù)包格式。此外,在心跳包或NAT綁定包還可以設(shè)置一個表示用于綁定PAT的綁定標(biāo)識符。本發(fā)明對移動終端與計算設(shè)備之間正常交換的IP包的TTL值不做任何特殊處理。本發(fā)明可以通過以下方法獲取跳數(shù)計算設(shè)備發(fā)送心跳包時,需要知道計算設(shè)備與移動終端之間的跳數(shù),包括以下步驟1、當(dāng)移動終端發(fā)IP包到計算設(shè)備時,應(yīng)用數(shù)據(jù)里面(非IP、或TCP、UDP頭)包含一個新的數(shù)據(jù)域,TTL值V0。也就是移動終端發(fā)出的這個IP包里TTL的數(shù)值(如64)。2、當(dāng)計算設(shè)備收到移動終端的IP包后,檢測IP頭,從中找出其當(dāng)前TTL數(shù)值VI。3、移動終端與計算設(shè)備之間的跳數(shù)為V0-V1.計算設(shè)備的心跳包的TTL值將設(shè)為ttl = VO-Vlo因為各大NAT設(shè)備廠商沒有統(tǒng)一的標(biāo)準(zhǔn),心跳包的TTL值設(shè)為VO-Vl不完全可靠。 因而可以還可以采取以下步驟獲得跳數(shù)1、當(dāng)計算設(shè)備第一次發(fā)包到計算設(shè)備時(如注冊時),計算設(shè)備將心跳包的TTL值初始化為ttl = VO-Vl+D, D可以設(shè)為5左右,比如2 7。2、移動終端收到計算設(shè)備的心跳包后,將回送一個心跳包,TTL為正常值(如64)。3、如果計算設(shè)備收到來自移動終端的心跳包,將把下一個心跳包的ttl值減一。4、通過幾個來回,計算設(shè)備在心跳包里將設(shè)置精確的ttl值,以保證這個心跳包到達NAT 0時,TTL值已經(jīng)變?yōu)?,從而被NAT 0扔棄。對于VoIP,IM或其他實時消息服務(wù),在NAT存在的情況下,移動終端需要在60秒內(nèi)主動發(fā)一 IP包到計算設(shè)備以維持NAT設(shè)備里的映射關(guān)系。這相當(dāng)于每隔60秒發(fā)起一次主動呼叫,空中資源以及手機的電池將被大大的消耗。利用本發(fā)明的方法,移動終端或移動設(shè)備將無需每隔一定時間發(fā)送IP包來保持 NAT設(shè)備里的映射關(guān)系。但是因為無線數(shù)據(jù)鏈路的復(fù)雜性,移動終端的的無線連接完全可以被中斷,而計算設(shè)備無法探測到,因此移動終端仍然需要每隔一定的時間(Tl)發(fā)送IP包給計算設(shè)備,以刷新IP鏈路。這個時間間隔Tl遠遠大于計算設(shè)備的心跳包的時間間隔Tp.對于UDP/IP連接,Tp為20秒量級,但Tl可以是20分鐘量級。具體數(shù)字由實施者自行決定。圖2顯示了解釋本發(fā)明方法的系統(tǒng),下面結(jié)合圖2對本發(fā)明的方法進行詳細說明。在圖2中,移動終端1可以是GPRS手機、TD-SCDMA手機、WCDMA手機、CDMA2000手機,也可以是WIFI手機或WiWAX手機。無線網(wǎng)2可以是適應(yīng)上述手機的無線網(wǎng)絡(luò)。計算設(shè)備5可以使IP網(wǎng)絡(luò)中的服務(wù)器或計算機,移動終端1通過向計算設(shè)備5主動發(fā)起連接請求,建立從移動終端至計算設(shè)備5的數(shù)據(jù)鏈路。邊緣NAT路由器3是連接無線網(wǎng)2的帶有 NAT程序或模塊的路由器,該路由器可以將移動終端1發(fā)送給計算設(shè)備5的數(shù)據(jù)包的源地址轉(zhuǎn)換成它自己的源地址,并且把來自計算設(shè)備5的數(shù)據(jù)包的目的地址轉(zhuǎn)換成移動終端的目的地址,例如把來自移動終端1的數(shù)據(jù)包(分組)的源IP地址TCP源端口 192. 168. 0. 3 30000映射成它自己的源IP地址TCP源端口 172. 28. 1. 5 =40001,以及把來自計算設(shè)備5 的數(shù)據(jù)包的172. 28. 1. 5 40001目的IP地址TCP目的端口映射成移動終端1的目的IP地址=TCP目的端口 192. 168. 0. 3 :30000,并在一定時間內(nèi)比如60秒內(nèi)保持這種地址映射,如果超過這個時間沒有收到來自移動終端1或者計算設(shè)備5的數(shù)據(jù)包,則NAT程序或模塊將解除這種地址映射,從而中斷從移動終端1至計算設(shè)備5的數(shù)據(jù)鏈路。數(shù)據(jù)鏈路可能經(jīng)由多個路由器或NAT路由器4建立,因此圖2中示出了 n-1個其他路由器。下面根據(jù)圖2所示的系統(tǒng)詳細說明本發(fā)明的保持網(wǎng)絡(luò)NAT綁定的方法首先移動終端1通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)2、連接無線網(wǎng)2的邊緣 NAT路由器3、一個或多個其他路由器4至計算設(shè)備5的鏈路;邊緣NAT路由器3把來自移動終端1的數(shù)據(jù)包的源地址(例如包括源IP地址和 TCP源端口)映射成NAT路由器3的源地址以及把來自計算設(shè)備5的數(shù)據(jù)包的目的地址映 (例如包括的IP地址TCP目的端口 )射成移動終端的目的地址,并在第一時段Tl例如60 秒內(nèi)保持兩個地址映射;計算設(shè)備5按照其時段小于第一時間段Tl的時間間隔T2(例如55)秒向計算設(shè)備1發(fā)送一個心跳包,使心跳包中的生存時間TTL設(shè)定值到達邊緣NAT路由器3時遞減為 0,以便利用計算設(shè)備5發(fā)送的心跳包保持邊緣NAT路由器3的地址映射,從而維持從移動終端1至計算設(shè)備5的鏈路。計算設(shè)備5可以把心跳包的生存時間TTL的設(shè)定值確定為來自移動終端的數(shù)據(jù)包到達計算設(shè)備5所經(jīng)過的包括邊緣NAT路由器3在內(nèi)的所有路由器4的跳數(shù)(Hops),如圖 2所示,由于數(shù)據(jù)包經(jīng)過η個路由器才能到達計算設(shè)備5,因此計算設(shè)備5可以把TTL的值設(shè)置為η,例如若η等于10,則TTL設(shè)定值為10。需要說明的是,計算設(shè)備5設(shè)定的TTL設(shè)定值是指計算設(shè)備最終確定的TTL值,而下文所述的計算設(shè)備5設(shè)定的TTL初始值則是初步設(shè)定的TTL值。計算設(shè)備5可以通過以下步驟設(shè)置心跳包生存時間TTL的值當(dāng)收到來自移動終端1的移動終端數(shù)據(jù)包時,解析該數(shù)據(jù)包頭部中的當(dāng)前TTL值 Vl (例如為54);將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO (例如64)減去當(dāng)前TTL值Vl (54)得到跳數(shù) (例如10);然后,把跳數(shù)設(shè)為心跳包的TTL設(shè)定值(例如10)。當(dāng)心跳包經(jīng)過鏈路上的每個路由器轉(zhuǎn)發(fā)時,該路由器將心跳包中的生存時間TTL 設(shè)定值遞減一,以致數(shù)據(jù)包到達邊緣NAT路由器3時,心跳包因為其生存時間TTL設(shè)定值被遞減為0而被丟棄,使得心跳包僅起到保持邊緣NAT路由器3地址映射的數(shù)據(jù)活動作用。如上所述,當(dāng)經(jīng)由10個路由器建立從移動終端1至計算設(shè)備5的數(shù)據(jù)鏈路時,計算設(shè)備5發(fā)送的心跳包的TTL設(shè)定值為10,該心跳包到達邊緣NAT路由器3時,其TTL設(shè)定值被遞減為0,從而被路由器3丟棄,但是心跳包在路由器3中的數(shù)據(jù)活動即路由器3對其處理,使得 NAT路由器3的地址映射又延長了第一時段Tl的時間如60秒。計算設(shè)備5還可以通過以下步驟設(shè)置心跳包生存時間TTL的設(shè)定值當(dāng)收到來自移動終端1的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值Vl(比如 54);將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO (比如64)減去當(dāng)前TTL值Vl (比如54)得到跳數(shù)v(比如10);把跳數(shù)V+調(diào)整值D (例如3)設(shè)為心跳包的TTL初始值ttl (比如13);然后通過與移動終端1進行發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值ttl,直至獲得移動終端1不能響應(yīng)的心跳包TTL值,并將其作為TTL設(shè)定值。具體地說,計算設(shè)備5與移動終端1之間的發(fā)送-響應(yīng)通信操作包括計算設(shè)備5向移動終端1發(fā)送包含TTL初始值ttl (比如13)的心跳包,移動終端 1對該心跳包響應(yīng)后向計算設(shè)備5回送響應(yīng)包;計算設(shè)備5收到移動終端1回送的響應(yīng)包后,將心跳包的TTL初始值減一(13-1 =12);然后計算設(shè)備5把TTL初始值減一的心跳包(其TTL = 12)發(fā)送給移動終端1,移動終端1響應(yīng)后再回送響應(yīng)包;接著,重復(fù)上述計算設(shè)備5將TTL減一后發(fā)送心跳包以及移動終端1響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備5把TTL初始值遞減到移動終端1不能響應(yīng)回送響應(yīng)包時的數(shù)值(例如,計算設(shè)備5通過對心跳包TTL值的多次遞減,把TTL初始值13遞減到10,使得心跳包到達NAT路由器3并進行減一操作時,該心跳包的TTL = 0,從而不能轉(zhuǎn)發(fā)給移動終端 1,致使移動終端1不能響應(yīng)并回送響應(yīng)包)。為了使移動終端1能夠響應(yīng)并回送計算設(shè)備發(fā)送的心跳包,移動終端1應(yīng)當(dāng)設(shè)有響應(yīng)并回送響應(yīng)包的響應(yīng)模塊(圖中未顯示),移動終端1可以通過光盤或網(wǎng)絡(luò)下載方式安裝該響應(yīng)模塊。下面通過結(jié)合圖3和圖4所示的實現(xiàn)本發(fā)明的方法的兩個具體實例,說明本發(fā)明的保持網(wǎng)絡(luò)NAT綁定的兩個具體實施方法在圖3所示的第一實例中,移動終端1首先通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)2、連接無線網(wǎng)2的邊緣NAT路由器3、一個或多個其他路由器4至計算設(shè)備5的鏈路;接著,邊緣NAT路由器3把來自移動終端1的數(shù)據(jù)包源地址映射成本機源地址以及把來自計算設(shè)備5的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段Tl內(nèi)保持兩個地址映射;然后,計算設(shè)備5按照其時段小于第一時間段Tl的時間間隔T2向計算設(shè)備1發(fā)送一個心跳包,使心跳包中的生存時間TTL的值到達邊緣NAT路由器3時遞減為0,以便利用計算設(shè)備5發(fā)送的心跳包保持邊緣NAT路由器3的地址映射,從而維持從移動終端1至計算設(shè)備5的鏈路;其中計算設(shè)備5按以下步驟設(shè)置生存時間TTL的值當(dāng)收到來自移動終端1的移動終端數(shù)據(jù)包時,解析出其當(dāng)前TTL值Vl ;將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去當(dāng)前TTL值Vl得到跳數(shù);然后,把跳數(shù)設(shè)為心跳包的TTL的值。例如,在圖3所示的第一實例中,假定移動終端1發(fā)送的數(shù)據(jù)包的TTL的標(biāo)稱值 VO = 64,該數(shù)據(jù)包(數(shù)據(jù)報)經(jīng)由邊緣NAT路由器3和其他19個其他路由器到達計算設(shè)備5,根據(jù)數(shù)據(jù)包每經(jīng)過一個路由器,將TTL值減一的規(guī)則,計算設(shè)備5收到的數(shù)據(jù)包中TTL 當(dāng)前值Vl為64-20 = 44,計算設(shè)備5通過解析該數(shù)據(jù)包得到該Vl,然后將標(biāo)稱值VO-Vl = 64-44得到跳數(shù)20,從而將心跳包的TTL設(shè)定值確定為20。在圖4所示的第二實例中,移動終端1通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)2、 連接無線網(wǎng)2的邊緣NAT路由器3、一個或多個其他路由器4至計算設(shè)備5的鏈路;邊緣NAT 路由器3把來自移動終端1的數(shù)據(jù)包源地址映射成本機源地址以及把來自計算設(shè)備5的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段Tl內(nèi)保持兩個地址映射;計算設(shè)備5按照其時段小于第一時間段Tl的時間間隔T2向計算設(shè)備1發(fā)送一個心跳包,使心跳包中的生存時間TTL設(shè)定值到達邊緣NAT路由器3時遞減為0,以便利用計算設(shè)備5發(fā)送的心跳包保持邊緣NAT路由器3的地址映射,從而維持從移動終端1至計算設(shè)備5的鏈路; 其中計算設(shè)備5按以下步驟設(shè)置生存時間TTL設(shè)定值當(dāng)收到來自移動終端1的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值Vl ;將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去當(dāng)前TTL值Vl得到跳數(shù)V ;把跳數(shù)V+調(diào)整值D設(shè)為心跳包的TTL初始值ttl ;然后通過與移動終端1進行發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值ttl,直至獲得移動終端1不能響應(yīng)時的心跳包TTL值,并將其作為TTL設(shè)定值。其中,上述調(diào)整值最好在2 7中選取,可優(yōu)選5。計算設(shè)備5與移動終端1之間的發(fā)送-響應(yīng)通信操作包括
計算設(shè)備5向移動終端1發(fā)送包含TTL初始值ttl的心跳包,移動終端1響應(yīng)后回送響應(yīng)包;計算設(shè)備5收到移動終端1回送的響應(yīng)包后,將心跳包的TTL初始值減一;然后計算設(shè)備5把TTL初始值減一的心跳包發(fā)送給移動終端1,移動終端1響應(yīng)后再回送響應(yīng)包;接著,重復(fù)上述計算設(shè)備5將TTL減一后發(fā)送心跳包以及移動終端1響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備5把TTL初始值遞減到移動終端1不能響應(yīng)回送響應(yīng)包時的數(shù)值。比如,圖4所示的調(diào)整值D等于5,當(dāng)計算設(shè)備5收到移動終端1關(guān)于心跳包的第一個響應(yīng)包時,將TTL值(初始值)減一,發(fā)送TTL值=n+4的心跳包;當(dāng)計算設(shè)備5收到移動終端1關(guān)于心跳包的第二個響應(yīng)包時,將已經(jīng)減一的TTL值(初始值)再減一,發(fā)送 TTL值=n+3的心跳包;當(dāng)計算設(shè)備5收到移動終端1關(guān)于心跳包的第三個響應(yīng)包時,將已經(jīng)減二的TTL值(初始值)再減一,發(fā)送TTL值=n+2的心跳包;當(dāng)計算設(shè)備5收到移動終端1關(guān)于心跳包的第四個響應(yīng)包時,將已經(jīng)減三的TTL值(初始值)再減一,發(fā)送TTL值= n+1的心跳包;當(dāng)計算設(shè)備5收到移動終端1關(guān)于心跳包的第五個響應(yīng)包時,將已經(jīng)減四的 TTL值(初始值)再減一,發(fā)送TTL值=η的心跳包,該心跳包傳輸?shù)竭吘塏AT路由器3后其TTL值遞減為0,導(dǎo)致被丟棄,致使移動終端1因不能收到該心跳包而不能響應(yīng)。移動終端1設(shè)有響應(yīng)并回送響應(yīng)包的響應(yīng)模塊,該移動終端1通過光盤或網(wǎng)絡(luò)下載方式安裝響應(yīng)模塊。當(dāng)移動終端1收到來自計算設(shè)備的心跳包時,響應(yīng)模塊根據(jù)心跳包中的用于綁定 NAT的綁定標(biāo)識符,生成并回送一個含有NAT綁定標(biāo)識符的響應(yīng)包,以便計算設(shè)備5依據(jù)該綁定標(biāo)識符辨識響應(yīng)包,并據(jù)此將TTL初始值減一。該響應(yīng)包中TTL值可以是移動終端1 發(fā)送的普通數(shù)據(jù)包的標(biāo)稱值。由于鏈路可能意外中斷以及轉(zhuǎn)發(fā)數(shù)據(jù)包的路由器數(shù)量也可能變化,因此移動終端 1還可以按照其時段大于第一時段Tl的間隔(比如20分鐘)向計算設(shè)備5發(fā)送數(shù)據(jù)包,以便計算設(shè)備5重復(fù)上述處理獲得適應(yīng)鏈路中斷、路由改變等意外事件的心跳包的TTL值。盡管上文對本發(fā)明進行了詳細說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員可以根據(jù)本發(fā)明的原理進行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種保持網(wǎng)絡(luò)NAT綁定的方法,包括以下步驟移動終端(1)通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)O)、連接無線網(wǎng)( 的邊緣NAT 路由器(3)、一個或多個其他路由器(4)至計算設(shè)備(5)的鏈路;所述邊緣NAT路由器C3)把來自移動終端(1)的數(shù)據(jù)包源地址映射成所述邊緣NAT路由器的源地址以及把來自計算設(shè)備(5)的數(shù)據(jù)包的目的地址映射成移動終端的目的地址, 并在第一時段(Tl)內(nèi)保持所述兩個地址映射;所述計算設(shè)備(5)按照其時段小于所述第一時間段(Tl)的時間間隔(T2)向所述計算設(shè)備(1)發(fā)送一個心跳包,使所述心跳包生存時間TTL設(shè)定值到達所述邊緣NAT路由器(3) 時被遞減為0,以便利用計算設(shè)備(5)發(fā)送的心跳包保持邊緣NAT路由器(3)的地址映射, 從而維持從所述移動終端(1)至計算設(shè)備(5)的所述鏈路。
2.根據(jù)權(quán)利要求1所述的方法,其中所述心跳包的生存時間TTL設(shè)定值由所述計算設(shè)備(5)設(shè)置,并且被設(shè)定為來自移動終端的數(shù)據(jù)包到達所述計算設(shè)備(5)時,所經(jīng)過的包括邊緣NAT路由器在內(nèi)的所有路由器的跳數(shù)(Hops)。
3.根據(jù)權(quán)利要求1或2所述的方法,其中所述計算設(shè)備( 通過以下步驟設(shè)置心跳包生存時間TTL設(shè)定值當(dāng)收到來自移動終端(1)的移動終端數(shù)據(jù)包時,解析出其當(dāng)前TTL值Vl ; 將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到所述跳數(shù); 然后,把所述跳數(shù)設(shè)為心跳包的TTL設(shè)定值。
4.根據(jù)權(quán)利要求3所述的方法,其中當(dāng)所述心跳包經(jīng)過所述鏈路上的每個路由器轉(zhuǎn)發(fā)時,該路由器將心跳包中的生存時間TTL設(shè)定值遞減一,以致數(shù)據(jù)包到達所述邊緣NAT路由器(3)時,所述心跳包因為其生存時間TTL設(shè)定值被遞減為0而被丟棄,使得所述心跳包僅起到保持所述邊緣NAT路由器(3)地址映射的作用。
5.根據(jù)權(quán)利要求1或2所述的方法,其中所述計算設(shè)備( 通過以下步驟設(shè)置心跳包生存時間TTL的設(shè)定值當(dāng)收到來自移動終端(1)的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值Vl ; 將移動終端數(shù)據(jù)包的TTL標(biāo)稱值VO減去所述當(dāng)前TTL值Vl得到所述跳數(shù)V ; 把所述跳數(shù)V+調(diào)整值D設(shè)為心跳包的TTL初始值ttl ;然后通過與移動終端(1)進行的發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值ttl,直至獲得移動終端⑴不能響應(yīng)的TTL值,以作為心跳包的TTL設(shè)定值。
6.根據(jù)權(quán)利要求5所述的方法,其中所述發(fā)送-響應(yīng)通信包括計算設(shè)備(5)向移動終端(1)發(fā)送包含TTL初始值(ttl)的心跳包,移動終端(1)響應(yīng)后回送響應(yīng)包;計算設(shè)備( 收到移動終端(1)回送的響應(yīng)包后,將心跳包的TTL初始值減一; 然后計算設(shè)備( 把TTL初始值減一的心跳包發(fā)送給移動終端(1),移動終端(1)響應(yīng)后再回送響應(yīng)包;接著,重復(fù)上述計算設(shè)備( 將TTL減一后發(fā)送心跳包以及移動終端(1)響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備( 把TTL初始值遞減到移動終端(1)不能響應(yīng)回送響應(yīng)包時的TTL值。
7.一種保持網(wǎng)絡(luò)NAT綁定的方法,包括以下步驟移動終端(1)通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)O)、連接無線網(wǎng)( 的邊緣NAT 路由器(3)、一個或多個其他路由器(4)至計算設(shè)備(5)的鏈路;所述邊緣NAT路由器(3)把來自移動終端(1)的數(shù)據(jù)包源地址映射成NAT路由器源地址以及把來自計算設(shè)備(5)的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段(Tl)內(nèi)保持所述兩個地址映射;所述計算設(shè)備(5)按照其時段小于所述第一時間段(Tl)的時間間隔(T2)向所述計算設(shè)備(1)發(fā)送一個心跳包,使所述心跳包中的生存時間TTL設(shè)定值到達所述邊緣NAT路由器⑶時遞減為0,以便利用計算設(shè)備(5)發(fā)送的心跳包保持邊緣NAT路由器(3)的地址映射,從而維持從所述移動終端(1)至計算設(shè)備(5)的所述鏈路;其中所述計算設(shè)備( 按以下步驟設(shè)置所述心跳包生存時間TTL的設(shè)定值 當(dāng)收到來自移動終端(1)的移動終端數(shù)據(jù)包時,解析出其當(dāng)前TTL值Vl ; 將移動終端數(shù)據(jù)包的TTL標(biāo)稱值(VO)減去所述當(dāng)前TTL值(Vl)得到跳數(shù); 然后,把所述跳數(shù)設(shè)為心跳包的TTL的設(shè)定值。
8.一種保持網(wǎng)絡(luò)NAT綁定的方法,包括以下步驟移動終端(1)通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)O)、連接無線網(wǎng)( 的邊緣NAT 路由器(3)、一個或多個其他路由器(4)至計算設(shè)備(5)的鏈路;所述邊緣NAT路由器C3)把來自移動終端(1)的數(shù)據(jù)包源地址映射成本機源地址以及把來自計算設(shè)備(5)的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段(Tl) 內(nèi)保持所述兩個地址映射;所述計算設(shè)備(5)按照其時段小于所述第一時間段(Tl)的時間間隔(T2)向所述計算設(shè)備(1)發(fā)送一個心跳包,使所述心跳包中的生存時間TTL設(shè)定值到達所述邊緣NAT路由器⑶時遞減為0,以便利用計算設(shè)備(5)發(fā)送的心跳包保持邊緣NAT路由器(3)的地址映射,從而維持從所述移動終端(1)至計算設(shè)備(5)的所述鏈路;其中所述計算設(shè)備( 按以下步驟設(shè)置所述心跳包生存時間TTL設(shè)定值 當(dāng)收到來自移動終端(1)的移動終端數(shù)據(jù)包時,解析出其中的當(dāng)前TTL值(Vl); 將移動終端數(shù)據(jù)包的TTL標(biāo)稱值(VO)減去所述當(dāng)前TTL值(Vl)得到跳數(shù)(V); 把跳數(shù)(V) +調(diào)整值(D)設(shè)為心跳包的TTL初始值(ttl);然后通過與移動終端(1)進行發(fā)送-響應(yīng)通信,調(diào)整心跳包TTL初始值(ttl),直至獲得移動終端⑴不能響應(yīng)的TTL值,以作為心跳包的TTL設(shè)定值。
9.根據(jù)權(quán)利要求8所述的方法,其中所述發(fā)送-響應(yīng)通信包括計算設(shè)備(5)向移動終端(1)發(fā)送包含TTL初始值(ttl)的心跳包,移動終端(1)響應(yīng)后回送響應(yīng)包;計算設(shè)備( 收到移動終端(1)回送的響應(yīng)包后,將心跳包的TTL初始值減一; 然后計算設(shè)備( 把TTL初始值減一的心跳包發(fā)送給移動終端(1),移動終端(1)響應(yīng)后再回送響應(yīng)包;接著,重復(fù)上述計算設(shè)備( 將TTL減一后發(fā)送心跳包以及移動終端(1)響應(yīng)回送響應(yīng)包的操作,直至計算設(shè)備( 把TTL初始值遞減到移動終端(1)不能響應(yīng)回送響應(yīng)包時的TTL值。
10.根據(jù)上述權(quán)利要求任一項所述的方法,其中所述移動終端(1)按照其時段大于所述第一時段(Tl)的間隔向所述計算設(shè)備( 發(fā)送數(shù)據(jù)包,以便計算設(shè)備( 獲得適應(yīng)鏈路中斷、路由改變等意外事件的TTL值。
全文摘要
本發(fā)明公開了一種保持網(wǎng)絡(luò)NAT綁定的方法,包括移動終端通過主動發(fā)起連接請求建立經(jīng)由無線網(wǎng)、連接無線網(wǎng)的邊緣NAT及其他路由器至計算設(shè)備的鏈路;邊緣NAT路由器把來自移動終端的數(shù)據(jù)包源地址映射成NAT路由器源地址以及把來自計算設(shè)備的數(shù)據(jù)包的目的地址映射成移動終端的目的地址,并在第一時段內(nèi)保持兩個地址映射;計算設(shè)備按照其時段小于第一時間段的時間間隔向移動終端發(fā)送一個心跳包,使心跳包中的生存時間TTL的值到達邊緣NAT路由器時遞減為0,以便利用計算設(shè)備發(fā)送的心跳包保持邊緣NAT路由器的地址映射,從而維持從移動終端至計算設(shè)備的鏈路,但心跳包將不被下發(fā)到收移動終端,而最大程度減少移動終端電池以及空中無線資源的消耗。
文檔編號H04L29/06GK102281335SQ20101020034
公開日2011年12月14日 申請日期2010年6月9日 優(yōu)先權(quán)日2010年6月9日
發(fā)明者陶建輝 申請人:北京和信銳智科技有限公司