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