CN112217686A - 一种评估往返时延的系统、方法及装置 - Google Patents
一种评估往返时延的系统、方法及装置 Download PDFInfo
- Publication number
- CN112217686A CN112217686A CN201910631286.6A CN201910631286A CN112217686A CN 112217686 A CN112217686 A CN 112217686A CN 201910631286 A CN201910631286 A CN 201910631286A CN 112217686 A CN112217686 A CN 112217686A
- Authority
- CN
- China
- Prior art keywords
- ack
- time
- rtt
- timestamp
- sending
- 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.)
- Granted
Links
Images
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
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1896—ARQ related signaling
-
- 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/04—Processing captured monitoring data, e.g. for logfile generation
-
- 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
- H04L43/0858—One way 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip 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/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种评估往返时延的系统,方法及装置,用以提高往返时延的评估精度。该系统中,第一设备通过同一路径向所述第二设备发送多个报文,该多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳。第二设备通过计算所述多个报文的单向时延的统计值,从所述多个报文携带的时间戳中确定出一个时间戳,第二设备向第一设备发送ACK,该ACK包括确定出的时间戳和ACK时间信息。第一设备基于ACK中的戳、ACK时间信息以接收该ACK的时间,确定该路径的RTT的一个测量值。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种评估往返时延的系统、方法及装置。
背景技术
虚拟现实(VR,virtual reality)、增强现实、高清无线投屏以及基于人工智能的新型应用的兴起,催生出广域网(WAN,Wide Area Network)和无线局域网(WLAN,WirelessLAN)上海量数据传输的需求。对带宽的需求越来越大,因此数据包传输要求高吞吐量。例如4K视频要求吞吐在15-18Mbps,高清VR甚至高达167Mbps,然而,现有WLAN传输能力远远无法满足高清视频应用的带宽需求,例如,2017年全球移动网络传输能力平均值仅8.7Mbps。虽然底层技术在不断革新,但是传输层协议对数据路径层的协议并不友好,导致即使带宽有600Mbps,带宽利用率可能仅仅只有61%。
而“高吞吐”对确认信息(acknowledgement,ACK)机制提出新的挑战。例如,IEEE802.11中,介质访问控制(MAC,Media Access Control)层协议强制要求每次频谱资源请求之前必须有一段空间时间,然而某些传输层协议,如传输控制协议(Transmission ControlProtocol,TCP)是一个对称的协议,每发一个或两个数据包,就会回一个确认(ACK,Acknowledgement)字符,这种方式被称为每包确认。由于ACK与数据包消耗了几乎同样多的频谱资源,高吞吐场景下,单位时间正向路径(从数据的发送节点到数据的接收节点的路径,也称数据路径)传输的数据包增加,使得单位时间反向路径(从数据的接收节点到数据的发送节点的用于传输确认字符的路径,也称控制路径)传输的ACK的数量也会增大。这样,就会导致正向路径上数据的吞吐急剧下降。因此,减少ACK的频率是提高带宽利用率的有效手段。
延迟确认是减少ACK的频率的最常用的方法。延迟确认作为传输控制协议中的一种反馈方式,特指一个数据包从发送节点(即上文的数据的发送节点)到达接收节点(即上文的数据的接收节点)后,接收节点并不立刻回复一个ACK,而是等待更多的数据包到达,或者等过一段时间再回复一个ACK的反馈方式。
往返时延(Round-Trip Time,RTT)是指数据包从发送节点发出到该数据包到达接收节点,然后该数据包对应的ACK被该发送节点接收到,所经历的总时间。由于网络的实时的传输性能会有波动,发送节点在不同的时间得到的RTT数值也同样会波动,因此,实际业务中RTT的测量值(下文简称RTT),以及由多个RTT测量值计算出的统计值(下文简称RTT的统计值)都可以作为评估一个连接的传输性能的重要参数,很多传输控制策略都要基于RTT或RTT的统计值制定或者调整。其中RTT的统计值可以是最小RTT(Minimum Round-TripTime,minRTT),即数据发送节点接收到多个RTT中值最小的一个;最大RTT(Maximum Round-Trip Time,maxRTT),即数据发送节点接收到多个RTT中值最大的一个;平均RTT,即数据发送节点接收到多个RTT的平均值,平均RTT可以有多种计算方法;多个RTT中排第K大的RTT以及多个RTT中值为前L%小的RTT(0<L<100%),如,第95%大的RTT(95th percentileRound-Trip Time,95th RTT)等等。一些方式下,用于计算上述的RTT的统计值的多个RTT的测量值是在一个时间段内的值,例如,这个时间段可以是时长为预设长度(例如5S,10S或者13S等等)的某个历史时间段,该历史时间段的一个端点可以是当前时刻。
然而,延迟确认的场景下,RTT的计算只能依靠为数稀少的ACK来进行采样,这种采样的方式导致现有的方法很难保证对RTT的评估的准确性和可用性,也制约了数据传输的性能的提高。
发明内容
本申请提供一种评估往返时延的系统,方法和装置,通过单向时延OWD来筛选携带在ACK中的时间戳,从而辅助对RTT的评估,以提高对评估RTT的准确性和可用性。
第一方面,本申请实施例提供一种评估往返时延RTT的系统,该系统包括第一设备和第二设备,该第一设备用于通过同一路径向该第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备用于向该第一设备发送确认ACK,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关;该第一设备用于接收该ACK,以及基于该第一时间戳,该ACK时间信息以及第二时间戳,确定该路径的RTT的一个测量值,其中,该第二时间戳指示该第一设备接收该ACK的时间。
上述第一设备可以看做是发送设备(或发送节点),第一设备向第二设备发送报文的路径是正向路径,第二设备可看做是接收设备(或接收节点),第二设备向第一设备发送ACK的路径是反向路径。第一设备和第二设备之间的通信可以多路径传输技术,例如MPTCP,那么评估的就是一条子流的RTT。
同一路径是指发送的多个报文使用相同的路由,多路径场景下,就是指该多个报文属于同一子流。
上述的多个报文可以是第二设备在一个第一时间窗内接收到的,则该多个报文的OWD的统计值就是第一时间窗内该路径的OWD的统计值。第一设备发送的报文可以是数据报文也可以是控制报文。
由于第一设备发送的报文中携带有指示该报文发送时间的时间戳,第二设备就可以计算路径的单向时延,因为第二设备可能接受了多个报文后才返回ACK,第二设备通过OWD的统计值来确定在ACK中携带哪个报文的发送时间戳,并将对应于该报文的能指示ACK发送时延的信息也携带在ACK中,也就是借助对OWD的分析来评估RTT,这样就可通过第一设备和第二设备的配合,提高评估RTT的准确性。基于更准确更贴近实际网络情况的RTT控制该路径的数据传输,能提高该路径的传输性能。
该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关,是指基于该ACK时间信息,能够确定出或者反映出该第二设备从接收该第一报文到发送该ACK的时长,故该ACK时间信息可以有多种表达方式。一种实现方式下,该ACK时间信息包括第三时间戳和第四时间戳,该第三时间戳指示该第二设备接收该第一报文的时间,该第四时间戳指示该第二设备发送该ACK的时间。另一种实现方式下,该ACK时间信息包括第一时间段,该第一时间段指示该第二设备从接收该第一报文到发送该ACK的时长。
另外,该第一设备计算RTT的测量值可以有多种方式。例如,一种实现方式下,该第一设备具体用于将该第二时间戳指示的时间减去该第一时间戳指示的时间,以及减去该第四时间戳与该第三时间戳之差,以得到该路径的RTT的一个测量值。再例如,该第一设备具体用于将该第二时间戳指示的时间减去该第一时间戳指示的时间,以及减去该第一时间段,以得到该路径的RTT的一个测量值。再例如,该第一设备完成上述的减法计算后,再做一些后处理,例如通过一些公式修正结果,将修正后的结果作为该路径的RTT的一个测量值。这些后处理是基于工程上处理数据的,比如使得数据更加平滑,由于评估的RTT进一步用于传输控制或者监控等业务场景,这些后处理是可能发生的。
一种实现方式下,该第一设备还用于基于在一个时间窗内收集的多个ACK,计算该路径的RTT的多个测量值,以及计算该路径的RTT的多个测量值对应的统计值。统计值可以比测量值更好地反映路径的传输性能,因为统计值是一段时间内的多个测量值得到的,能减少网络的细微变化对RTT评估的影响。由于多个测量值是比较贴近实际情况比较准确的,基于这多个测量值得到的统计值也能比较准确地反映路径的真实的传输性能。
例如,这个时间窗可以是从第一设备收到上述ACK的时间起的一段时长。上述的多个ACK也应当是对应通过同一路径传输的报文。
一种实现方式下,该多个报文的OWD的统计值与该路径的RTT的统计值的类型相同,该类型为最大值,最小值和平均值中的一种。当然,这些类型可以遵循不同的计算公式,例如平均值还有更细分的种类,另一方面,还可以是其他统计值的类型,如多个RTT(OWD)中排第K大的RTT(OWD)以及多个RTT(OWD)中值为前L%小的RTT(OWD)(0<L<100%)等等。当然,另一种实现方式下,该多个报文的OWD的统计值与该路径的RTT的统计值的类型也可以不同,可按照用户的需求制定。
例如一个场景下,该多个报文的OWD的统计值为该多个报文的最小OWD,该路径的RTT的统计值为该多个测量值中的最小RTT。
综上,上述方法降低了RTT统计的准确性对每包确认机制的依赖程度,而RTT仍然能较为准确统计或者测量,也能使得很多基于RTT进行例如拥塞控制的传输控制算法能更好地发挥作用,提高传输效率。
第二方面,本申请提供一种评估时延的方法,该方法包括:第二设备通过同一路径接收来自第一设备的多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备向该第一设备发送确认ACK,以便该第一设备基于该ACK评估该路径的RTT,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关。
第二方面描述的是第二设备执行的方法,对应于第一方面描述的系统,因此,第二方面的具体实现方式和有益效果,请参考对第一方面的描述。
第三方面,本申请提供一种评估时延装置,该装置包括:接收模块,用于通过同一路径接收来自第一设备的多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;时间戳确定模块,用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;发送模块,用于向该第一设备发送确认ACK,以便该第一设备基于该ACK评估该路径的RTT,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关。
第四方面,本申请提供一种评估时延装置,该装置包括:通信接口、处理电路和存储介质;该存储介质用于存储软件程序,该通信接口用于通过该存储介质中的指令与其他设备收发报文,该处理电路用于运行该存储介质中的指令控制该通信接口以实现前述方面中第二设备执行的流程。
第三、四方面描述的是第一方面描述的系统中,第二设备的两种实现方式,因此,第三、四方面的具体实现方式和有益效果,请参考对第一方面的描述。
第五方面,本申请提供一种的芯片,该芯片包括:通信接口和处理电路;该处理电路用于控制该通信接口以实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第六方面,本申请实施例提供了一种芯片,该芯片与存储器相连,用于读取并执行所述存储器中存储的软件程序,以实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第七方面,本申请实施例中还提供一种计算机存储介质,该存储介质中存储软件程序,该软件程序在被一个或多个处理器读取并执行时可实现第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
第八方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面的任意一种实现方式或第二方面的任意一种实现方式中第二设备执行的流程。
应当理解的是,本申请的第五至第八方面与本申请的第一方面和第二方面的技术方案相同或者类似,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1(a)-(c)为本申请实施例提供的三种场景下返回ACK的示意图;
图2为本申请实施例提供的一种通信系统架构示意图;
图3(a)为本申请实施例提供的评估往返时延的流程示意图;
图3(b)为本申请实施例提供的计算单向时延的指示图;
图4(a)-(c)为本申请实施例提供的发送ACK的时序和结构示意图;
图5为本申请实施例提供的一种数据传输装置(对应接收节点)的结构示意图;
图6为本申请实施例提供的一种数据传输装置(对应接收节点)的结构示意图。
具体实施方式
本申请实施例提供的方案可用在端到端通信,端云通信以及云到云通信等多种通信场景中。因此,本申请涉及到的接收节点或者发送节点可以是终端设备(也可以简称为终端),例如传感器、手机、平板、笔记本电脑、个人计算机、车载终端、机顶盒、电视盒子等;也可以是网络设备,例如网关、接入路由器、核心路由器、前端路由器、负载均衡器、服务器等。例如,端到端场景可以是,手机将一段视频投屏在智能电视或者通过电视盒子或接收器投屏在显示器上。再例如,两个终端设备之间通过某个应用的视频通话,则其中的一个终端和该应用的服务器,就是适用本申请描述的方法的端云场景。
应理解,本申请中的接收节点和发送节点都指设备,或者都指设备上运行的操作系统。例如,接收节点是指一个连接中,接收数据且发送反馈信息的设备或者该设备上运行的操作系统,发送节点是指一个连接中,发送数据的设备或者该设备上运行的操作系统,当然发送节点也可以发送控制报文。同一个设备可以在一段时间内是接收节点,而另一段时间内是发送节点,或者,由于一个设备可能是多条连接的端节点,这个设备还可以同时是接收节点和发送节点,例如一个手机,一边向网盘上传图片,这就可看作发送节点,一边打开新闻网站中的标题供用户阅读文章,这就可看作接收节点。为便于理解,本申请以一条连接的发送节点和接收节点为例描述。后续描述时,本申请实施例中发送节点也被称为第一节点或者第一设备,接收节点也被称为第二节点或者第二设备。换句话说,第一节点或者第一设备在一个RTT评估流程中,发送多个报文,该报文可以是数据包或者控制报文;而第二节点或者第二设备在一个RTT评估流程中,发送反馈信息,例如ACK,SACK或NACK。
本申请的方案可以适用到所有支持时延统计的端到端协议中。这些端到端协议可以是,传输控制协议(transport control protocol,TCP)、用户数据协议(user dataprotocol,UDP)、快速UDP网络连接(quick UDP internet connection,QUIC),流控制传输协议(stream control transmission protocol,SCTP)等等,甚至可以使用在多路径传输场景的子流(subflow),本申请不做限制。本申请中,评估往返时延所使用的报文应当是通过同一路径(path)发送的,即这些报文的正向路径应当相同,使用不同路径发送的报文由于路由不同,网络状态也可能不同,是不合适用在一个往返时延的评估中的。其中,路径是指从发送节点到接收节点的路由。
通常,往返时延(RTT)等于发送节点接收到ACK时的当前时间减去ACK中携带的回显时间。由于当前时间和回显时间都是在实际组网中获取的,这样计算出的RTT的值可以作为一条路径的RTT的测量值,该路径用于传输该ACK回应的数据包。回显时间是指该ACK回应的数据包从发送节点发出的时间,而当前时间可用于指示ACK的接收时间。即可根据ACK的接收时间(即当前时间)和数据包的发送时间(即回显时间),得到该路径的RTT的测量值。多个RTT的测量值通过统计学的运算,例如求最大值,最小值,平均值等,就可以得到对应这多个RTT的统计值。另外,路径(path)是指从发送节点到接收节点的路由。
下面以计算最小RTT为例,简单描述RTT的统计值的计算方法。发送节点到接收节点可以有多条路径,在传输过程中,传输报文的路径也可能发生变化,采用全局最小RTT(也就是所有统计到的RTT中的最小值)来评估路径的传输性能会失真。本申请中计算的最小RTT是一条路径的最小RTT,也就是说,计算该最小RTT的数据包是通过同一条路径从发送节点传输到接收节点的。其中,发送节点位于第一设备,或者就是第一设备,接收节点位于第二设备,或者就是第二设备。现有技术的做法是,发送节点针对多个RTT的测量值,通过最小窗口过滤器(Windowed Minimum Filter)计算该对节点(发送节点和接收节点)在某一时间窗口内的最小RTT,并以此作为该路径的最小RTT的测量值。其中,最小窗口过滤器的实现如下:
其中,RTTt表示表示t时刻的RTT测量值,T表示当前时刻,WR表示一个时间窗口,一般为若干秒(例如5s,8s,10s或者14s等等)。
本申请的可用于各种对时延的统计要求比较精准,可是接收节点返回的ACK数量较少的场景中,较少是相对于接收节点接收到的报文数目等于接收节点发送的ACK的数目这种情况。例如,延迟确认场景下的时延统计,甚至包括某些每包确认场景下的时延统计,例如一些传输协议(例如TCP协议,标准RFC 1122)规定的TCP的ACK不能延迟超过2个数据包且延迟不能超过一个阈值(例如500ms),这种情况虽然可以被理解为每包确认场景,但本申请描述的方法一样适用。延迟确认作为一种反馈机制,不仅能够减少ACK的频率,而且能够降低通信双方和中间网络设备的开销。
下面结合图1,描述延迟确认场景对评估RTT及其统计值的影响,具体以最小RTT为例。图1中,发送节点中的每个黑色方块代表一个数据包,接收节点中的每个圆形代表一个ACK,所有数据包使用同一路径传输。图1中的(a)示意,发送节点发送5个数据包,每包确认机制下,接收节点每收到一个数据包回复一个ACK,对应数据包和ACK的数量比为(1:1),发送节点可以获取5个RTT的测量值,分别是20ms,16ms,22ms,15ms,30ms。发送节点根据这5个RTT的测量值,统计出最小RTT为15ms。在延迟确认机制下,假设每两个数据包回复一个ACK,图1中只有5个数据包,故(b)中对应数据包和ACK的数量比为(5:3),发送节点可获取3个RTT的测量值,分别是20ms,22ms,30ms。发送节点根据测量RTT的集合,统计的该路径的最小RTT为20ms,该统计结果与图1(a)的结果的偏差达到了30%。再如图1(c),示意的是每N(N>2)个数据包回复一个ACK的情况,图1中的(c)示意为(5:1),假设N=5,发送节点只能获取1个数据包的测量RTT,即30ms。因此,这种情况下统计的该路径的最小RTT为30ms,该统计结果与图1(a)的结果的偏差达到了100%。
可见,在接收多个数据包后才返回一个ACK的情况下,RTT的统计值很容易有偏差。因为机械地、粗暴地减少ACK数目,会产生一些问题:如1.改变发送模式产生流量突发(Burst),扰乱发送窗口更新和丢包检测算法;2.对ACK丢失变得更加敏感;以及3.无法准确评估RTT等。
可见,RTT的测量依赖ACK,如果ACK数量较每包确认一个ACK少,现有的方法获得准确的RTT测量值和统计值的概率就会降低,不同情况下,RTT测量值和统计值的结果波动大,容易造成测量和统计的结果错误、或者与实际不附。因此,设计一种更好保障RTT的准确测量和统计,减少结果波动,尽量贴近实际情况的方法,对于WLAN以及非对称网络等场景具有重大的现实意义。
本申请的基本思想是在接收节点通过单向时延(OWD,one-way delay)的变化来推测往返时延(RTT,round-trip time)的变化,充分利用接收节点的能力差异,减少时延统计对每包确认机制的依赖,以一种间接的方式进行更为精准的时延统计。单向时延,是指一个数据包从发送节点发出到该数据包到达接收节点所经历的时间。需要说明的是,下文出现的OWD的测量值,OWD的统计值(例如最小OWD,最大OWD,OWD的平均值等)的解释和定义,可以参照对应的RTT的测量值和统计值的解释和定义,下文不再赘述。
其中,OWD的统计值和RTT的统计值都是一段时间内的统计值,例如一个时间窗口。一种实现方式下,RTT统计值的时间窗口长于OWD的统计值。
在传输控制中,相比ACK,上层业务更关注被传输的数据包本身。例如,传输一个文件,用户体验与文件传输完成时间相关联,因此,用户只关心数据包从发送节点尽快到达接收节点,而不太关心其ACK的传输。由于OWD只与数据包的传输有关,RTT则与数据包和ACK的传输都相关,本申请通过OWD变化来推测RTT的变化,是合理的,可行的。
基于此,本申请实施例提供一种数据传输方法及装置,用以提高对RTT的评估的准确性,从而提高数据的传输性能。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
另外,需要说明的是,本申请中,“至少一个”是指一个或者多个,“多个或者若干”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B以及单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。应当理解,尽管在本申请实施例中可能采用术语第一、第二等来描述各对象、但这些术语仅用来将各对象彼此区分开。
如图2所示,为本申请实施例示例的一种通信系统的具体的架构示意图。通信系统中包括发送节点和接收节点。示例性的,发送节点包括数据包构造模块201、数据包发送模块202、ACK解析模块203和往返时延统计模块204,在接收节点实现数据包解析模块205、单向时延OWD统计模块206、ACK构造模块207和ACK发送模块208,接收节点还可以包括数据包接收模块,图2中没有示出。要说明的是,发送节点和接收节点还可以包含其它本申请未说明的模块,本发明并不对节点上的模块数目做任何限制。另外,图2的架构只是一种举例,本申请不限定接收节点和发送节点中各自包括的模块,具体实现时,上述模块中的某几个模块的功能也可能在一个模块中实现。
下面以图2的系统为例,介绍一种装置结构如何完成本申请描述的方法,这个例子以发送节点发送数据包为例进行说明。
1.发送节点通过数据包构造模块201,构造数据包,通过数据包发送模块202,将数据包经过通信路径发送给接收节点。其中,数据包中携带该数据包的发送时间戳。
其中,一个数据包的发送时间戳(又称数据包发送时间戳)指示该数据包从发送节点发出的时刻。
2.接收节点通过数据包解析模块205,获取数据包中携带的数据包发送时间戳,并记录该数据包的到达时间戳。
其中,一个数据包的到达时间戳(又称数据包到达时间戳)指示该数据包到达接收节点的时刻。
3.接收节点通过单向时延统计模块206,根据该数据包的发送时间戳和到达时间戳,计算该数据包的单向时延。通过这种方式,接收节点可以统计每个接收到的数据包的单向时延。
4.接收节点通过单向时延分析模块206,分析一段时间内接收到的多个数据包的单向时延,获得单向时延的分析结果。
例如,分析结果可以是接收节点在这段时间内接收到的包中,对应最小单向时延的包的信息,例如该包的标识,再例如,这个分析结果为这段时间内接收到的单向时延的波动是否超过一个阈值。
5.接收节点通过ACK构造模块207,根据单向时延的分析结果,构造ACK。接收节点通过ACK发送模块208,将ACK经过通信路径发送给发送节点。
其中,ACK中携带发送节点计算往返时延所需要的信息。该信息可以是一个值,用于指示某个包的OWD测量值,或者某段时间内OWD的一种统计值。该信息还可以是该ACK的发送时间戳,以及该ACK的发送延迟时间,比如从接收到数据包到发送该数据包对应的ACK的时间之间的时间差。
6.发送节点通过ACK解析模块203,解析接收到的ACK,获得发送节点计算往返时延所需要的信息,并将该信息输出给往返时延统计模块204。
7.发送节点通过往返时延统计模块204,根据ACK解析模块203输出的信息(即发送节点计算往返时延所需要的信息),得到往返时延的一个测量值。
上述过程发生多次,就可以得到往返时延的多个测量值。
8.发送节点通过往返时延统计模块204,根据往返时延的多个测量值,计算往返时延统计值。
另外,本申请还提供另一种通信系统,该系统中包括第一设备和第二设备,其中第一设备就相当于图2所示系统中的发送节点,第二设备就相当于图2所示系统中的发送节点。有关该通信系统如何实现下述流程的进一步详细的描述,请参考本申请其他的对应段落,例如对方法的描述,以及上文的说明。
第一设备用于通过同一路径向第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;第二设备用于通过计算多个报文的单向时延OWD的统计值,从多个报文携带的时间戳中确定第一时间戳,其中,第一时间戳指示多个报文中第一报文的发送时间,第一报文的OWD的测量值等于多个报文的OWD的统计值。第二设备用于向第一设备发送确认ACK,ACK包括第一时间戳和ACK时间信息,ACK时间信息与第二设备从接收第一报文到发送ACK的时长有关。第一设备用于接收ACK,以及基于第一时间戳,ACK时间信息以及第二时间戳,确定路径的RTT的一个测量值,其中,第二时间戳指示第一设备接收ACK的时间。一种实现方式下,ACK时间信息包括第三时间戳和第四时间戳,第三时间戳指示第二设备接收第一报文的时间,第四时间戳指示第二设备发送ACK的时间。
可见,第一设备和第二设备中可以不包括如图2对应的系统中那么多的模块,也就是说,对设备或者节点中模块的划分方式是多样的。
一种实现方式下,ACK时间信息包括第一时间段,第一时间段指示第二设备从接收第一报文到发送ACK的时长。
一种实现方式下,第一设备还用于基于在一个时间窗内收集的多个ACK,计算路径的RTT的多个测量值,以及计算路径的RTT的多个测量值对应的统计值。
一种实现方式下,多个报文的OWD的统计值与路径的RTT的统计值的种类都是最大值,最小值,或平均值。
这样,上述的系统就可以通过借助OWD,提高对RTT的评估准确度。
上述过程中,接收节点(第二设备)可以按照发送节点(第一设备)的“需求”得到单向时延OWD的测量值或者统计值。“按需”表现在RTT的统计值包括多种形式,例如前文提到的最小RTT、最大RTT、第K大的RTT(0<K<100%)和平均RTT等等,而接收节点计算的OWD的统计值与发送节点计算的RTT的统计值类别相同。例如,发送节点的“需求”是统计最小RTT,则对应在接收节点上统计最小OWD;再例如,发送节点的“需求”是统计最大RTT,则对应在接收节点上统计最大OWD;依此类推。这样,可以节省计算资源。当然,还可以有其他实施方式,是OWD的统计值与RTT的统计值类别不相同,即,不论发送节点的“需求”是最小RTT、最大RTT、第K大的RTT(0<K<100%)还是平均RTT,对应在接收节点上都统计第K大的OWD(0<K<100%),只是对应K的取值不相同。例如,最小RTT对应的K值为5%,最大RTT对应的K值为95%,平均TTT对应的K值为50%。
下面描述本申请提出的评估往返时延的方法。简单来说,发送节点(也称第一节点或第一设备)通过同一路径向接收节点(也称第二节点或第二设备)发送报文(该报文可以是数据包或者控制报文),在报文中携带发送节点发送该报文时的时间戳(即报文发送时间戳)。接收节点在一个时间窗内接收到一个或多个报文后,计算这些报文的OWD的统计值,以及在回复的ACK中,携带一个时间戳和发送节点计算往返时延所需要的信息(即ACK时间信息),例如用于指示某个报文的OWD测量值,或者某段时间(如第一时间窗)内OWD的一种统计值,或者是该ACK的发送时间戳和该ACK的发送延迟时间。ACK中携带的时间戳指示所述多个报文中一个报文的发送时间,这个报文的OWD的测量值等于所述多个报文的OWD的统计值。这样,发送节点就可以基于ACK,更准确地得到RTT的测量值或者进一步计算得到RTT的统计值,例如,发送节点基于第二时间窗内收到的多个ACK,计算该段时间内RTT的统计值。
上述过程还涉及接收节点和发送节点对时延的计算或者统计步骤。例如,接收节点可使用一个数据包到达该接收节点的时间戳和该数据包中携带的数据包发送时间戳计算OWD测量值并对其做一定的处理;接收节点还可以基于OWD的测量值,按照发送节点对RTT统计值的需要,计算某个类型的OWD统计值,从而确定要在ACK中携带的表示一个报文的发送时间的时间戳。
上述方法降低了RTT统计的准确性对每包确认机制的依赖程度,而RTT仍然能较为准确统计或者测量,也能使得很多基于RTT进行例如拥塞控制的传输控制算法能更好地发挥作用,提高传输效率。
接下来,以评估最小RTT为例,结合图3(a),图3(b),图4(a),图4(b)和图4(c),描述本申请方法的一种实现方式。很多传输控制协议都依赖于最小RTT评估的准确性,例如,瓶颈带宽和往返传输时间(Bottleneck Bandwidth and Round-trip propagation time,BBR)和Copa是两种新型的拥塞控制算法,其中Copa是在USENIX NSDI 2018上发表的新算法,目前还没有对应的中文翻译。它们的算法效率与最小RTT统计的准确度密切相关。以BBR为例,BBR实时探测网络最大带宽和最小RTT,从而计算带宽时延积(bandwidth delayproduct,BDP),然后根据BDP确定最大能够往网络中发送的数据总量,从而进行拥塞控制。如果测量的最小RTT偏大,就会导致BBR往网络中发送的数量总量超过网络本身的容量,容易造成丢包、排队时延增大等后果,降低传输效率。
图3(a)描述了一种计算最小RTT的流程,其中包括:
步骤301:在t1时刻,发送节点通过正向路径向接收节点发送一个数据包,其中,该数据包中包括一个指示发送时刻(即t1)的时间戳。
其中,该指示发送时刻的时间戳即该数据包的数据包发送时间戳。
发送节点内可包括多个待发送的数据包,这些待发送的数据包中的数据可以是发送节点上运行的应用下发的,经过协议栈的封装,在发送队列中等待发送。
步骤302:接收节点在t2时刻接收到该数据包,t2即为该数据包的接收时刻。则接收节点可基于该数据包中的指示发送时刻的时间戳和接收时刻得到该数据包在正向路径上的单向时延OWD。并且,将该数据包的OWD,作为OWD的测量值OWD=t2-t1,如图3(b)所示。图3(b)中描述的是发送节点有多个待发送的报文,在t1时刻发送了一个,且该在t1时刻发送的报文在t2时刻被接收节点接收,接收节点将生成ACK,以及通过反向路径向发送节点发送ACK。
另一种实现中,接收节点通过指数加权移动平均的方法,对该数据包的OWD进行平滑,得到对应的平滑的OWD(用sOWD表示),即sOWD=a*sOWD+(1-a)*OWD,其中a是一个可调因子,比如a=0.9,最终,接收节点把sOWD作为OWD测量值。
步骤303:接收节点根据一个时间窗口内接收的多个报文,记录取得最小OWD的报文的发送时间戳。
上述步骤中计算OWD的测量值或者统计值,是为了评估出较为准确,较为贴近实际情况的ACK延迟时间。
由于发送节点可以不断发送数据包,则按照步骤302中的处理方式,接收节点可接收多个带有时间戳的数据包,分别得到多个OWD的测量值,再通过最小窗口过滤器(Windowed Minimum Filter),确定出一个时间窗口(称第一时间窗口)的时长中,值最小的OWD(简称最小OWD,用minOWD表示)。其中,时间窗口的长度是预设的,例如可按需配置,比如20ms。
即
其中,OWDt表示t时刻的OWD的测量值,T表示当前时刻,函数MIN()表示取最小值,W1表示第一时间窗口的时长,可按需配置,比如20ms。
接收节点记录取得最小OWD的数据包的发送时间戳。例如,恰好记录到取得最小OWD的数据包就是前文作为例子描述的那个数据包,该数据包的发送时间戳就是t1,该数据包到达接收节点的时间戳是t2。接收节点可以有自己的管理这些时间戳的方式,如设置一些参数记录这些时间戳。比如记t3=t1,t4=t2。
如果发送节点只需要计算RTT的测量值,那么步骤303可以不执行。
步骤304:接收节点构造ACK,以及将构造好的ACK通过反向路径发送给发送节点。该ACK包括一个数据包的发送时间戳,和指示ACK延迟时间的信息。
其中,指示ACK延迟时间的信息,例如可以是ACK的延迟时长,也可以携带一个数据包接收时间戳(指示接收节点接收该数据包的时间戳)和该数据包对应的ACK的发送时间戳(指示接收迭代发送该ACK的时间戳)。
如果发送节点只需要计算RTT的测量值,该ACK中携带的发送时间戳对应的任意一个包的发送时间戳。下文以携带对应最小OWD的数据包的发送时间戳为例描述。
下面结合图4(a),图4(b)和图4(c)来描述该过程的几种实现方式。
图4(a)以接收节点的视角描述。取得最小OWD的数据包的发送时间戳为t3,该数据包到达接收节点的时间戳为t4,接收节点在接收到该数据包后,在t5发送一个ACK,则对于这个数据包,ACK延迟时间ack_delay=t5-t4。需理解,接收节点可能在t4到t5之间还接收了其他的数据包。
一种实现方式下,如图4(b)所示,接收节点构造的ACK中包括ack_delay和t3。这两个参数可以在ACK的包头,或者option字段,也可以是数据字段。
以TCP协议为例,现有TCP报文中选项(option)字段中,时间戳选项已包含10字节,除了2字节表示选项类型以外,剩余8字节包括了时间戳t3(4字节)和时间戳t5(4字节)。因此,只需修改TCP报文选项字段,用ack_delay的值替换t5的值即可。
一种实现方式下,如图4(c)所示,接收节点构造的ACK中包括t3、t4和发送该ACK的时间戳t5。这三个参数可以在ACK的包头,或者option字段,也可以是数据字段。
这样,发送节点接收到ACK后,可通过t5和t4计算ACK延迟时间ack_delay=t5-t4。以TCP为例,现有TCP报文中选项字段(options)时间戳选项已包含10字节,除了2字节表示选项类型以外,剩余8字节包括了t3(4字节)和t5(4字节)。因此,只需修改TCP报文选项字段中的时间戳为14字节,t3、t4和t5分别占用4字节,由于t3、t4和t5从数值上可以区分(例如依次增大或者依次减小),这三个参数的先后顺序可以不限定。
步骤305:发送节点根据ACK,计算一个RTT测量值。
发送节点通过ACK中的数据包发送时间戳,以及指示ACK发送时延的信息,结合该ACK到达发送节点的时间戳t6,计算出一个RTT测量值,即,一个ACK可得到一个RTT测量值,例如基于上文描述的ACK,RTT=t6-t3-ack_delay。
一种实现方式下,发送节点基于ACK中携带的信息以及该ACK到达发送节点的时间戳计算出一个RTT的值后(例如RTT=t6-t3-ack_delay),进一步通过指数加权移动平均的方法,对这个值进行平滑,得到对应的平滑的RTT(用sRTT表示),即sRTT=a*sRTT+(1-a)*RTT,a是一个可调因子,比如a=0.9。发送节点将sRTT作为RTT测量值。
步骤306:发送节点根据RTT对应的一个时间窗口(即第二时间窗口)内的多个接收的ACK,计算最小RTT。
类似接收节点在步骤303中的方式,按照步骤305中的处理方式,发送节点可接收多个ACK以及计算多个RTT测量值,发送节点通过最小窗口过滤器(Windowed MinimumFilter)对该多个RTT测量值进行过滤,以得到最小RTT(用minRTT表示),即使用如下公式:
其中,OWDt表示t时刻的OWD测量值,函数MIN()表示取最小值,T表示当前时刻,W2表示第二时间窗口的时长,可按需配置。可见,第二时间窗口可以是从当前时刻起向以前回溯某个时长的时间段。一般W2大于W1,比如W2=10s。
上文中的第一时间段和第二时间段的时长设定后,后续可以被更新。
RTT是往返时延,本申请的主要思想是用“往”的统计值来间接评估“往返”的统计值。最小OWD对应的是RTT中的“往”的部分,而“返”的部分是没有做任何评估的。如果最小OWD的那个数据包,在“返”的时候遇到了网络抖动,比如“返”的路径上拥塞了,就会导致这个RTT测量值较大。如果直接取这个测量值作为最小RTT的值,就不准确。为了避免这种异常情况,我们在发送端再根据第二时间窗口,计算多个测量值的最小值,主要还是为了消除误差。也就是说,虽然发送端计算多个RTT测量值的最小值,这个方法是现有的,但是,它在本申请描述的方法里的作用跟现有方法中有细微的差别。即,现有方法是为了同时消除“往”和“返”带来的误差,而本实施例中是为了消除“返”的误差。
当然,前文是以每个ACK中携带的是最小OWD对应的数据包的信息为例进行说明的,这样的“按需”统计能够更加准确地计算RTT的最小值。另一种实现方式下,ACK中也可携带与该ACK对应的任一个数据包的发送时间戳和接收时间戳,发送节点同样可根据多个ACK来计算最小RTT,同样也能得到相比于现有技术,更贴近实际情况,更为准确的RTT统计值。
上述过程是以最小RTT作为例子来描述的,但也可以扩展到计算其他种类的RTT统计值,例如最大RTT、多个RTT中排第K大的RTT,多个RTT中值为前L%小的RTT或者平均RTT等。相应的,如果是“按需”统计,仅需把最小OWD相应地换成最大OWD、多个OWD中排第K大的OWD,多个OWD中值为前L%小的OWD或者平均OWD即可,如果不“按需”统计,则更加灵活。
现有技术中,接收节点只通过发送的ACK触发发送节点记录ACK到达时间,发送节点再结合本身记录的与该ACK对应的数据包发送时间,即由发送节点根据接收节点反馈的ACK的到达时间,获得RTT的测量值或者统计值,整个过程接收节点并没有为计算RTT做除发送标准的ACK外的工作。而本申请采用的是收发双方协作的方式。
另一方面,现有技术直接在发送节点计算RTT测量值,取所述RTT测量值中的最小值作为最小RTT。本发明采用的是一种间接的方式,接收节点计算OWD测量值,取所述OWD测量值作为最小OWD,然后发送节点计算取到所述最小OWD的数据包对应的RTT测量值;发送节点根据多个RTT测量值,再取所述RTT测量值中的最小值作为最小RTT。ACK返回数目较每包确认少的情况下,本申请描述的方案能够保证最小RTT评估的准确性。
再者,与现有技术对比,本申请的方案中,本发明不需要发送节点和接收节点进行时钟同步。单向时延的测量具有一个通用的难题,就是发送节点和接收节点的时钟可能不同步,因此如果要获得OWD的准确值,必须进行时钟同步。但是,在本发明中,接收节点只对OWD测量值进行比较操作,仅仅涉及OWD之间的差值,因此,本发明不需要进行时钟同步,在评估也不需要获取真实的OWD测量值,也就消除了测量体系内系统误差的影响。本发明中的OWD的值都是带有时钟同步误差的相对值,该相对值不会影响本发明的效果。
本申请描述的方案在做适应性的改动后,同样可以用在接收节点基于来自发送节点的数据包,测量或者统计其他接收节点的传输参数,例如带宽,抖动(jitter),丢包率,以及接收节点的接收速率等等。其中接收节点的接收速率是指单位时间内,接收节点接收到的数据量。接收节点统计出某个传输参数后,将统计出的传输参数携带在ACK中反馈给发送节点。这样,发送节点基于ACK中携带的信息,可更准确地获知路径的传输性能,缓解现有技术基于ACK计算这些参数的方法准确度低,测量不便的现状。其中,本申请描述的方法和装置用在测量其他传输参数的场景时,只需对上述提及的一些参数做简单的替换,本申请不再赘述。例如,传输参数为接收节点的接收速率的场景,仅需把上述对RTT的测量换成对接收速率的计算。
这样,通过OWD,在ACK比较稀疏的场景或者ACK延迟回复的场景下,发送节点基于ACK中携带的数据包发送时间戳和指示ACK延迟时间的信息,确定出RTT的测量值,当有多个测量值的情况下,就可以得到所需的统计值。这种方法可以减少时延统计对每包确认机制的依赖,确保最小RTT测量的精确度,从而使基于最小RTT进行控制的协议拥塞控制更加精准。例如,在一个测试场景下,网络固有往返时延设置为100ms,接收节点每20ms回复一个ACK包,分别使用本申请描述的方法和在发送节点采样RTT的现有技术,计算最小RTT,实验结果表明,现有方案统计的最小RTT值有6%-18%的偏差(在不同的时间点采样计算结果会有抖动),而本申请的方案统计的最小RTT则更加精确,偏差在1%以内。
另外,较为准确的最小RTT可以使基于最小RTT进行控制的协议拥塞控制更加精准,从而提高传输效率。例如,提高传输效率可以体现在降低排队时延和降低冗余率。冗余率又被称为重传率,用于表示重传的数据包与总共发送的数据包之间的比例。例如,在ACK延迟机制下,实现BBR算法,BBR算法中的最小RTT统计分别采用现有技术和本申请的方案。在谷歌数据中心的悉尼和东京分别租用虚拟机,在悉尼和东京之间进行数据传输,对比结果为:现有技术平均排队时延为63ms,冗余率为1.41%;本发明平均排队时延为36ms,冗余率为0.65%。因此,本发明相比现有技术,可以使排队时延降低43%,使冗余率降低54%。
另一方面,现有技术中,在延迟场景下,由于一个ACK要对应多个数据包,接收节点需要将接收的每个数据包的信息,例如接收到数据包的时间都缓存和管理起来。而使用上述方法接收节点则只需要缓存和管理部分接收到的数据包的信息,减少了接收节点的资源占用以及系统开销,但得到的RTT的统计值却更加精确,这样就较小的开销获得较为精准的往返时延统计值。
上述方法还可以用在监控RTT的计算上,也就是接收节点通过感知OWD的抖动,提示发送节点更新对RTT的计算。这种监控可用在单路径或者多路径连接,如果是多路径连接,那么下文中被使用的包应当都是在相同子流传输的,即RTT是同一往返路径的RTT。下述实现不限定传输层的传输协议,例如TCP,UDP,MP协议,QUIC协议等都适用。下文中以UDP协议为例进行描述。简单说,就是发送节点向接收节点发送携带用于估计RTT的包,这些包可以是控制报文,也可以是数据报文,这样的包也称时延探测包,接收节点返回ACK,ACK中包括统计RTT所需要的信息以便发送节点计算,例如指示ACK延迟时间的信息和该ACK对应的UDP包的发送时间戳。这样,发送节点就可以计算出RTT的测量值或者统计值。与前述方法不同的是,可以由接收节点根据时延探测包根据OWD估计RTT,当估计的RTT抖动超过一个范围时,把估计的RTT发送给发送节点,以提示发送节点再次计算RTT的测量值或者统计值。
下面以时延测量为例,描述上述方案在UDP协议场景下的一种实现方式。
第一阶段过程与前述方法类似,此处仅简单描述:发送节点向接收节点发送第一UDP包,该第一UDP包为时延探测包。该第一UDP包中包括该第一UDP包的发送时间戳。接收节点基于该第一UDP包,向发送节点回复ACK,该ACK携带指示ACK延迟时间的信息和该UDP包的发送时间戳。发送节点收到ACK后,根据ACK延迟时间和发送时间戳、以及接收到ACK的时刻,计算该第一UDP包的RTT,记为RTT0。
其中,接收节点接收到第一UDP包后,可基于该第一UDP包,估计发送节点与接收节点之间的RTT。例如,记第一UDP包的OWD为OWD0,取RTT=aOWD0,其中1≤a≤2。这是由基于RTT和OWD的定义,RTT大于等于OWD。就是说一方面可以接收节点来估计RTT,并将RTT发送给发送节点,发送节点就将此视为RTT的测量值,而无需发送节点计算RTT的测量值。另一方面,接收节点估计了RTT后,也可以仍然由发送节点计算RTT测量值,接收节点估计的RTT只用于估计RTT的抖动。
随着时间的变化,网络连接的传输参数的值也会发生变化,这个变化可称为传输参数值的抖动。由于抖动的存在,一直使用上述计算出的RTT0作为一条连接的往返时延不够准确。结合上述的过程,接收节点估计了RTT后,也可以仍然由发送节点计算RTT测量值,接收节点估计的RTT只用于估计RTT的抖动,估计RTT的抖动是用于提示发送节点何时更新计算RTT的测量值,也就是说,具体实现,可以是在接收节点估计的RTT的抖动超过某一阈值的情况下,接收节点通过发送指令或信息,例如接收节点将最近评估的RTT携带在ACK中发给发送节点,以触发发送节点更新(即重新计算或修正)RTT的测量值或者统计值。本方案的下一阶段就通过后来接收的包的OWD来评估这种抖动,并用这种方式来修正RTT0。
第二阶段,包括以下步骤:
A.发送节点向接收节点发送第二UDP包,该第二UDP包携带发送时间戳以及前述步骤得到的RTT0。从发送节点的时序看,第二UDP包可以是发送节点接收到第一UDP包的ACK后发送的第一个包,也可以是接收到第一UDP包的ACK后又经过一段时间后发送的,在经过的这一段时间,发送节点可能接收或者发送了其他的包。
上述的第二UDP包将RTT0发送给接收节点后,后续发送的每个UDP包可以都携带RTT0,其中,携带的RTT可以是RTT0,也可以是发送节点基于第一UDP包的ACK之后接收到的ACK,得到的RTT。正如前文所述,RTT0是一个基准值,那么该基准值也是可以被更新的,这样有助于接收节点更准确地估计当前连接的RTT。如果一段时间内,都无需改变这些值,则在这段时间内发送节点发送的包都可以不携带RTT0,这样能够减少被传输的数据量,节约网络资源。
B.接收节点收到该第二UDP包后,基于第二UDP包和第一UDP包的OWD来估计当前的RTT。
一种实现方式下,接收节点根据第二UDP包中携带的发送时间戳和接收节点记录的第二UDP包的接收时间,计算第二UDP包的OWD(记为OWD1)。接收节点计算第二UDP包的OWD与第一UDP包的OWD(记为OWD0)之间的差值,该差值记为ΔOWD0。进一步的,估计第二UDP包的RTT(记为RTT1),RTT1=RTT0+bΔOWD0,其中1≤b≤2。另外,估计此时发送节点与接收节点之间的连接的往返时延为RTT=c*RTT1+(1-c)*RTT0,其中0≤c≤1。这样,估计出的RTT会更加准确,也可以通过这种方式在接收节点估计RTT的变化。
在一个连接中传输数据的过程中,步骤A和B是可以多次发生的,下面以接收节点接收到第i个UDP包为例进行说明,其中i大于2。第i个UDP包是发送节点在第二UDP包之后发送的包,也是接收节点在第二UDP包之后接收第i个UDP包。第i个UDP包的OWD记为OWDi-1。接收节点计算第i个UDP包的OWD与第i-1个UDP包的OWD(记为OWDi-2)之间的差值,该差值记为ΔOWDi-1。进一步的,估计第i-1个UDP包的RTT(记为RTTi-1),RTTi-1=RTTi-2+bΔOWD0,其中1≤b≤2,需说明的是RTTi-2可能等于RTT0到RTTi-2中的任意一个值,即RTTi-2的作用就是一个基数,与作为基数的一直没有变化。接收节点计算ΔOWDi-1=OWDi-1-OWDi-2,估计RTTi+1=RTTi+2ΔOWDi;RTT=a*RTTi+1+(1-a)*RTTi。
这样,接收节点就可以通过估计RTT来监控RTT的抖动,当估计的RTT的变化高于阈值,则可通知发送节点重新测量,这样无需时刻计算RTT的测量值或统计值,就可以节省发送节点的处理资源,还可以使发送节点随着网络的实际变化更新RTT,也兼顾了实时性和准确性,能更准确反映路径的传输性能。
不同于之前描述的方法的目标是获得较为准确的RTT的测量值或统计值;上述以UDP为例的实施例中,接收节点监控传输状态的变化,按需激活发送节点更新RTT的测量值或统计值。具体来说,通过在接收节点统计OWD的变化来推测RTT的变化,从而降低时延统计对ACK数目的依赖,减少不必要的ACK包,降低传输开销;其次,在接收节点统计OWD的变化,可以直接反映正向路径传输的状态,消除了反向路径上ACK传输过程中因反向路径上的抖动导致的干扰,从而使得时延变化估计值更接近真实的正向路径传输状态,使传输控制更准确。
基于与上述方法实施例同样的发明构思,本申请实施例还提供一种评估往返时延的系统。该系统包括第一设备和第二设备,可以执行前文描述的各种方法。一种实现方式下,第一设备对应前文的发送该第一设备用于通过同一路径向该第二设备发送多个报文,该多个报文中的每一个报文都携带有指示该报文的发送时间的时间戳;该第二设备用于通过计算该多个报文的单向时延OWD的统计值,从该多个报文携带的时间戳中确定第一时间戳,其中,该第一时间戳指示该多个报文中第一报文的发送时间,该第一报文的OWD的测量值等于该多个报文的OWD的统计值;该第二设备用于向该第一设备发送确认ACK,该ACK包括该第一时间戳和ACK时间信息,该ACK时间信息与该第二设备从接收该第一报文到发送该ACK的时长有关;该第一设备用于接收该ACK,以及基于该第一时间戳,该ACK时间信息以及第二时间戳,确定该路径的RTT的一个测量值,其中,该第二时间戳指示该第一设备接收该ACK的时间。
由于第一设备发送的报文中携带有指示该报文发送时间的时间戳,第二设备就可以计算路径的单向时延,因为第二设备可能接受了多个报文后才返回ACK,第二设备通过OWD的统计值来确定在ACK中携带哪个报文的发送时间戳,并将对应于该报文的能指示ACK发送时延的信息也携带在ACK中,也就是借助对OWD的分析来评估RTT,这样就可通过第一设备和第二设备的配合,提高评估RTT的准确性。基于更准确更贴近实际网络情况的RTT控制该路径的数据传输,能提高该路径的传输性能。
关于该系统的各种实施细节,请参考前文对方法的描述,此处不再赘述。
基于与上述方法实施例同样的发明构思,本申请实施例还提供一种数据传输的装置,该装置对应前文描述的接收节点、也就是对应前文的第二设备或者第二节点,可以与发送节点(即前文的第一设备或者第一节点)配合,执行本申请描述的评估往返时延的方法。该装置具体可以是设备、设备中的处理器、芯片或芯片系统,下面结合图5进行描述。该数据传输装置500包括接收模块501,用于通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;时间戳确定模块502,用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;以及发送模块503,用于向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
其中,数据传输装置500也是图2对应的系统中的接收节点,也就是说,接收节点的内部结构可以有多种实现方式,本申请中只示意性地列出几种,只要接收节点可以执行前文描述各种的方法即可。例如,图2中接收节点的数据包解析模块205、单向时延统计模块206和ACK构造模块可以认为对应的是图5中的时间戳确定模块502。有关数据传输装置500的其他实现方式、功能以及所能达到的技术效果,请参考前文方法部分的相关描述,此处不再赘述。
应理解的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
基于相同的构思,如图6所示,为本申请提供的一种设备600。装置600可以包括处理电路601,装置600还可以包括至少一个存储介质603,用于存储程序指令和/或数据。存储介质603和处理电路601耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理电路601可能和存储介质603协同操作。处理电路601可能执行存储介质603中存储的程序指令。可选的,存储介质603中的至少一部分可以包括于处理电路601中。
装置600中还可以包括通信接口604,装置600可以通过通信接口604和其它设备进行信息交互。通信接口604可以是电路、总线、收发器、天线或者其它任意可以用于进行信息交互的装置。
在一种可能的实施方式中,该装置600可以应用于接收节点,可以是能够支持接收节点实现上述涉及的任一实施例中接收节点的功能的装置。存储介质603保存实现上述任一实施例中的接收节点的功能的必要计算机程序指令和/或数据。所述处理电路601可执行所述存储介质603存储的计算机程序指令,完成上述任一实施例中接收节点执行的方法。应用于接收节点时,图5所示的接收模块501,时间戳确定模块502以及发送模块503的功能均可以由处理电路601实现。另外,图2中所述的数据包解析模块205、单向时延OWD统计模块206、ACK构造模块207和的功能也可以由处理电路601实现。
本申请实施例中不限定上述通信接口604、处理电路601以及存储介质603之间的具体连接介质和连接方式,比如可以是电连接。图6中示意的是通过总线602,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理电路601可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各种方法及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储介质603可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储介质603还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请还提供一种芯片,该芯片可以包括通信接口和处理电路;该处理电路用于控制该通信接口以实现前文描述的方法。应理解,该芯片可以运行在一个设备上,该设备中包括存储介质,存储介质中可以保存执行前文描述方法的指令或者代码,这样该芯片上电后,处理电路就可以调用设备中的存储介质中的指令或者代码。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行前文描述的方法。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种评估往返时延RTT的系统,所述系统包括第一设备和第二设备,其特征在于,
所述第一设备用于通过同一路径向所述第二设备发送多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
所述第二设备用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
所述第二设备用于向所述第一设备发送确认ACK,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关;
所述第一设备用于接收所述ACK,以及基于所述第一时间戳,所述ACK时间信息以及第二时间戳,确定所述路径的RTT的一个测量值,其中,所述第二时间戳指示所述第一设备接收所述ACK的时间。
2.根据权利要求1所述的系统,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
3.根据权利要求1或2任一所述的系统,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
4.根据权利要求1到3任一权要所述的系统,其特征在于,所述第一设备还用于基于在一个时间窗内收集的多个ACK,计算所述路径的RTT的多个测量值,以及计算所述路径的RTT的多个测量值对应的统计值。
5.根据权利要求4所述的系统,其特征在于,所述多个报文的OWD的统计值与所述路径的RTT的统计值的类型相同,所述类型为最大值,最小值和平均值中的一种。
6.根据权利要求4或5任一所述的系统,其特征在于,所述多个报文的OWD的统计值为所述多个报文的最小OWD,所述路径的RTT的统计值为所述多个测量值中的最小RTT。
7.根据权利要求2所述的系统,其特征在于,所述第一设备具体用于将所述第二时间戳指示的时间减去所述第一时间戳指示的时间,以及减去所述第四时间戳与所述第三时间戳之差,以得到所述路径的RTT的一个测量值。
8.根据权利要求3所述的系统,其特征在于,所述第一设备具体用于将所述第二时间戳指示的时间减去所述第一时间戳指示的时间,以及减去所述第一时间段,以得到所述路径的RTT的一个测量值。
9.一种评估时延的方法,其特征在于,所述方法包括:
第二设备通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
所述第二设备通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
所述第二设备向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
10.根据权利要求9所述的方法,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
11.根据权利要求9或10任一所述的方法,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
12.根据权利要求9到11任一所述的方法,其特征在于,所述多个报文的OWD的统计值类型是最大值,最小值,或平均值。
13.一种评估时延的装置,其特征在于,所述装置包括:
接收模块,用于通过同一路径接收来自第一设备的多个报文,所述多个报文中的每一个报文都携带有指示所述报文的发送时间的时间戳;
时间戳确定模块,用于通过计算所述多个报文的单向时延OWD的统计值,从所述多个报文携带的时间戳中确定第一时间戳,其中,所述第一时间戳指示所述多个报文中第一报文的发送时间,所述第一报文的OWD的测量值等于所述多个报文的OWD的统计值;
发送模块,用于向所述第一设备发送确认ACK,以便所述第一设备基于所述ACK评估所述路径的RTT,所述ACK包括所述第一时间戳和ACK时间信息,所述ACK时间信息与所述第二设备从接收所述第一报文到发送所述ACK的时长有关。
14.根据权利要求15所述的装置,其特征在于,所述ACK时间信息包括第三时间戳和第四时间戳,所述第三时间戳指示所述第二设备接收所述第一报文的时间,所述第四时间戳指示所述第二设备发送所述ACK的时间。
15.根据权利要求13或14任一所述的装置,其特征在于,所述ACK时间信息包括第一时间段,所述第一时间段指示所述第二设备从接收所述第一报文到发送所述ACK的时长。
16.根据权利要求13到15任一所述的装置,其特征在于,所述多个报文的OWD的统计值种类是最大值,最小值,或平均值。
17.一种评估时延的装置,其特征在于,包括:
通信接口、处理电路和存储介质;
所述存储介质用于存储软件程序,所述通信接口用于通过所述存储介质中的指令与其他设备收发报文,所述处理电路用于运行所述存储介质中的指令控制所述通信接口以实现权利要求9至12任一项所述的方法。
18.一种芯片,其特征在于,包括:
通信接口和处理电路;所述处理电路用于控制所述通信接口以实现权利要求9至12任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储软件程序,所述软件程序在被一个或多个处理器读取并执行时可实现权利要求7到10任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631286.6A CN112217686B (zh) | 2019-07-12 | 2019-07-12 | 一种评估往返时延的系统、方法及装置 |
PCT/CN2020/101547 WO2021008473A1 (zh) | 2019-07-12 | 2020-07-13 | 一种评估往返时延的系统、方法及装置 |
EP20839648.1A EP3832953A4 (en) | 2019-07-12 | 2020-07-13 | SYSTEM, METHOD AND DEVICE FOR EVALUATING THE CIRCULATION TIME |
US17/199,773 US11611498B2 (en) | 2019-07-12 | 2021-03-12 | Round-trip time evaluation system, method, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910631286.6A CN112217686B (zh) | 2019-07-12 | 2019-07-12 | 一种评估往返时延的系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112217686A true CN112217686A (zh) | 2021-01-12 |
CN112217686B CN112217686B (zh) | 2022-12-27 |
Family
ID=74047932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910631286.6A Active CN112217686B (zh) | 2019-07-12 | 2019-07-12 | 一种评估往返时延的系统、方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11611498B2 (zh) |
EP (1) | EP3832953A4 (zh) |
CN (1) | CN112217686B (zh) |
WO (1) | WO2021008473A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113364646A (zh) * | 2021-06-03 | 2021-09-07 | 杭州朗和科技有限公司 | 确定往返延迟的方法、装置及系统、存储介质和电子设备 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN113473185A (zh) * | 2021-04-28 | 2021-10-01 | 清华大学 | 基于视频流关键帧突发特性的可用带宽探测方法及装置 |
CN113890841A (zh) * | 2021-09-16 | 2022-01-04 | 清华大学 | 高效的大规模单向延迟测量方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT201900010362A1 (it) * | 2019-06-28 | 2020-12-28 | Telecom Italia Spa | Abilitazione della misura di perdita di pacchetti round-trip in una rete di comunicazioni a commutazione di pacchetto |
US20220417303A1 (en) * | 2021-06-28 | 2022-12-29 | Tencent America LLC | Techniques for monitoring encrypted streaming traffic using underlying transport metrics |
US11848868B2 (en) * | 2021-09-29 | 2023-12-19 | Huawei Technologies Co., Ltd. | Methods, systems and devices for network management using control packets |
EP4207704A1 (en) * | 2021-12-28 | 2023-07-05 | Vestas Wind Systems A/S | A method for testing data transfer in a wind power surveillance system |
US20230231789A1 (en) * | 2022-01-18 | 2023-07-20 | Level 3 Communications, Llc | Network quality testing |
CN114666243A (zh) * | 2022-03-29 | 2022-06-24 | 迈普通信技术股份有限公司 | 网络质量测量方法、装置、系统、电子设备及存储介质 |
US20230327998A1 (en) * | 2022-04-07 | 2023-10-12 | Mellanox Technologies Ltd. | System and method for network rate limiting |
US11863451B2 (en) | 2022-05-16 | 2024-01-02 | Huawei Technologies Co., Ltd. | Hardware accelerated temporal congestion signals |
CN115002040B (zh) * | 2022-05-27 | 2024-03-01 | 长沙理工大学 | 基于大数据的感知优先级流控的负载均衡方法及其系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040105392A1 (en) * | 2002-11-29 | 2004-06-03 | Saravut Charcranoon | Decentralized SLS monitoring in a differentiated service environment |
JP2006340081A (ja) * | 2005-06-02 | 2006-12-14 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト通信フロー制御方法および装置 |
US20130114421A1 (en) * | 2011-11-04 | 2013-05-09 | Microsoft Corporation | Adaptive bandwidth estimation |
EP2627040A1 (en) * | 2012-02-12 | 2013-08-14 | Hochschule Anhalt (FH) | Method for eliminating systematical error components in a set of one-way delay measurement results for communications between two or more computing systems in a communication network, apparatus for performing the method and computer program product |
US20150117250A1 (en) * | 2013-10-30 | 2015-04-30 | Samsung Sds Co., Ltd. | Method and apparatus for estimating queuing delay |
US20170353372A1 (en) * | 2014-11-19 | 2017-12-07 | Nec Corporation | Round-trip delay time measurement system, round-trip delay time measurement method, return method, communication device, program, and data structure |
US20180152281A1 (en) * | 2016-11-28 | 2018-05-31 | Rad Data Communications Ltd. | One-way packet delay measurement |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7123616B2 (en) * | 2000-06-09 | 2006-10-17 | Ixia | Determining round-trip time delay |
JP2002374302A (ja) * | 2001-06-15 | 2002-12-26 | Ntt Docomo Inc | Rtt測定方法、及び、rtt測定システム |
GB2394628B (en) | 2002-10-25 | 2005-10-19 | Siemens Plc | A method of determining a timing offset between a first clock and a second clock in a communications network |
US7675856B2 (en) * | 2005-03-24 | 2010-03-09 | Microsoft Corporation | Bandwidth estimation in broadband access networks |
CN101232718A (zh) | 2007-01-22 | 2008-07-30 | 华为技术有限公司 | 一种测距方法、设备及系统 |
JP4367505B2 (ja) * | 2007-03-06 | 2009-11-18 | 日本電気株式会社 | 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム |
CN101510849B (zh) | 2009-03-18 | 2011-05-18 | 中国电信股份有限公司 | 获取传输路径上节点传输信息的方法和系统 |
CN102185673B (zh) | 2011-03-22 | 2013-03-27 | 深信服网络科技(深圳)有限公司 | 一种rtt统计方法和rtt统计系统 |
CN105359461B (zh) | 2013-05-31 | 2019-10-11 | 意大利电信股份公司 | 分组交换通信网络的链路的性能测量 |
WO2015090364A1 (en) | 2013-12-17 | 2015-06-25 | Telecom Italia S.P.A. | Time measurement in a packet-switched communication network |
CN104618922B (zh) * | 2015-01-21 | 2018-06-19 | 新华三技术有限公司 | 一种rtt测量定位系统中的测量结果匹配方法和装置 |
CN106656642B (zh) * | 2015-10-28 | 2020-06-02 | 华为技术有限公司 | 一种往返时延的测量方法、装置及系统 |
CN105471757B (zh) | 2015-12-11 | 2018-08-03 | 福建星网锐捷网络有限公司 | 一种tcp拥塞控制方法及装置 |
CN106878191B (zh) | 2015-12-14 | 2018-11-16 | 华为技术有限公司 | 一种数据传送方法、发送节点、接收节点及数据传送系统 |
CN106936661B (zh) | 2015-12-31 | 2020-01-03 | 华为技术有限公司 | 一种网络监测方法、装置及系统 |
CN108737207A (zh) * | 2017-04-25 | 2018-11-02 | 华为技术有限公司 | 传输时延探测方法、设备和系统 |
US10742555B1 (en) * | 2017-12-11 | 2020-08-11 | Amazon Technologies, Inc. | Network congestion detection and resolution |
CN108173718A (zh) | 2018-01-29 | 2018-06-15 | 赛特斯信息科技股份有限公司 | 基于sd-wan场景的bfd链路检测及评估的系统和方法 |
CN108833207B (zh) | 2018-06-19 | 2021-02-02 | 中国联合网络通信集团有限公司 | 时延测量方法及系统 |
-
2019
- 2019-07-12 CN CN201910631286.6A patent/CN112217686B/zh active Active
-
2020
- 2020-07-13 EP EP20839648.1A patent/EP3832953A4/en active Pending
- 2020-07-13 WO PCT/CN2020/101547 patent/WO2021008473A1/zh unknown
-
2021
- 2021-03-12 US US17/199,773 patent/US11611498B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040105392A1 (en) * | 2002-11-29 | 2004-06-03 | Saravut Charcranoon | Decentralized SLS monitoring in a differentiated service environment |
JP2006340081A (ja) * | 2005-06-02 | 2006-12-14 | Nippon Telegr & Teleph Corp <Ntt> | マルチキャスト通信フロー制御方法および装置 |
US20130114421A1 (en) * | 2011-11-04 | 2013-05-09 | Microsoft Corporation | Adaptive bandwidth estimation |
EP2627040A1 (en) * | 2012-02-12 | 2013-08-14 | Hochschule Anhalt (FH) | Method for eliminating systematical error components in a set of one-way delay measurement results for communications between two or more computing systems in a communication network, apparatus for performing the method and computer program product |
US20150117250A1 (en) * | 2013-10-30 | 2015-04-30 | Samsung Sds Co., Ltd. | Method and apparatus for estimating queuing delay |
US20170353372A1 (en) * | 2014-11-19 | 2017-12-07 | Nec Corporation | Round-trip delay time measurement system, round-trip delay time measurement method, return method, communication device, program, and data structure |
US20180152281A1 (en) * | 2016-11-28 | 2018-05-31 | Rad Data Communications Ltd. | One-way packet delay measurement |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113473185A (zh) * | 2021-04-28 | 2021-10-01 | 清华大学 | 基于视频流关键帧突发特性的可用带宽探测方法及装置 |
CN113473185B (zh) * | 2021-04-28 | 2022-08-26 | 清华大学 | 基于视频流关键帧突发特性的可用带宽探测方法及装置 |
CN113364646A (zh) * | 2021-06-03 | 2021-09-07 | 杭州朗和科技有限公司 | 确定往返延迟的方法、装置及系统、存储介质和电子设备 |
CN113411228A (zh) * | 2021-06-04 | 2021-09-17 | 网宿科技股份有限公司 | 一种网络状况的确定方法及服务器 |
CN113890841A (zh) * | 2021-09-16 | 2022-01-04 | 清华大学 | 高效的大规模单向延迟测量方法及装置 |
CN113890841B (zh) * | 2021-09-16 | 2023-03-24 | 清华大学 | 高效的大规模单向延迟测量方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112217686B (zh) | 2022-12-27 |
EP3832953A4 (en) | 2021-11-24 |
WO2021008473A1 (zh) | 2021-01-21 |
EP3832953A1 (en) | 2021-06-09 |
US20210203578A1 (en) | 2021-07-01 |
US11611498B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112217686B (zh) | 一种评估往返时延的系统、方法及装置 | |
US7643430B2 (en) | Methods and apparatus for determining reverse path delay | |
EP2044514B1 (en) | Methods and apparatus for improved determination of network metrics | |
CN111817977B (zh) | 一种网络拥塞控制方法和装置 | |
JP4348124B2 (ja) | QoSを推定する方法および通信装置 | |
US9379955B2 (en) | Method for queuing data packets and node | |
US10129123B2 (en) | Measurement apparatus, communications apparatus, and relay apparatus | |
US20110096662A1 (en) | Inferring TCP Initial Congestion Window | |
US20020080726A1 (en) | System and method for determining network throughput speed and streaming utilization | |
CN112054965A (zh) | 一种拥塞控制方法、设备及计算机可读介质 | |
EP3295612B1 (en) | Uplink performance management | |
JP6575529B2 (ja) | 可用帯域推定システム、可用帯域推定方法、受信装置及び受信装置の制御プログラム | |
CN113726681B (zh) | 一种网络拥塞控制方法及网络设备 | |
Gangam et al. | Estimating TCP latency approximately with passive measurements | |
JP2015023463A (ja) | パケット解析装置、パケット解析方法、及びパケット解析プログラム | |
CN115002008B (zh) | 一种网络时延测量的方法、装置、设备以及存储介质 | |
US10298475B2 (en) | System and method for jitter-aware bandwidth estimation | |
KR100737678B1 (ko) | 멀티미디어 스트리밍 서비스에 대한 지연시간 분석방법 | |
CN113950099B (zh) | 一种网络拥塞控制方法及设备 | |
CN107864026B (zh) | 聚合链路帧丢失测量装置及方法 | |
Lim et al. | Robust end-to-end loss differentiation scheme for transport control protocol over wired/wireless networks | |
JP2004312725A (ja) | サービスの品質を決定する方法および装置 | |
JP2009021888A (ja) | データ通信装置及びデータ通信方法 | |
US9882751B2 (en) | Communication system, communication controller, communication control method, and medium | |
Briscoe | Rapid Signalling of Queue Dynamics |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |