CN108809766A - 一种获取rtt的方法、装置及系统 - Google Patents
一种获取rtt的方法、装置及系统 Download PDFInfo
- Publication number
- CN108809766A CN108809766A CN201810653542.7A CN201810653542A CN108809766A CN 108809766 A CN108809766 A CN 108809766A CN 201810653542 A CN201810653542 A CN 201810653542A CN 108809766 A CN108809766 A CN 108809766A
- Authority
- CN
- China
- Prior art keywords
- data packet
- time
- response
- client
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种获取RTT的方法、装置及系统,服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间。将两个时刻之间的时间差作为RTT,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种获取RTT的方法、装置及系统。
背景技术
RTT(Round-Trip Time,往返时延)在计算机网络中是一个重要的性能指标,它表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认)总共经历的时延。常用的计算RTT的方法是通过计算发送方发送TCP(TransmissionControl Protocol)数据包到发送方接收到此TCP数据包的ack(ACKnowledge Character)回复之间的时间差来获得。
在实际应用中,通常使用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协议的。且,客户端与服务器之间传输足够多的数据包,以排除非法连接的可能,同时能够满足存在一定数量的相互匹配的数据包,此处的相互匹配指的是客户端向服务器发送数据包A,服务器接收到数据包A后向客户端返回数据包B,那么数据包A和数据包B之间是相互匹配的。数据包的个数为多于20个。参见图1,该实施例包括以下步骤:
S101、接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;
客户端与服务器之间的交互需要经过交换机作为中转,在服务器向客户端发送响应数据包时,交换机可以接收到来自服务器的响应数据包,在客户端向服务器发送确认数据包时,交换机可以接收到来自客户端的确认数据包。
由于客户端与服务器之间的交互过程中存在大量的数据包,因此,本实施例中可以仅接收并存储一段时间内接收到的数据包。为了能够抓取到足够多的数据包,可以设置为接收并存储2s内的数据包。
在实际应用中,采用光分路器以及高速抓包网卡实现接收并存储数据包。其中,高速抓包网卡用于抓取数据包,而光分路器用于复制数据包。
S102、获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;
并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;
客户端先向服务器发送请求,其中客户端向服务器发送的请求包括建立TCP连接请求,还包括获取数据的请求。
服务器接收到客户端发送的请求后,响应所述请求并产生响应数据包;其中,针对不同的请求,服务器产生的响应数据包不同。
服务器将产生的响应数据包发送至客户端,客户端接收到服务器发送的响应数据包后,向服务器发送确认数据包。
本实施例中,在接收到数据包后为每个接收到的数据包分别设置时间戳。具体可以为Unix形式的时间戳。通过获取每个数据包的时间戳的方式实现分别获取接收到服务器发送的响应数据包的时间和获取接收到客户端发送的确认数据包的时间。
S103、计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。
计算相互匹配的服务器发送的响应数据包的时间和客户端发送的确认数据包的时间之差,得到RTT。
从上述技术方案可知,本实施例中通过在交换机处接收并存储数据包,获取接收到服务器发送的响应数据包的时间与接收到客户端发送的确认数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。
本实施例公开了另一种获取RTT的方法,其应用场景为客户端与服务器之间建立TCP连接的场景,参见图2,该实施例包括以下步骤:
S201、接收并存储数据包;客户端与服务器之间进行数据交互前,先要建立TCP连接,建立TCP连接的过程为:
客户端发送syn数据包;服务器接收到所述syn数据包后,如果同意客户端与服务器两者之间进行通讯,则回复syn+ack数据包;客户端接收到所述syn+ack数据包后,向服务器发送ack包,建立TCP连接。
在建立TCP连接时,客户端先向服务器发送的请求为建立TCP连接的请求,具体为syn数据包;服务器响应客户端发送的请求后产生的响应数据包为syn+ack数据包;客户端响应服务器发送的响应数据包后产生的确认数据包为ack包。
S202、将接收到的数据包按照预定规则划分成不同的TCP连接;
在网络架构中,存在多台服务器和多台客户端。一台客户端与一台服务器之间建立一个TCP连接,那么一个网络架构内可能存在多个不同的TCP连接。
而网络架构中在客户端和服务器之间存在一个交换机,那么,此交换机接收到的数据包可能来自于多个不同的TCP连接。在接收到数据包后,需要按照TCP连接将数据包划分到其所属于的TCP连接中。
本实施例中,预定规则为源IP地址、目的IP地址、源端口以及目的端口都相同。
在接收到数据包后,基于TCP协议解析数据包,得到数据包的源IP地址、目的IP地址、源端口以及目的端口,将源IP地址、目的IP地址、源端口以及目的端口都相同的数据包划分到同一TCP连接中。
S203、获取接收到所述syn+ack数据包的时间,将接收到所述syn+ack数据包的时间作为第一时刻;
并获取接收到所述ack数据包的时间,将接收到所述ack数据包的时间作为第二时刻;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包;
同一个TCP连接中,可能存在多次TCP连接。其中,不同次的TCP连接,客户端以及服务器发送的数据包中的内容是不同的。因此,可以通过解析得到接收到的数据包内的内容,进而确定同一TCP连接中,数据包具体是属于哪次TCP连接的。
针对每一个TCP连接,交换机接收到的数据包都包括客户端向服务器发送的syn数据包、服务器向客户端发送的syn+ack数据包以及客户端向服务器发送的ack数据包。
在一个TCP连接中,获取接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包;
本实施例中,针对存在的TCP连接,逐一获取每一个TCP连接中的接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间。其中,每一个TCP连接中都可以获得多次接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间。在其他实施例中,由于存在的TCP连接个数过多,考虑到实际的计算能力,在不增加硬件的基础上,可以从多个TCP连接中随机采样,即随机抽取几个TCP连接,并逐一获取每一个TCP连接中接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间。其中,每一个TCP连接中都可以获得多次接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间。而忽略对其他的TCP连接的处理。
本实施例中通过获取每个数据包的时间戳的方式实现获取接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间。
S204、计算所述接收到所述syn+ack数据包的时间以及接收到所述ack数据包的时间的时间差;其中,所述时间差为RTT。
针对每一个TCP连接中获得的多次接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间,依次计算每次接收到服务器发送的syn+ack数据包的时间以及接收到客户端发送的ack数据包的时间的时间差。计算得到的时间差即为RTT。
本实施例中,每一个TCP连接中都可以得到多个RTT。针对获取到的所有RTT,可以进行相应处理,以满足用户不同的需求。例如,需要得知当前网络状况的平均水平时,可以计算RTT的平均值;需要得知最大延迟时间时,可以从所有RTT中选取最大值。
在计算得到RTT后,删除接收并存储的数据包,并删除建立的客户端和服务器之间的TCP连接。
从上述技术方案可知,本实施例中通过在交换机处接收并存储数据包,获取接收到服务器发送的syn+ack数据包的时间与接收到客户端发送的ack数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的syn+ack数据包是在服务器接收到客户端发送的syn数据包并响应后发送的,接收到syn+ack数据包的时刻以及接收到ack数据包的时刻均发生在服务器完成对客户端发送的syn数据包响应后,因此两个时刻的时间差中并不包括TCP协议中syn-cookie延迟机制导致的在服务器接收到客户端发送的syn数据包后,不能及时向客户端反馈,导致的时间延迟。解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。
本实施例公开了另一种获取RTT的方法,其应用场景为客户端和服务器之间进行数据交互的场景,参见图3,该实施例包括以下步骤:
S301、接收并存储数据包;
客户端和服务器之间建立TCP连接后,即可进行数据交互。进行数据交互的过程为客户端先向服务器发送获取数据的请求,服务器接收到获取数据的请求后,向客户端发送包含所请求数据的数据包,即为data数据包,其中,data数据包为响应数据包。客户端接收到data数据包后,向服务器返回确认数据包。
S302、判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;
若接收到的数据交互时的数据包中存在未响应数据包,则执行步骤S303;
若接收到的数据交互时的数据包中未存在未响应数据包,则结束流程;
接收到预定时间段内的全部数据包后,判断接收到的数据包中是否存在未响应数据包,其中,未响应数据包指的是服务器向客户端发送data数据包后,并未接收到客户端返回的确认数据包,服务器向客户端发送的这种data数据包称之为未响应数据包。
通过查找接收到的来自服务器的data数据包是否存在与之匹配的确认数据包,即可确定数据包中是否存在未响应数据包。其中,来自服务器的data数据包存在与之匹配的确认数据包,则说明此来自服务器的data数据包不是未响应数据包;来自服务器的data数据包不存在与之匹配的确认数据包,则说明此来自服务器的data数据包是未响应数据包。
S303、获取接收到所述响应数据包的时间,并获取接收到所述确认数据包的时间;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包;
若存在未响应数据包,则在与此未响应数据包相同的TCP连接中,获取紧邻此未响应数据包后,服务器发送的下一个data数据包的接收时间;且,获取客户端在接收到服务器在紧邻未响应数据包之后发送的下一个data数据包后,返回的确认数据包的接收时间。例如,服务器通过交换机先向客户端发送了data1数据包,但是未收到客户端返回的确认data1数据包,即未收到ack1;紧接着,服务器通过交换机向客户端又发送了data2数据包,其中,data1数据包和data2数据包之间并不存在其他的数据包,即data1数据包和data2数据包是相邻的,且data2数据包的时间位于data1数据包的时间之后。交换机获取接收到data2数据包的时间。
在客户端接收到服务器发送的data2数据包后,向服务器返回ack2数据包,即对data2数据包的响应。交换机获取接收到ack2数据包的时间。
当然,在交换机接收到服务器发送的data2数据包后,并未接收到响应data2数据包的ack2数据包,那么判断此data2数据包为未响应数据包。获取紧邻data2数据包后,服务器发送的data3数据包,并获取接收到data3数据包的时间。在客户端接收到服务器发送的data3数据包后,向服务器返回ack3数据包,即对data3数据包的响应。交换机获取接收到ack3数据包的时间。依次类推,直至获取到一个TCP连接中存在的全部客户端未响应数据包相邻的下一个data数据包的时间以及接收到响应所述客户端未响应数据包相邻的下一个data数据包后产生的确认数据包的时间。
S304、计算接收到与所述未响应数据包相邻的下一个data数据包的时间以及接收到响应所述未响应数据包相邻的下一个data数据包后产生的确认数据包的时间的时间差;其中,所述时间差为RTT。
当data2数据包为未响应数据包,data3为紧邻data2后发送的下一个数据包时,计算接收到data3数据包的时间与接收到确认data3数据包的时间的时间差,进而得到RTT。
本实施例中,在客户端和服务器之间进行数据交互的过程中,可以计算得到多个RTT,针对获取到的所有RTT,可以进行相应处理,以满足用户不同的需求。例如,需要得知当前网络状况的平均水平时,可以计算RTT的平均值;需要得知最大延迟时间时,可以从所有RTT中选取最大值。
在计算得到RTT后,删除接收并存储的数据包,以节省空间。
本实施例中通过获取接收到客户端未响应数据包的下一个data数据包的时间以及接收到下一个data数据包的确认数据包的时间,可以起到防止客户端启动了延迟响应机制,从而导致计算得到的RTT过大的问题。
从上述技术方案可知,本实施例中通过在交换机处接收并存储数据包,获取接收到服务器发送的响应数据包的时间与接收到客户端发送的确认数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。
同时,通过获取接收到客户端未响应数据包的下一个data数据包的时间以及接收到下一个data数据包的确认数据包的时间,并计算两个时间的差值从而获取到RTT,可以防止客户端启动了延迟响应机制,从而导致计算得到的RTT过大的问题产生。
对应上述获取RTT的方法,本发明还提供了一种获取RTT的装置,所述装置的结构示意图请参阅图4所示,本实施例中装置包括:
接收存储单元401、第一获取单元402、第一计算单元403、划分单元404和判断单元405;
接收存储单元401,用于接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;
第一获取单元402,用于获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;
可选地,在建立TCP连接时,第一获取单元402用于获取接收到服务器发送的所述syn+ack数据包的时间以及接收到客户端发送的所述ack数据包的时间;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包。
第一计算单元403,用于计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。
划分单元404,用于将接收到的数据包按照预定规则划分成不同的TCP连接;其中,所述数据包中的响应数据包为syn+ack数据包,所述数据包中的确认数据包为ack数据包;
可选地,划分单元404将接收到的数据包按照预定规则划分成不同的TCP连接包括:
根据数据包中包括的源IP地址、目的IP地址、源端口以及目的端口,将源IP地址、目的IP地址、源端口以及目的端口都相同的数据包划分成同一TCP连接。
判断单元405,用于判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;
在判断单元405判断接收到的数据交互时的数据包中存在未响应数据包时,调用第一获取单元402;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包。
从上述技术方案可知,本实施例中通过在交换机处接收并存储数据包,获取接收到服务器发送的响应数据包的时间与接收到客户端发送的确认数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。。同时,通过获取接收到客户端未响应数据包的下一个data数据包的时间以及接收到下一个data数据包的确认数据包的时间,并计算两个时间的差值从而获取到RTT,可以防止客户端启动了延迟响应机制,从而导致计算得到的RTT过大的问题产生。
对应上述获取RTT的装置,本实施例公开了一种系统,包括客户端、服务器、与所述客户端和所述服务器分别通信连接的交换机,所述交换机包括上一实施例中公开的获取RTT的装置。
从上述技术方案可知,本实施例中通过在交换机处接收并存储数据包,获取接收到服务器发送的响应数据包的时间与接收到客户端发送的确认数据包的时间,通过计算两个时间的差值从而获取到RTT。由于服务器发送的响应数据包是在服务器接收到客户端发送的请求并响应所述客户端发送的请求后发送的,将接收到服务器发送的响应数据包的时间作为第一时刻;并将接收到客户端发送的确认数据包的时间作为第二时刻,两个时刻均是在服务器完成对客户端发送的请求响应后的,因此,两个时刻的时间差中不包括服务器对接收到的请求响应的时间,避免了不能及时向客户端反馈导致的时间延迟,解决了现有技术中由于获取到的RTT中不仅包括网络延迟还包括TCP协议延迟造成的RTT不准确的问题。同时,通过获取接收到客户端未响应数据包的下一个data数据包的时间以及接收到下一个data数据包的确认数据包的时间,并计算两个时间的差值从而获取到RTT,可以防止客户端启动了延迟响应机制,从而导致计算得到的RTT过大的问题产生。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的装置而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
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连接后进行数据交互的情况下,执行接收并存储数据包的操作;
其中,所述接收并存储数据包之后,包括:
判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;
若接收到的数据交互时的数据包中存在未响应数据包,则执行所述获取接收到所述响应数据包的时间,并获取接收到所述确认数据包的时间;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包。
6.一种获取RTT的装置,其特征在于,包括:
接收存储单元,用于接收并存储数据包;其中,所述数据包至少包括服务器发送的响应数据包和客户端发送的确认数据包;
第一获取单元,用于获取接收到所述响应数据包的时间,将接收到所述响应数据包的时间作为第一时刻;其中,所述响应数据包为所述服务器响应所述客户端发送的请求后产生的数据包;并获取接收到所述确认数据包的时间,将接收到所述确认数据包的时间作为第二时刻;其中,所述确认数据包为所述客户端响应所述响应数据包后产生的数据包;
第一计算单元,用于计算所述第一时刻与所述第二时刻的时间差;其中,所述时间差为RTT。
7.根据权利要求6所述的装置,其特征在于,还包括:
划分单元,用于将接收到的数据包按照预定规则划分成不同的TCP连接;其中,所述数据包中的响应数据包为syn+ack数据包,所述数据包中的确认数据包为ack数据包。
8.根据权利要求7所述的装置,其特征在于,所述第一获取单元具体为:
获取接收到服务器发送的所述syn+ack数据包的时间以及接收到客户端发送的所述ack数据包的时间;其中,所述syn+ack数据包和所述ack数据包为建立一次TCP连接时的数据包。
9.根据权利要求6所述的装置,其特征在于,还包括:
判断单元,用于判断接收到的数据交互时的数据包中是否存在未响应数据包;其中,所述未响应数据包为不存在匹配的确认数据包的响应数据包;
在所述判断单元判断接收到的数据交互时的数据包中存在未响应数据包时,调用所述第一获取单元;其中,所述响应数据包为与所述未响应数据包相邻的下一个响应数据包。
10.一种系统,其特征在于,包括客户端、服务器、与所述客户端和所述服务器分别通信连接的交换机,所述交换机包括权利要求6-9任意一项所述的获取RTT的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653542.7A CN108809766A (zh) | 2018-06-22 | 2018-06-22 | 一种获取rtt的方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810653542.7A CN108809766A (zh) | 2018-06-22 | 2018-06-22 | 一种获取rtt的方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108809766A true CN108809766A (zh) | 2018-11-13 |
Family
ID=64085069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810653542.7A Pending CN108809766A (zh) | 2018-06-22 | 2018-06-22 | 一种获取rtt的方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108809766A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656574A (zh) * | 2018-11-27 | 2019-04-19 | 深圳华锐金融技术股份有限公司 | 交易时延度量方法、装置、计算机设备及存储介质 |
CN111181798A (zh) * | 2019-08-28 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 网络时延测量方法、装置、电子设备及存储介质 |
CN111277785A (zh) * | 2019-12-31 | 2020-06-12 | 杭州当虹科技股份有限公司 | 一种端到端延时测量方法 |
WO2023193203A1 (zh) * | 2022-04-07 | 2023-10-12 | Oppo广东移动通信有限公司 | 一种时延控制方法及装置、通信设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080117820A1 (en) * | 2006-11-17 | 2008-05-22 | Fujitsu Limited | Detection method, detecting device, reference value calculating device and recording medium |
CN104836742A (zh) * | 2015-05-07 | 2015-08-12 | 盐城工学院 | 一种m2m终端及其tcp传输拥塞控制方法及系统 |
CN104901851A (zh) * | 2015-06-19 | 2015-09-09 | 北京快网科技有限公司 | 一种检测网络质量的方法和系统 |
CN105024872A (zh) * | 2014-04-25 | 2015-11-04 | 腾讯科技(北京)有限公司 | 网络性能测试的方法及装置 |
US20170019338A1 (en) * | 2014-03-28 | 2017-01-19 | Huawei Technologies Co., Ltd. | Transmission control method, apparatus and system |
CN106656642A (zh) * | 2015-10-28 | 2017-05-10 | 华为技术有限公司 | 一种往返时延的测量方法、装置及系统 |
CN106888198A (zh) * | 2015-12-16 | 2017-06-23 | 华为技术有限公司 | 一种数据包过滤规则的配置方法、装置及系统 |
-
2018
- 2018-06-22 CN CN201810653542.7A patent/CN108809766A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080117820A1 (en) * | 2006-11-17 | 2008-05-22 | Fujitsu Limited | Detection method, detecting device, reference value calculating device and recording medium |
US20170019338A1 (en) * | 2014-03-28 | 2017-01-19 | Huawei Technologies Co., Ltd. | Transmission control method, apparatus and system |
CN105024872A (zh) * | 2014-04-25 | 2015-11-04 | 腾讯科技(北京)有限公司 | 网络性能测试的方法及装置 |
CN104836742A (zh) * | 2015-05-07 | 2015-08-12 | 盐城工学院 | 一种m2m终端及其tcp传输拥塞控制方法及系统 |
CN104901851A (zh) * | 2015-06-19 | 2015-09-09 | 北京快网科技有限公司 | 一种检测网络质量的方法和系统 |
CN106656642A (zh) * | 2015-10-28 | 2017-05-10 | 华为技术有限公司 | 一种往返时延的测量方法、装置及系统 |
CN106888198A (zh) * | 2015-12-16 | 2017-06-23 | 华为技术有限公司 | 一种数据包过滤规则的配置方法、装置及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109656574A (zh) * | 2018-11-27 | 2019-04-19 | 深圳华锐金融技术股份有限公司 | 交易时延度量方法、装置、计算机设备及存储介质 |
CN109656574B (zh) * | 2018-11-27 | 2021-10-29 | 深圳华锐金融技术股份有限公司 | 交易时延度量方法、装置、计算机设备及存储介质 |
CN111181798A (zh) * | 2019-08-28 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 网络时延测量方法、装置、电子设备及存储介质 |
CN111181798B (zh) * | 2019-08-28 | 2022-07-22 | 腾讯科技(深圳)有限公司 | 网络时延测量方法、装置、电子设备及存储介质 |
CN111277785A (zh) * | 2019-12-31 | 2020-06-12 | 杭州当虹科技股份有限公司 | 一种端到端延时测量方法 |
CN111277785B (zh) * | 2019-12-31 | 2021-04-20 | 杭州当虹科技股份有限公司 | 一种端到端延时测量方法 |
WO2023193203A1 (zh) * | 2022-04-07 | 2023-10-12 | Oppo广东移动通信有限公司 | 一种时延控制方法及装置、通信设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809766A (zh) | 一种获取rtt的方法、装置及系统 | |
CN105516080B (zh) | Tcp连接的处理方法、装置及系统 | |
CN105516186B (zh) | 一种防止重放攻击的方法和服务器 | |
KR101109276B1 (ko) | 세션 접속 유지 | |
CN111224999A (zh) | 一种传输协议切换方法、装置、设备及存储介质 | |
CN107360247B (zh) | 处理业务的方法和网络设备 | |
CN107172174A (zh) | 在客户端和服务器之间实现文件的快速上传 | |
CN106254377A (zh) | 支持海量长连接的软负载均衡方法及系统 | |
US20160134695A1 (en) | Method and apparatus for data synchronization | |
CN106533932A (zh) | 一种用于推送即时消息的方法和装置 | |
CN102891851A (zh) | 虚拟桌面访问控制方法、设备及系统 | |
CN113452778B (zh) | 会话保持方法、装置、设备、系统及存储介质 | |
US8762449B2 (en) | Method of downloading large size data to a large number of networked client machines from a single server | |
CN107172211A (zh) | 通信连接请求建立方法及服务器 | |
WO2020237453A1 (zh) | 安全多方计算的实现方法、装置、计算机设备和存储介质 | |
CN109088918A (zh) | 一种交互方法、客户端设备及服务端设备 | |
CN106131039A (zh) | Syn洪泛攻击的处理方法及装置 | |
CN102781017A (zh) | 一种探测通信对端在线状态的方法、装置及通信设备 | |
CN112866390A (zh) | 一种数据传输方法、装置、终端设备和存储介质 | |
CN108632136A (zh) | 巡河数据处理方法及装置 | |
CN110290139B (zh) | 消息传输方法及装置 | |
CN109120578B (zh) | 一种实现链路连接处理的方法及装置 | |
CN110535959A (zh) | 一种传输数据的方法、装置和计算机可读存储介质 | |
CN108040000B (zh) | 一种信息传送方法及设备 | |
CN103841139A (zh) | 传输数据的方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181113 |
|
RJ01 | Rejection of invention patent application after publication |