基于Udp的永远在线业务传输心跳数据包的方法

来源:互联网 发布:0信誉淘宝店铺转让 编辑:程序博客网 时间:2024/06/06 00:46

背景技术

    诸如手机等移动终端作为一种被广泛使用的便携通信设备,已经成为人们生活、工作中必不可少的沟通工具。近年来,随着移动互联网络的发展,移动终端不仅仅是一种沟通工具,也成为了各种应用程序的运行移动终端,移动终端内安装的应用程序通过移动终端与网络侧各相应的应用服务器相连,进行业务数据的交互。

    在移动终端与应用服务器之间的业务数据交互过程中,永远在线一种主流的交互方式,在Always Onl Ine方式中,移动终端和应用服务器之间建立一直保持连接状态的长连 接,由应用服务器利用长连接主动向移动终端推送业务数据,移动终端自动接收业务数据。这种Always Online方式可以降低业务对移动终端能力的限制,使得相应的业务更容易普及和发展。例如目前常用的即时通信业务、邮箱业务等都使用Always Online方式,能够确保移动终端内的即时通信软件、邮箱软件等始终正常运行。由于Always Online方式中,移动终端与应用服务器之间的长连接要一直保持连接的状态,而位于移动终端和应用服务器之间的核心网防火墙需要周期性地接收来自应用服务器的保活消息,因此,应用服务器要以小于防火墙所需周期的时长,不断地向移动终端侧发送心跳数据包以进行长连接的保活,该心跳数据包传输过程会穿过公网的防火墙,用于通过防火墙该长连接有效,不得断开此长连接。由于应用服务器发送心跳数据包的目的是对长连接的保活,维持长连接的服务状态,因此该心跳数据包的数据量比较小,但发送频率比较高。心跳数据包一般只有几十个字节,包括心跳数据包接收方的移动终端标识、与该应用服务器进行交互的移动终端内安装的应用程序标识和心跳序列号等内容。发送心跳数据包的频率根据业务的不同而有所不同,以即时通信业务为例,应用服务器向移动终端发送心跳数据包的频率可达30秒/个。在心跳数据包从应用服务器到移动终端的传输过程中,需要经历Internet网络、核心网以及无线通信网络,如图I所示。由于心跳数据包的数据量比较小,因此,即使数量较多的心跳数据包在Internet网络和核心网中传输时,也不会对Internet网络和核心网造成明显影响。但是,当心跳数据包在无线通信网络中传输时,需要为心跳数据包的传输分配信道,而信道的分配过程又需要使用大量的信令,因此,心跳数据包在无线通信网络中传输时,会占用大量的无线信道资源(使用的信令占用控制信道,传输心跳数据包占用业务信道),若心跳数据包频繁地在无线通信网络中传输,会增加网络负担,降低无线网络的性能;另外,即使给心跳数据包分配了传输信道,由于心跳数据包的数据量小,也无法充分利用信道资源,造成信道闲置,降低了无线信道的使用效率。综上所述,在目前的心跳数据包的传输过程中,心跳数据包在无线通信网络中的传输还存在增加网络负担、无线信道使用效率低的问题。

发明内容

    本发明实施例提供一种基于UDP的永远在线业务传输心跳数据包的方法及设备,用以解决现有技术中存在的心跳数据包在无线通信网络中的传输会增加网络负担、使无线信道使用效率低的问题。一种基于UDP的永远在线业务下传输心跳数据包的方法,所述方法包括确定作为心跳数据包生存时间的设定路由距离,所述设定路由距离使心跳数据包在经过核心网防火墙之后,到达移动终端所在的无线通信网络之前的一跳路由器;向移动终端发送以所述设定路由距离作为生存时间的心跳数据包。一种基于UDP的永远在线业务下传输心跳数据包的设备,所述设备包括距离探测模块,用于确定作为心跳数据包生存时间的设定路由距离,所述设定路 由距离使心跳数据包在经过核心网防火墙之后,到达移动终端所在的无线通信网络之前的一跳路由器;数据包发送模块,用于向移动终端发送以所述设定路由距离作为生存时间的心跳数据包。本发明有益效果如下本发明实施例在基于UDP的永远在线业务下,在传输心跳数据包之前,确定能够使心跳数据包穿过核心网防火墙但不进入移动终端所在的无线通信网络的生存时间,在每次传输心跳数据包时,按照该生存时间进行传输,一方面使心跳数据包能够穿过核心网防火墙,达到对终端与应用服务器之间长连接的保活目的,另一方面,心跳数据包并没有进入无线通信网络,不会增加无线通信网络的负担,也不会占用无线信道。

图I为背景技术中心跳数据包传输经过网络的示意图;图2为本发明实施例一中基于UDP的永远在线业务下传输心跳数据包的方法步骤示意图;图3为本发明实施例二中基于UDP的永远在线业务下传输心跳数据包的方法步骤示意图;图4为本发明实施例三基于UDP的永远在线业务下传输心跳数据包的设备结构示意图;图5为本发明实施例三基于UDP的永远在线业务下传输心跳数据包的设备结构示意图;图6为本发明实施例三基于UDP的永远在线业务下心跳数据包传输经过网络的示意图。
具体实施例方式为了实现本发明目的,本发明实施例提出一种基于UDP的永远在线业务下的新的传输心跳数据包的方案,在传输心跳数据包之前,确定能够使数据包穿过核心网防火墙但不进入移动终端所在的无线通信网络的生存时间,在每次传输心跳数据包时,按照该生存时间进行传输,使心跳数据包终止在核心网内的某一跳路由器上,一方面使心跳数据包能够穿过核心网防火墙,达到对终端与应用服务器之间长连接的保活目的,另一方面,心跳数据包并没有进入无线通信网络,不会增加无线通信网络的负担,也不会占用无线信道。本发明各实施例中涉及的心跳数据包是指对心跳数据包指定的某一条长连接进行保活的数据包,所述长连接是指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发心跳数据包对该长连接进行保活的连接方式,如针对套接字(Socket)的长连接等。本发明各实施例中涉及的核心网防火墙是指核心网边界的防火墙,终端与应用服务器之间的长连接要经过该防火墙,由防火墙对该长连接是否需要释放进行监控,若在周期时间内防火墙没有收到针对该长连接的心跳数据包,则表示该长连接没有数据需要传输并释放;若收到针对该长连接的心跳数据包,则继续维护该长连接。本发明各实施例中涉及的路由距离是指数据包的路由跳数。 
本发明各实施例中心跳数据包的生存时间是指该心跳数据包在传输过程中的路由跳数。下面结合说明书附图对本发明实施例进行详细描述。实施例一如图2所示,为本发明实施例一中传输心跳数据包的方法步骤示意图,所述方法包括以下步骤步骤101 :针对一条长连接,探测该长连接一端的移动终端的相关信息。在本步骤中,首先确定针对哪条长连接传输心跳数据包,进而确定接收心跳数据包的移动终端。具体地,可以通过用户数据包协议(User Datagram Protocol,UDP)的方式获取移动终端的相关信息,通过UDP协议对用户信息进行管理,包括对移动终端的IP地址信息、UDP端口号等信息进行管理。步骤102 :确定心跳数据包在经过核心网防火墙之后,且到达移动终端所在的无线通信网络之前的一跳路由器的设定路由距离。本步骤的目的是确定心跳数据路由包终止在核心网内一跳路由器的设定路由距离。步骤103 :按照核心网防火墙的周期要求,将确定的设定路由距离作为生存时间发送心跳数据包。在本实施例一的方案中,计算出合理的设定路由距离,即心跳数据包的路由跳数,将该路由跳数作为心跳数据包中的IP数据包的TTL字段存储的生存时间,使心跳数据包在路由传输过程中既能够穿过核心网防火墙进入运营商提供的核心网达到对长连接保活的目的,又终止于进入移动终端所在的无线通信网络之前的一跳路由器,避免了心跳数据包对无线通信网络造成的负担。实施例二 本发明实施例二通过一个具体的实例对本发明实施例一的方案进行详细说明。如图3所示,为本发明实施例二中传输心跳数据包的方法步骤示意图,所述方法包括以下步骤步骤201 :向移动终端发送的测试数据包,确定该测试数据包路由至移动终端时产生的第一路由距离。本发明的目的是让心跳数据包既能穿过核心网防火墙又不会进入无线通信网络,因此,首先需要确定若心跳数据包进入无线通信网络到达移动终端时的第一路由距离,进而才能根据该第一路由距离确定合适的第二路由距离,以达到本发明目的。步骤202 :根据所述第一路由距离,确定测试数据包在经过核心网防火墙之后,且到达移动终端所在的无线通信网络之前的一跳路由时,产生的第二路由距离。由于第一路由距离是能够达到移动终端的路 由距离,而第二路由距离未到达移动终端,所以第二路由距离小于第一路由距离,但第二路由距离必须大于经过防火墙的距离,因此,第二路由距离的最取上限为第一路由距离的路由跳数减1,取值下限为经过所述核心网防火墙时产生的路由跳数。较优的,可以将第一路由距离的路由跳数减I后作为第二路由距离。步骤203 :将所述第二路由距离作为心跳数据包的生存时间,向移动终端发送该心跳数据包。本实施例二的方案中包括但不限于逐渐增大路由距离来确定第一路由距离、逐渐减小路由距离来确定第一路由距离和二分法方式来确定第一路由距离,下面分别加以说明I、通过逐渐增大路由距离来确定第一路由距离第一步将所述测试数据包中携带的目的端口号设置为移动终端不能正确接收该测试数据包的用户数据包UDP端口号。本实施例中可以将测试数据包的UDP头内的4字节目的端口号设计为诸如随机高段端口号,如使用随机的任何大于32768的高段端口,使得移动终端无法正确接收测试数据包,但只要测试数据包的生存时间能够使测试数据包达到目的端口,所经历的路由距离与达到移动终端的路由距离相同,因此,利用无法接收测试数据包的端口来代替移动终端的端口也可以计算出路由至移动终端时产生的第一路由距离。第二步预先设定第三路由距离。本步骤中的第三路由距离在初始时可以设置为I跳。第三步逐渐增大第三路由距离,针对每次增大后得到的路由距离循环执行以下操作将本次得到的路由距离作为测试数据包的生存时间,向移动终端发送该测试数据包,并对返回的ICMP消息进行检测;若返回的ICMP消息中携带的错误类型是端口不可达,则将本次得到的路由距离作为第一路由距离;若返回的ICMP消息中携带的错误类型是超时,则继续增大路由距离,直至接收到返回的ICMP消息中携带的错误类型是端口不可达。在第三步的方案中,若本次使用的第三路由距离的路由跳数过小,不足以使测试数据包达到目的端口号对应的端口,则测试数据包最后达到的路由器返回的ICMP消息中携带的错误类型是超时,表示此时第三路由距离小于路由至移动终端时所需的路由距离,因此,需增大第三路由距离,并将增大后的第三路由距离继续作为测试数据包的生存时间来发送测试数据包。当在上次使用的第三路由距离的情况下ICMP携带的错误类型是超时,但本次使用的第三路由距离的情况下ICMP携带的错误类型是端口不可达,表示当前使用的第三路由距离恰好能够使测试数据包路由至目的端口,只不过由于目的端口不能正确接收该测试数据包所以返回端口不可达的错误类型,此时,当前使用的第三路由距离等于测试数据包路由至移动终端时所需的路由距离,则将当前的第三路由距离作为第一路由距离。2、通过逐渐减小路由距离来确定第一路由距离第一步根据移动终端的IP地址和UDP端口确定接收测试数据包的移动终端。在本方式中,通过移动终端的IP地址和UDP端口号来唯一确定一个移动终端,这里确定的移动终端即为需要接收测试数据包的移动终端。测试数据包如果到达移动终端,移动终端能够正确接收测试数据包并返回测试回应消息;测试数据包如果没有到达移动终端,即在到达移动终端之前测试数据包的TTL之 前变为I或0,移动终端在规定时长内没有接收到测试数据包,则不返回的测试回应消息,即向移动终端发送的测试数据包超时。第二步预先设定第四路由距离。本步骤中的第四路由距离在初始时可以设置较大,确保第一次发送的测试数据包能够被移动终端正确接收,如在初始时设置第四路由距离为64跳。第三步逐渐减小预先设定的第四路由距离,针对每次减小后得到的路由距离执行以下操作将本次得到的路由距离作为测试数据包的生存时间,向第一步确定的移动终端发送该测试数据包,并判断是否接收到移动终端返回的测试回应消息;若是,则继续减小路由距离;否则,将本次得到的路由距离加I作为第一路由距离。本方式的第三步方案中,测试数据包中的生存时间在不断减少,若本次使用的第四路由距离比较大,能够使移动终端正确接收到测试数据包,则移动终端将会返回测试回应消息,表示第四路由距离还需要继续减少。当上次使用的第四路由距离能够使测试数据包到达移动终端(即上次发送测试数据包后接收到测试回应消息),但本次使用的第四路由距离不能够使测试数据包到达移动终端(本次发送测试数据包后没有接收到测试回应消息),则表示本次使用的第四路由距离只能达到无线通信网络外的最后一跳,上次使用的第四路由距离是路由至移动终端时产生的路由距离,因此,将上次使用的第四路由距离作为第一路由距离。若每次减少路由距离是I跳,则可以将本次使用的第四路由距离加I跳作为第一路由距离。3、二分法方式第一步根据移动终端的IP地址和UDP端口确定接收测试数据包的移动终端。第二步预先设定上限路由距离和下限路由距离,在初始时,所述上限路由距离大于下限路由距离。第三步在每次上限路由距离或下限路由距离发生更新时,判断上限路由距离是否不小于下限路由距离,若是,则执行以下操作,直至上限路由距离小于下限路由距离将本次得到上限路由距离和下限路由距离的平均值取整,得到第五路由距离,并将本次得到的第五路由距离作为测试数据包的生存时间,向第一步确定的移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息;若是,则将本次得到的第五路由距离的路由跳数减I后作为更新后的上限路由距离;否则,将本次得到的第五路由距离的路由跳数减I后作为更新后的下限路由距离。例如,在第N次发送测试数据包时,TTL_max = 64, TTL_min = O, TTL_max大于TTL_min,第五路由距离的路由跳数为[(TTL_max+TTL_min)/2] = 32,以32跳作为生存时间发送测试数据包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跳作为生存时间发送测试数据包N+1,以此类推。·针对测试数据包N,若没有返回测试回应消息,表示32跳时移动终端已经不能够正确接收测试数据包,则将当前的第五路由距离32-1 = 31作为更新后的TTL_min,即TTL_max = 64, TTL_min = 31。此时,TTL_max仍大于TTL_min,可以重新计算得到第五路由距离的路由跳数为[(TTL_max+TTL_min)/2] = 47,以47跳作为生存时间发送测试数据包N+1,以此类推。第四步确定在上限路由距离小于下限路由距离时得到的第五路由距离。第五步在以第四步得到的第五路由距离为测试数据包的生存时间时,若接收到测试超时消息,则将该第五路由距离的路由跳数加I后作为第一路由距离;若接收到测试正确消息,则将该第五路由距离的路由跳数作为第一路由距离。需要说明的是,在上述各种方式下,由于测试数据包在传输过程中的网络传输质量等原因可能造成测试数据包的丢包,使移动终端无法正确接收到测试数据包,因此,当本次发送测试数据包后确定移动终端没有接收到测试数据包时,可以以本次相同的路由距离执行重传操作,在重传次数达到门限值时移动终端还没有接收到测试数据包,则利用本次使用的路由距离来确定第一路由距离。另外,为了保证第一路由距离恰好是路由至移动终端时产生的路由距离,在上述任一方式下,每次增大或减小的路由距离为I跳。实施例三本发明实施例三还提供一种与实施例一和实施例二属于同一发明构思下的传输心跳数据包的设备,如图4所示,所述设备包括信息管理模块、距离探测模块和数据包发送模块,其中信息管理模块在数据通道为基于UDP的模式时,用于对移动终端的IP地址信息和UDP端口信息进行管理,并在准备传输心跳数据包时,实时获取移动终端的IP地址和UDP端
口信息。距离探测模块用于确定作为心跳数据包生存时间的设定路由距离。数据包发送模块用于将所述设定路由距离作为心跳数据包的生存时间,向移动终端发送该心跳数据包。具体地,如图5所示,距离探测模块包括第一路由确定模块和第二路由确定模块,其中第一路由确定模块用于向移动终端发送测试数据包,确定该测试数据包路由至移动终端时产生的第一路由距离;第二路由确定模块用于根据所述第一路由距离,确定测试数据包在经过核心网防火墙之后,且到达移动终端所在的无线通信网络之前的一跳路由时,产生的第二路由距离,并将该第二路由距离作为所述设定路由距离;因此,数据包发送模块用于将所述第二路由距离作为心跳数据包的生存时间,向移动终端发送该心跳数据包。与实施例二的方案相似的,第一路由确定模块也可以通过逐渐增大路由距离来确定第一路由距离、逐渐减小路由距离来确定第一路由距离和二分法方式来确定第一路由距离,下面分别加以说明I、通过逐渐增大路由距离来确定第一路由距离所述第一路由确定模块,具体用于将所述测试数据包中携带的目的端口号设置为移动终端不能正确接收该测试数据包的用户数据包UDP端口号,以及,逐渐增大预先设定的第三路由距离,针对每次增大后得到的路由距离执行以下操作 将本次得到的路由距离作为测试数据包的生存时间,向移动终端发送该测试数据包,并检测接收到的控制报文协议ICMP消息;若所述ICMP消息携带的错误类型是端口不可达,则将本次得到的路由距离作为
第一路由距离;若所述ICMP消息携带的错误类型是超时,则继续增大路由距离。2、通过逐渐减小路由距离来确定第一路由距离所述第一路由确定模块具体用于逐渐减小预先设定的第四路由距离,针对每次减小后得到的路由距离执行以下操作将本次得到的路由距离作为测试数据包的生存时间,根据所述移动终端的IP地址和UDP端口,向所述移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息;若是,则继续减小路由距离;否则,将本次得到的路由距离加I作为第一路由距离。3、二分法方式所述第一路由确定模块,具体用于预先设定上限路由距离和下限路由距离,在每次上限路由距离或下限路由距离发生更新时,判断上限路由距离是否不小于下限路由距离,若是,则执行以下操作,直至上限路由距离小于下限路由距离将本次得到上限路由距离和下限路由距离的平均值取整,得到第五路由距离,并将本次得到的第五路由距离作为测试数据包的生存时间,根据所述移动终端的IP地址和UDP端口,向所述移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息;若是,则将本次得到的第五路由距离的路由跳数减I后作为更新后的上限路由距离;否则,将本次得到的第五路由距离的路由跳数减I后作为更新后的下限路由距离;确定在上限路由距离小于下限路由距离时得到的第五路由距离,在以该第五路由距离为测试数据包的生存时间时,若接收到测试超时消息,则将该第五路由距离的路由跳数加I后作为第一路由距离;若接收到测试正确消息,则将该第五路由距离的路由跳数作为第一路由距离。所述第二路由确定模块,具体用于将第一路由距离的路由跳数减I后作为所述第二路由距离的最大值,以及将经过所述核心网防火墙时产生的路由跳数作为所述第二路由距离的最小值,将不大于所述最大值且不小于所述最小值的路由跳数作为第二路由距离。本实施例三中的传输心跳数据包的设备可以是长连接一端的应用服务器中的部件,也可以是独立于应用服务器的设备,如图6所示,为该应用服务器与移动终端之间的长连接进行保活。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。 
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种基于UDP的永远在线业务下传输心跳数据包的方法,其特征在于,所述方法包括 确定作为心跳数据包生存时间的设定路由距离,所述设定路由距离使心跳数据包在经过核心网防火墙之后,到达移动终端所在的无线通信网络之前的一跳路由器; 向移动终端发送以所述设定路由距离作为生存时间的心跳数据包。
2.如权利要求I所述的方法,其特征在于,确定作为心跳数据包生存时间的设定路由距离,具体包括 向移动终端发送测试数据包,确定该测试数据包路由至移动终端时产生的第一路由距离; 根据所述第一路由距离,确定测试数据包在经过核心网防火墙之后,且到达移动终端所在的无线通信网络之前的一跳路由时,产生的第二路由距离,并将该第二路由距离作为所述设定路由距离。
3.如权利要求2所述的方法,其特征在于,所述第一路由距离和第二路由距离是指数据包的路由跳数。
4.如权利要求3所述的方法,其特征在于,所述第一路由距离通过以下方式确定 将所述测试数据包中携带的目的端口号设置为移动终端不能正确接收该测试数据包的用户数据包UDP端口号,以及,逐渐增大预先设定的第三路由距离,针对每次增大后得到的路由距离执行以下操作 将本次得到的路由距离作为测试数据包的生存时间,向移动终端发送该测试数据包,并检测接收到的控制报文协议ICMP消息; 若所述ICMP消息携带的错误类型是端口不可达,则将本次得到的路由距离作为第一路由距离; 若所述ICMP消息携带的错误类型是超时,则继续增大路由距离; 或者, 逐渐减小预先设定的第四路由距离,针对每次减小后得到的路由距离执行以下操作将本次得到的路由距离作为测试数据包的生存时间,根据移动终端的IP地址和UDP端口确定接收测试数据包的移动终端,向该移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息; 若是,则继续减小路由距离; 否则,将本次得到的路由距离加I作为第一路由距离; 或者, 预先设定上限路由距离和下限路由距离,在每次上限路由距离或下限路由距离发生更新时,判断上限路由距离是否不小于下限路由距离,若是,则执行以下操作,直至上限路由距离小于下限路由距离 将本次得到上限路由距离和下限路由距离的平均值取整,得到第五路由距离,并将本次得到的第五路由距离作为测试数据包的生存时间,根据移动终端的IP地址和UDP端口确定接收测试数据包的移动终端,向该移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息; 若是,则将本次得到的第五路由距离的路由跳数减I后作为更新后的上限路由距离;否则,将本次得到的第五路由距离的路由跳数减I后作为更新后的下限路由距离;确定在上限路由距离小于下限路由距离时得到的第五路由距离,在以该第五路由距离为测试数据包的生存时间时,若接收到测试超时消息,则将该第五路由距离的路由跳数加I后作为第一路由距离;若接收到测试正确消息,则将该第五路由距离的路由跳数作为第一路由距离。
5.如权利要求2 4任一所述的方法,其特征在于,根据所述第一路由距离,确定产生的第二路由距离,具体包括 将第一路由距离的路由跳数减I后作为所述第二路由距离的最大值,以及将经过所述核心网防火墙时产生的路由跳数作为所述第二路由距离的最小值; 将不大于所述最大值且不小于所述最小值的路由跳数作为第二路由距离。
6.一种基于UDP的永远在线业务下传输心跳数据包的设备,其特征在于,所述设备包括 距离探测模块,用于确定作为心跳数据包生存时间的设定路由距离,所述设定路由距离使心跳数据包在经过核心网防火墙之后,到达移动终端所在的无线通信网络之前的一跳路由器; 数据包发送模块,用于向移动终端发送以所述设定路由距离作为生存时间的心跳数据包。
7.如权利要求6所述的设备,其特征在于,所述距离探测模块,包括 第一路由确定模块,用于向移动终端发送测试数据包,确定该测试数据包路由至移动终端时产生的第一路由距离; 第二路由确定模块,用于根据所述第一路由距离,确定测试数据包在经过核心网防火墙之后,且到达移动终端所在的无线通信网络之前的一跳路由时,产生的第二路由距离,并将该第二路由距离作为所述设定路由距离。
8.如权利要求7所述的设备,其特征在于,所述第一路由距离和第二路由距离是指数据包的路由跳数。
9.如权利要求8所述的设备,其特征在于, 所述第一路由确定模块,具体用于将所述测试数据包中携带的目的端口号设置为移动终端不能正确接收该测试数据包的用户数据包UDP端口号,以及,逐渐增大预先设定的第三路由距离,针对每次增大后得到的路由距离执行以下操作 将本次得到的路由距离作为测试数据包的生存时间,向移动终端发送该测试数据包,并检测接收到的控制报文协议ICMP消息; 若所述ICMP消息携带的错误类型是端口不可达,则将本次得到的路由距离作为第一路由距离; 若所述ICMP消息携带的错误类型是超时,则继续增大路由距离; 或者, 具体用于逐渐减小预先设定的第四路由距离,针对每次减小后得到的路由距离执行以下操作 将本次得到的路由距离作为测试数据包的生存时间,根据所述移动终端的IP地址和UDP端口,向所述移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息;若是,则继续减小路由距离; 否则,将本次得到的路由距离加I作为第一路由距离; 或者, 具体用于预先设定上限路由距离和下限路由距离,在每次上限路由距离或下限路由距离发生更新时,判断上限路由距离是否不小于下限路由距离,若是,则执行以下操作,直至上限路由距离小于下限路由距离 将本次得到上限路由距离和下限路由距离的平均值取整,得到第五路由距离,并将本次得到的第五路由距离作为测试数据包的生存时间,根据所述移动终端的IP地址和UDP端口,向所述移动终端发送该测试数据包,并判断是否接收到返回的测试回应消息;若是,则将本次得到的第五路由距离的路由跳数减I后作为更新后的上限路由距离;否则,将本次得到的第五路由距离的路由跳数减I后作为更新后的下限路由距离;确定在上限路由距离小于下限路由距离时得到的第五路由距离,在以该第五路由距离为测试数据包的生存时间时,若接收到测试超时消息,则将该第五路由距离的路由跳数加I后作为第一路由距离;若接收到测试正确消息,则将该第五路由距离的路由跳数作为第一路由距离。
10.如权利要求7 9任一所述的设备,其特征在于, 所述第二路由确定模块,具体用于将第一路由距离的路由跳数减I后作为所述第二路由距离的最大值,以及将经过所述核心网防火墙时产生的路由跳数作为所述第二路由距离的最小值,将不大于所述最大值且不小于所述最小值的路由跳数作为第二路由距离。
全文摘要
本发明公开了一种基于UDP的永远在线业务传输心跳数据包的方法及设备,主要内容包括在传输心跳数据包之前,确定能够使数据包穿过核心网防火墙但不进入移动终端所在的无线通信网络的生存时间,在每次传输心跳数据包时,按照该生存时间进行传输,一方面使心跳数据包能够穿过核心网防火墙,达到对终端与应用服务器之间长连接的保活目的,另一方面,心跳数据包并没有进入无线通信网络,不会增加无线通信网络的负担,也不会占用无线信道。
X技术网 原文链接:http://www.xjishu.com/zhuanli/62/201110113202.html

0 0