一种通信质量检测方法及检测服务器与流程

文档序号:11138377阅读:415来源:国知局
一种通信质量检测方法及检测服务器与制造工艺
本发明涉及通信
技术领域
,具体涉及一种通信质量检测方法及检测服务器。
背景技术
:随着游戏、聊天软件等应用的发展,用户侧的应用客户端与网络侧的应用服务器间的通信越来越频繁,为保障应用客户端与应用服务器的正常通信,对应用服务器的通信质量进行检测显得尤为必要。目前主要通过检测数据到达应用服务器、与应用服务器相应反馈数据的情况,实现针对应用服务器的通信质量检测。由于针对应用服务器的通信质量检测,涉及到给应用服务器发送数据,及需要应用服务器相应的反馈数据,因此针对应用服务器的通信质量检测,往往会影响到应用服务器所提供的应用服务;因此如何在检测通信质量时,降低对应用服务器的应用服务的影响,成为了本领域技术人员需要考虑的问题。技术实现要素:有鉴于此,本发明实施例提供一种通信质量检测方法及检测服务器,以在检测通信质量时,降低对应用服务器的应用服务的影响。为实现上述目的,本发明实施例提供如下技术方案:一种通信质量检测方法,应用于检测服务器,所述方法包括:确定待检测的应用服务器;生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;向所述应用服务器发送所述检测包;接收所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达;根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量。本发明实施例还提供一种检测服务器,包括:待检测应用服务器确定模块,用于确定待检测的应用服务器;检测包生成模块,用于生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;检测包发送模块,用于向所述应用服务器发送所述检测包;响应包接收模块,用于接收所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达;通信质量确定模块,用于根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量。基于上述技术方案,本发明实施例提供的通信质量检测方法中,检测服务器针对待检测的应用服务器,可生成针对所述应用服务器的检测包,且所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;从而通过向所述应用服务器发送所述检测包,可使得所述应用服务器反馈指示所述检测包的目的端口不可达的响应包;进而检测服务器可根据所述检测包和针对所述检测包的响应包,实现应用服务器的通信质量的检测。由于检测服务器是通过向应用服务器的不存在端口发送检测包,来实现通信质量的检测,而应用服务器针对不存在端口的检测包的处理,并不会影响应用服务器的应用服务,因此本发明实施例提供的通信质量检测方法,能够在检测通信质量时,降低对应用服务器的应用服务的影响。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本发明实施例提供的一种通信质量检测系统的结构框图;图2为本发明实施例提供的通信质量检测系统的另一结构框图;图3为本发明实施例提供的通信质量检测方法的信令流程图;图4为本发明实施例提供的通信质量检测方法的流程图;图5为一个设定时间段内,各个第一定时时间的数据处理安排示意图;图6为本发明实施例提供的生成检测包的方法流程图;图7为检测服务器与一应用服务器交互检测包和响应包的示意图;图8为检测服务器与一应用服务器交互UDP检测包和ICMPportunreachable响应包的示意图;图9为数据结构的内容示意图;图10为应用包的传输关系示意图;图11为检测列表的更新示意图;图12为加速落地服务器向应用客户端反馈通信质量的示意图;图13为应用场景示意图;图14为本发明实施例提供的检测服务器的结构框图;图15为本发明实施例提供的检测包生成模块的结构框图;图16为本发明实施例提供的检测服务器的另一结构框图;图17为检测服务器的硬件结构框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例提供的一种通信质量检测系统的结构框图,基于图1所示通信质量检测系统可实现针对应用服务器的通信质量检测,参照图1,该通信质量检测系统可以包括:检测服务器10和至少一个应用服务器20;检测服务器10为本发明实施例提供的对应用服务器20进行通信质量检测的服务器;可选的,应用客户端在与应用服务器进行通信时,往往会通过加速接入服务器、加速落地服务器与应用服务器进行通信;本发明实施例也可通过加速落地服务器实现检测服务器,即可为加速落地服务器添加检测应用服务器的通信质量的功能,具体系统结构可如图2所示;可选的,检测服务器10也可以是单独的服务器;应用服务器20为网络侧设置的与应用客户端相配合的服务设备;在本发明实施例中,检测服务器10可对至少一个应用服务器进行通信质量的检测,即检测服务器可检测一个或多个应用服务器的通信质量,而一个应用服务器一般对应一个应用;此处的一个应用服务器可以是为对应的应用提供网络服务的服务器集群,也可能由单独的服务器实现。结合图1所示系统,图3示出了本发明实施例提供的通信质量检测方法的信令流程图,参照图3,该流程可以包括:步骤S10、检测服务器确定待检测的应用服务器;可选的,检测服务器可设置有检测列表,检测列表中可记录待检测的应用服务器的服务器标识(如应用服务器的通信地址);针对每个待检测的应用服务器,检测服务器可依据检测列表中相应记录的服务器标识,定时的向应用服务器发送检测包,从而接收应用服务器相应反馈的响应包,实现对应用服务器的通信质量的检测,针对各应用服务器均作此处理,则可实现对检测列表中记录的各应用服务器的通信质量的检测;可选的,本发明实施例可通过在检测列表中新增应用服务器的服务器标识,在检测列表中更新需检测通信质量的应用服务器;可选的,本发明实施例也可以通过向检测服务器指定需检测通信质量的应用服务器,实现对待检测的应用服务器的确定。步骤S11、所述检测服务器生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;本发明的发明人发现,如果向应用服务器的不存在端口发送检测包,则应用服务器会相应的返回端口不可达的信息,通过分析检测服务器向应用服务器发送的检测包,与应用服务器相应反馈的端口不可达的信息,则可实现对应用服务器的通信质量的检测;且,由于是向应用服务器的不存在端口发送检测包,因此应用服务器针对检测包的处理,并不会影响应用服务器的应用服务;基于此,本发明实施例设置检测包指示的目的端口的端口号,不处于所述应用服务器的端口号范围,从而向应用服务器发送该检测包,来实现向应用服务器的不存在端口发送检测包;可选的,在本发明实施例中,针对各个待检测的应用服务器,检测服务器可每隔第一定时时间,定时的生成针对该应用服务器的检测包,且所生成的检测包指示的目的端口不为该应用服务器的端口(即检测包指示的目的端口的端口号,不处于应用服务器的端口号范围),从而每隔第一定时时间,定时的向应用服务器的不存在端口发送检测包;可选的,检测包指示的目的端口的端口号,可以大于所述应用服务器的端口号。步骤S12、所述检测服务器向所述应用服务器发送所述检测包;可选的,检测服务器可基于每隔第一定时时间生成的针对所述应用服务器的检测包,定时的向所述应用服务器的不存在端口发送检测包。步骤S13、所述应用服务器向所述检测服务器反馈针对所述检测包的响应包,所述响应包指示所述检测包的目的端口不可达;应用服务器在接收到检测服务器发送的检测包后,可分析检测包的目的端口,确定检测包指示的目的端口不为所述应用服务器自身的端口,从而生成指示所述检测包的目的端口不可达的响应包,并向检测服务器反馈针对检测包的响应包;在理想情况下,应用服务器针对检测服务器定时发送的每个检测包,可均反馈相应的响应包,使得检测服务器针对定时发送的每个检测包,可获取到相应的响应包;但在通信质量较差(如存在丢包的情况)时,应用服务器针对每个检测包可能无法均反馈响应包,即检测服务器针对每个发送的检测包,可能无法均获取到相应的响应包。步骤S14、所述检测服务器接收所述应用服务器反馈的针对所述检测包的响应包;相应的,检测服务器可接收到所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达。步骤S15、所述检测服务器根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量。通信质量可以通过至少一个通信质量指标表示,通信质量指标如时延、时延波动、丢包率等,即通信质量可以通过时延、时延波动、丢包率等通信质量指标中的至少一个表示;可选的,检测服务器可根据每隔第一定时时间发送的检测包和相应接收到的响应包,统计出设定时间段内(设定时间段可以由至少一个第一定时时间构成)向某一应用服务器发送的检测包,及相应接收到的该应用服务器的响应包,从而统计出设定时间段内平均的时延、时延波动、丢包率等,确定出该应用服务器的通信质量;可选的,将设定时间段内一应用服务器平均的时延、时延波动、丢包率等,作为该应用服务器的通信质量可以是一种实现方式;本发明实施例也可以基于检测服务器向应用服务器一次发送的检测包和相应接收的响应包,确定该应用服务器的通信质量。针对每个待检测的应用服务器,通过图3所示流程处理,可得到每个应用服务器的通信质量。本发明实施例提供的通信质量检测方法中,检测服务器针对待检测的应用服务器,可生成针对所述应用服务器的检测包,且所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;从而通过向所述应用服务器发送所述检测包,可使得所述应用服务器反馈指示所述检测包的目的端口不可达的响应包;进而检测服务器可根据所述检测包和针对所述检测包的响应包,实现应用服务器的通信质量的检测。由于检测服务器是通过向应用服务器的不存在端口发送检测包,来实现通信质量的检测,而应用服务器针对不存在端口的检测包的处理,并不会影响应用服务器的应用服务,因此本发明实施例提供的通信质量检测方法,能够在检测通信质量时,降低对应用服务器的应用服务的影响。可选的,针对每个待检测的应用服务器,检测服务器可每隔第一定时时间向应用服务器发送一次检测包,并通过设定时间段内(由至少一个第一定时时间构成)向应用服务器发送的检测包,和应用服务器针对各检测包相应反馈的响应包,统计出设定时间段内平均的时延、时延波动、丢包率等通信质量指标,实现对应用服务器的通信质量的检测;可选的,图4示出了本发明实施例提供的通信质量检测方法的流程图,该方法可应用于检测服务器,参照图4,该方法可以包括:步骤S100、检测服务器确定待检测的应用服务器;可选的,检测服务器可设置有检测列表,所述检测列表记录有至少一个应用服务器的服务器标识的;检测服务器可调取该检测列表,将检测列表中所记录的各应用服务器,分别确定为待检测的应用服务器。步骤S110、检测服务器判断当前时间是否达到设定的第一定时时间,若是,执行步骤S120,若否,执行步骤S110;步骤S120、检测服务器生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号,大于所述应用服务器的端口号;可见,检测服务器可每隔第一定时时间生成针对待检测的应用服务器的检测包。步骤S130、所述检测服务器向所述应用服务器发送所述检测包,返回步骤S110,并执行步骤S140;步骤S140、所述检测服务器接收所述应用服务器反馈的针对所述检测包的响应包,所述响应包指示所述检测包的目的端口不可达;步骤S150、检测服务器判断当前时间是否达到设定时间段,所述设定时间段由至少一个第一定时时间构成,若是,执行步骤S160,若否,执行步骤S150;步骤S160、检测服务器根据所述设定时间段内,各发送的检测包及各检测包相应的响应包,统计平均的通信质量指标,得到所述设定时间段内所述应用服务器的通信质量,返回步骤S150。可见,针对每个待检测的应用服务器,检测服务器可每隔第一定时时间循环的向应用服务器发送检测包,并且可每隔设定时间段循环的统计出相应的平均时延、时延波动、丢包率等通信质量指标,以每隔设定时间段循环的检测出应用服务器的通信质量。可选的,本发明实施例可设置一个设定时间段的最后若干个第一定时时间停止发送检测包,而仅是接收响应包,从而使得在一个设定时间段结束时,检测服务器能够留有足够的时间来接收响应包;保障一个设定时间段结束,进行应用服务器的通信质量检测时,大部分发送的检测包均可对应有应用服务器反馈的响应包;可选的,图5示出了一个设定时间段内,各个第一定时时间的数据处理安排示意图,可参照;从图5中可以看出,一个设定时间段可以由6个第一定时时间构成,除最后一个第一定时时间,检测服务器需每隔一个第一定时时间向应用服务器发送一次检测包;显然,图5所示仅是示意说明。可选的,为明确应用服务器反馈的响应包,是针对检测服务器发送的哪个检测包;本发明实施例可确定不小于应用服务器的端口号的端口号基数,并在每次生成检测包时,将检测包当前的发送序数与端口号基数相组合,确定出检测包指示的目的端口的端口号,从而使得每个生成的检测包可按照检测包指示的端口号中的发送序数进行区分,且可通过端口号中的端口号基数保证检测包指示的目的端口的端口号,大于应用服务器的端口号;相应的,图6示出了本发明实施例提供的生成检测包的方法流程图,该方法可应用于检测服务器,参照图6,该方法可以包括:步骤S200、确定需生成的检测包的当前发送序数;步骤S210、将所述当前发送序数与预定的端口号基数相组合,确定出需生成的检测包指示的目的端口的端口号,以所确定的端口号生成检测包;其中,端口号基数不小于应用服务器的端口号。可选的,检测包可以具有目的端口号指示区,本发明实施例可将目的端口号指示区中的内容填充为所确定的端口号,从而以所确定的端口号生成检测包;可选的,在将当前发送序数与端口号基数相组合时,本发明实施例可在端口号基数的末位加上当前发送序数,从而实现当前发送序数与端口号基数的组合。以应用服务器的端口号为30000举例,由于端口号基数不小于应用服务器的端口号,可以设置端口号基数也为30000;相应的,在生成向某一应用服务器发送的第一个检测包时,当前发送序数为1,则可在端口号基数30000的末位加上当前发送序数1,得到第一个检测包指示的目的端口的端口号30001,从而保障所生成的检测包指示的目的端口的端口号,大于应用服务器的端口号,且检测包指示的目的端口的端口号中具有标识该检测包的发送序数;同理,在生成向某一应用服务器发送的第二个检测包时,当前发送序数为2,则可得到第二个检测包指示的目的端口的端口号30002;在生成向某一应用服务器发送的第三个检测包时,当前发送序数为3,则可得到第三个检测包指示的目的端口的端口号30003;可见,针对某一应用服务器生成的各检测包,可按照检测包指示的端口号中的发送序数进行区分,如第一个检测包指示的端口号中的末位数为1,第二个检测包指示的端口号中的末位数为2;且每个检测包可通过端口号中的端口号基数,保证检测包最终指示的目的端口的端口号,大于应用服务器的端口号。相应的,应用服务器在接收到检测包后,由于检测包指示的目的端口的端口号大于应用服务器的端口号,因此应用服务器在反馈响应包时,会将响应包所针对的检测包指示的目的端口的端口号一同携带;即应用服务器所反馈的响应包可以携带有相应检测包指示的目的端口的端口号;相应的,图7示出了检测服务器与一应用服务器交互检测包和响应包的示意图,可参照。可选的,检测包可以是UDP(UserDataProtocol,用户数据报协议)协议格式,即本发明实施例可通过生成UDP检测包的形式,实现针对应用服务器的通信质量检测;相比于ICMP(InternetControlMessageProtocol,Internet控制报文协议)协议格式(出于网络安全考虑,ICMP协议格式在部分网络中可能存在禁用的情况),UDP协议一般在网络中不会禁止使用,且UDP协议靠近应用层协议,对于网络的通信质量检测来说更为可靠有效;因此检测包采用UDP协议格式,比检测包采用ICMP协议格式而言,能够减少检测包采用的协议格式被网络禁止的情况,提升本发明实施例提供的通信质量检测的网络适用范围,且UDP协议靠近应用层协议,可使得检测的通信质量结果贴近应用层的检测结果,使得检测结果的准确性较高;因此检测包采用UDP协议格式具有检测稳定有效、可靠性高、准确性高等优点,本发明实施例优选采用UDP协议格式生成检测包;当然,检测包采用UDP协议格式仅是一种优选方式,在本发明实施例指示的向应用服务器的不存在端口发送检测包,则应用服务器会相应的返回端口不可达的信息的内容下,检测包也可采用其他协议格式实现。UDP包一般具有报头区域和数据区域,报头区域可以具有目的端口号指示区,本发明实施例在以UDP协议格式生成检测包时,若确定了当前需生成的UDP检测包指示的目的端口的端口号后,可在UDP检测包的报头区域的目的端口号指示区中,填充所确定的端口号。相应的,检测服务器在向应用服务器的不存在端口发送UDP检测包后,应用服务器将反馈ICMPportunreachable(ICMP端口不可达)的响应包,并随同携带相应UDP检测包所指示的目的端口的端口号;图8示出了检测服务器与一应用服务器交互UDP检测包和ICMPportunreachable响应包的示意图,可参照。检测服务器每隔设定时间段,可基于设定时间段发送的各检测包指示的目的端口的端口号中的发送序数,及接收的各响应包携带的端口号中的发送序数,确定各个响应包相应的检测包;从而基于各个响应包相应的检测包,确定各个检测包相应的通信质量指标,进而统计出设定时间段内平均的通信质量指标,得到应用服务器的通信质量;以通信质量指标为时延为例,检测服务器可在发送每个检测包时,记录各检测包的发送时间,并在接收应用服务器反馈的响应包时,记录各响应包相应的接收时间;在一个设定时间内,检测服务器基于各个检测包指示的端口号中的发送序数,及各个响应包携带的端口号中的发送序数,确定了各个响应包相应的检测包后,可将各个响应包的发送时间与相应的检测包的接收时间的时间差,确定为各个响应包相应的时延,从而基于各个响应包相应的时延,确定出一个设定时间内的平均时延,得到应用服务器的通信质量;通信质量指标为时延波动、丢包率等情况下,确定通信质量的过程类似;可选的,由于应用服务器反馈的响应包指示的是检测包的目的端口不可达,即应用服务器反馈的是检测包为错误报文的响应信息,因此为使得检测服务器能够接收应用服务器反馈的响应包,本发明实施例可在检测服务器的内核中为Socket(套接字)设置,能够接收应用服务器反馈的检测包为错误报文的响应包的选项,具体设置可以如下表1所示;表1可选的,在内核中为Socket设置能够接收应用服务器反馈的检测包为错误报文的响应包的选项时,本发明实施例可以使用setsockopt函数进行设置,如通过如下设置实现:intenabled=1;setsockopt(sock,SOL_IP,IP_RECVERR,&enabled,sizeof(enabled))。可选的,为确定时延等通信质量指标,检测服务器在接收到应用服务器反馈的响应包后,需为所接收的响应包加上接收时间戳,从而便于后续通过检测包发送时所加的发送时间戳,和相应响应包接收时所加的接收时间戳,实现检测包相应的时延等通信质量指标的确定;为使得检测服务器能够对所接收的响应包加上接收时间戳,本发明实施例可在检测服务器的内核中为Socket设置能够给响应包加上接收时间戳的选项,具体设置可以如下表2所示;socket选项设置作用SOL_SOCKET/SO_TIMESTAMP用于接收的响应包加上接收时间戳表2可选的,在内核中为Socket设置能够给响应包加上接收时间戳的选项时,本发明实施例可使用setsockopt函数进行设置,如通过如下设置实现:intenabled=1;setsockopt(sock,SOL_SOCKET,SO_TIMESTAMP,&enabled,sizoef(enabled))。一般而言,检测服务器从应用服务器接收数据包时,需要使用recvmsg函数,而如果接收的是应用服务器反馈的指示检测包为错误报文的响应包时,检测服务器需要为该响应包设置MSG_ERRQUEUE标识;其中,recvmsg函数是socket套接字的高级用法,用于获取更多的信息,譬如一些多缓冲区和辅助性数据,返回的响应包(如ICMP错误报文)就在辅助性数据里面;设置MSG_ERRQUEUE就是用于接收返回的响应包,用于后面从中得到响应包的接收时间戳,从而完成一次通信质量指标的检测;在一次通信质量指标检测过程中可能涉及到msghdr和cmsghdr两个数据结构,msghdr和cmsghdr两个数据结构的内容如图9所示出,这两个数据结构是socket内核态的数据结构,可以用于处理时间戳选项和ICMP报文错误信息。可选的,在本发明实施例中,检测服务器可通过加速落地服务器实现,具体的,本发明实施例可在加速落地服务器中添加检测应用服务器的通信质量的功能,从而使得加速落地服务器可实施本发明实施例提供的通信质量检测方法;加速落地服务器与应用客户端、应用服务器间的系统结构可如图2所示。在本发明实施中,应用客户端可从应用客户端与加速落地服务器间的众多加速接入服务器中,选择用于加速的加速接入服务器,并通过所选择的加速接入服务器将加速落地到加速落地服务器,由加速落地服务器实现应用客户端与应用服务器间的数据交互;一方面,应用客户端可通过加速接入服务器将应用包,传输给加速落地服务器,再由加速落地服务器将应用包传输给应用服务器;具体信令传输关系可如图10所示;在游戏场景下,应用包可以是游戏包;加速落地服务器可维持有检测列表,通过检测列表记录待检测的应用服务器的服务器标识;当加速落地服务器接收到应用客户端传输的应用包后,可判断应用包传输至的应用服务器的服务器标识(服务器标识如应用服务器的通信地址),是否记录在检测列表中;若否,则加速落地服务器可在检测列表中添加所述应用包传输至的应用服务器的服务器标识,从而对检测列表中记录的应用服务器的服务器标识进行更新;相应的,图11示出了检测列表的更新示意图,可参照。对于检测列表中记录的各待检测的应用服务器,加速落地服务器可每隔第一定时时间向应用服务器发送一次检测包,并通过设定时间段内所发送的各检测包与各检测包相应的响应包,实现应用服务器的通信质量的检测,从而每隔设定时间段确定一次各应用服务器最新的通信质量;具体的检测过程可以参照上文相应部分;另一方面,应用客户端除通过加速落地服务器向应用服务器发送应用包外,还可每隔第二定时时间通过加速接入服务器,向加速落地服务器发送通信质量请求包,通信质量请求包用于请求应用客户端所通信的应用服务器的通信质量;此处的第二定时时间,与上述的第一定时时间可以不同;相应的,加速落地服务器在接收到应用客户端发送的通信质量请求包后,加速落地服务器可确定所述应用客户端对应通信的应用服务器,从而加速落地服务器可从所确定的各应用服务器最新的通信质量中,调取与所述应用客户端对应通信的应用服务器相应的通信质量,并向应用客户端反馈所调取的通信质量,实现应用客户端对相通信的应用服务器的通信质量的确定;可选的,图12示出了加速落地服务器向应用客户端反馈通信质量的示意图,可参照;需要说明的是,在应用客户端发送通信质量请求包时,应用客户端与相通信的应用服务器的通信链路是已建立好的,加速落地服务器接收到应用客户端发送的通信质量请求包后,可基于该应用客户端的通信链路,确定与该应用客户端相通信的应用服务器,从而调取与所述应用客户端对应通信的应用服务器相应的通信质量;具体的,加速落地服务器可记录各应用客户端的通信链路,所表示的应用客户端的客户端标识与应用服务器的服务器标识的对应关系,从而通过发送通信质量请求包的应用客户端的客户端标识,确定与该应用客户端相通信的应用服务器的服务器标识。可选的,应用客户端在确定相通信的应用服务器的通信质量后,可判断应用服务器的通信质量是否符合预定质量条件(如时延是否达到预定时延要求等),并在判断应用服务器的通信质量符合预定质量条件时,确定加速落地服务器与应用服务器间的通信质量良好,应用服务器可提供的较好的通信服务;同时,应用客户端可判断当前接入的加速接入服务器的通信质量,在当前接入的加速接入服务器的通信质量,不符合预定加速质量条件时,应用客户端在应用服务器可提供较好的通信服务的前提下,可重新选择通信质量符合预定加速质量条件的加速接入服务器,并切换接入到重新选择的加速接入服务器,实现在用户无感知情况下的加速切换,使得应用客户端在与应用服务器的交互过程中维持较好的通信质量。可选的,本发明实施例提供的通信质量检测方法,可对任意的有通信质量检测需求的应用服务器进行通信质量检测,包括应用服务器的内部处理逻辑不为技术人员知晓的黑盒场景,即在应用服务器的内部处理逻辑不为技术人员知晓的黑盒场景下,也可通过本发明实施例提供的通信质量检测方法,对应用服务器进行通信质量的检测。在本发明实施例提供的通信质量检测方法可应用于游戏场景,图13示出了本发明实施例提供的通信质量检测方法的应用场景示意图,参照图13,游戏客户端(应用客户端的一种形式)可通过当前接入的加速接入服务器,加速落地服务器与游戏服务器(应用服务器的一种形式)进行游戏包的交互;加速落地服务器在接收到游戏包后,可判断游戏包需到达的游戏服务器的通信地址,是否记录在加速落地服务器的检测列表中,若否,则加速落地服务器可在检测列表中添加该游戏服务器的通信地址;基于检测列表中记录的各游戏服务器的通信地址,针对各游戏服务器,加速落地服务器可每隔第一定时时间向游戏服务器发送检测包,检测包指示的目的端口的端口号,大于该游戏服务器的端口号;具体的,每次发送的检测包所指示的目的端口的端口号,可以是每次的发送序数与端口号基数的组合;可选的,检测包可以是UDP检测包;相应的,每隔设定时间段,加速落地服务器可通过设定时间段内发送给游戏服务器的检测包,和游戏服务器针对各检测包相应反馈的响应包,确定出各检测包相应的通信质量指标,从而统计出设定时间段内平均的通信质量指标,实现对游戏服务器的通信质量的确定;加速落地服务器每隔设定时间段确定的各游戏服务器可进行记录;在加速落地服务器检测游戏服务器的通信质量的过程中,游戏客户端可每隔第二定时时间向游戏服务器发送一次通信质量请求包;加速落地服务器接收到通信质量请求包后,可基于最新确定的各游戏服务器的通信质量,调取与该游戏客户端相通信的游戏服务器的通信质量,并向该游戏客户端反馈相应的通信质量,使得游戏客户端每隔第二定时时间可确定一次相通信的游戏服务器的通信质量;游戏客户端在确定相通信的游戏服务器的通信质量符合预定通信质量条件,而当前接入的加速接入服务器的通信质量,不符合预定加速质量条件时,游戏客户端可重新选择通信质量符合预定加速质量条件的加速接入服务器,并切换接入到重新选择的加速接入服务器,在用户无感知的情况下,实现加速切换。下面对本发明实施例提供的检测服务器进行介绍,下文描述的检测服务器可与上文描述的通信质量检测方法相互对应参照;下文描述的检测服务器的模块架构,可以认为是检测服务器为实现通信质量检测所需设置的功能模块架构。图14为本发明实施例提供的检测服务器的结构框图,参照图14,该检测服务器可以包括:待检测应用服务器确定模块100,用于确定待检测的应用服务器;检测包生成模块200,用于生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;检测包发送模块300,用于向所述应用服务器发送所述检测包;响应包接收模块400,用于接收所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达;通信质量确定模块500,用于根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量。可选的,所述检测包指示的目的端口的端口号,大于所述应用服务器的端口号。可选的,图15示出了本发明实施例提供的检测包生成模块200的可选结构,参照图15,检测包生成模块200可以包括:发送序数确定单元210,用于确定所述检测包的当前发送序数;组合单元220,用于将所述当前发送序数与预定的端口号基数相组合,确定所述检测包指示的目的端口的端口号;其中,所述端口号基数不小于应用服务器的端口号;检测包生成执行单元230,用于以所确定的端口号生成检测包。可选的,检测包生成执行单元230具体可用于,将所述检测包的目的端口号指示区中的内容填充为所确定的端口号。可选的,检测包可以是UDP协议格式的,相应的,检测包可以是UDP检测包。可选的,检测包生成模块200可每隔第一定时时间,生成一次针对所述应用服务器的检测包;相应的,检测包发送模块300具体可用于,每隔第一定时时间,将所生成的检测包发送给所述应用服务器;相应的,通信质量确定模块500具体可用于,每隔设定时间段,确定设定时间段内向所述应用服务器发送的检测包,及相应接收到的所述应用服务器的响应包,以每隔设定时间段统计平均的通信质量指标,确定出所述应用服务器各设定时间段相应的通信质量;其中,一个设定时间段由至少一个第一定时时间构成。可选的,检测服务器还可在每个设定时间段的最后若干个第一定时时间停止发送检测包。可选的,所述检测包指示的端口号可以由,所述检测包的当前发送序数和预定的端口号基数组合而成;所述响应包可以携带有相应的检测包所指示的端口号;相应的,通信质量确定模块500在确定设定时间段内向所述应用服务器发送的检测包,及相应接收到的所述应用服务器的响应包时,具体可用于,根据设定时间段发送的各检测包指示的目的端口的端口号中的发送序数,及接收的各响应包携带的端口号中的发送序数,确定各个响应包相应的检测包。可选的,检测服务器还可在内核中为套接字Socket设置能够接收应用服务器反馈的响应包的选项;在内核中为Socket设置能够给响应包加上接收时间戳的选项。可选的,检测服务器可以是加速落地服务器;相应的,图16示出了本发明实施例提供的检测服务器的另一结构框图,结合图14和图16所示,该检测服务器还可以包括:通信质量发送模块600,用于每隔第二定时时间接收应用客户端发送的通信质量请求包;确定与所述应用客户端相通信的应用服务器;从最新确定的各应用服务器的通信质量中,调取与所述应用客户端相通信的应用服务器的通信质量。可选的,检测服务器可以是加速落地服务器;相应的,待检测应用服务器确定模块100具体可用于,调取预设置的检测列表,所述检测列表记录有至少一个应用服务器的服务器标识的;将检测列表中所记录的各应用服务器,分别确定为待检测的应用服务器;相应的,检测服务器还可用于,判断所述应用包传输至的应用服务器的服务器标识,是否记录在所述检测列表中;若判断所述应用包传输至的应用服务器的服务器标识,未记录在所述检测列表中,在所述检测列表中添加所述应用包传输至的应用服务器的服务器标识。本发明实施例提供的检测服务器,能够在检测通信质量时,降低对应用服务器的应用服务的影响;同时,具有检测稳定有效、可靠性高、准确性高等优点。可选的,图17示出了检测服务器的硬件结构框图,参照图17,该检测服务器可以包括:处理器1,通信接口2,存储器3和通信总线4;其中处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;处理器1,用于执行程序;存储器3,用于存放程序;程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。其中,程序可具体用于:确定待检测的应用服务器;生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;向所述应用服务器发送所述检测包;接收所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达;根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量。本发明实施例还提供一种通信质量检测系统,其结构可以如图1所示,包括:检测服务器10,应用服务器20;其中,检测服务器用于,确定待检测的应用服务器;生成针对所述应用服务器的检测包,所述检测包指示的目的端口的端口号不处于所述应用服务器的端口号范围;向所述应用服务器发送所述检测包;接收所述应用服务器反馈的针对所述检测包的响应包,且所述响应包指示所述检测包的目的端口不可达;根据所述检测包和针对所述检测包的响应包,确定所述应用服务器的通信质量;所述应用服务器用于,接收所述检测服务器发送的检测包,向所述检测服务器反馈针对所述检测包的响应包,所述响应包指示所述检测包的目的端口不可达。可选的,所述检测服务器可以为加速落地服务器;相应的,系统结构可以如图2所示,还包括:应用客户端,加速接入服务器;其中,所述应用客户端用于,通过加速接入服务器和加速落地服务器,向所述应用服务器发送应用包;及每隔第二定时时间通过加速接入服务器向加速落地服务器发送通信质量请求包,并接收所述加速落地服务器反馈的与所述应用客户端相通信的应用服务器的通信质量;所述检测服务器还用于,每隔第二定时时间接收应用客户端发送的通信质量请求包;确定与所述应用客户端相通信的应用服务器;从最新确定的各应用服务器的通信质量中,调取与所述应用客户端相通信的应用服务器的通信质量。可选的,所述检测服务器可以为加速落地服务器,相应的,检测服务器可以维持有检测列表,所述检测列表记录有至少一个应用服务器的服务器标识的;检测服务器可将检测列表中所记录的各应用服务器,分别确定为待检测的应用服务器;当检测服务器将应用客户端发送的应用包传输至应用服务器时,检测服务器可判断所述应用包传输至的应用服务器的服务器标识,是否记录在所述检测列表中;若否,则检测服务器可在所述检测列表中添加所述应用包传输至的应用服务器的服务器标识。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或
技术领域
内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1