获取端到端网络时延的方法和装置与流程

文档序号:16463477发布日期:2019-01-02 22:40阅读:337来源:国知局
获取端到端网络时延的方法和装置与流程

本发明涉及互联网应用领域,尤其涉及一种获取端到端网络时延的方法和装置。



背景技术:

目前大量的互联网业务基于tcp(transmissioncontrolprotocol,传输控制协议)传输,典型的有web应用、http视频、ftp文件下载,运营商也有不少基于http的视频业务,如天翼高清等。

这些业务的质量好坏,很大程度上由下载速率决定。下载速率由底层的tcp协议的效率决定,通常取决于网络时延、丢包、终端处理能力、服务端处理能力、tcp重传算法等几个因素。其中,网络时延,是在对重点业务进行质量监测时重点关注的指标。

现有的业务质量监测方法通常会通过分析业务相关的tcp链接的握手时间来获得网络时延这一质量指标,但是握手时间每一个tcp链接仅有一个,所能提供的信息量太少,不足以持续反应网络问题。



技术实现要素:

本发明要解决的一个技术问题是提供一种能够准确掌握用户网络时延波动的方法和装置。

根据本发明一方面,提出一种获取端到端网络时延的方法,包括:从tcp协议层获取tcp数据流的往返时间rtt数据;将rtt数据与用户关联;根据rtt数据确定用户网络时延。

进一步地,该方法还包括:基于ip地址信息识别rtt数据对应的用户。

进一步地,该方法还包括:将用户的rtt数据进行统计计算;根据rtt统计数据确定用户网络时延。

进一步地,该方法还包括:将rtt数据与rtt统计数据上报至质量监测平台,以便质量监测平台进行故障分析或质量分析。

进一步地,定时从tcp协议层获取rtt数据;和/或由tcp协议层定时推送rtt数据。

根据本发明的另一方面,还提出一种获取端到端网络时延的装置,包括:数据获取单元,用于从tcp协议层获取tcp数据流的往返时间rtt数据;用户关联单元,用于将rtt数据与用户关联;时延确定单元,用于根据rtt数据确定用户网络时延。

进一步地,该装置还包括:用户识别单元,用于基于ip地址信息识别rtt数据对应的用户。

进一步地,该装置还包括:统计计算单元,用于将用户的rtt数据进行统计计算;时延确定单元用于根据rtt统计数据确定用户网络时延。

进一步地,该装置还包括:数据上报单元,用于将rtt数据与rtt统计数据上报至质量监测平台,以便质量监测平台进行故障分析或质量分析。

进一步地,数据获取单元用于定时从tcp协议层获取rtt数据,和/或接收由tcp协议层定时推送的rtt数据。

根据本发明的另一方面,还提出一种获取端到端网络时延的装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的方法。

根据本发明的另一方面,还提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述的方法的步骤。

与现有技术相比,本发明从tcp协议层获取tcp数据流的rtt数据,并将rtt数据与用户关联,能够准确掌握用户网络时延波动,为后续质量监测平台故障分析与质量分析提供数据。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同说明书一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1为本发明获取端到端网络时延的方法的一个实施例的流程示意图。

图2为本发明获取端到端网络时延的方法的另一个实施例的流程示意图。

图3为本发明获取端到端网络时延的装置的一个实施例的结构示意图。

图4为本发明获取端到端网络时延的装置的另一个实施例的结构示意图。

图5为本发明获取端到端网络时延的方案的一个实施例的结构示意图。

图6为本发明获取端到端网络时延的装置的再一个实施例的结构示意图。

图7为本发明获取端到端网络时延的装置的又一个实施例的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

申请人发现,使用ping包探测网络时延波动,由于ping包与真实业务流不同,可能ping包无问题但业务流有问题;另外,发ping包需要额外多发测试流增加负担且需要服务器支持ping,目前许多服务器禁ping。另外,使用tcp握手时间探测网络时延波动,由于tcp握手一次建链就一个数据,无法持续跟踪网络情况;如果在建立链接阶段时延较低,在后续数据传输过程中时延突然增加,这种异常情况仅通过握手时间无法探测到。

图1为本发明获取端到端网络时延的方法的一个实施例的流程示意图。该方法由http服务器执行,包括以下步骤:

在步骤110,从tcp协议层获取tcp数据流的rtt(roundtriptime,往返时间)数据。其中,可以对http服务器进行改造,读取tcp协议栈中对每条tcp数据流持续测量和计算的rtt时间并进行记录。

在步骤120,将rtt数据与用户关联。其中,可以基于ip地址信息识别每条tcp数据流的rtt数据对应的用户,并将rtt数据进行用户关联。

在步骤130,根据rtt数据确定用户网络时延。

在该实施例中,从tcp协议层获取tcp数据流的rtt数据,并将rtt数据与用户关联,能够准确掌握用户网络时延波动,为后续故障分析与质量分析提供数据。

图2为本发明获取端到端网络时延的方法的另一个实施例的流程示意图。该方法包括以下步骤:

