CN117938769A - 拥塞窗口的调整方法、装置、电子设备及介质 - Google Patents
拥塞窗口的调整方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN117938769A CN117938769A CN202410138965.0A CN202410138965A CN117938769A CN 117938769 A CN117938769 A CN 117938769A CN 202410138965 A CN202410138965 A CN 202410138965A CN 117938769 A CN117938769 A CN 117938769A
- Authority
- CN
- China
- Prior art keywords
- value
- congestion window
- data information
- data packet
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000005540 biological transmission Effects 0.000 claims abstract description 316
- 230000004044 response Effects 0.000 claims abstract description 62
- 230000000875 corresponding effect Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000006854 communication Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000000052 comparative effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种拥塞窗口的调整方法、装置、电子设备及介质,属于计算机技术领域。该方法包括:在接收到目标数据包的应答信号的情况下,获取目标数据包的第一数据信息、第二数据信息以及第三数据信息;基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值和状态值;基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口。上述技术方案通过根据目标数据包的数据信息,确定标签值和状态值,并按照指示的调整方式,对拥塞窗口进行实时调整,从而及时跟进网络链路的状态,避免缓存队列过大及吞吐量不足等问题,保障网络传输性能。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种拥塞窗口的调整方法、装置、电子设备及介质。
背景技术
网络拥塞是网络传输时的一种现象,通常是指当网络中传输的数据包过多时,由于缓存节点的存储空间有限,而导致网络传输性能下降的情况。网络传输性能有两项评价指标,一个是吞吐量,理想的网络传输状态要求达到最大吞吐量,也就是指网络的瓶颈带宽被占满;另一个是往返时延,理想的网络传输状态要求达到最小的往返时延,也就是指缓存节点中没有缓存队列。目前,通常使用拥塞控制算法避免网络过载,主要是通过控制拥塞窗口的大小,来控制网络中传输的数据包的数量。但是,当拥塞窗口过小时,端到端的传输时延过小,网络通常不能达到满负荷工作状态;当拥塞窗口过大时,容易导致在网络中传输过多数量的数据包,从而导致数据包的在缓存节点中的排队时延过大,引发网络拥塞。因此,如何合理调整拥塞窗口的大小,从而使网络能够传输合理数量的数据包,是一个亟待解决的问题。
发明内容
本公开提供一种拥塞窗口的调整方法、装置、电子设备及介质,能够及时跟进网络链路的状态,并对拥塞窗口进行合理的实时调整,从而避免缓存队列过大及吞吐量不足等问题,保障网络的传输性能。本公开的技术方案如下:
根据本公开实施例的一方面,提供了一种拥塞窗口的调整方法,应用于第一终端,所述第一终端为数据包的发送端,所述方法包括:
在接收到目标数据包的应答信号的情况下,获取所述目标数据包的第一数据信息、第二数据信息以及第三数据信息,所述目标数据包的应答信号用于指示第二终端已经接收到所述目标数据包,所述第二终端为数据包的接收端,所述第一数据信息为发送所述目标数据包时在所述第一终端到所述第二终端的链路中正在传输的数据量,所述第二数据信息包括接收到所述目标数据包的应答信号时所述链路的传输速率和往返时延,所述第三数据信息包括所述链路的最大传输速率和最小往返时延;
基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的标签值和状态值,所述标签值用于指示扩大或者缩小拥塞窗口,所述状态值为目标统计区间内的所有标签值的总和,所述目标统计区间为所述目标数据包的发送时刻所在的时间统计区间,所述时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,所述时间统计区间的起点为上一相邻时间统计区间的终点;
基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,所述调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,所述历史拥塞窗口为在上一应答信号到达所述第一终端后进行调整后的拥塞窗口。
根据本公开实施例的另一方面,提供了一种拥塞窗口的调整装置,配置于第一终端中,所述第一终端为数据包的发送端,所述装置包括:
获取单元,被配置为在接收到目标数据包的应答信号的情况下,获取所述目标数据包的第一数据信息、第二数据信息以及第三数据信息,所述目标数据包的应答信号用于指示第二终端已经接收到所述目标数据包,所述第二终端为数据包的接收端,所述第一数据信息为发送所述目标数据包时在所述第一终端到所述第二终端的链路中正在传输的数据量,所述第二数据信息包括接收到所述目标数据包的应答信号时所述链路的传输速率和往返时延,所述第三数据信息包括所述链路的最大传输速率和最小往返时延;
确定单元,被配置为基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的标签值和状态值,所述标签值用于指示扩大或者缩小拥塞窗口,所述状态值为目标统计区间内的所有标签值的总和,所述目标统计区间为所述目标数据包的发送时刻所在的时间统计区间,所述时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,所述时间统计区间的起点为上一相邻时间统计区间的终点;
调整单元,被配置为基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,所述调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,所述历史拥塞窗口为在上一应答信号到达所述第一终端后进行调整后的拥塞窗口。
在一些实施例中,所述确定单元,包括:
标签值确定子单元,被配置为将所述传输速率与所述最大传输速率的比值,确定为第一对比数值,所述第一对比数值用于指示与接收到所述目标数据包的应答信号时所述链路的传输速率相比是否存在更大的传输速率;将第一传输量与第二传输量的比值,确定为第二对比数值,所述第一传输量为所述第一数据信息和第一传输单元值之和,所述第二传输量为所述往返时延和所述最大传输速率的乘积值,所述第一传输单元值为所述链路的最大传输单元值与第一常数的乘积值,所述第二对比数值用于指示所述最大传输速率对应的所述链路的传输能力与调整后发送所述目标数据包时所述链路的传输能力相比是否更好,所述第一常数为正值;在所述第一对比数值和所述第二对比数值中任一数值不小于1的情况下,将1确定为所述目标数据包的标签值,1用于指示扩大拥塞窗口;
状态值确定子单元,被配置为基于所述目标数据包的发送时刻,确定所述目标统计区间;获取在所述目标统计区间内接收到应答信号的多个数据包的标签值;对所述多个数据包的标签值求和,得到所述目标数据包的状态值。
在一些实施例中,所述标签值确定子单元,还被配置为在所述第一对比数值和所述第二对比数值两者均小于1的情况下,将-1确定为所述目标数据包的标签值,-1用于指示缩小拥塞窗口。
在一些实施例中,所述调整单元,被配置为在所述状态值大于状态阈值且所述标签值等于1的情况下,确定第三传输量与所述第一数据信息两者中的最大值,所述第三传输量为所述最大传输速率与所述最小往返时延的乘积值;将所述最大值与第二传输单元值相加,得到第一目标传输量,所述第二传输单元值为所述链路的最大传输单元值与第二常数的乘积值,所述第一目标传输量为扩大所述拥塞窗口后的目标窗口值,所述第二常数为正值;将所述第一目标传输量和所述历史拥塞窗口的窗口值两者中的最大值,确定为扩大后的拥塞窗口的窗口值。
在一些实施例中,所述调整单元,被配置为在所述状态值不大于状态阈值且所述标签值等于-1的情况下,确定所述第三传输量与所述第一数据信息两者中的最小值,所述第三传输量为所述最大传输速率与所述最小往返时延的乘积值;将所述最小值与第三传输单元值相加,得到第二目标传输量,所述第三传输单元值为所述链路的最大传输单元值与第三常数的乘积值,所述第二目标传输量为缩小所述拥塞窗口后的目标窗口值,所述第三常数为负值;将所述第二目标传输量和所述历史拥塞窗口的窗口值两者中的最小值,确定为缩小后的拥塞窗口的窗口值。
在一些实施例中,所述调整单元,被配置为在所述状态值大于状态阈值且所述标签值等于-1,或者,所述状态值不大于状态阈值且所述标签值等于1的情况下,将所述历史拥塞窗口的窗口值,确定为调整后的拥塞窗口的窗口值。
根据本公开实施例的另一方面,提供一种电子设备,该电子设备包括:
一个或多个处理器;
用于存储该处理器可执行程序代码的存储器;
其中,该处理器被配置为执行该程序代码,以实现上述拥塞窗口的调整方法。
根据本公开实施例的另一方面,提供一种计算机可读存储介质,当该计算机可读存储介质中的程序代码由电子设备的处理器执行时,使得电子设备能够执行上述拥塞窗口的调整方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述拥塞窗口的调整方法。
本公开实施例提供了一种拥塞窗口的调整方法,通过根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,确定标签值和状态值,并按照上述信息所指示的调整方式,对拥塞窗口进行实时调整。本方法能够及时跟进网络链路的状态,并对拥塞窗口进行合理的实时调整,从而避免缓存队列过大及吞吐量不足等问题,保障网络的传输性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种拥塞窗口的调整方法的实施环境示意图。
图2是根据一示例性实施例示出的一种拥塞窗口的调整方法的流程图。
图3是根据一示例性实施例示出的另一种拥塞窗口的调整方法的流程图。
图4是根据一示例性实施例示出的一种时间统计区间的示意图。
图5是根据一示例性实施例示出的一种状态转移的示意图。
图6是根据一示例性实施例示出的一种拥塞窗口的调整装置的框图。
图7是根据一示例性实施例示出的另一种拥塞窗口的调整装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别相似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
需要说明的是,本公开所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本公开中涉及到的数据包的第一数据信息、第二数据信息以及第三数据信息等都是在充分授权的情况下获取的。
图1是根据一示例性实施例示出的一种拥塞窗口的调整方法的实施环境示意图。参见图1,该实施环境具体包括:终端101和服务器102。终端101可以通过无线网络或有线网络与服务器102相连。
终端101可以为智能手机、智能手表、台式电脑、手提电脑、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机等设备中的至少一种。终端101上可以安装并运行有应用程序,该应用程序可以获取目标数据包的第一数据信息、第二数据信息以及第三数据信息,并根据上述数据确定标签值和状态值,进而对历史拥塞窗口进行调整,得到调整后的拥塞窗口。该应用程序与服务器102关联,由服务器102向终端101提供后台服务。
终端101可以泛指多个终端中的一个,本实施例以终端101来举例说明。本领域技术人员可以知晓,上述终端的数量可以更多或更少。比如上述终端可以为几个,或者上述终端为几十个或几百个,或者更多数量,本公开实施例对终端的数量和设备类型均不加以限定。
服务器102为一台服务器、多台服务器、云计算平台和虚拟化中心中的至少一种。可选地,上述服务器的数量可以更多或更少,本公开实施例对此不加以限定。当然,服务器102还可以包括其他功能服务器,以便提供更全面且多样化的服务。在一些实施例中,服务器102承担主要计算工作,终端101承担次要计算工作;或者,服务器102承担次要计算工作,终端101承担主要计算工作;或者,服务器102和终端101二者之间采用分布式计算架构进行协同计算。服务器102可以通过无线网络或有线网络与终端101和其他终端相连,可选地,上述服务器的数量可以更多或更少,本公开实施例对此不加以限定。
图2是根据一示例性实施例示出的一种拥塞窗口的调整方法的流程图,如图2所示,该方法由第一终端执行,包括以下步骤:
在步骤S201中,在接收到目标数据包的应答信号的情况下,获取目标数据包的第一数据信息、第二数据信息以及第三数据信息,目标数据包的应答信号用于指示第二终端已经接收到目标数据包,第二终端为数据包的接收端,第一数据信息为发送目标数据包时在第一终端到第二终端的链路中正在传输的数据量,第二数据信息包括接收到目标数据包的应答信号时链路的传输速率和往返时延,第三数据信息包括链路的最大传输速率和最小往返时延。
在本公开实施例中,当第一终端接收到第二终端发送来的目标数据包的应答信号后,获取目标数据包的第一数据信息、第二数据信息以及第三数据信息。其中,第一终端是指数据包的发送端,第二终端是指数据包的接收端,链路用于进行数据包的传输。其中,应答信号是由数据包的接收端发送的反馈信号,应答信号的作用是指示接收端已经成功接收发送端发送的该数据包。如果发送端没有接收到数据包的应答信号,可能会重传当前数据包,也可能停止发送数据,以确保数据传输的可靠性。本公开实施例对应答信号的具体形式与内容不进行限制。
其中,传输速率是指在网络链路中进行数据传输的速率,单位通常为单位是bps(比特每秒,可写作bit/s)或者Mbps(兆比特每秒)等。往返时延(RTT,Round-Trip Time)是指从发送端发送数据开始,到发送端收到来自接收端的确认信号所经过的时间,单位是s(秒)。
在步骤S202中,基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值和状态值,标签值用于指示扩大或者缩小拥塞窗口,状态值为目标统计区间内的所有标签值的总和,目标统计区间为目标数据包的发送时刻所在的时间统计区间,时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,时间统计区间的起点为上一相邻时间统计区间的终点。
在本公开实施例中,第一终端根据获取到的第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值和状态值。其中,拥塞窗口用于在发送端控制发送的数据量,从而使网络链路保持较好的传输性能。拥塞窗口的大小与网络链路是否拥塞有关。当出现网络拥塞时,拥塞窗口应缩小,以确保发送较少数量的数据包,避免网络链路的拥塞程度进一步加大;当没有出现网络拥塞时,拥塞窗口可以扩大,以使发送端发送更多数据包,使网络链路得到充分使用。拥塞窗口的大小总在根据网络链路中数据包的数量进行动态变化。通常情况下,发送端的发送窗口等于拥塞窗口,在考虑接收端的接收能力的情况下,发送窗口还可能小于拥塞窗口,通常采用拥塞窗口和接收窗口中较小的窗口值控制发送端发送数据包的速率。
在步骤S203中,基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,历史拥塞窗口为在上一应答信号到达第一终端后进行调整后的拥塞窗口。
在本公开实施例中,第一终端根据标签值和状态值确定对应的调整方式,再根据第一数据信息和第三数据信息,按照上述调整方式对历史拥塞窗口进行调整,确定调整后的拥塞窗口的大小。其中,每当应答信号到达第一终端时,都可以根据该应答信号对应的数据包的相关数据,实时调整拥塞窗口的大小。
本公开实施例提供了一种拥塞窗口的调整方法,通过根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,确定标签值和状态值,并按照上述信息所指示的调整方式,对拥塞窗口进行实时调整。本方法能够及时跟进网络链路的状态,并对拥塞窗口进行合理的实时调整,从而避免缓存队列过大及吞吐量不足等问题,保障网络的传输性能。
在一些实施例中,基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值的步骤包括:
将传输速率与最大传输速率的比值,确定为第一对比数值,第一对比数值用于指示与接收到目标数据包的应答信号时链路的传输速率相比是否存在更大的传输速率;
将第一传输量与第二传输量的比值,确定为第二对比数值,第一传输量为第一数据信息和第一传输单元值之和,第二传输量为往返时延和最大传输速率的乘积值,第一传输单元值为链路的最大传输单元值与第一常数的乘积值,第二对比数值用于指示最大传输速率对应的链路的传输能力与调整后发送目标数据包时链路的传输能力相比是否更好,第一常数为正值;
在第一对比数值和第二对比数值中任一数值不小于1的情况下,将1确定为目标数据包的标签值,1用于指示扩大拥塞窗口。
在本公开实施例中,通过根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,能够得到第一对比数值和第二对比数值,反映出是否存在比当前传输速率更好的传输速率,并确定目标数据包的标签值,便于后续根据该标签值选择对历史拥塞窗口的调整方式,得到使得网络传输性能更好的拥塞窗口。
在一些实施例中,方法还包括:
在第一对比数值和第二对比数值两者均小于1的情况下,将-1确定为目标数据包的标签值,-1用于指示缩小拥塞窗口。
在本公开实施例中,通过根据第一对比数值和第二对比数值,确定目标数据包的标签值,便于后续根据该标签值选择对历史拥塞窗口的调整方式,得到使得网络传输性能更好的拥塞窗口。
在一些实施例中,基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的状态值的步骤包括:
基于目标数据包的发送时刻,确定目标统计区间;
获取在目标统计区间内接收到应答信号的多个数据包的标签值;
对多个数据包的标签值求和,得到目标数据包的状态值。
在本公开实施例中,通过获取目标统计区间中的多个数据包的标签值,进而得到目标数据包的状态值,能够综合考虑在目标数据包的发送时刻的网络链路的状态,从而便于指导后续对历史拥塞窗口的调整方式。
在一些实施例中,基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在状态值大于状态阈值且标签值等于1的情况下,确定第三传输量与第一数据信息两者中的最大值,第三传输量为最大传输速率与最小往返时延的乘积值;
将最大值与第二传输单元值相加,得到第一目标传输量,第二传输单元值为链路的最大传输单元值与第二常数的乘积值,第一目标传输量为扩大拥塞窗口后的目标窗口值,第二常数为正值;
将第一目标传输量和历史拥塞窗口的窗口值两者中的最大值,确定为扩大后的拥塞窗口的窗口值。
在本公开实施例中,通过在状态值和标签值都指示扩大拥塞窗口的情况下,根据目标数据包的相关数据对历史拥塞窗口进行调整,能够及时跟进网络链路的状态,得到合理的拥塞窗口,从而避免网络链路中出现缓存队列过大的问题,避免数据包在缓存节点中的排队时延过大,引发网络拥塞。
在一些实施例中,基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在状态值不大于状态阈值且标签值等于-1的情况下,确定第三传输量与第一数据信息两者中的最小值,第三传输量为最大传输速率与最小往返时延的乘积值;
将最小值与第三传输单元值相加,得到第二目标传输量,第三传输单元值为链路的最大传输单元值与第三常数的乘积值,第二目标传输量为缩小拥塞窗口后的目标窗口值,第三常数为负值;
将第二目标传输量和历史拥塞窗口的窗口值两者中的最小值,确定为缩小后的拥塞窗口的窗口值。
在本公开实施例中,通过在状态值和标签值都指示缩小拥塞窗口的情况下,根据目标数据包的相关数据对历史拥塞窗口进行调整,能够及时跟进网络链路的状态,得到合理的拥塞窗口,从而避免网络链路中出现吞吐量不足的问题,避免网络无法达到满负荷的工作状态。
在一些实施例中,基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在状态值大于状态阈值且标签值等于-1,或者,状态值不大于状态阈值且标签值等于1的情况下,将历史拥塞窗口的窗口值,确定为调整后的拥塞窗口的窗口值。
在本公开实施例中,通过在状态值和标签值所指示的调整方式矛盾的情况下,对拥塞窗口的大小保持不变,能够使得网络链路根据拥塞窗口发送合理数量的数据包,保障网络传输性能。
上述图2所示为本公开的一种拥塞窗口的调整方法的流程图,下面对本公开提供的拥塞窗口的调整方案进行进一步阐述。图3是根据一示例性实施例示出的另一种拥塞窗口的调整方法的流程图,参见图3,该方法由第一终端执行,包括以下步骤:
在步骤S301中,在接收到目标数据包的应答信号的情况下,获取目标数据包的第一数据信息、第二数据信息以及第三数据信息,目标数据包的应答信号用于指示第二终端已经接收到目标数据包,第二终端为数据包的接收端,第一数据信息为发送目标数据包时在第一终端到第二终端的链路中正在传输的数据量,第二数据信息包括接收到目标数据包的应答信号时链路的传输速率和往返时延,第三数据信息包括链路的最大传输速率和最小往返时延。
在本公开实施例中,第一终端是指数据包的发送端,第二终端是指数据包的接收端。第一终端根据发送速率、拥塞窗口以及在途数据量控制对数据包的发送。数据包由第一终端发出后,在网络链路中进行传输,到达第二终端。第二终端接收到数据包后,向第一终端返回应答信号。应答信号由第二终端发出后,在网络链路中进行传输,到达第一终端。需要说明的是,本公开实施例对网络环境不进行限制。
其中,第一数据信息是指在发送目标数据包时已经发送出去但尚未被确认的数据包对应的数据量,数据量可以通过字节数来表示。因此,为便于描述,将第一数据信息称为在途数据量,将第一终端发送目标数据包的时刻称为发送时刻,将第一终端接收到目标数据包的应答信号的时刻称为接收时刻。其中,当在发送端接收到数据包的应答信号时,称为该数据包被确认。
其中,应答信号可以是ACK(确认字符,Acknowledgement)信号,是指在数据通信过程中接收端发送给发送端的一种传输类控制信号。目标数据包的应答信号用于表示发送端发送到接收端的目标数据包已确认接受无误。在进行数据传输过程中,通常使用一串长度为若干字节的数据来表示若干数据包的应答情况。
其中,传输速率也可称为带宽速率或者传输带宽速率。传输速率是指在网络链路中进行数据传输的速率,也就是指数据在信道内每秒钟能够传输的比特量,单位通常为单位是bps、bit/s或者Mbps等。需要说明的是,可以使用带宽替换传输速率,带宽是指传输信号所占用的频带宽度,能够反映信道上传输数据的速率,单位为Hz(赫兹),本公开对此不进行限制。往返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认信号所经过的时间。当发送端发送的数据到达接收端时,接收端立即发送确认信号。往返时延通常由三部分决定,分别是网络链路的传播时间、末端系统的处理时间、路由器等网络中间节点的缓存和排队时间。通常数据的传输时间和在应用处理时间相对固定,但是发生网络拥塞时往返时延会发生波动。
需要说明的是,对于传输速率,可以是通过直接检测数据包的发送和接收过程并统计采样得到传输速率;也可以是通过其他传输数据进行计算得到传输速率,本公开实施例对传输速率的获取方式不进行限制。对于最大传输速率,可以是直接检测一定时间范围内的传输数据得到最大传输速率,也可以是通过对多个传输速率的采样数据进行窗口化处理后得到最大传输速率,本公开实施例对最大传输速率的获取方式不进行限制。对于最小往返时延,可以是直接检测一定时间范围内的往返时延的最小值,也可以是对多个往返时延的采样数据进行窗口化处理后得到最小往返时延,本公开实施例对最小往返时延的获取方式不进行限制。可选地,在确定最大传输速率和最小传输时延时,一定时间范围是指在接收时刻及之前一段时间所限定的时间段,本公开实施例对该时间段的长度不进行限制。
在步骤S302中,将传输速率与最大传输速率的比值,确定为第一对比数值,第一对比数值用于指示与接收到目标数据包的应答信号时链路的传输速率相比是否存在更大的传输速率。
在本公开实施例中,第一终端确定传输速率和最大传输速率的比值,将该比值作为第一对比数值。其中,传输速率是指在接收时刻在网络链路中对该数据包的传输速率,最大传输速率是指在一定时间范围内在网络链路中传输数据包的最大的传输速率。因此,第一对比数值能够反映是否存在比接收时刻的传输速率更大的传输速率。当传输速率更大时,说明在网络链路中能够每秒能够传输的数据量更多,反之,当传输速率更小时,说明在网络链路中每秒能够传输的数据量更少。
在步骤S303中,将第一传输量与第二传输量的比值,确定为第二对比数值,第一传输量为第一数据信息和第一传输单元值之和,第二传输量为往返时延和最大传输速率的乘积值,第一传输单元值为链路的最大传输单元值与第一常数的乘积值,第二对比数值用于指示最大传输速率对应的链路的传输能力与调整后发送目标数据包时链路的传输能力相比是否更好。
在本公开实施例中,第一终端确定第一传输量与第二传输量的比值,将该比值作为第二对比数值。其中,第一传输量为第一数据信息和第一传输单元值之和,换而言之,第一传输量为在发送时刻多发送第一传输单元值大小的数据量之后的所有在途数据量;第二传输量为接收时刻的往返时延和最大传输速率的乘积值,换而言之,第二传输量为在接收时刻的传输速率为最大传输速率的情况下在网络链路中能够传输的预估的数据量。由于在任一时刻网络链路中传输的数据量的大小能够反映出网络链路对于数据的传输能力,因此,当第一传输量小于第二传输量时,说明在发送时刻进行调整后的网络链路的传输能力相较于预估的传输能力仍然较差;反之,当第一传输量大于第二传输量时,说明在发送时刻进行调整后的网络链路的传输能力相较于预估的传输能力较好。
其中,第一传输单元值为网络链路的最大传输单元(MTU,Maximum TransmissionUnit)的取值与第一常数的乘积值。在网络链路的最大传输单元的取值固定的情况下,第一传输单元值与第一常数的取值呈正相关。其中,对于第一传输单元值的大小,也就是对于第一常数的取值,本公开实施例不进行限制。需要说明的是,最大传输单元是指一种通信协议的某层所能通过的最大数据包的大小,通常以字节为单位。最大传输单元通常与通信接口有关,不同网络环境或者不同网络串口下的最大传输单元通常不同。
在步骤S304中,基于第一对比数值和第二对比数值,确定目标数据包的标签值,标签值用于指示扩大或者缩小拥塞窗口。
在本公开实施例中,第一终端根据第一对比数值和第二对比数值,确定目标数据包的标签值。需要说明的是,本公开实施例对目标数据包的标签值的具体数值不进行限制。但是,由于目标数据包的状态值与标签值有关,因此,为便于后续描述目标数据包的状态值的具体含义,将标签值设置为1或者-1。同时,为不同标签值的具体数值赋予不同的具体含义,在标签值为1时,代表需要扩大拥塞窗口;在标签值为-1时,代表需要缩小拥塞窗口。
在一些实施例中,第一终端可以根据第一对比数值和第二对比数值的不同取值情况,为目标数据包的标签值赋予不同的具体数值。相应的,在第一对比数值和第二对比数值中任一数值不小于1的情况下,第一终端将1确定为目标数据包的标签值,1用于指示扩大拥塞窗口;在第一对比数值和第二对比数值两者均小于1的情况下,第一终端将-1确定为目标数据包的标签值,-1用于指示缩小拥塞窗口。通过根据第一对比数值和第二对比数值,确定目标数据包的标签值,便于后续根据该标签值选择对历史拥塞窗口的调整方式,得到使得网络传输性能更好的拥塞窗口。
为了便于描述各个参量,对公式中的多个符号进行定义,参见下述表一所示:
表一符号定义
对于根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值的过程,可以参见下述公式。其中,对于在t时刻被确认的数据包i,可以获取该数据包的传输速率往返时延/>最大传输速率/>最小往返时延/>以及在途数据量/>进而计算得到该数据包的标签值/>参见下述公式所示:
其中,t时刻是指接收时刻,数据包i是指目标数据包,传输速率和往返时延统称为第二数据信息,最大传输速率/>和最小往返时延/>统称为第三数据信息,在途数据量/>是指第一数据信息,MTU是指最大传输单元,+2是指第一常数。因此,+2·MTU是指第一传输单元值,/>是指第一传输量,/>是指第二传输量,/>是指第一对比数值,/>是指第二对比数值。需要说明的是,按照实际需求,上述公式中的第一对比数值和第二对比数值所对应的部分公式均能与常数进行乘积运算,从而进行调整,本公开实施例对此不进行限制。
按照上述公式,当第一对比数值和第二对比数值的取值不同时,得到的标签值也不同,可分为如下三种情况。
情况一:当第一对比数值小于1且第二对比数值小于1时,表示接收时刻的传输速率小于最大传输速率且第一传输量小于第二传输量,说明即使在发送时刻多发送数据包以维持更多在途数据量,也不会获得最大传输速率所对应的更好的收益,因此,不存在扩大拥塞窗口的必要性,不考虑在网络链路中发送更多的数据包。此时,可以缩小拥塞窗口,使得网络链路的吞吐量减小,避免出现发送过多数据包导致的网络拥塞。因此,将第一对比数值与第二对比数值两者进行取最大值并向下取正操作后,得到数值为0;对于公式中的数值0与数值1进行取最小值的操作后,得到数值为0;根据上述进行数学运算后,得到标签值为-1,表示可以缩小拥塞窗口。
情况二:当第一对比数值不小于1时,表示接收时刻的传输速率不小于最大传输速率,说明存在更大或者持平的传输速率,因此可以考虑在网络链路中发送更多的数据包。此时,可以扩大拥塞窗口,使得网络链路的吞吐量增大,避免出现发送过少数据包导致的网络链路不能满负荷工作的问题。因此,将第一对比数值与第二对比数值两者进行取最大值并向下取正操作后,得到数值为1;对于公式中的数值1与数值1进行取最小值的操作后,得到数值为1;根据上述进行数学运算后,得到标签值为1,表示可以扩大拥塞窗口。
情况三:当第二对比数值中的不小于1时,表示第一传输量不小于第二传输量,说明在发送时刻多发送数据包能够获得比最大传输速率更好或者持平的收益,因此可以考虑在网络链路中发送更多的数据包。此时,可以扩大拥塞窗口,使得网络链路的吞吐量增大,避免出现发送过少数据包导致的网络链路不能满负荷工作的问题。因此,将第一对比数值与第二对比数值两者进行取最大值并向下取正操作后,得到数值为1;对于公式中的数值1与数值1进行取最小值的操作后,得到数值为1;根据上述进行数学运算后,得到标签值为1,表示可以扩大拥塞窗口。
在步骤S305中,基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的状态值,状态值为目标统计区间内的所有标签值的总和,目标统计区间为目标数据包的发送时刻所在的时间统计区间,时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,时间统计区间的起点为上一相邻时间统计区间的终点。
在本公开实施例中,第一终端根据在网络链路中的多个数据包的相关数据,确定目标数据包的状态值。其中,目标数据包的状态值能够反映目标统计区间指示的对拥塞窗口的调整方式的偏向。
为了便于描述时间统计区间,参见图4所示,图4是根据一示例性实施例示出的一种时间统计区间的示意图。其中,在出现数据包乱序的情况下,时间统计区间的终点处对应的数据包有可能不是本时间统计区间内第一个发送的数据包;每个时间统计区间的起点既是上一相邻时间统计区间的终点,与本时间统计区间内是否发送数据包无关。需要说明的是,数据包乱序是指接收端接收到多个数据包的次序与发送端发送上述多个数据包的次序有所不同。数据包乱序通常由多个数据包在网络中的传输路径不同而引发。
需要说明的是,目标统计区间也可以是指发送时刻到接收时刻的时间段,状态值是该时间段内接收到应答信号的多个数据包的标签值的总和;目标统计区间还可以是以发送时刻为终点的时间统计区间,状态值是该时间统计区间中发送出去或者接收到应答信号的多个数据包的标签值的总和。本公开实施例对目标统计区间的具体划分方式和状态值对应的数据包范围不进行限制,只要能够反映出发送时刻周围时间段内的网络状态即可。
在一些实施例中,第一终端可以根据目标统计区间中多个数据包的标签值,得到状态值。相应的,第一终端基于目标数据包的发送时刻,确定目标统计区间;第一终端获取在目标统计区间内接收到应答信号的多个数据包的标签值;第一终端对多个数据包的标签值求和,得到目标数据包的状态值。通过获取目标统计区间中的多个数据包的标签值,进而得到目标数据包的状态值,能够综合考虑在目标数据包的发送时刻的网络链路的状态,从而便于指导后续对历史拥塞窗口的调整方式。
对于t区间的状态值St,可由t-1区间内的所有数据包的标签值得出,参见下述公式所示:
其中,t区间是指目标统计区间,t-1区间是指目标统计区间的上一相邻时间统计区间,i用于指示所有数据包。
需要说明的是,由于标签值的取值设置为-1或1,因此,对多个数据包的标签值进行求和后得到的状态值的取值范围为-i到i。将状态值与状态阈值进行比较,能够确定目标统计区间所指示的对拥塞窗口的调整方式的偏向。其中,状态阈值为常数与i的乘积值,上述常数的取值范围为-1到1。本公开实施例对状态阈值不进行限制。
以上述常数取值为0为例。此时,状态阈值为0,将状态值与0进行比较,当状态值大于0时,说明在上述多个数据包中标签值为1的数据包较多,该状态值指示扩大拥塞窗口;当状态值不大于0时,说明在上述多个数据包中标签值为-1的数据包较多,该状态值指示缩小拥塞窗口。需要说明的是,在状态阈值设置为大于0的数值时,调整算法更偏向于缩小拥塞窗口;在状态阈值设置为小于0的数值时,拥塞算法更偏向于扩大拥塞窗口。
例如,目标统计区间的上一相邻时间统计区间中所有数据包的数量为i。
当上述所有数据包中有六成数据包对应的标签值为1,另外四成数据包对应的标签值为-1时,由1*0.6*i+(-1)*0.4*i=0.2i可知,对所有数据包的标签值进行求和后得到的状态值为0.2i。如果将常数设置为0,状态阈值为0,由于状态值大于状态阈值,因此该状态值指示扩大拥塞窗口;如果将常数设置为0.5,状态阈值为0.5i,由于状态值小于状态阈值,因此该状态值指示缩小拥塞窗口,此时,拥塞算法更偏向于缩小拥塞窗口。
当上述所有数据包中有四成数据包对应的标签值为1,另外六成数据包对应的标签值为-1时,由1*0.4*i+(-1)*0.6*i=-0.2i可知,对所有数据包的标签值进行求和后得到的状态值为-0.2i。如果将常数设置为0,状态阈值为0,由于状态值小于状态阈值,因此该状态值指示缩小拥塞窗口;如果将常数设置为-0.5,状态阈值为-0.5i,由于状态值大于状态阈值,因此该状态值指示扩大拥塞窗口,此时,拥塞算法更偏向于扩大拥塞窗口。
为了便于描述在网络链路中传输数据的过程中的调整算法的多个算法状态,以状态阈值为0为例。参见图5所示,图5是根据一示例性实施例示出的一种状态转移的示意图。其中,按照不同状态值组合,将调整算法的算法状态分为4种,分别是第一状态、第二状态、第三状态以及第四状态。当调整算法处于任一算法状态下,确定的下一时间统计区间的状态值所指示的含义不同时,调整算法转换得到的算法状态也不同。例如,调整算法当前处于第一状态,换而言之,当前时间统计区间的状态值指示扩大拥塞窗口,上一相邻时间统计区间的状态值指示缩小拥塞窗口。此时,如果下一相邻时间统计区间的状态值指示扩大拥塞窗口,那么调整算法的算法状态将转换到第二状态;如果下一相邻时间统计区间的状态值指示缩小拥塞窗口,那么调整算法的算法状态将转换到第三状态。其中,当算法在扩大拥塞窗口和缩小拥塞窗口两个算法状态中交替切换时,也就是指在第一状态和第三状态中交替切换时,调整算法处于稳态收敛的状态。需要说明的是,状态阈值除设置为0之外,还可以设置为其他合理数值,本公开实施例对此不进行限制。
在步骤S306中,基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,历史拥塞窗口为在上一应答信号到达第一终端后进行调整后的拥塞窗口。
在本公开实施例中,第一终端根据标签值和状态值确定调整方式,按照该调整方式根据第一数据信息和第三数据信息,调整历史拥塞窗口,得到调整后的拥塞窗口。其中,当每一个数据包被确认时,第一终端都会实时调整拥塞窗口的大小。其中,当标签值和状态值的取值不同时,对应的调整方式也不同。
在一些实施例中,在一些状态值和标签值的取值情况下,需要扩大拥塞窗口。相应的,在状态值大于状态阈值且标签值等于1的情况下,第一终端确定第三传输量与第一数据信息两者中的最大值,第三传输量为最大传输速率与最小往返时延的乘积值;将最大值与第二传输单元值相加,得到第一目标传输量,第二传输单元值为链路的最大传输单元值与第二常数的乘积值,第一目标传输量为扩大拥塞窗口后的目标窗口值,第二常数为正值;第一终端将第一目标传输量和历史拥塞窗口的窗口值两者中的最大值,确定为扩大后的拥塞窗口的窗口值。通过在状态值和标签值都指示扩大拥塞窗口的情况下,根据目标数据包的相关数据对历史拥塞窗口进行调整,能够及时跟进网络链路的状态,得到合理的拥塞窗口,从而避免网络链路中出现缓存队列过大的问题,避免数据包在缓存节点中的排队时延过大,引发网络拥塞。
其中,第二传输单元值与网络链路的最大传输单元有关。对于第二传输单元值的大小,也就是对于第二常数的取值,本公开实施例不进行限制。
在一些实施例中,在一些状态值和标签值的取值情况下,需要缩小拥塞窗口。相应的,在状态值不大于状态阈值且标签值等于-1的情况下,第一终端确定第三传输量与第一数据信息两者中的最小值,第三传输量为最大传输速率与最小往返时延的乘积值;将最小值与第三传输单元值相加,得到第二目标传输量,第三传输单元值为链路的最大传输单元值与第三常数的乘积值,第二目标传输量为缩小拥塞窗口后的目标窗口值,第三常数为负值;第一终端将第二目标传输量和历史拥塞窗口的窗口值两者中的最小值,确定为缩小后的拥塞窗口的窗口值。通过在状态值和标签值都指示缩小拥塞窗口的情况下,根据目标数据包的相关数据对历史拥塞窗口进行调整,能够及时跟进网络链路的状态,得到合理的拥塞窗口,从而避免网络链路中出现吞吐量不足的问题,避免网络无法达到满负荷的工作状态。
其中,第三传输单元值与网络链路的最大传输单元有关。对于第三传输单元值的大小,也就是对于第三常数的取值,本公开实施例不进行限制。
在一些实施例中,在一些状态值和标签值的取值情况下,需要保持拥塞窗口不变。相应的,在状态值大于状态阈值且标签值等于-1,或者,状态值不大于状态阈值且标签值等于1的情况下,第一终端将历史拥塞窗口的窗口值,确定为调整后的拥塞窗口的窗口值。通过在状态值和标签值所指示的调整方式矛盾的情况下,对拥塞窗口的大小保持不变,能够使得网络链路根据拥塞窗口发送合理数量的数据包,保障网络传输性能。
其中,对于在t时刻被确认的数据包i,拥塞窗口将从更新为/>参见下述公式所示:
其中,t时刻是指接收时刻,数据包i是指目标数据包,是指历史拥塞窗口,是指调整后的拥塞窗口,最大传输速率/>和最小往返时延/>统称为第三数据信息,在途数据量/>是指第一数据信息,MTU是指最大传输单元,St是指状态值,是指标签值,+2是指第二常数,-2是指第三常数,0是指状态阈值。因此,/>是指第三传输量,+2·MTU是指第二传输单元值,/>是指第一目标传输量,-2·MTU是指第三传输单元值,/> 是指第二目标传输量。
需要说明的是,第一常数、第二常数以及第三常数的取值的绝对值可以相同,也可以不相同,本公开实施例对此不进行限制。
其中,最大传输速率和最小往返时延的乘积值是指第三传输量,也就是指带宽时延积(BDP,bandwidth-delay product)。带宽时延积的单位是比特或者字节,能够反映在任何特定时间网络链路上的已发送但尚未确认的最大数据量。
因此,当需要扩大拥塞窗口时,先确定第三传输量与在途数据量中的最大值,再进行扩大调整,并在调整后的拥塞窗口的大小大于历史拥塞窗口的大小时,将其作为扩大后的拥塞窗口的窗口值。当需要缩小拥塞窗口时,先确定第三传输量与在途数据量中的最小值,再进行缩小调整,并在调整后的拥塞窗口的大小小于历史拥塞窗口的大小时,将其作为缩小后的拥塞窗口的窗口值。
通过使用上述对拥塞窗口的调整方法,不仅能够在网路传输过程中保持强有力的网络链路资源占有能力,同时能够维持较低的排队时延,减少网络拥塞的可能性。从而在复杂多变的网络环境下,提高网络传输性能。
本公开实施例提供了一种拥塞窗口的调整方法,通过根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,确定标签值和状态值,并按照上述信息所指示的调整方式,对拥塞窗口进行实时调整。本方法能够及时跟进网络链路的状态,并对拥塞窗口进行合理的实时调整,从而避免缓存队列过大及吞吐量不足等问题,保障网络的传输性能。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
图6是根据一示例性实施例示出的一种拥塞窗口的调整装置的框图。如图6所示,该装置包括:获取单元601、确定单元602以及调整单元603。
获取单元601,被配置为在接收到目标数据包的应答信号的情况下,获取目标数据包的第一数据信息、第二数据信息以及第三数据信息,目标数据包的应答信号用于指示第二终端已经接收到目标数据包,第二终端为数据包的接收端,第一数据信息为发送目标数据包时在第一终端到第二终端的链路中正在传输的数据量,第二数据信息包括接收到目标数据包的应答信号时链路的传输速率和往返时延,第三数据信息包括链路的最大传输速率和最小往返时延;
确定单元602,被配置为基于第一数据信息、第二数据信息以及第三数据信息,确定目标数据包的标签值和状态值,标签值用于指示扩大或者缩小拥塞窗口,状态值为目标统计区间内的所有标签值的总和,目标统计区间为目标数据包的发送时刻所在的时间统计区间,时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,时间统计区间的起点为上一相邻时间统计区间的终点;
调整单元603,被配置为基于第一数据信息和第三数据信息,按照标签值和状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,历史拥塞窗口为在上一应答信号到达第一终端后进行调整后的拥塞窗口。
在一些实施例中,图7是根据一示例性实施例示出的另一种拥塞窗口的调整装置的框图,如图7所示,确定单元602,包括:
标签值确定子单元6021,被配置为将传输速率与最大传输速率的比值,确定为第一对比数值,第一对比数值用于指示与接收到目标数据包的应答信号时链路的传输速率相比是否存在更大的传输速率;将第一传输量与第二传输量的比值,确定为第二对比数值,第一传输量为第一数据信息和第一传输单元值之和,第二传输量为往返时延和最大传输速率的乘积值,第一传输单元值为链路的最大传输单元值与第一常数的乘积值,第二对比数值用于指示最大传输速率对应的链路的传输能力与调整后发送目标数据包时链路的传输能力相比是否更好;在第一对比数值和第二对比数值中任一数值不小于1的情况下,将1确定为目标数据包的标签值,1用于指示扩大拥塞窗口,第一常数为正值;
状态值确定子单元,6022被配置为基于目标数据包的发送时刻,确定目标统计区间;获取在目标统计区间内接收到应答信号的多个数据包的标签值;对多个数据包的标签值求和,得到目标数据包的状态值。
在一些实施例中,标签值确定子单元6021,还被配置为在第一对比数值和第二对比数值两者均小于1的情况下,将-1确定为目标数据包的标签值,-1用于指示缩小拥塞窗口。
在一些实施例中,调整单元603,被配置为在状态值大于状态阈值且标签值等于1的情况下,确定第三传输量与第一数据信息两者中的最大值,第三传输量为最大传输速率与最小往返时延的乘积值;将最大值与第二传输单元值相加,得到第一目标传输量,第二传输单元值为链路的最大传输单元值与第二常数的乘积值,第一目标传输量为扩大拥塞窗口后的目标窗口值,第二常数为正值;将第一目标传输量和历史拥塞窗口的窗口值两者中的最大值,确定为扩大后的拥塞窗口的窗口值。
在一些实施例中,调整单元603,被配置为在状态值不大于状态阈值且标签值等于-1的情况下,确定第三传输量与第一数据信息两者中的最小值,第三传输量为最大传输速率与最小往返时延的乘积值;将最小值与第三传输单元值相加,得到第二目标传输量,第三传输单元值为链路的最大传输单元值与第三常数的乘积值,第二目标传输量为缩小拥塞窗口后的目标窗口值,第三常数为负值;将第二目标传输量和历史拥塞窗口的窗口值两者中的最小值,确定为缩小后的拥塞窗口的窗口值。
在一些实施例中,调整单元603,被配置为在状态值大于状态阈值且标签值等于-1,或者,状态值不大于状态阈值且标签值等于1的情况下,将历史拥塞窗口的窗口值,确定为调整后的拥塞窗口的窗口值。
本公开实施例提供了一种拥塞窗口的调整装置,通过根据目标数据包的第一数据信息、第二数据信息以及第三数据信息,确定标签值和状态值,并按照上述信息所指示的调整方式,对拥塞窗口进行实时调整。本方法能够及时跟进网络链路的状态,并对拥塞窗口进行合理的实时调整,从而避免缓存队列过大及吞吐量不足等问题,保障网络的传输性能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
需要说明的是,上述实施例提供的拥塞窗口的调整装置,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将电子设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的拥塞窗口的调整装置与拥塞窗口的调整方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
关于上述实施例中的拥塞窗口的调整装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图8是根据一示例性实施例示出的一种电子设备的框图。通常,电子设备800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个程序代码,该至少一个程序代码用于被处理器801所执行以实现本公开中方法实施例提供的拥塞窗口的调整方法。
在一些实施例中,电子设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807和电源808中的至少一种。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它电子设备进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。
显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置电子设备800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在电子设备800的不同表面或呈折叠设计;在再一些实施例中,显示屏805可以是柔性显示屏,设置在电子设备800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
电源808用于为电子设备800中的各个组件进行供电。电源808可以是交流电、直流电、一次性电池或可充电电池。当电源808包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
本领域技术人员可以理解,图8中示出的结构并不构成对电子设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器802,上述指令可由终端800的处理器801执行以完成上述拥塞窗口的调整方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述拥塞窗口的调整方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种拥塞窗口的调整方法,其特征在于,应用于第一终端,所述第一终端为数据包的发送端,所述方法包括:
在接收到目标数据包的应答信号的情况下,获取所述目标数据包的第一数据信息、第二数据信息以及第三数据信息,所述目标数据包的应答信号用于指示第二终端已经接收到所述目标数据包,所述第二终端为数据包的接收端,所述第一数据信息为发送所述目标数据包时在所述第一终端到所述第二终端的链路中正在传输的数据量,所述第二数据信息包括接收到所述目标数据包的应答信号时所述链路的传输速率和往返时延,所述第三数据信息包括所述链路的最大传输速率和最小往返时延;
基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的标签值和状态值,所述标签值用于指示扩大或者缩小拥塞窗口,所述状态值为目标统计区间内的所有标签值的总和,所述目标统计区间为所述目标数据包的发送时刻所在的时间统计区间,所述时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,所述时间统计区间的起点为上一相邻时间统计区间的终点;
基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,所述调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,所述历史拥塞窗口为在上一应答信号到达所述第一终端后进行调整后的拥塞窗口。
2.根据权利要求1所述的拥塞窗口的调整方法,其特征在于,基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的标签值的步骤包括:
将所述传输速率与所述最大传输速率的比值,确定为第一对比数值,所述第一对比数值用于指示与接收到所述目标数据包的应答信号时所述链路的传输速率相比是否存在更大的传输速率;
将第一传输量与第二传输量的比值,确定为第二对比数值,所述第一传输量为所述第一数据信息和第一传输单元值之和,所述第二传输量为所述往返时延和所述最大传输速率的乘积值,所述第一传输单元值为所述链路的最大传输单元值与第一常数的乘积值,所述第二对比数值用于指示所述最大传输速率对应的所述链路的传输能力与调整后发送所述目标数据包时所述链路的传输能力相比是否更好,所述第一常数为正值;
在所述第一对比数值和所述第二对比数值中任一数值不小于1的情况下,将1确定为所述目标数据包的标签值,1用于指示扩大拥塞窗口。
3.根据权利要求2所述的拥塞窗口的调整方法,其特征在于,所述方法还包括:
在所述第一对比数值和所述第二对比数值两者均小于1的情况下,将-1确定为所述目标数据包的标签值,-1用于指示缩小拥塞窗口。
4.根据权利要求1所述的拥塞窗口的调整方法,其特征在于,基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的状态值的步骤包括:
基于所述目标数据包的发送时刻,确定所述目标统计区间;
获取在所述目标统计区间内接收到应答信号的多个数据包的标签值;
对所述多个数据包的标签值求和,得到所述目标数据包的状态值。
5.根据权利要求1所述的拥塞窗口的调整方法,其特征在于,所述基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在所述状态值大于状态阈值且所述标签值等于1的情况下,确定第三传输量与所述第一数据信息两者中的最大值,所述第三传输量为所述最大传输速率与所述最小往返时延的乘积值;
将所述最大值与第二传输单元值相加,得到第一目标传输量,所述第二传输单元值为所述链路的最大传输单元值与第二常数的乘积值,所述第一目标传输量为扩大所述拥塞窗口后的目标窗口值,所述第二常数为正值;
将所述第一目标传输量和所述历史拥塞窗口的窗口值两者中的最大值,确定为扩大后的拥塞窗口的窗口值。
6.根据权利要求1所述的拥塞窗口的调整方法,其特征在于,所述基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在所述状态值不大于状态阈值且所述标签值等于-1的情况下,确定所述第三传输量与所述第一数据信息两者中的最小值,所述第三传输量为所述最大传输速率与所述最小往返时延的乘积值;
将所述最小值与第三传输单元值相加,得到第二目标传输量,所述第三传输单元值为所述链路的最大传输单元值与第三常数的乘积值,所述第二目标传输量为缩小所述拥塞窗口后的目标窗口值,所述第三常数为负值;
将所述第二目标传输量和所述历史拥塞窗口的窗口值两者中的最小值,确定为缩小后的拥塞窗口的窗口值。
7.根据权利要求1所述的拥塞窗口的调整方法,其特征在于,所述基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,包括:
在所述状态值大于状态阈值且所述标签值等于-1,或者,所述状态值不大于状态阈值且所述标签值等于1的情况下,将所述历史拥塞窗口的窗口值,确定为调整后的拥塞窗口的窗口值。
8.一种拥塞窗口的调整装置,其特征在于,配置于第一终端中,所述第一终端为数据包的发送端,所述装置包括:
获取单元,被配置为在接收到目标数据包的应答信号的情况下,获取所述目标数据包的第一数据信息、第二数据信息以及第三数据信息,所述目标数据包的应答信号用于指示第二终端已经接收到所述目标数据包,所述第二终端为数据包的接收端,所述第一数据信息为发送所述目标数据包时在所述第一终端到所述第二终端的链路中正在传输的数据量,所述第二数据信息包括接收到所述目标数据包的应答信号时所述链路的传输速率和往返时延,所述第三数据信息包括所述链路的最大传输速率和最小往返时延;
确定单元,被配置为基于所述第一数据信息、所述第二数据信息以及所述第三数据信息,确定所述目标数据包的标签值和状态值,所述标签值用于指示扩大或者缩小拥塞窗口,所述状态值为目标统计区间内的所有标签值的总和,所述目标统计区间为所述目标数据包的发送时刻所在的时间统计区间,所述时间统计区间的终点为首次接收到时间统计区间中发送的任一数据包的应答信号的时刻,所述时间统计区间的起点为上一相邻时间统计区间的终点;
调整单元,被配置为基于所述第一数据信息和所述第三数据信息,按照所述标签值和所述状态值指示的调整方式,调整历史拥塞窗口,得到调整后的拥塞窗口,所述调整方式包括扩大拥塞窗口、缩小拥塞窗口以及保持拥塞窗口不变,所述历史拥塞窗口为在上一应答信号到达所述第一终端后进行调整后的拥塞窗口。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
用于存储所述处理器可执行程序代码的存储器;
其中,所述处理器被配置为执行所述程序代码,以实现如权利要求1至7任一项所述的拥塞窗口的调整方法。
10.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7任一项所述的拥塞窗口的调整方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410138965.0A CN117938769A (zh) | 2024-01-31 | 2024-01-31 | 拥塞窗口的调整方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410138965.0A CN117938769A (zh) | 2024-01-31 | 2024-01-31 | 拥塞窗口的调整方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117938769A true CN117938769A (zh) | 2024-04-26 |
Family
ID=90766303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410138965.0A Pending CN117938769A (zh) | 2024-01-31 | 2024-01-31 | 拥塞窗口的调整方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117938769A (zh) |
-
2024
- 2024-01-31 CN CN202410138965.0A patent/CN117938769A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020164520A1 (zh) | 数据包分流方法、装置、移动终端及存储介质 | |
WO2020164475A1 (zh) | 数据分流方法、装置、移动终端及存储介质 | |
US20230276430A1 (en) | Resource scheduling method and apparatus, communication device and storage medium | |
CN104618195A (zh) | 带宽估测方法和装置 | |
US10244425B2 (en) | Electronic device and method for controlling transmission control protocol thereof | |
EP1475922A2 (en) | Data processing device, data processing system, data processing method, data processing program and recording medium storing the program | |
CN108355350B (zh) | 一种基于移动边缘计算的应用服务接入方法及装置 | |
CN108990105A (zh) | 无线通信传输方法、装置、移动终端及计算机可读取存储介质 | |
CN109890022B (zh) | 数据传输控制方法、移动终端及计算机可读存储介质 | |
CN113572836B (zh) | 一种数据传输方法、装置、服务器及存储介质 | |
CN112291366A (zh) | 数据传输方法、装置、存储介质及电子设备 | |
WO2020143579A1 (zh) | 链路聚合实现方法及相关产品 | |
EP3641310A1 (en) | Video encoding method, apparatus, device, and storage medium | |
CN112433690B (zh) | 数据处理方法、终端及计算机可读存储介质 | |
CN113645345A (zh) | 数据发送方法、移动终端及存储介质 | |
WO2020164521A1 (zh) | 数据包分配方法、装置、移动终端及存储介质 | |
CN113438747A (zh) | 处理方法、处理设备及存储介质 | |
CN112235856A (zh) | 一种蓝牙信号发射功率的调节方法、装置、存储介质及移动终端 | |
CN112866804B (zh) | 一种投屏自适应方法、移动终端及可读存储介质 | |
US20230344740A1 (en) | Sla performance prediction method and related apparatus, and device | |
CN111970738B (zh) | 一种网络切换控制方法、设备及计算机可读存储介质 | |
EP2731017A1 (en) | Content distribution system, cache server and content distribution method | |
US20220124045A1 (en) | Data transmission method and apparatus, electronic device and storage medium | |
CN117938769A (zh) | 拥塞窗口的调整方法、装置、电子设备及介质 | |
US20220174701A1 (en) | Information processing method, device, and computer-readable storage medium |
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 |