一种获取RTT的方法、装置及系统制造方法及图纸

技术编号:19436551 阅读:23 留言:0更新日期:2018-11-14 13:10
本发明专利技术提供一种获取RTT的方法、装置及系统,服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间。将两个时刻之间的时间差作为RTT,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。

【技术实现步骤摘要】
一种获取RTT的方法、装置及系统
本专利技术属于计算机
,尤其涉及一种获取RTT的方法、装置及系统。
技术介绍
RTT(Round-TripTime,往返时延)在计算机网络中是一个重要的性能指标,它表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延。常用的计算RTT的方法是通过计算发送方发送TCP(TransmissionControlProtocol)数据包到发送方接收到此TCP数据包的ack(ACKnowledgeCharacter)回复之间的时间差来获得。在实际应用中,通常使用RTT来表示服务质量。因此需要实时获取RTT,并将获取到的RTT作为判断网络状态的重要依据。现有获取RTT的方法是通过采集服务器的Linux内核中TCP_RTT信息以获得RTT。但是,服务器的Linux内核中TCP_RTT信息中不仅包括了网络的延迟,还包括了由于TCP协议本身造成的延迟,如syn_cookie机制延迟,因此,从服务器的Linux内核中TCP_RTT信息中获取到的RTT并不准确。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种获取RTT的方法、装置及系统,以解决现有技术中不能准确获取RTT的问题。技术方案如下:本专利技术提供一种获取RTT的方法,包括:接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。优选地,在建立TCP连接的情况下,执行接收并存储数据包的操作;其中,所述接收并存储数据包之后,还包括:将接收到的数据包按照预定规则划分成不同的TCP连接;其中,所述数据包中的响应数据包为syn+ack数据包,所述数据包中的确认数据包为ack数据包。优选地,所述获取接收到所述响应数据包的时间,并获取接收到所述确认数据包的时间包括:获取接收到所述syn+ack数据包的时间,将接收到所述syn+ack数据包的时间作为第一时刻;并获取接收到所述ack数据包的时间,将接收到所述ack数据包的时间作为第二时刻;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包。优选地,所述将接收到的数据包按照预定规则划分成不同的TCP连接包括:根据所述数据包中包括的源IP地址、目的IP地址、源端口以及目的端口,将源IP地址、目的IP地址、源端口以及目的端口都相同的数据包划分成同一TCP连接。优选地,在建立TCP连接后进行数据交互的情况下,执行接收并存储数据包的操作;其中,所述接收并存储数据包之后,包括:判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;若接收到的数据交互时的数据包中存在未响应数据包,则执行所述获取接收到所述响应数据包的时间,并获取接收到所述确认数据包的时间;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包。本专利技术还提供了一种获取RTT的装置,包括:接收存储单元,用于接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;第一获取单元,用于获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;第一计算单元,用于计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。可选地,还包括:划分单元,用于将接收到的数据包按照预定规则划分成不同的TCP连接;其中,所述数据包中的响应数据包为syn+ack数据包,所述数据包中的确认数据包为ack数据包。可选地,所述第一获取单元具体为:获取接收到服务器发送的所述syn+ack数据包的时间以及接收到客户端发送的所述ack数据包的时间;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包。可选地,还包括:判断单元,用于判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;在所述判断单元判断接收到的数据交互时的数据包中存在未响应数据包时,调用所述第一获取单元;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包。本专利技术还提供了一种系统,包括客户端、服务器、与所述客户端和所述服务器分别通信连接的交换机,所述交换机包括获取RTT的装置。与现有技术相比,本专利技术提供的上述技术方案具有如下优点:从上述技术方案可知,本申请中通过在交换机处接收并存储数据包,获取接收到服务器发送的响应数据包的时间与接收到客户端发送的确认数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的一种获取RTT的方法的流程图;图2是本专利技术实施例提供的另一种获取RTT的方法的流程图;图3是本专利技术实施例提供的另一种获取RTT的方法的流程图;图4是本专利技术实施例提供的一种获取RTT的装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本实施例公开了一种获取RTT的方法,所述方法应用于网络架构的交换机上,客户端与服务器之间的交互过程需要经过交换机的中转。本实施例中,交换机首先接收客户端发送的数据请求,然后将数据请求发送给服务器,再接收服务器返回的与数据请求对应的数据包,并将接收到的数据包发送给客户端。其中,客户端与服务器之间进行的交互是基于TCP协议的。且,客户端与服务器之间传输足够多的数据包,以排除非法连接的可能,同时能够满足存在一本文档来自技高网...

【技术保护点】
1.一种获取RTT的方法,其特征在于,包括:接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。

【技术特征摘要】
1.一种获取RTT的方法,其特征在于,包括:接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。2.根据权利要求1所述的方法,其特征在于,在建立TCP连接的情况下,执行接收并存储数据包的操作;其中,所述接收并存储数据包之后,还包括:将接收到的数据包按照预定规则划分成不同的TCP连接;其中,所述数据包中的响应数据包为syn+ack数据包,所述数据包中的确认数据包为ack数据包。3.根据权利要求2所述的方法,其特征在于,所述获取接收到所述响应数据包的时间,并获取接收到所述确认数据包的时间包括:获取接收到所述syn+ack数据包的时间,将接收到所述syn+ack数据包的时间作为第一时刻;并获取接收到所述ack数据包的时间,将接收到所述ack数据包的时间作为第二时刻;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包。4.根据权利要求2或3所述的方法,其特征在于,所述将接收到的数据包按照预定规则划分成不同的TCP连接包括:根据所述数据包中包括的源IP地址、目的IP地址、源端口以及目的端口,将源IP地址、目的IP地址、源端口以及目的端口都相同的数据包划分成同一TCP连接。5.根据权利要求1所述的方法,其特征在于,在建立TCP连接后进行数据交互的情况下,执行接收并存储数据包的操作;其中,所述接收并存储数据包之后,包括:判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;若接...

【专利技术属性】
技术研发人员:丁浩吴岩石磊胡文
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1