CN110290552B - 缓存深度的测量方法和装置、存储介质、电子装置 - Google Patents
缓存深度的测量方法和装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN110290552B CN110290552B CN201810224841.9A CN201810224841A CN110290552B CN 110290552 B CN110290552 B CN 110290552B CN 201810224841 A CN201810224841 A CN 201810224841A CN 110290552 B CN110290552 B CN 110290552B
- Authority
- CN
- China
- Prior art keywords
- transmission
- parameter
- target channel
- data
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/127—Avoiding congestion; Recovering from congestion by using congestion prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0284—Traffic management, e.g. flow control or congestion control detecting congestion or overload during communication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种缓存深度的测量方法和装置、存储介质、电子装置。其中,该方法包括:在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,其中,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度。本发明解决了相关技术中对网络拥塞的判定准确率较低的技术问题。
Description
技术领域
本发明涉及互联网领域,具体而言,涉及一种缓存深度的测量方法和装置、存储介质、电子装置。
背景技术
TCP协议是互联网中使用最为广泛的协议,它提供可靠的端到端服务,常用的WWW,TELNET,EMALL等都是使用的传输控制协议TCP(Transmission Control Protocol)作为传输层协议。早在1997年贝尔实验室的统计数据中就显示,TCP协议承担的字节和报文通信业务分别是占95%和90%,所以TCP协议对于网络通信的质量至关重要。
随着移动终端的兴起,移动互联网的流量己经逐渐赶超个人计算机PC(PersonalComputer)端的流量,用户对移动终端基于TCP的应用程序的运行速度的要求也越来越高,这也就意味着对拥塞窗口的性能有更高的要求,现有的移动互联网中的拥塞窗口的控制的大部分工作几乎都是由TCP完成的,TCP协议的实现包含了一种避免和控制网络拥塞的控制算法,以用来确保网络的通畅和稳定。
目前,无论对于PC端还是移动终端,对拥塞发生的判断并不准确,不能预测拥塞的发生,更加不能避免拥塞的发生,导致用户体验感变差。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种缓存深度的测量方法和装置、存储介质、电子装置,以至少解决相关技术中对网络拥塞的判定准确率较低的技术问题。
根据本发明实施例的一个方面,提供了一种缓存深度的测量方法,包括:在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,其中,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度。
根据本发明实施例的另一方面,还提供了一种缓存深度的测量装置,包括:传输单元,用于在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取单元,用于获取目标信道对多个数据集合的多个传输结果,其中,传输结果用于指示数据集合的数据包的传输时延;确定单元,用于根据传输结果指示的传输时延确定目标信道的缓存深度。
根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
在本发明实施例中,在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度,从而确定了信道的缓存深度,进而可以根据信道的缓存深度预测和判断拥塞的发生、避免拥塞的发生,可以解决相关技术中对网络拥塞的判定准确率较低的技术问题,进而达到了准确预测和判断拥塞、避免发生拥塞的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的缓存深度的测量方法的硬件环境的示意图;
图2是根据本发明实施例的一种可选的缓存深度的测量方法的流程图;
图3是根据本发明实施例的一种可选的传输时延的示意图;
图4是根据本发明实施例的一种可选的带宽测量的示意图;
图5是根据本发明实施例的一种可选的传输控制架构的示意图;
图6是根据本发明实施例的一种可选的传输控制架构的示意图;
图7是根据本发明实施例的一种可选的缓冲区测量的示意图;
图8是根据本发明实施例的一种可选的统计缓冲区深度的示意图;
图9是根据本发明实施例的一种可选的缓存深度的测量方法的流程图;
图10是根据本发明实施例的一种可选的拥塞控制的流程图;
图11是根据本发明实施例的一种可选的拥塞控制的流程图;
图12是根据本发明实施例的一种可选的缓存深度的测量装置的示意图;以及
图13是根据本发明实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
即往返时延Rtt,英文全称Round-Trip Time,在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延;或由接收端请求数据,到接收到发送端发送的数据,总共经历的时延。
带宽时延乘积BDP:英文全称Bandwidth-Delay Product,即链路上的最大比特数,也称以比特为单位的链路长度。
计算机网络中拥塞窗口CWnd,英文全称congestion window,拥塞窗口的大小取决于网络速度的拥塞程度和处理数据量,并且动态地在变化加入新的执行方式。
根据本发明实施例的一方面,提供了一种缓存深度的测量方法的方法实施例。
可选地,在本实施例中,上述缓存深度的测量方法可以应用于如图1所示的由第一节点101和第二节点103所构成的硬件环境中。如图1所示,第一节点101可通过网络与第二节点103进行连接,上述网络包括但不限于:广域网、城域网或局域网,第一节点101和第二节点103并不限定于PC、手机、平板电脑等。本发明实施例的缓存深度的测量方法可以由第一节点101来执行,也可以由第二节点103来执行,还可以是由第一节点101和第二节点103共同执行。其中,第二节点103执行本发明实施例的缓存深度的测量方法也可以是由安装在其上的客户端来执行。
可选地,第一节点101和第二节点103之间可设置缓存服务器105,以实现对被发送数据的缓存;可选地,缓存服务器的功能也可被设置在数据的接收端。
上述的第一节点101和第二节点103中的一个网络节点为发送节点,另一个为接收节点;一个网络节点(发送方)向另外一个网络节点(接收方)发送数据时,可在发送方或者接收方作拥塞控制,拥塞控制本质就是为避免网络拥塞的速率控制,如果发送方数据发送速率太快超过网络负载能力,就会导致网络丢包;如果发送方数据发送速率太小远低于网络负载能力,就会导致端到端数据传输吞吐率过小,数据传输太慢,用户不能忍受。拥塞控制不管在发送方还是接收方,本申请统称拥塞控制方,本申请的技术方案正是应用于拥塞控制方应用的技术。下面以第一节点101为发送方(发送方还可为第二节点103)和拥塞控制方(拥塞控制方还可为第二节点103)进行详述,具体步骤如图1所示:
步骤S102,第一节点101向第二节点103连续发送大量数据包。
如逐个传输多个数据集合,在一个数据集合中的数据包完成传输后,传输下一数据集合。
步骤S104,缓存服务器105对接收到的数据包进行缓存。
步骤S106,缓存服务器105将缓存队列中的数据包发送给第二节点103。
步骤S108,第二节点103完成对数据包的接收后返回反馈信息给第一节点103。
反馈信息可由第二节点103直接发送给第一节点101,也可经由中间服务器进行发送。
步骤S110,第一节点101根据传输结果测量缓存深度,并根据缓存深度进行为避免网络拥塞的速率控制。
第一节点101获取目标信道对多个数据集合的多个传输结果,传输结果用于指示一个数据集合的数据包的传输时延;根据多个传输结果指示的传输时延确定目标信道的缓存深度。
下面结合图2详述本申请的测量缓存深度的技术方案,图2是根据本发明实施例的一种可选的缓存深度的测量方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,在目标信道上传输数据集合,数据集合中包括多个数据包。
上述的目标信道为第一节点与第二节点之间的数据传输信道,目标信道具备对数据的缓存功能(如具有缓存队列),数据集合中的数据包数量至少能够在发送时填充满目标信道的缓存队列。
步骤S204,获取目标信道对多个数据集合的多个传输结果,传输结果用于指示数据集合的数据包的传输时延。
上述的传输结果至少用于表示数据集合中部分数据包的传输时延,这部分数据包可以是传输时延连续增长的数据包,此处的连续增长是指总体趋势呈现增长,如不存在中间某个数据包的传输时延较前一数据包更低的情况,中间某个数据包的传输时延至少应该与前一数据包持平。
需要说明的是,上述的传输时延是指从发送到接收到对方反馈、或请求某个数据到完成对该数据的接收所经历的时间。
步骤S206,根据传输结果指示的传输时延确定目标信道的缓存深度。
目前,无论对于PC端还是移动终端,对拥塞发生的判断并不准确,究其原因在于不能知晓信道的缓存深度,进一步导致不能预测拥塞的发生,更加不能避免拥塞的发生,导致用户体验感变差。
可选地,采用本申请的技术方案,若缓存队列中的数据包在增加,那么其深度也在增加,假设某个数据包之后缓存队列已满,那么此时越早进入队列的数据包的等待时间越短,越晚进入队列的数据包的等待时间越长,换言之,从队首到对尾的数据包的传输时延会越来越长,故可根据传输时延连续增长的数据包的数量确定缓存深度。
通过上述步骤S202至步骤S206,在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度,从而确定了信道的缓存深度,进而可以根据信道的缓存深度预测和判断拥塞的发生、避免拥塞的发生,可以解决相关技术中对网络拥塞的判定准确率较低的技术问题,进而达到了准确预测拥塞、避免发生拥塞的技术效果。
端到端缓冲区测量,即对端到端之间网络容量的测量,对提高拥塞控制的准确性有很大的意义。网络容量是实时变化的,通过往返时延Rtt的实时变化,探测网络容量的变化,作合理的丢包避免,可以减少端到端的网络丢包;作合理的丢包过滤,可以提高端到端的传输吞吐率。下面结合本申请的技术方案进行说明:
关于缓存深度的测量方案如下:
在步骤S202的实施例中,目标信道为第一节点与第二节点进行数据传输的信道,在目标信道上传输数据集合,是指传输数据集合中的所有数据包,完成对数据集合中的一个数据包的传输包括以下两种形式:
其一:第一节点向第二节点发送数据集合中的数据包,并接收到第二节点的反馈信息,反馈信息用于反馈第二节点接收到数据集合中的数据包,此时,数据集合中的数据包的传输时延为第一节点从发送数据集合中的数据包到接收到反馈信息之间的时间间隔;
其二:第一节点向第二节点请求数据集合中的数据包,并接收到第二节点返回的数据集合中的数据包,数据集合中的数据包的传输时延为第一节点从向第二节点发起请求到接收到数据集合中的数据包之间的时间间隔。
在完成对一个数据集合中的所有数据包的发送后,可执行步骤S204提供的实施例,获取目标信道对数据集合的传输结果,具体可包括:在完成对数据集合中的多个数据包的传输(可以是连续传输)后,获取完成传输的数据集合的传输结果,其中,传输结果可用三元组表示,三元组包括第一参数、第二参数以及第三参数:
1)第一参数RttCnt用于表示多个数据包中第一数据包的数量,第一数据包的传输时延不短于相邻于第一数据包且在第一数据包之前传输的数据包的传输时延,换言之,某数据包相对于前一数据包,若其传输时延没有变小(可以和前一数据包的传输时延相同,或者大于前一数据包的传输时延),那么该数据包可被视为第一数据包;
2)第二参数为多个数据包中数据包的最长传输时延;
3)第三参数为多个数据包中数据包的最短传输时延。
如图3所示,X轴表示数据包的标号,Y轴表示相应数据包的传输时延(单位可为时钟周期,或者直接为时间),第1个数据包的传输时延相对于其余数据包而言最短,故第三参数为第1个数据包的传输时延(如2个时钟周期等);第14个数据包的传输时延相对于其余数据包而言最长,故第二参数为第14个数据包的传输时延(如65微秒);从第1个数据包至第14个数据包为传输时延连续增长的数据包,总数量为14,换言之,第一参数的数值为14,如图3所示,对于第1个数据包而言,之前并没有数据包(可以认为之前的数据包没有传输时延,即传输时延为0),而第1个数据包的传输时延是大于0的,故第1个数据包可以被视为第一数据包;对于第2个数据包而言,其传输时延大于第1个数据包,故也可被视为第一数据包,类似地,第3-14个数据包也可被视为第一数据包;对于第15个数据包而言,由于传输时延相对于第14个数据包更小,故不可被视为第一数据包。
需要说明的是,上述第二参数和第三参数恰为传输时延连续增长的数据包的首尾包的传输延迟,实际测试时,第二参数和第三参数可为任意数据包的传输延迟,而不是一定为传输时延连续增长的数据包的首尾包的传输延迟。
在步骤S206的实施例中,数据集合可为多个,根据传输结果表示的传输时延确定目标信道的缓存深度可包括:
步骤S2062,查找多个数据集合对应的多个传输结果中的第一传输结果,其中,每个数据集合对应有一个传输结果,第一传输结果为多个传输结果中表示的第一数据包的数量最多的传输结果,第一数据包的传输时延不短于相邻于第一数据包且在第一数据包之前传输的数据包的传输时延。
可选地,查找多个数据集合对应的多个传输结果中的第一传输结果包括:查找多个传输结果中的至少一个第二传输结果,第二传输结果为多个传输结果中表示的第一数据包的数量最大的传输结果,若传输结果是用上述的三元组表示,即查找其中第一参数的数值最大的传输结果;在第二传输结果为一个的情况下,将第二传输结果作为第一传输结果;在第二传输结果为多个的情况下,将多个第二传输结果中指示的传输时延最短的第二传输结果作为第一传输结果,换言之,若多个传输结果中存在第一参数相同的,则选择其中第三参数最小的。
步骤S2064,将第一传输结果表示的第一数据包的数量作为目标信道的缓存深度。
关于拥塞控制的技术方案如下:
在进行拥塞控制时,可按照如下步骤进行:
步骤S12,在查找多个数据集合对应的多个传输结果中的第一传输结果之后,根据带宽延时乘积和第一传输结果的第一参数确定启动阈值。
带宽延时乘积BDP=avgBandwidth*RttMin/MSS,其中,avgBandwidth表示平均带宽,RttMin即第三参数,MSS表示报文最大字节长度。
一种可选的“根据带宽延时乘积和第一传输结果的第一参数确定启动阈值”的实现方式如下:将带宽延时乘积和传输结果的第一参数中的最大值作为启动阈值。
步骤S14,按照启动阈值对目标信道进行传输控制。
可选地,在按照启动阈值对目标信道进行传输控制的同时或之前,可按照如下方式计算第四参数、第五参数以及第六参数:
根据第一传输结果的第二参数RttMax和第三参数RttMin确定第四参数T1=RttMin+(RttMax-RttMin)*β/10,其中,β为预设的参数;
根据第一传输结果的第二参数RttMax和第三参数RttMin确定第五参数T2=RttMin+(RttMax-RttMin)*γ/10,其中,γ为大于β的参数;
根据第一传输结果的第二参数RttMax和第三参数RttMin确定第六参数T3=RttMin+(RttMax-RttMin)*α/100,其中,α为大于γ的参数。
可选地,在未发生丢包的情况下,按照启动阈值对目标信道进行传输控制包括:
在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第一模式增大目标信道的拥塞窗口值,其中,第二数据包是当前在目标信道上完成传输的数据包(也即此时没有发生丢包),第四参数是根据第一传输结果的第二参数和第三参数确定的;
在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第二模式增大目标信道的拥塞窗口值,其中,按照第二模式增大的目标信道的拥塞窗口值的幅度小于按照第一模式增大的目标信道的拥塞窗口值的幅度;
在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第三模式减小目标信道的拥塞窗口值,其中,第五参数是根据第一传输结果的第二参数和第三参数确定的、且大于第四参数的参数;
在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第四模式减小目标信道的拥塞窗口值,其中,按照第四模式减小的目标信道的拥塞窗口值的幅度小于按照第三模式减小的目标信道的拥塞窗口值的幅度;
在第二数据包的传输时延不小于第四参数且不大于第五参数的情况下,保持目标信道的拥塞窗口值不变。
上述的第一模式可为指数增长模式,也即每发送完一个数据包之后拥塞窗口值CWND加1;第二模式可为线性增长模式,每发送完CWND个数据包之后,CWND加1;上述的第三模式为负指数增长模式,也即每发送完一个数据包之后拥塞窗口值CWND减1;第四模式可为负线性增长模式,每发送完CWND个数据包之后,CWND减1。
可选地,在发生丢包的情况下,按照启动阈值对目标信道进行传输控制包括:获取第三数据包的传输时延,第三数据包是在目标信道上完成传输(也即成功传输)的数据包,第三数据包是与发生丢包的第四数据包相邻且在第四数据包之前传输的数据包;在第三数据包的传输时延小于第六参数的情况下,确定第四数据包为非拥塞丢包,并保持目标信道的拥塞窗口值不变,其中,第六参数是根据第一传输结果的第二参数和第三参数确定的;在第三数据包的传输时延不小于第六参数的情况下,确定第四数据包为拥塞丢包,减小目标信道的拥塞窗口值。
作为一种可选的实施例,下面结合具体的实施方式详述本申请的实施例。
传输层端到端拥塞控制的本质是发送速率控制,如果发送速率大于网络承载能力就会导致网络丢包,产生重传;如果发送速率小于网络承载能力就不能充分利用端到端的信道带宽,造成吞吐率低。如何准确测量端到端的网络承载能力,实现高吞吐率的同时,实现低丢包率,是亟待解决的问题。
为了解决上述问题,本申请提供了一种如图4所示的带宽测量与拥塞控制方案:
在发送方根据ACK的返回频率,计算端到端的信道带宽BW(作平滑滤波);统计每个数据包的往返时延计算RTT(作平滑滤波);计算延迟带宽积BDP=BW*Rtt/MSS,MSS表示报文最大字节长度;根据BDP值,调整拥塞窗口CWND值,实现拥塞控制,若CWND小于等于BDP,CWND作指数增长,即每成功传输一个数据包,CWND加1,若CWND大于BDP,CWND作线性增长,即每成功传输CWND个数据包,CWND加1。
上述方案能够一定程度的解决上述内容提及的问题,但是仍然存在如下缺陷:
1)BDP计算带有不确定性,BW与Rtt均会波动,不好确定选择哪组{BW,Rtt}来计算BDP,选择较大的一组{BW,Rtt},计算出的BW*Rtt的值较大,最终造成计算出的BDP偏大,容易导致丢包率偏高,选择较小的一组{BW,Rtt},计算出的BW*Rtt的值较小,最终造成计算出的BDP偏小,容易导致吞吐率偏低。
2)BDP值即使计算出来,单一的一个值不能实时反映端到端的链路拥塞程度,BDP值通常用于反映信道的平均水平或者最低水平,表示拥塞窗口CWND值可以安全地到达BDP,但是当CWND超过BDP时,当前CWND对链路造成多大的拥塞程度,BDP不能准确反映出来。
为了克服上述缺陷,本申请还提供了一种带宽测量与拥塞控制方案:拥塞控制方(发送方或者接收方,如图5和图6所示),统计数据包的传输时延,越接近网络承载能力上限,数据包的传输时延越高,通过统计连续上升的数据包的传输时延,测量端到端的缓冲区深度,量化端到端的网络承载能力;根据端到端缓冲区深度测量结果,作慢启动阈值限定,丢包过滤,丢包避免,实现端到端的拥塞控制,获得高吞吐率与低丢包率的有益效果。
本申请的技术方案的数据处理流程如下:
缓冲区测量,如图7所示,在传输层,发送方连续发送数据包,接收方接收数据包,发送方或者接收方统计每个数据包的Rtt(往返时延,或称为RTT),统计连续增长的Rtt,连续增长最长的Rtt个数,作为端到端的缓冲区深度,缓冲区深度可用三元组{RttMin,RttMax,RttCnt}表示,其中:RttMin表示连续增长的Rtt开始值,表示缓冲区为空条件下,一个数据包的最小往返时延;RttMax表示连续增长的Rtt结束值,表示缓冲区为满条件下,一个数据包的最大往返时延;RttCnt表示连续增长的Rtt个数,表示缓冲区能够承载的数据包个数。
需要说明的是,Rtt统计根据传输控制架构(如图5和图6所示)不同而不同,如果是发送方发送数据包,接收方返回ACK,在发送方统计Rtt,那么Rtt为一个数据包发出,一个数据包ACK接收,之间的时间差(时间单位可以为系统的时钟周期);如果接收方发送请求,发送方发送数据包,在接收方统计Rtt,那么Rtt为一个数据包请求发出,到一个数据包接收,之间的时间差。
图8所示为一个利用连续增长Rtt统计缓冲区深度的实际例子,横轴X表示时间t;纵轴Y表示缓冲周期y;对于曲线S2,当其缓冲周期每次在0附近时,发送一定数量的数据包,如481个;Rtt会从Rtt=0附近连续增长到Rtt=1000附近。除掉特殊的Rtt极大值Rtt>1000的情况,假设Rtt=0到Rtt=1000之间有128个Rtt值,则缓冲区深度测量为{0,1000,128}。
曲线S1是几乎与平行于X轴的直线(Y值约为1000);曲线S2为由黑点构成的曲线;曲线S3是几乎与平行于X轴的直线(Y值约为0)。
进一步,使用连续的连续增长的Rtt段,测量端到端的缓冲区深度。者使用{RttMin_1,RttMin_2,RttCnt_1},...,{RttMin_n,RttMax_n,RttCnt_n}表示N个数据集合的连续的连续增长的Rtt段。
{RttMin,RttMax,RttCnt}的确定方式如图9所示:
步骤S902,计算得到一个数据包的传输延迟Rtt;
步骤S904,判断当前的Rtt是否大于RttMax,若是则执行步骤S906,否则执行步骤S908;
步骤S906,更新RttMax的取值为当前的Rtt的值;
步骤S908,得到一个Rtt连续增长段;
步骤S910,保存当前得到的连续增长段的三元组{RttMin,RttMax,RttCnt}。
选择{RttMin_valid,RttMax_valid,RttCnt_valid}=F{{RttMin_1,RttMax_2,RttCnt_1},...,{RttMin_n,RttMax_n,RttCnt_n}}作为端到端的缓冲区深度。F是关于{RttMin_1,RttMax_2,RttCnt_1},...,{RttMin_n,RttMax_n,RttCnt_n}的函数,作为实施例,F可以选择RttCnt最大,且RttMin最接近baseRtt的三元组{RttMin_y,RttMax_y,RttCnt_y}(即第一传输结果)的作为端到端的缓冲区深度,其中baseRtt=min{RttMin_1,RttMin_2,...,RttMin_n}。
作为实施例,数学描述F,集合运算如下:
①S={{RttMin_1,RttMax_2,RttCnt_1},...,{RttMin_n,RttMax_n,RttCnt_n}},集合S表示包括多个传输结果的三元组的集合;
②Scnt={e0|e0∈S∧e0.RttCnt=max{RttCnt_1,...,RttCnt_n}},
表示集合Scnt中的元素为e0,e0是S中的元素(即一个三元组,e0∈S),且e0的RttCnt(即e0.RttCnt)为{RttCnt_1,...,RttCnt_n}中的最大值;
③ScntMin={e1|e1∈Scnt∧
e1.RttMin-baseRTT=min{e0.RttMin-baseRTT,对于所有e0∈Scnt},
表示集合ScntMin中的元素为e1,e1是集合Scnt中的元素、且“e1.RttMin-baseRTT”的值为{e0.RttMin-baseRTT}中的最小值;
④ScntMinMax={e2|e2∈ScntMin∧
e2.RttMax=min{e1.RttMax},对于所有e1∈ScntMin},
表示集合ScntMinMax中的元素为e2,e2是集合ScntMin中的元素、且e2.RttMax为{e1.RttMax}中的最小值;
⑤F=任意一个e3∈ScntMinMax
其中,令e={RttMin_e,RttMax_e,RttCnt_e}∈S,
e.RttMin=RttMin_e,e.RttMax=RttMax_e,e.RttCnt=RttCnt_e。
e1.RttMin-baseRTT=min{e0.RttMin-baseRTT},对于所有e0∈Scnt,表示e1.RttMin-baseRTT是所有e0.RttMin-baseRTT中的最小值,对于所有e0∈Scnt。
使用缓冲区测量作传输控制:发送方或者接收方,根据测量得到的缓冲区深度作拥塞控制,作拥塞控制的发送方或者接收方,下统称拥塞控制方,不作区分。
基于缓冲区测量的拥塞控制包括以下至少之一(优选为包括三个):
关于慢启动阈值动态设定的方案如下:
计算BDP=avgBandwidth*RttMin/MSS,
慢启动阈值ssThresh=F0(BDP,RttCnt);
若CWND<=ssThresh,CWND作指数增长;
若CWND>ssThresh,CWND作线性增长。
可选地,F0=max{BDP,RttCnt},max()表示去其中的最大值。
关于丢包过滤的方案如下:
记录一个丢失数据包之前成功接收的数据包对应的lastSuccRtt(即第三数据包的传输时延),设置第六参数RttFilter=F1(RttMin,RttMax),关于RttMin,RttMax的函数值。若lastSuccRtt小于RttFilter,则认为该丢失数据包非拥塞丢包,拥塞窗口CWND不作退避。否则,CWND减少Z。
可选地,F1(或称为第六参数T3)=RttMin+(RttMax-RttMin)*alpha/100,alpha是一个预设参数,一种可选的alpha(或称为α)的取值为50。
关于丢包避免的方案如下:
每收到一个数据包,记录对应的lastRtt(即第二数据包的传输时延),设置第四参数RttInc(或称为T1)=F2(RttMin,RttMax),第五参数RttDec(或称为T2)=F3(RttMin,RttMax),关于RttMin,RttMax的函数值,且满足RttInc<RttDec。
若当前CWND小于慢启动阈值,lastRtt小于RttInc,CWND值增加数值X1,lastRtt大于RttDec,CWND值减少数值Y1,lastRtt在RttInc与RttDec之间,则CWND值不变。
若当前CWND大于慢启动阈值,lastRtt小于RttInc,CWND值增加X2/CWND(X2为正数),lastRtt大于RttDec,CWND值减少Y2/CWND(Y2为正数),lastRtt在RttInc与RttDec之间,则CWND值不变。
可选地,F2=RttMin+(RttMax-RttMin)*beta/10,beta(或称为β)是一个预设参数,一种可选的取值为beta=5。
可选地,F3=RttMin+(RttMax-RttMin)*gama/10,gama(或称为γ)是一个预设参数,一种可选的取值为gama=10。
将上述三种策略合并,完整的拥塞控制(窗口增加与窗口减少)方法如下:
未发生丢包的情况,如图10所示:
步骤S1002,检测到一个成功到达的数据包。
步骤S1004,计算慢启动阈值ssThresh、第四参数RttInc以及第五参数RttDec。
步骤S1006,判断当前拥塞窗口值CWND是否小于慢启动阈值ssThresh,每检测到一个成功到达的数据包,首先作慢启动阈值判定,比较当前拥塞窗口值CWND与慢启动阈值ssThresh,如果CWND小于ssThresh,CWND处于指数增长模式,执行步骤S1008,否则CWND处于线性增长模式,执行步骤S1010。
步骤S1008,进入指数增长模式。
步骤S1010,进入线性增长模式。
在进入步骤S1008或步骤S1010之前,可作丢包避免判定,比较lastRtt与RttInc、RttDec,如果lastRtt<RttInc,拥塞窗口若处于指数增长模式,CWDN加1;若处于线性增长模式,CWND加1/CWND。如果lastRtt>RttDec,拥塞窗口若处于指数增长模式,CWND减1,若处于线性增长模式,CWND减1/CWND;如果lastRtt处于RttInc与RttDec之间,拥塞窗口值不变
发生丢包的情况,如图11所示:
步骤S1102,检测到一个丢包事件。
步骤S1104,计算第六参数RttFilter。
步骤S1106,每检测到一个丢包事件,首先做丢包过滤判定,比较lastSuccRtt(即第三数据包的传输时延)与RttFilter,具体是判断lastSuccRtt是否小于RttFilter,若是则执行步骤S1108,否则执行步骤S1110。
步骤S1108,如果lastSuccRtt小于RttFilter,认为本次丢包为非拥塞丢包,拥塞窗口值不变。
步骤S1110,认为本次丢包为拥塞丢包,拥塞窗口作退避,拥塞窗口值CWND减p5,其中p5为预设的退避参数,作为可行的实施例,p5值为1或者2。
采用该技术方案可以带来如下技术效果:该技术方案可应用于所有的包含端到端拥塞控制的产品中;具有实时探测端到端网络拥塞程度,作拥塞控制,获得高吞吐和低丢包的传输效果的功能;该技术方案可部署在拥塞控制方(具备拥塞控制的一方),若拥塞控制方部署在发送方(产品架构如图5所示),则主要部署在服务器端(部署在与服务器上的应用层连接的传输层),若拥塞控制方部署在接收方(产品架构如图6所示),则主要部署在客户端(部署在与客户端上的应用层连接的传输层),采用该技术方案后,用户能够感知本技术方案带来的高吞吐,由于不能窥探内部运行机制,不能感知到具体使用的技术方案。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例的另一个方面,还提供了一种用于实施上述缓存深度的测量方法的缓存深度的测量装置。图12是根据本发明实施例的一种可选的缓存深度的测量装置的示意图,如图12所示,该装置可以包括:传输单元1201、获取单元1203以及确定单元1205。
传输单元1201,用于在目标信道上传输数据集合,其中,数据集合中包括多个数据包。
获取单元1203,用于获取目标信道对数据集合的传输结果,其中,传输结果用于指示数据集合的数据包的传输时延。
确定单元1205,用于根据传输结果指示的传输时延确定目标信道的缓存深度。
需要说明的是,该实施例中的传输单元1201可以用于执行本申请实施例中的步骤S202,该实施例中的获取单元1203可以用于执行本申请实施例中的步骤S204,该实施例中的确定单元1205可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度,从而确定了信道的缓存深度,进而可以根据信道的缓存深度预测和判断拥塞的发生、避免拥塞的发生,可以解决相关技术中对网络拥塞的判定准确率较低的技术问题,进而达到了准确预测拥塞、避免发生拥塞的技术效果。
上述的确定单元可包括:查找模块,用于查找多个数据集合对应的多个传输结果中的第一传输结果,其中,每个数据集合对应有一个传输结果,第一传输结果为多个传输结果中表示的第一数据包的数量最多的传输结果,第一数据包的传输时延不短于相邻于第一数据包且在第一数据包之前传输的数据包的传输时延;确定模块,用于将第一传输结果表示的第一数据包的数量作为目标信道的缓存深度。
可选地,查找模块还可用于:查找多个传输结果中的至少一个第二传输结果,其中,第二传输结果为多个传输结果中表示的第一数据包的数量最大的传输结果;在第二传输结果为一个的情况下,将第二传输结果作为第一传输结果;在第二传输结果为多个的情况下,将多个第二传输结果中指示的传输时延最短的第二传输结果作为第一传输结果。
可选地,获取单元还可用于:在完成对数据集合中的多个数据包的传输后,获取完成传输的数据集合的传输结果,其中,传输结果用三元组表示,三元组包括第一参数、第二参数以及第三参数:第一参数用于表示多个数据包中第一数据包的数量,第一数据包的传输时延不短于相邻于第一数据包且在第一数据包之前传输的数据包的传输时延,第二参数为多个数据包中数据包的最长传输时延,第三参数为多个数据包中数据包的最短传输时延。
可选地,目标信道为第一节点与第二节点进行数据传输的信道,传输单元包括:第一传输模块,用于第一节点向第二节点发送数据集合中的数据包,并接收到第二节点的反馈信息,其中,反馈信息用于反馈第二节点接收到数据集合中的数据包,数据集合中的数据包的传输时延为第一节点从发送数据集合中的数据包到接收到反馈信息之间的时间间隔;第二传输模块,用于第一节点向第二节点请求数据集合中的数据包,并接收到第二节点返回的数据集合中的数据包,其中,数据集合中的数据包的传输时延为第一节点从向第二节点发起请求到接收到数据集合中的数据包之间的时间间隔。
可选地,本申请的装置还可包括:参数确定单元,用于在查找多个传输结果中的第一传输结果之后,根据第一传输结果的第三参数确定带宽延时乘积,并根据带宽延时乘积和第一传输结果的第一参数确定启动阈值;控制单元,用于按照启动阈值对目标信道进行传输控制。
上述的控制单元可包括:
第一控制模块,用于在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第一模式增大目标信道的拥塞窗口值,其中,第二数据包是当前在目标信道上完成传输的数据包,第四参数是根据第一传输结果的第二参数和第三参数确定的;
第二控制模块,用于在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第二模式增大目标信道的拥塞窗口值,其中,按照第二模式增大的目标信道的拥塞窗口值的幅度小于按照第一模式增大的目标信道的拥塞窗口值的幅度;
第三控制模块,用于在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第三模式减小目标信道的拥塞窗口值,其中,第五参数是根据第一传输结果的第二参数和第三参数确定的、且大于第四参数的参数;
第四控制模块,用于在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第四模式减小目标信道的拥塞窗口值,其中,按照第四模式减小的目标信道的拥塞窗口值的幅度小于按照第三模式减小的目标信道的拥塞窗口值的幅度;
第五控制模块,用于在第二数据包的传输时延不小于第四参数且不大于第五参数的情况下,保持目标信道的拥塞窗口值不变。
可选地,上述的参数确定单元还可用于:根据第一传输结果的第二参数RttMax和第三参数RttMin确定第四参数T1=RttMin+(RttMax-RttMin)*β/10,其中,β为预设的参数;根据第一传输结果的第二参数RttMax和第三参数RttMin确定第五参数T2=RttMin+(RttMax-RttMin)*γ/10,其中,γ为大于β的参数;根据第一传输结果的第二参数RttMax和第三参数RttMin确定第六参数T3=RttMin+(RttMax-RttMin)*α/100,其中,α为大于γ的参数。
上述的控制单元还可包括:
获取模块,用于获取第三数据包的传输时延,其中,第三数据包是在目标信道上完成传输的数据包,第三数据包是与发生丢包的第四数据包相邻且在第四数据包之前传输的数据包;
第六控制模块,用于在第三数据包的传输时延小于第六参数的情况下,确定第四数据包为非拥塞丢包,并保持目标信道的拥塞窗口值不变,其中,第六参数是根据第一传输结果的第二参数和第三参数确定的;
第七控制模块,用于在第三数据包的传输时延不小于第六参数的情况下,确定第四数据包为拥塞丢包,减小目标信道的拥塞窗口值。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本发明实施例的另一个方面,还提供了一种用于实施上述缓存深度的测量方法的服务器或终端。
图13是根据本发明实施例的一种终端的结构框图,如图13所示,该终端可以包括:一个或多个(图13中仅示出一个)处理器1301、存储器1303、以及传输装置1305(如上述实施例中的发送装置),如图13所示,该终端还可以包括输入输出设备1307。
其中,存储器1303可用于存储软件程序以及模块,如本发明实施例中的缓存深度的测量方法和装置对应的程序指令/模块,处理器1301通过运行存储在存储器1303内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的缓存深度的测量方法。存储器1303可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1303可进一步包括相对于处理器1301远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置1305用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1305包括一个网络适配器(NetworkInterface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1305为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器1303用于存储应用程序。
处理器1301可以通过传输装置1305调用存储器1303存储的应用程序,以执行下述步骤:
在目标信道上传输数据集合,其中,数据集合中包括多个数据包;
获取目标信道对数据集合的传输结果,其中,传输结果用于指示数据集合的数据包的传输时延;
根据传输结果指示的传输时延确定目标信道的缓存深度。
处理器1301还用于执行下述步骤:
在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第一模式增大目标信道的拥塞窗口值,其中,第二数据包是当前在目标信道上完成传输的数据包,第四参数是根据第一传输结果的第二参数和第三参数确定的;
在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第二模式增大目标信道的拥塞窗口值,其中,按照第二模式增大的目标信道的拥塞窗口值的幅度小于按照第一模式增大的目标信道的拥塞窗口值的幅度;
在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第三模式减小目标信道的拥塞窗口值,其中,第五参数是根据第一传输结果的第二参数和第三参数确定的、且大于第四参数的参数;
在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第四模式减小目标信道的拥塞窗口值,其中,按照第四模式减小的目标信道的拥塞窗口值的幅度小于按照第三模式减小的目标信道的拥塞窗口值的幅度;
在第二数据包的传输时延不小于第四参数且不大于第五参数的情况下,保持目标信道的拥塞窗口值不变。
采用本发明实施例,在目标信道上传输数据集合,其中,数据集合中包括多个数据包;获取目标信道对多个数据集合的多个传输结果,传输结果用于指示数据集合的数据包的传输时延;根据传输结果指示的传输时延确定目标信道的缓存深度,从而确定了信道的缓存深度,进而可以根据信道的缓存深度预测和判断拥塞的发生、避免拥塞的发生,可以解决相关技术中对网络拥塞的判定准确率较低的技术问题,进而达到了准确预测拥塞、避免发生拥塞的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图13所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图13其并不对上述电子装置的结构造成限定。例如,终端还可包括比图13中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图13所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行缓存深度的测量方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
S11,在目标信道上传输数据集合,其中,数据集合中包括多个数据包;
S12,获取目标信道对数据集合的传输结果,其中,传输结果用于指示数据集合的数据包的传输时延;
S13,根据传输结果指示的传输时延确定目标信道的缓存深度。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
S21,在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第一模式增大目标信道的拥塞窗口值,其中,第二数据包是当前在目标信道上完成传输的数据包,第四参数是根据第一传输结果的第二参数和第三参数确定的;
S22,在第二数据包的传输时延小于第四参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第二模式增大目标信道的拥塞窗口值,其中,按照第二模式增大的目标信道的拥塞窗口值的幅度小于按照第一模式增大的目标信道的拥塞窗口值的幅度;
S23,在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值小于启动阈值的情况下,按照第三模式减小目标信道的拥塞窗口值,其中,第五参数是根据第一传输结果的第二参数和第三参数确定的、且大于第四参数的参数;
S24,在第二数据包的传输时延大于第五参数、且目标信道的拥塞窗口值不小于启动阈值的情况下,按照第四模式减小目标信道的拥塞窗口值,其中,按照第四模式减小的目标信道的拥塞窗口值的幅度小于按照第三模式减小的目标信道的拥塞窗口值的幅度;
S25,在第二数据包的传输时延不小于第四参数且不大于第五参数的情况下,保持目标信道的拥塞窗口值不变。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (13)
1.一种缓存深度的测量方法,其特征在于,包括:
在目标信道上传输数据集合,其中,所述数据集合中包括多个数据包;
获取所述目标信道对所述数据集合的传输结果,其中,所述传输结果用于指示所述数据集合的数据包的传输时延;
根据所述传输结果指示的传输时延确定所述目标信道的缓存深度;
所述数据集合为多个,其中,根据所述传输结果指示的传输时延确定所述目标信道的缓存深度包括:
查找多个所述数据集合对应的多个所述传输结果中的第一传输结果,其中,每个所述数据集合对应有一个所述传输结果,所述第一传输结果为多个所述传输结果中表示的第一数据包的数量最多的传输结果,所述第一数据包的传输时延不短于相邻于所述第一数据包且在所述第一数据包之前传输的数据包的传输时延;
将所述第一传输结果表示的第一数据包的数量作为所述目标信道的缓存深度。
2.根据权利要求1所述的方法,其特征在于,查找多个所述数据集合对应的多个所述传输结果中的第一传输结果包括:
查找多个所述传输结果中的至少一个第二传输结果,其中,所述第二传输结果为多个所述传输结果中表示的第一数据包的数量最大的传输结果;
在所述第二传输结果为一个的情况下,将所述第二传输结果作为所述第一传输结果;
在所述第二传输结果为多个的情况下,将多个所述第二传输结果中指示的传输时延最短的第二传输结果作为所述第一传输结果。
3.根据权利要求1所述的方法,其特征在于,获取所述目标信道对所述数据集合的传输结果包括:
在完成对所述数据集合中的多个数据包的传输后,获取完成传输的所述数据集合的传输结果,其中,所述传输结果用三元组表示,所述三元组包括第一参数、第二参数以及第三参数:
所述第一参数用于表示所述多个数据包中第一数据包的数量,所述第一数据包的传输时延不短于相邻于所述第一数据包且在所述第一数据包之前传输的数据包的传输时延,
所述第二参数为所述多个数据包中数据包的最长传输时延,
所述第三参数为所述多个数据包中数据包的最短传输时延。
4.根据权利要求3所述的方法,其特征在于,所述目标信道为第一节点与第二节点进行数据传输的信道,其中,所述方法还包括按照如下方式完成对所述数据集合中的数据包的传输:
所述第一节点向所述第二节点发送所述数据集合中的数据包,并接收到所述第二节点的反馈信息,其中,所述反馈信息用于反馈所述第二节点接收到所述数据集合中的数据包,所述数据集合中的数据包的传输时延为所述第一节点从发送所述数据集合中的数据包到接收到所述反馈信息之间的时间间隔;或,
所述第一节点向所述第二节点请求所述数据集合中的数据包,并接收到所述第二节点返回的所述数据集合中的数据包,其中,所述数据集合中的数据包的传输时延为所述第一节点从向所述第二节点发起请求到接收到所述数据集合中的数据包之间的时间间隔。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,在查找多个所述数据集合对应的多个所述传输结果中的第一传输结果之后,所述方法还包括:
根据所述第一传输结果的第三参数确定带宽延时乘积;
根据所述带宽延时乘积和所述第一传输结果的第一参数确定启动阈值;
按照所述启动阈值对所述目标信道进行传输控制。
6.根据权利要求5所述的方法,其特征在于,按照所述启动阈值对所述目标信道进行传输控制包括:
在第二数据包的传输时延小于第四参数、且所述目标信道的拥塞窗口值小于所述启动阈值的情况下,按照第一模式增大所述目标信道的拥塞窗口值,其中,所述第二数据包是当前在所述目标信道上完成传输的数据包,所述第四参数是根据所述第一传输结果的第二参数和第三参数确定的;
在所述第二数据包的传输时延小于所述第四参数、且所述目标信道的拥塞窗口值不小于所述启动阈值的情况下,按照第二模式增大所述目标信道的拥塞窗口值,其中,按照所述第二模式增大的所述目标信道的拥塞窗口值的幅度小于按照所述第一模式增大的所述目标信道的拥塞窗口值的幅度;
在所述第二数据包的传输时延大于第五参数、且所述目标信道的拥塞窗口值小于所述启动阈值的情况下,按照第三模式减小所述目标信道的拥塞窗口值,其中,所述第五参数是根据所述第一传输结果的第二参数和第三参数确定的、且大于所述第四参数的参数;
在所述第二数据包的传输时延大于所述第五参数、且所述目标信道的拥塞窗口值不小于所述启动阈值的情况下,按照第四模式减小所述目标信道的拥塞窗口值,其中,按照所述第四模式减小的所述目标信道的拥塞窗口值的幅度小于按照所述第三模式减小的所述目标信道的拥塞窗口值的幅度;
在所述第二数据包的传输时延不小于所述第四参数且不大于所述第五参数的情况下,保持所述目标信道的拥塞窗口值不变。
7.根据权利要求6所述的方法,其特征在于,在按照所述启动阈值对所述目标信道进行传输控制的同时或之前,所述方法还包括:
根据所述第一传输结果的第二参数RttMax和第三参数RttMin确定所述第四参数T1=RttMin+(RttMax-RttMin)*β/10,其中,β为预设的参数;
根据所述第一传输结果的第二参数RttMax和第三参数RttMin确定所述第五参数T2=RttMin+(RttMax-RttMin)*γ/10,其中,γ为大于β的参数。
8.根据权利要求5所述的方法,其特征在于,按照所述启动阈值对所述目标信道进行传输控制包括:
获取第三数据包的传输时延,其中,所述第三数据包是在所述目标信道上完成传输的数据包,所述第三数据包是与发生丢包的第四数据包相邻且在所述第四数据包之前传输的数据包;
在所述第三数据包的传输时延小于第六参数的情况下,确定所述第四数据包为非拥塞丢包,并保持所述目标信道的拥塞窗口值不变,其中,所述第六参数是根据所述第一传输结果的第二参数和第三参数确定的;
在所述第三数据包的传输时延不小于所述第六参数的情况下,确定所述第四数据包为拥塞丢包,减小所述目标信道的拥塞窗口值。
9.根据权利要求8所述的方法,其特征在于,在按照所述启动阈值对所述目标信道进行传输控制的同时或之前,所述方法还包括:
根据所述第一传输结果的第二参数RttMax和第三参数RttMin确定所述第六参数T3=RttMin+(RttMax-RttMin)*α/100,其中,α为大于γ的参数。
10.根据权利要求5所述的方法,其特征在于,根据所述带宽延时乘积和所述第一传输结果的第一参数确定启动阈值包括:
将所述带宽延时乘积和所述传输结果的第一参数中的最大值作为所述启动阈值。
11.一种缓存深度的测量装置,其特征在于,包括:
传输单元,用于在目标信道上传输数据集合,其中,所述数据集合中包括多个数据包;
获取单元,用于获取所述目标信道对所述数据集合的传输结果,其中,所述传输结果用于指示所述数据集合的数据包的传输时延;
确定单元,用于根据所述传输结果指示的传输时延确定所述目标信道的缓存深度;
所述确定单元包括:
查找模块,用于查找多个所述数据集合对应的多个所述传输结果中的第一传输结果,其中,每个所述数据集合对应有一个所述传输结果,所述第一传输结果为多个所述传输结果中表示的第一数据包的数量最多的传输结果,所述第一数据包的传输时延不短于相邻于所述第一数据包且在所述第一数据包之前传输的数据包的传输时延;
确定模块,用于将所述第一传输结果表示的第一数据包的数量作为所述目标信道的缓存深度。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至10任一项中所述的方法。
13.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求1至10任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224841.9A CN110290552B (zh) | 2018-03-19 | 2018-03-19 | 缓存深度的测量方法和装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810224841.9A CN110290552B (zh) | 2018-03-19 | 2018-03-19 | 缓存深度的测量方法和装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110290552A CN110290552A (zh) | 2019-09-27 |
CN110290552B true CN110290552B (zh) | 2022-01-04 |
Family
ID=68001099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810224841.9A Active CN110290552B (zh) | 2018-03-19 | 2018-03-19 | 缓存深度的测量方法和装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110290552B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111211936B (zh) * | 2019-12-27 | 2022-06-21 | 视联动力信息技术股份有限公司 | 一种基于网络状态的数据处理方法和装置 |
CN114598653B (zh) * | 2022-05-09 | 2022-08-02 | 上海飞旗网络技术股份有限公司 | 一种基于时延管理模型的数据流加速方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798085A (zh) * | 2004-12-28 | 2006-07-05 | 华为技术有限公司 | 一种无线链路控制子层发送缓存大小的调整方法 |
CN103124412A (zh) * | 2012-11-16 | 2013-05-29 | 佳都新太科技股份有限公司 | 一种基于rtp协议的网络抖动处理技术 |
US8787163B1 (en) * | 2010-02-24 | 2014-07-22 | Marvell International Ltd. | Method and apparatus for adjusting the size of a buffer in a network node based on latency |
CN104506287A (zh) * | 2014-12-29 | 2015-04-08 | 重庆邮电大学 | 一种td-lte应急通信下的实时语音通信方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1324862C (zh) * | 2004-01-06 | 2007-07-04 | 北京邮电大学 | 通信网络中调整拥塞窗口的方法 |
US8923270B2 (en) * | 2011-10-04 | 2014-12-30 | The Chinese University Of Hong Kong | Method for link buffer size and queue length estimation for bandwidth-varying mobile data networks |
-
2018
- 2018-03-19 CN CN201810224841.9A patent/CN110290552B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798085A (zh) * | 2004-12-28 | 2006-07-05 | 华为技术有限公司 | 一种无线链路控制子层发送缓存大小的调整方法 |
US8787163B1 (en) * | 2010-02-24 | 2014-07-22 | Marvell International Ltd. | Method and apparatus for adjusting the size of a buffer in a network node based on latency |
CN103124412A (zh) * | 2012-11-16 | 2013-05-29 | 佳都新太科技股份有限公司 | 一种基于rtp协议的网络抖动处理技术 |
CN104506287A (zh) * | 2014-12-29 | 2015-04-08 | 重庆邮电大学 | 一种td-lte应急通信下的实时语音通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110290552A (zh) | 2019-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107864084B (zh) | 数据包的传输方法和装置 | |
US7983156B1 (en) | System and method for controlling network congestion | |
US20210067453A1 (en) | Data transmission method and apparatus | |
CN105141542A (zh) | 基于tcp通信协议的拥塞窗口的控制算法和系统 | |
EP1523836B1 (en) | Method and apparatus for selecting a window size for a packet switched connection | |
CN110417650A (zh) | 多链路数据分配方法、装置及电子设备 | |
EP2562972A1 (en) | Usable bandwidth measurement system, transmission device, usable bandwidth measurement method and recording medium | |
JP2004253934A (ja) | 無線通信システム、サーバ、基地局、移動端末及びそれらに用いる再送タイムアウト時間決定方法 | |
CN110519175B (zh) | 一种信息处理方法、设备及计算机可读存储介质 | |
US8565249B2 (en) | Queue management system and methods | |
US20220286402A1 (en) | Method and apparatus for controlling data packet sending, model training method and apparatus, and system | |
JP4402619B2 (ja) | マルチキャスト通信フロー制御方法および装置 | |
CN104320809A (zh) | 基于rtt的无线多跳网络拥塞控制方法及系统 | |
CN110290552B (zh) | 缓存深度的测量方法和装置、存储介质、电子装置 | |
CN115277581A (zh) | 网络传输的控制方法、装置、计算机设备、存储介质 | |
WO2019244966A1 (ja) | 通信装置、通信方法及びプログラム | |
CN110169134A (zh) | 无线质量支持视频体验的检测方法及装置 | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
CN109756464B (zh) | 一种通信方法及服务器、客户端 | |
WO2024001763A1 (zh) | 一种数据传输处理方法、装置、存储介质及电子装置 | |
CN112653635A (zh) | 一种拥塞控制算法的改进方法、装置、设备及存储介质 | |
CN110505037B (zh) | 一种网络接口通信速率匹配方法、装置、设备和存储介质 | |
CN113542215B (zh) | 一种提升流媒体传输性能的方法及相关装置 | |
EP2002609B1 (en) | Method and termination node for bundling multiple messages into a packet | |
CN112019443B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |