專利名稱:基于tcp的永遠在線業(yè)務傳輸心跳數(shù)據(jù)包的方法及設備的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其涉及一種基于傳輸控制協(xié)議(Transmission ControlProtocol, TCP)的永遠在線(Always Online)業(yè)務下傳輸心跳數(shù)據(jù)包的方法及設備。
背景技術:
諸如手機等移動終端作為一種被廣泛使用的便攜通信設備,已經(jīng)成為人們生活、工作中必不可少的溝通工具。近年來,隨著移動互聯(lián)網(wǎng)絡的發(fā)展,移動終端不僅僅是一種溝通工具,也成為了各種應用程序的運行移動終端,移動終端內安裝的應用程序通過移動終端與網(wǎng)絡側各相應的應用服務器相連,進行業(yè)務數(shù)據(jù)的交互。在移動終端與應用服務器之間的業(yè)務數(shù)據(jù)交互過程中,永遠在線一種主流的交互方式,在Always Onl ine方式中,移動終端和應用服務器之間建立一直保持連接狀態(tài)的長連 接,由應用服務器利用長連接主動向移動終端推送業(yè)務數(shù)據(jù),移動終端自動接收業(yè)務數(shù)據(jù)。這種Always Online方式可以降低業(yè)務對移動終端能力的限制,使得相應的業(yè)務更容易普及和發(fā)展。例如目前常用的即時通信業(yè)務、郵箱業(yè)務等都使用Always Online方式,能夠確保移動終端內的即時通信軟件、郵箱軟件等始終正常運行。由于Always Online方式中,移動終端與應用服務器之間的長連接要一直保持連接的狀態(tài),而位于移動終端和應用服務器之間的核心網(wǎng)防火墻需要周期性地接收來自應用服務器的?;钕?,因此,應用服務器要以小于防火墻所需周期的時長,不斷地向移動終端側發(fā)送心跳數(shù)據(jù)包以進行長連接的?;?,該心跳數(shù)據(jù)包傳輸過程會穿過公網(wǎng)的防火墻,用于通過防火墻該長連接有效,不得斷開此長連接。由于應用服務器發(fā)送心跳數(shù)據(jù)包的目的是對長連接的保活,維持長連接的服務狀態(tài),因此該心跳數(shù)據(jù)包的數(shù)據(jù)量比較小,但發(fā)送頻率比較高。心跳數(shù)據(jù)包一般只有幾十個字節(jié),包括心跳數(shù)據(jù)包接收方的移動終端標識、與該應用服務器進行交互的移動終端內安裝的應用程序標識和心跳序列號等內容。發(fā)送心跳數(shù)據(jù)包的頻率根據(jù)業(yè)務的不同而有所不同,以即時通信業(yè)務為例,應用服務器向移動終端發(fā)送心跳數(shù)據(jù)包的頻率可達30秒/個。在心跳數(shù)據(jù)包從應用服務器到移動終端的傳輸過程中,需要經(jīng)歷internet網(wǎng)絡、核心網(wǎng)以及無線通信網(wǎng)絡,如圖I所示。由于心跳數(shù)據(jù)包的數(shù)據(jù)量比較小,因此,即使數(shù)量較多的心跳數(shù)據(jù)包在internet網(wǎng)絡和核心網(wǎng)中傳輸時,也不會對internet網(wǎng)絡和核心網(wǎng)造成明顯影響。但是,當心跳數(shù)據(jù)包在無線通信網(wǎng)絡中傳輸時,需要為心跳數(shù)據(jù)包的傳輸分配信道,而信道的分配過程又需要使用大量的信令,因此,心跳數(shù)據(jù)包在無線通信網(wǎng)絡中傳輸時,會占用大量的無線信道資源(使用的信令占用控制信道,傳輸心跳數(shù)據(jù)包占用業(yè)務信道),若心跳數(shù)據(jù)包頻繁地在無線通信網(wǎng)絡中傳輸,會增加網(wǎng)絡負擔,降低無線網(wǎng)絡的性能;另外,即使給心跳數(shù)據(jù)包分配了傳輸信道,由于心跳數(shù)據(jù)包的數(shù)據(jù)量小,也無法充分利用信道資源,造成信道閑置,降低了無線信道的使用效率。綜上所述,在目前的心跳數(shù)據(jù)包的傳輸過程中,心跳數(shù)據(jù)包在無線通信網(wǎng)絡中的傳輸還存在增加網(wǎng)絡負擔、無線信道使用效率低的問題。
發(fā)明內容
本發(fā)明實施例提供一種基于TCP的永遠在線業(yè)務傳輸心跳數(shù)據(jù)包的方法及設備,用以解決現(xiàn)有技術中存在的心跳數(shù)據(jù)包在無線通信網(wǎng)絡中的傳輸會增加網(wǎng)絡負擔、使無線信道使用效率低的問題。一種基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的方法,所述方法包括確定作為心跳數(shù)據(jù)包生存時間的設定路由距離,所述設定路由距離使心跳數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由器;向移動終端發(fā)送以所述設定路由距離作為生存時間的心跳數(shù)據(jù)包。一種基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的設備,所述設備包括距離探測模塊,用于確定作為心跳數(shù)據(jù)包生存時間的設定路由距離,所述設定路由距離使心跳數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,到達移動終端所在的無線通信網(wǎng)絡之前的·一跳路由器;數(shù)據(jù)包發(fā)送模塊,用于向移動終端發(fā)送以所述設定路由距離作為生存時間的心跳數(shù)據(jù)包。本發(fā)明有益效果如下本發(fā)明實施例在基于TCP的永遠在線業(yè)務下,在傳輸心跳數(shù)據(jù)包之前,確定能夠使心跳數(shù)據(jù)包穿過核心網(wǎng)防火墻但不進入移動終端所在的無線通信網(wǎng)絡的生存時間,在每次傳輸心跳數(shù)據(jù)包時,按照該生存時間進行傳輸,一方面使心跳數(shù)據(jù)包能夠穿過核心網(wǎng)防火墻,達到對終端與應用服務器之間長連接的保活目的,另一方面,心跳數(shù)據(jù)包并沒有進入無線通信網(wǎng)絡,不會增加無線通信網(wǎng)絡的負擔,也不會占用無線信道。
圖I為背景技術中心跳數(shù)據(jù)包傳輸經(jīng)過網(wǎng)絡的示意圖;圖2為本發(fā)明實施例一中基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的方法步驟示意圖;圖3為本發(fā)明實施例二中基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的方法步驟示意圖;圖4為本發(fā)明實施例三基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的設備結構示意圖;圖5為本發(fā)明實施例三基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的設備結構示意圖;圖6為本發(fā)明實施例三基于TCP的永遠在線業(yè)務下心跳數(shù)據(jù)包傳輸經(jīng)過網(wǎng)絡的示意圖。
具體實施例方式為了實現(xiàn)本發(fā)明目的,本發(fā)明實施例提出一種新的應用在TCP的永遠在選業(yè)務下的傳輸心跳數(shù)據(jù)包的方案,在傳輸心跳數(shù)據(jù)包之前,確定能夠使數(shù)據(jù)包穿過核心網(wǎng)防火墻但不進入移動終端所在的無線通信網(wǎng)絡的生存時間,在每次傳輸心跳數(shù)據(jù)包時,按照該生存時間進行傳輸,使心跳數(shù)據(jù)包終止在核心網(wǎng)內的某一跳路由器上,一方面使心跳數(shù)據(jù)包能夠穿過核心網(wǎng)防火墻,達到對終端與應用服務器之間長連接的?;钅康?,另一方面,心跳數(shù)據(jù)包并沒有進入無線通信網(wǎng)絡,不會增加無線通信網(wǎng)絡的負擔,也不會占用無線信道。本發(fā)明各實施例中涉及的心跳數(shù)據(jù)包是指對心跳數(shù)據(jù)包指定的某一條長連接進行?;畹臄?shù)據(jù)包,所述長連接是指在一個連接上可以連續(xù)發(fā)送多個數(shù)據(jù)包,在連接保持期間,如果沒有數(shù)據(jù)包發(fā)送,需要雙方發(fā)心跳數(shù)據(jù)包對該長連接進行?;畹倪B接方式,如針對套接字(Socket)的長連接等。
本發(fā)明各實施例中涉及的核心網(wǎng)防火墻是指核心網(wǎng)邊界的防火墻,終端與應用服務器之間的長連接要經(jīng)過該防火墻,由防火墻對該長連接是否需要釋放進行監(jiān)控,若在周期時間內防火墻沒有收到針對該長連接的心跳數(shù)據(jù)包,則表示該長連接沒有數(shù)據(jù)需要傳輸并釋放;若收到針對該長連接的心跳數(shù)據(jù)包,則繼續(xù)維護該長連接。本發(fā)明各實施例中涉及的路由距離是指數(shù)據(jù)包的路由跳數(shù)。本發(fā)明各實施例中心跳數(shù)據(jù)包的生存時間是指該心跳數(shù)據(jù)包在傳輸過程中的路由跳數(shù)。下面結合說明書附圖對本發(fā)明實施例進行詳細描述。實施例一如圖2所示,為本發(fā)明實施例一中傳輸心跳數(shù)據(jù)包的方法步驟示意圖,所述方法包括以下步驟步驟101 :針對一條長連接,探測該長連接一端的移動終端的相關信息。在本步驟中,首先確定針對哪條長連接傳輸心跳數(shù)據(jù)包,進而確定接收心跳數(shù)據(jù)包的移動終端。具體地,可以通過移動互聯(lián)網(wǎng)內的業(yè)務服務器與終端建立傳輸控制協(xié)議(Transmission Control Protocol, TCP)數(shù)據(jù)連接,獲知該移動終端的相關信息,如移動終端進行網(wǎng)絡連接時的五元組信息,包括源IP地址,源端口,目的IP地址,目的端口,和傳輸層協(xié)議號。其中,源端口是該移動終端的端口號。步驟102 :確定心跳數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,且到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由器的設定路由距離。本步驟的目的是確定心跳數(shù)據(jù)路由包終止在核心網(wǎng)內一跳路由器的設定路由距離。步驟103 :按照核心網(wǎng)防火墻的周期要求,將確定的設定路由距離作為生存時間發(fā)送心跳數(shù)據(jù)包。在本實施例一的方案中,計算出合理的設定路由距離,即心跳數(shù)據(jù)包的路由跳數(shù),將該路由跳數(shù)作為心跳數(shù)據(jù)包中的IP數(shù)據(jù)包的TTL字段存儲的生存時間,使心跳數(shù)據(jù)包在路由傳輸過程中既能夠穿過核心網(wǎng)防火墻進入運營商提供的核心網(wǎng)達到對長連接保活的目的,又終止于進入移動終端所在的無線通信網(wǎng)絡之前的一跳路由器,避免了心跳數(shù)據(jù)包對無線通信網(wǎng)絡造成的負擔。實施例二 本發(fā)明實施例二通過一個具體的實例對本發(fā)明實施例一的方案進行詳細說明。如圖3所示,為本發(fā)明實施例二中傳輸心跳數(shù)據(jù)包的方法步驟示意圖,所述方法包括以下步驟
步驟201 :向移動終端發(fā)送的測試數(shù)據(jù)包,確定該測試數(shù)據(jù)包路由至移動終端時產(chǎn)生的第一路由距離。本步驟可以通過TCP協(xié)議的傳輸方式發(fā)送測試數(shù)據(jù)包。本發(fā)明的目的是讓心跳數(shù)據(jù)包既能穿過核心網(wǎng)防火墻又不會進入無線通信網(wǎng)絡,因此,首先需要確定若心跳數(shù)據(jù)包進入無線通信網(wǎng)絡到達移動終端時的第一路由距離,進而才能根據(jù)該第一路由距離確定合適的第二路由距離,以達到本發(fā)明目的。步驟202 :根據(jù)所述第一路由距離,確定測試數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,且到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由時,產(chǎn)生的第二路由距離。由于第一路由距離是能夠達到移動終端的路由距離,而第二路由距離未到達移動終端,所以第二路由距離小于第一路由距離,但第二路由距離必須大于經(jīng)過防火墻的距離,因此,第二路由距離的最取上限為第一路由距離的路由跳數(shù)減1,取值下限為經(jīng)過所述核心 網(wǎng)防火墻時產(chǎn)生的路由跳數(shù)。較優(yōu)的,可以將第一路由距離的路由跳數(shù)減I后作為第二路由距離。步驟203 :將所述第二路由距離作為心跳數(shù)據(jù)包的生存時間,向移動終端發(fā)送該心跳數(shù)據(jù)包。本實施例二的方案中包括但不限于逐漸增大路由距離來確定第一路由距離、逐漸減小路由距離來確定第一路由距離和二分法方式來確定第一路由距離,下面分別加以說明I、通過逐漸增大路由距離來確定第一路由距離第一步將所述測試數(shù)據(jù)包的TCP頭部序號值設置為所述移動終端識別為錯誤的值。TCP協(xié)議規(guī)定了數(shù)據(jù)包中需要攜帶為該數(shù)據(jù)包分配的序號值,數(shù)據(jù)包接收方在接收到該數(shù)據(jù)包后,根據(jù)其中攜帶的序號值可以確定該數(shù)據(jù)包的相關信息(如數(shù)據(jù)包的來源、發(fā)送數(shù)據(jù)包的目的)。在本步驟中,發(fā)送給移動終端的測試數(shù)據(jù)包中攜帶一個錯誤的序列號,而不攜帶實際為該數(shù)據(jù)包分配的序列號。若測試數(shù)據(jù)包到達移動終端,則移動終端會將測試數(shù)據(jù)包中攜帶的序列號識別為錯誤的序列號,進而認為該測試數(shù)據(jù)包為非法數(shù)據(jù)包,則移動終端將會返回復位(RST)的TCP消息,通知測試數(shù)據(jù)包的發(fā)送方此測試數(shù)據(jù)包有誤。若測試數(shù)據(jù)包沒有到達移動終端時生存時間就已達到,則由于移動終端在規(guī)定時長內沒有接收到測試數(shù)據(jù)包,將會返回控制報文協(xié)議(Internet Control Message Protocol, ICMP)消息,其中攜帶的錯誤類型是超時。測試數(shù)據(jù)包的發(fā)送方根據(jù)返回的是RST消息還是錯誤類型是超時的ICMP消息來確定該測試數(shù)據(jù)包是否到達移動終端。第二步預先設定第三路由距離。本步驟中的第三路由距離在初始時可以設置為I跳。第三步逐漸增大預先設定的第三路由距離,針對每次增大后得到的路由距離執(zhí)行以下操作將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,向移動終端發(fā)送該測試數(shù)據(jù)包;若返回RST的TCP消息,則將本次得到的路由距離作為第一路由距離;
若返回的控制報文協(xié)議ICMP消息攜帶的錯誤類型是超時,則繼續(xù)增大路由距離。在第三步的方案中,若本次使用的第三路由距離的路由跳數(shù)過小,不足以使測試數(shù)據(jù)包達到移動終端,則移動終端由于在規(guī)定時長內沒有收到測試數(shù)據(jù)包而在返回ICMP消息中攜帶的錯誤類型是超時,表示此時第三路由距離小于路由至移動終端時所需的路由距離,因此,需增大第三路由距離,并將增大后的第三路由距離繼續(xù)作為測試數(shù)據(jù)包的生存時間來發(fā)送測試數(shù)據(jù)包。當在上次使用的第三路由距離的情況下ICMP攜帶的錯誤類型是超時,但本次使用的第三路由距離的情況下接收到RST消息,表示當前使用的第三路由距離恰好能夠使測試數(shù)據(jù)包路由至移動終端,只不過由于移動終端識別測試數(shù)據(jù)包的序列號有誤所以返回RST消息,此時,當前使用的第三路由距離等于測試數(shù)據(jù)包路由至移動終端時所需的路由距離,則將當前的第三路由距離作為第一路由距離。2、通過逐漸減小路由距離來確定第一路由距離第一步通過已確定五元組信息的TCP連接,即發(fā)送心跳數(shù)據(jù)包所要?;畹拈L連 接。第二步預先設定第四路由距離。本步驟中的第四路由距離在初始時可以設置較大,確保第一次發(fā)送的測試數(shù)據(jù)包能夠被移動終端正確接收,如在初始時設置第四路由距離為64跳。第三步將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;若是,則繼續(xù)減小路由距離;否則,將本次得到的路由距離加I作為第一路由距離。本方式是通過TCP連接向移動終端發(fā)送測試數(shù)據(jù)包的方式,在第三步的方案中,測試數(shù)據(jù)包中的生存時間在不斷減少,若本次使用的第四路由距離比較大,能夠使移動終端正確接收到測試數(shù)據(jù)包,則移動終端將會返回測試回應消息,表示第四路由距離還需要繼續(xù)減少。當上次使用的第四路由距離能夠使測試數(shù)據(jù)包到達移動終端(即上次發(fā)送測試數(shù)據(jù)包后接收到測試回應消息),但本次使用的第四路由距離不能夠使測試數(shù)據(jù)包到達移動終端(本次發(fā)送測試數(shù)據(jù)包后沒有接收到測試回應消息),則表示本次使用的第四路由距離只能達到無線通信網(wǎng)絡外的最后一跳,上次使用的第四路由距離是路由至移動終端時產(chǎn)生的路由距離,因此,將上次使用的第四路由距離作為第一路由距離。若每次減少路由距離是I跳,則可以將本次使用的第四路由距離加I跳作為第一路由距離。3、二分法方式第一步通過已確定五元組信息的TCP連接,即發(fā)送心跳數(shù)據(jù)包所要?;畹拈L連接。第二步預先設定上限路由距離和下限路由距離,在初始時,所述上限路由距離大于下限路由距離。第三步在每次上限路由距離或下限路由距離發(fā)生更新時,判斷上限路由距離是否不小于下限路由距離,若是,則執(zhí)行以下操作,直至上限路由距離小于下限路由距離將本次得到上限路由距離和下限路由距離的平均值取整,得到第五路由距離,并將本次得到的第五路由距離作為測試數(shù)據(jù)包的生存時間,通過第一步確定的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;
若是,則將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的上限路由距離;否則,將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的下限路由距離。例如,在第N次發(fā)送測試數(shù)據(jù)包時,TTL_max = 64, TTL_min = O, TTL_max大于TTL_min,第五路由距離的路由跳數(shù)為[(TTL_max+TTL_min)/2] = 32,以32跳作為生存時間發(fā)送測試數(shù)據(jù)包N。針對測試數(shù)據(jù)包N,若返回測試回應消息,表示32跳時移動終端能夠正確接收測試數(shù)據(jù)包,則將當前的第五路由距離32-1 = 31作為更新后的TTL_max,即TTL_max = 31,TTL_min = O。此時,TTL_max仍大于TTL_min,可以重新計算得到第五路由距離的路由跳數(shù)為[(TTL_max+TTL_min)/2] = 15,以15跳作為生存時間發(fā)送測試數(shù)據(jù)包N+1,以此類推。
針對測試數(shù)據(jù)包N,若沒有返回測試回應消息,表示32跳時移動終端已經(jīng)不能夠正確接收測試數(shù)據(jù)包,則將當前的第五路由距離32-1 = 31作為更新后的TTL_min,即TTL_max = 64, TTL_min = 31。此時,TTL_max仍大于TTL_min,可以重新計算得到第五路由距離的路由跳數(shù)為[(TTL_max+TTL_min)/2] = 47,以47跳作為生存時間發(fā)送測試數(shù)據(jù)包N+1,以此類推。第四步確定在上限路由距離小于下限路由距離時得到的第五路由距離。第五步在以第四步得到的第五路由距離為測試數(shù)據(jù)包的生存時間時,若接收到測試超時消息,則將該第五路由距離的路由跳數(shù)加I后作為第一路由距離;若接收到測試正確消息,則將該第五路由距離的路由跳數(shù)作為第一路由距離。需要說明的是,在上述各種方式下,由于測試數(shù)據(jù)包在傳輸過程中的網(wǎng)絡傳輸質量等原因可能造成測試數(shù)據(jù)包的丟包,使移動終端無法正確接收到測試數(shù)據(jù)包,因此,當本次發(fā)送測試數(shù)據(jù)包后確定移動終端沒有接收到測試數(shù)據(jù)包時,可以以本次相同的路由距離執(zhí)行重傳操作,在重傳次數(shù)達到門限值時移動終端還沒有接收到測試數(shù)據(jù)包,則利用本次使用的路由距離來確定第一路由距離。另外,為了保證第一路由距離恰好是路由至移動終端時產(chǎn)生的路由距離,在上述任一方式下,每次增大或減小的路由距離為I跳。實施例三 本發(fā)明實施例三還提供一種與實施例一和實施例二屬于同一發(fā)明構思下的,基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的設備,如圖4所示,所述設備包括數(shù)據(jù)采集模塊、距離探測模塊和數(shù)據(jù)包發(fā)送模塊,其中數(shù)據(jù)采集模塊在數(shù)據(jù)通道為基于TCP的模式時用于實時捕獲長連接兩端的移動終端和應用服務器之間的通信數(shù)據(jù)包,建立和維護移動終端的五元組,提取當前移動終端TCP連接的順序信息(seq)、響應信息(ack)。距離探測模塊用于確定作為心跳數(shù)據(jù)包生存時間的設定路由距離。數(shù)據(jù)包發(fā)送模塊用于將所述設定路由距離作為心跳數(shù)據(jù)包的生存時間,向移動終端發(fā)送該心跳數(shù)據(jù)包。具體地,如圖5所示,距離探測模塊包括第一路由確定模塊和第二路由確定模塊,其中第一路由確定模塊用于向移動終端發(fā)送測試數(shù)據(jù)包,確定該測試數(shù)據(jù)包路由至移動終端時產(chǎn)生的第一路由距離;第二路由確定模塊用于根據(jù)所述第一路由距離,確定測試數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,且到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由時,產(chǎn)生的第二路由距離,并將該第二路由距離作為所述設定路由距離;因此,數(shù)據(jù)包發(fā)送模塊用于將所述第二路由距離作為心跳數(shù)據(jù)包的生存時間,向移動終端發(fā)送該心跳數(shù)據(jù)包。與實施例二的方案相似的,第一路由確定模塊也可以通過逐漸增大路由距離來確定第一路由距離、逐漸減小路由距離來確定第一路由距離和二分法方式來確定第一路由距離,下面分別加以說明I、通過逐漸增大路由距離來確定第一路由距離所述第一路由確定模塊,具體用于將所述測試數(shù)據(jù)包的序號值設置為所述移動終端識別為錯誤的序列號,并逐漸增大預先設定的第三路由距離,針對每次增大后得到的路由距離執(zhí)行以下操作將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,向移動終端發(fā)送該測試數(shù)據(jù) 包;若返回復位RST消息,則將本次得到的路由距離作為第一路由距離;若返回的控制報文協(xié)議ICMP消息攜帶的錯誤類型是超時,則繼續(xù)增大路由距離。2、通過逐漸減小路由距離來確定第一路由距離所述第一路由確定模塊具體用于逐漸減小預先設定的第五路由距離,針對每次減小后得到的路由距離執(zhí)行以下操作將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;若是,則繼續(xù)減小路由距離;否則,將本次得到的路由距離加I作為第一路由距離。3、二分法方式所述第一路由確定模塊,具體用于預先設定上限路由距離和下限路由距離,在每次上限路由距離或下限路由距離發(fā)生更新時,判斷上限路由距離是否不小于下限路由距離,若是,則執(zhí)行以下操作,直至上限路由距離小于下限路由距離將本次得到上限路由距離和下限路由距離的平均值取整,得到第七路由距離,并將本次得到的第七路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;若是,則將本次得到的第七路由距離的路由跳數(shù)減I后作為更新后的上限路由距離;否則,將本次得到的第七路由距離的路由跳數(shù)減I后作為更新后的下限路由距離;確定在上限路由距離小于下限路由距離時得到的第七路由距離,在以該第七路由距離為測試數(shù)據(jù)包的生存時間時,若接收到測試超時消息,則將該第七路由距離的路由跳數(shù)加I后作為第一路由距離;若接收到測試正確消息,則將該第七路由距離的路由跳數(shù)作為第一路由距離。所述第二路由確定模塊,具體用于將第一路由距離的路由跳數(shù)減I后作為所述第二路由距離的最大值,以及將經(jīng)過所述核心網(wǎng)防火墻時產(chǎn)生的路由跳數(shù)作為所述第二路由距離的最小值,將不大于所述最大值且不小于所述最小值的路由跳數(shù)作為第二路由距離。本實施例三中的傳輸心跳數(shù)據(jù)包的設備可以是長連接一端的應用服務器中的部件,也可以是獨立于應用服務器的設備,如圖6所示,為該應用服務器與移動終端之間的長連接進行保活。本領域內的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算 機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本申請的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。
權利要求
1.一種基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的方法,其特征在于,所述方法包括 確定作為心跳數(shù)據(jù)包生存時間的設定路由距離,所述設定路由距離使心跳數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由器; 向移動終端發(fā)送以所述設定路由距離作為生存時間的心跳數(shù)據(jù)包。
2.如權利要求I所述的方法,其特征在于,確定作為心跳數(shù)據(jù)包生存時間的設定路由距離,具體包括 向移動終端發(fā)送測試數(shù)據(jù)包,確定該測試數(shù)據(jù)包路由至移動終端時產(chǎn)生的第一路由距離; 根據(jù)所述第一路由距離,確定測試數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,且到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由時,產(chǎn)生的第二路由距離,并將該第二路由距離作為所述設定路由距離。
3.如權利要求2所述的方法,其特征在于,所述第一路由距離和第二路由距離是指數(shù)據(jù)包的路由跳數(shù)。
4.如權利要求3所述的方法,其特征在于,所述第一路由距離通過以下方式確定 將所述測試數(shù)據(jù)包的TCP頭部序號值設置為所述移動終端識別為錯誤的值; 逐漸增大預先設定的第三路由距離,針對每次增大后得到的路由距離執(zhí)行以下操作 將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,向移動終端發(fā)送該測試數(shù)據(jù)包; 若返回復位RST的TCP消息,則將本次得到的路由距離作為第一路由距離; 若返回的控制報文協(xié)議ICMP消息攜帶的錯誤類型是超時,則繼續(xù)增大路由距離; 或者, 逐漸減小預先設定的第四路由距離,針對每次減小后得到的路由距離執(zhí)行以下操作將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息; 若是,則繼續(xù)減小路由距離; 否則,將本次得到的路由距離加I作為第一路由距離; 或者, 預先設定上限路由距離和下限路由距離,在每次上限路由距離或下限路由距離發(fā)生更新時,判斷上限路由距離是否不小于下限路由距離,若是,則執(zhí)行以下操作,直至上限路由距離小于下限路由距離 將本次得到上限路由距離和下限路由距離的平均值取整,得到第五路由距離,并將本次得到的第五路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;若是,則將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的上限路由距離;否則,將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的下限路由距離;確定在上限路由距離小于下限路由距離時得到的第五路由距離,在以該第五路由距離為測試數(shù)據(jù)包的生存時間時,若接收到測試超時消息,則將該第五路由距離的路由跳數(shù)加I后作為第一路由距離;若接收到測試正確消息,則將該第五路由距離的路由跳數(shù)作為第一路由距離。
5.如權利要求2 4任一所述的方法,其特征在于,根據(jù)所述第一路由距離,確定產(chǎn)生的第二路由距離,具體包括 將第一路由距離的路由跳數(shù)減I后作為所述第二路由距離的最大值,以及將經(jīng)過所述核心網(wǎng)防火墻時產(chǎn)生的路由跳數(shù)作為所述第二路由距離的最小值; 將不大于所述最大值且不小于所述最小值的路由跳數(shù)作為第二路由距離。
6.一種基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的設備,其特征在于,所述設備包括 距離探測模塊,用于確定作為心跳數(shù)據(jù)包生存時間的設定路由距離,所述設定路由距離使心跳數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由器; 數(shù)據(jù)包發(fā)送模塊,用于向移動終端發(fā)送以所述設定路由距離作為生存時間的心跳數(shù)據(jù)包。
7.如權利要求6所述的設備,其特征在于,所述距離探測模塊,包括 第一路由確定模塊,用于向移動終端發(fā)送測試數(shù)據(jù)包,確定該測試數(shù)據(jù)包路由至移動終端時產(chǎn)生的第一路由距離; 第二路由確定模塊,用于根據(jù)所述第一路由距離,確定測試數(shù)據(jù)包在經(jīng)過核心網(wǎng)防火墻之后,且到達移動終端所在的無線通信網(wǎng)絡之前的一跳路由時,產(chǎn)生的第二路由距離,并將該第二路由距離作為所述設定路由距離。
8.如權利要求7所述的設備,其特征在于,所述第一路由距離和第二路由距離是指數(shù)據(jù)包的路由跳數(shù)。
9.如權利要求8所述的設備,其特征在于, 所述第一路由確定模塊,具體用于將所述測試數(shù)據(jù)包的TCP頭部序號值設置為所述移動終端識別為錯誤的值,并逐漸增大預先設定的第三路由距離,針對每次增大后得到的路由距離執(zhí)行以下操作 將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,向移動終端發(fā)送該測試數(shù)據(jù)包; 若返回復位RST的TCP消息,則將本次得到的路由距離作為第一路由距離; 若返回的控制報文協(xié)議ICMP消息攜帶的錯誤類型是超時,則繼續(xù)增大路由距離; 或者, 具體用于逐漸減小預先設定的第四路由距離,針對每次減小后得到的路由距離執(zhí)行以下操作 將本次得到的路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息; 若是,則繼續(xù)減小路由距離; 否則,將本次得到的路由距離加I作為第一路由距離; 或者, 具體用于預先設定上限路由距離和下限路由距離,在每次上限路由距離或下限路由距離發(fā)生更新時,判斷上限路由距離是否不小于下限路由距離,若是,則執(zhí)行以下操作,直至上限路由距離小于下限路由距離 將本次得到上限路由距離和下限路由距離的平均值取整,得到第五路由距離,并將本次得到的第五路由距離作為測試數(shù)據(jù)包的生存時間,通過已確定五元組信息的TCP連接向移動終端發(fā)送該測試數(shù)據(jù)包,并判斷是否接收到返回的測試回應消息;若是,則將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的上限路由距離;否則,將本次得到的第五路由距離的路由跳數(shù)減I后作為更新后的下限路由距離;確定在上限路由距離小于下限路由距離時得到的第五路由距離,在以該第五路由距離為測試數(shù)據(jù)包的生存時間時,若接收到測試超時消息,則將該第五路由距離的路由跳數(shù)加I后作為第一路由距離;若接收到測試正確消息,則將該第五路由距離的路由跳數(shù)作為第一路由距離。
10.如權利要求7 9任一所述的設備,其特征在于, 所述第二路由確定模塊,具體用于將第一路由距離的路由跳數(shù)減I后作為所述第二路由距離的最大值,以及將經(jīng)過所述核心網(wǎng)防火墻時產(chǎn)生的路由跳數(shù)作為所述第二路由距離的最小值,將不大于所述最大值且不小于所述最小值的路由跳數(shù)作為第二路由距離。
全文摘要
本發(fā)明公開了一種基于TCP的永遠在線業(yè)務下傳輸心跳數(shù)據(jù)包的方法及設備,主要內容包括在傳輸心跳數(shù)據(jù)包之前,確定能夠使數(shù)據(jù)包穿過核心網(wǎng)防火墻但不進入移動終端所在的無線通信網(wǎng)絡的生存時間,在每次傳輸心跳數(shù)據(jù)包時,按照該生存時間進行傳輸,一方面使心跳數(shù)據(jù)包能夠穿過核心網(wǎng)防火墻,達到對終端與應用服務器之間長連接的?;钅康模硪环矫?,心跳數(shù)據(jù)包并沒有進入無線通信網(wǎng)絡,不會增加無線通信網(wǎng)絡的負擔,也不會占用無線信道。
文檔編號H04W40/02GK102769883SQ20111011320
公開日2012年11月7日 申請日期2011年5月3日 優(yōu)先權日2011年5月3日
發(fā)明者于蓉蓉, 張炎, 王磊, 陳閣, 黃曉慶 申請人:中國移動通信集團公司