在步骤210,tcp协议层上报每次测量的rtt数据。其中,可以定时从tcp协议层获取rtt数据,或由tcp协议层定时推送rtt数据。在一个实施例中,可以利用linux的tcpprobe对协议栈的tcp信息进行监听获取rtt数据。其中,tcpprobe是linux的一个内核模块,它可以记录一次tcp连接的状态参数,包括序列号、窗口大小、rtt等;tcpprobe的原理是利用kprobe在tcp_recv函数中强行插入探测点记录相关信息,内核执行到该探测点时,会先与探测点相关的关联函数,然后继续执行正常的代码,在这个过程中完成相关tcp参数的记录工作,进而确定rtt数据。

在步骤220,基于ip地址信息识别rtt数据对应的用户。例如,利用socket中的ip地址信息将采集到的rtt数据进行用户关联。

在步骤230,将rtt数据与用户关联,以用户为维度进行rtt数据的存储,并进行统计计算。例如,对用户的历史rtt数据进行平均值、标准差等统计计算,进而全面反映网络波动情况。

在步骤240,将rtt数据与rtt统计数据上报至质量监测平台,以便质量监测平台进行故障分析或质量分析。其中,也可以由质量监测平台按需获取rtt数据或rtt统计数据。根据rtt数据或rtt统计数据能够确定用户网络时延,质量监测平台进而能够根据rtt数据或rtt统计数据辅助进行故障定位等。

在该实施例中,利用tcp协议栈自发测量的rtt时间进行辅助分析,帮助质量监测平台掌握用户网络时延,能够为故障分析与质量分享提供数据。

另外,与tcp握手时延法相比,本发明从服务器端读取tcp协议为设置超时重发计时器而计算的rtt时间,每次收到响应计算一次rtt时间,一次tcp连接将会得到n次数据。

图3为本发明获取端到端网络时延的装置的一个实施例的结构示意图。该装置可以设置在http服务器,包括数据获取单元310、用户关联单元320和时延确定单元330,其中:

数据获取单元310用于从tcp协议层获取tcp数据流的rtt数据。其中,数据获取单元310读取tcp协议栈中对每条tcp数据流持续测量和计算的rtt时间并进行记录。

用户关联单元320用于将rtt数据与用户关联。其中,可以基于ip地址信息识别每条tcp数据流的rtt数据对应的用户,并将rtt数据进行用户关联。

时延确定单元330用于根据rtt数据确定用户网络时延。

在该实施例中,从tcp协议层获取tcp数据流的rtt数据,并将rtt数据与用户关联,能够准确掌握用户网络时延波动,为后续故障分析与质量分析提供数据。

图4为本发明获取端到端网络时延的装置的另一个实施例的结构示意图。该装置包括数据获取单元410、用户识别单元420、用户关联单元430、统计计算单元440、时延确定单元450和数据上报单元460,其中:

数据获取单元410用于定时从tcp协议层获取rtt数据,或接收由tcp协议层定时推送的rtt数据。在一个实施例中,数据获取单元410可以利用linux的tcpprobe对协议栈的tcp信息进行监听获取rtt数据。其中,tcpprobe是linux的一个内核模块,它可以记录一次tcp连接的状态参数,包括序列号、窗口大小、rtt等;tcpprobe的原理是利用kprobe在tcp_recv函数中强行插入探测点记录相关信息,内核执行到该探测点时,会先与探测点相关的关联函数,然后继续执行正常的代码,在这个过程中完成相关tcp参数的记录工作,进而确定rtt数据。

用户识别单元420用于基于ip地址信息识别rtt数据对应的用户。例如,利用socket中的ip地址信息识别rtt数据对应的用户。

用户关联单元430用于将rtt数据与用户关联,以用户为维度进行rtt数据的存储。

统计计算单元440用于将用户的rtt数据进行统计计算。例如,对用户的历史rtt数据进行平均值、标准差等统计计算,进而全面反映网络波动情况。

时延确定单元450用于根据rtt数据与rtt统计数据确定用户网络时延。

数据上报单元460用于将rtt数据与rtt统计数据上报至质量监测平台,以便质量监测平台进行故障分析或质量分析。如图5所示,http服务器510中的获取端到端网络时延的装置520将数据发送至质量监测平台530。其中,也可以由质量监测平台按需获取rtt数据或rtt统计数据。根据rtt数据或rtt统计数据能够确定用户网络时延,质量监测平台进而能够根据rtt数据或rtt统计数据辅助进行故障定位等。

在该实施例中,利用tcp协议栈自发测量的rtt时间进行辅助分析,帮助质量监测平台掌握用户网络时延,能够为故障分析与质量分享提供数据。

图6为本发明获取端到端网络时延的装置的再一个实施例的结构示意图。该装置包括存储器610和处理器620。其中:

存储器610可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1-2所对应实施例中的指令。处理器620耦接至存储器610,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器620用于执行存储器中存储的指令,能够准确掌握用户网络时延波动,为后续故障分析与质量分析提供数据。

在一个实施例中,还可以如图7所示,该装置700包括存储器710和处理器720。处理器720通过bus总线730耦合至存储器710。该装置700还可以通过存储接口740连接至外部存储装置750以便调用外部数据,还可以通过网络接口760连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。

在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够准确掌握用户网络时延波动,为后续故障分析与质量分析提供数据。

在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1-2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1