CN116582491A - 拥塞控制方法、设备及存储介质 - Google Patents
拥塞控制方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116582491A CN116582491A CN202310807683.0A CN202310807683A CN116582491A CN 116582491 A CN116582491 A CN 116582491A CN 202310807683 A CN202310807683 A CN 202310807683A CN 116582491 A CN116582491 A CN 116582491A
- Authority
- CN
- China
- Prior art keywords
- congestion window
- slow start
- interval
- congestion
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 claims abstract description 69
- 230000006870 function Effects 0.000 claims description 46
- 238000004422 calculation algorithm Methods 0.000 description 33
- 238000013461 design Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 230000002035 prolonged effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping 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
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种拥塞控制方法、设备及存储介质,可用于网络安全领域。该方法包括:包括若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间,所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段,针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输,针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。本申请实施例提供的方法降低了数据的丢失率。
Description
技术领域
本申请涉及网络安全领域,尤其涉及一种拥塞控制方法、设备及存储介质。
背景技术
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP拥塞控制是TCP协议中避免网络拥塞的算法,是互联网上主要的一个拥塞控制措施。然而,随着银行业务的增长,业务数据在网络中的传输的可靠性越来越引起关注。进行有效的拥塞控制是安全传输数据为用户提供良好服务的保证。
相关技术中,通常采用TCP Reno算法进行拥塞控制,具体的,在慢启动阶段,通过限制数据分组的增长速度来阻止网络发生拥塞。
然而,实现本申请过程中,发明人发现现有技术中至少存在如下问题:随着数据分组的指数增长,拥塞窗口,也即数据流会出现突然增大的情况,使网络数据的丢失率大幅提升。
发明内容
本申请实施例提供一种拥塞控制方法、设备及存储介质,以降低数据的丢失率。
第一方面,本申请实施例提供一种拥塞控制方法,应用于业务服务器,所述方法包括:
若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段;
针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;
针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
在一种可能的设计中,所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,包括:
获取业务服务器到对端服务器之间的数据传输时间和慢启动阈值;
若所述数据传输时间大于第一预设值,且所述慢启动阈值大于第二预设值,则判定所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件。
在一种可能的设计中,所述根据时间变量的指数函数,确定第一拥塞窗口,包括:
确定系数与时间变量的指数函数的乘积,并将所述乘积与初始值的总和确定为第一拥塞窗口。
在一种可能的设计中,所述系数为所述时间变量的指数函数中的常数的倒数。
在一种可能的设计中,所述根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,包括:
将时间变量的预设幂次的幂函数与预设常量的总和,确定为第二拥塞窗口。
在一种可能的设计中,所述预设常量是根据所述慢启动阈值和所述预设比值确定的。
在一种可能的设计中,所述预设幂次大于2.5小于3.5。
在一种可能的设计中,所述将慢启动阶段划分为第一区间和第二区间之后,还包括:
在拥塞避免阶段,根据时间变量的预设幂次的幂函数,确定第三拥塞窗口,并基于所述第三拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
第二方面,本申请实施例提供一种拥塞控制设备,包括:
划分模块,若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时间点;
确定模块,用于针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;
确定模块,还用于针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时,实现如上第一方面以及第一方面各种可能的设计所述的方法。
本实施例提供的拥塞控制方法、设备及存储介质,该方法包括若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间,所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段,针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输,针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。本申请实施例提供的方法通过将慢启动阶段进行划分,并且在慢启动阶段的后期采用幂次增长的方式设计拥塞窗口加长了拥塞窗口达到慢启动阈值的处理时间,减缓拥塞窗口的增长速度,避免指数增长带来的数据流突然增大的情况,降低了数据的丢失率,并且通过在前期采用指数增长的方式设计拥塞窗口,保证了前期的数据传输速率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的拥塞控制方法的应用场景示意图;
图2为本申请实施例提供的拥塞控制方法的流程示意图;
图3为现有技术提供的慢启动阶段拥塞窗口指数增长的示意图;
图4为本申请实施例提供的慢启动阶段拥塞窗口幂增长的示意图;
图5为本申请实施例提供的慢启动阶段拥塞窗口指数增长和幂增长的对比示意图;
图6为本申请实施例提供的网络拓扑结构的示意图;
图7为本申请实施例提供的现有的TCP Reno算法的仿真模拟结果示意图;
图8为本申请实施例提供的常数项为零时慢启动阶段拥塞窗口指数增长和幂增长的对比示意图;
图9为本申请实施例提供的幂指数为2时慢启动阶段拥塞窗口指数增长和幂增长的对比示意图;
图10为本申请实施例提供的幂指数为4时慢启动阶段拥塞窗口指数增长和幂增长的对比示意图;
图11为本申请实施例提供的拥塞控制设备的结构示意图;
图12为本申请实施例提供的电子设备的硬件结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请提供的拥塞控制的方法和设备可用于网络安全领域,也可用于除网络安全领域之外的任意领域,本申请提供的拥塞控制的方法和装置的应用领域不做限定。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP拥塞控制是TCP协议中避免网络拥塞的算法,是互联网上主要的一个拥塞控制措施。然而,随着银行业务的增长,业务数据在网络中的传输的可靠性越来越引起关注。进行有效的拥塞控制是安全传输数据为用户提供良好服务的保证。
相关技术中,通常采用TCP Reno算法进行拥塞控制,
以下为TCP Reno算法示例说明:
TCP Reno的拥塞度量为丢包率,同时为了探测可以使用的带宽,可以逐次增加拥塞窗口。TCP Reno就将拥塞控制主要分为了四个阶段,这四个阶段的目的和作用此处不做重复赘述。Reno是一个具有加性增,乘性减的拥塞算法,在数据实际的传输过程中还需要考虑到数据的丢失率和传输率。
以Si(t)表示t时刻拥塞窗口的大小;vi表示传输速率;Pi(t)表示t时刻端到端数据包的丢失率;Ti(t)表示RTT(往返时延。是指数据从网络一端传到另一端所需的时间),由此可得出t时刻收到的ACK传输率为t-Ti(t)。
那么,当在拥塞避免阶段,源窗口Si中每增大一个报文段长度的时候,实际上数据大小所增长的量度为:
Reno在传送数据时,如果每检测到一个窗口丢失,就会减少一半的窗口大小,而在一个RTT时段,收到一个ACK,就会平均增长个数据报文,因此,每个时间段数据的减少量为:
那么,拥塞窗口Si(t)就变成了:
由于在拥塞避免阶段,每个RTT时段内ACK传输速率变化非常慢,那么实际上:vi(t-Ti(t))≈vi(t)
而且,在开始阶段,因为数据量的变化较小,数据链路承载数据能力很大,所以此时数据包一般不存在丢失的问题,由此可得出:1-Pi(t)≈1
则(3)式可变化为:
如果用来表示全部数据窗口的平均值,那么传输速率就可以表示为:/>
用微积分求得当链路中为最大数据传输量时的窗口大小:
则(4)式变化为:
注意如果此时Si(t)=0,那么就会得到Reno算法中的等式。
该等式在临界点的时候,拥塞窗口大小和数据包丢失率之间会建立一个映射关系:
综上可知,TCP Reno算法虽然在开始阶段,慢启动通过限制数据分组的增长速度来阻止网络发生拥塞,但是在后期,数据分组增长速率呈指数增长的劣势就一览无余,这种数据流的突然增大,会导致网络的处理时间大幅缩水,网络来不及管理这些突发性的流量,使网络数据的丢失率大幅上升。
为了解决上述技术问题,本申请发明人研究发现可以采用幂增长的方式替代指数增长的方式,具体的,可以在慢启动阶段的后期采用幂增长的方式,从而拉长拥塞窗口达到慢启动阈值的时间长度,减缓拥塞窗口的增长速度,避免出现数据流突然增大的情况,从而降低数据的丢失率。基于此,本申请实施例提供了一种拥塞控制方法。
图1为本申请实施例提供的拥塞控制方法的应用场景示意图。如图1所示,业务服务器和对端服务器通过网络连接,业务服务器用于将业务数据基于TCP协议通过网络发送给对端服务器。可选地,业务服务器可以是金融产品的代销服务器,业务数据可以是用户订单等报表数据,对端服务器可以是安装有报表系统的服务器。
在具体实现过程中,若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则可以基于以下的拥塞控制方式,进行业务服务器与对端服务器之间的业务数据传输。首先在业务服务器通过网络向对端服务器发送业务数据时,将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段;针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。本申请实施例提供的拥塞控制方法,通过将慢启动阶段进行划分,并且在慢启动阶段的后期采用幂次增长的方式设计拥塞窗口加长了拥塞窗口达到慢启动阈值的处理时间,减缓拥塞窗口的增长速度,避免指数增长带来的数据流突然增大的情况,降低了数据的丢失率,并且通过在前期采用指数增长的方式设计拥塞窗口,保证了前期的数据传输速率。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图2为本申请实施例提供的拥塞控制方法的流程示意图。如图2所示,该方法包括:
201、若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段。
本实施例的执行主体为基于TCP协议的网络中的终端设备或服务器节点。
具体的,考虑到当数据传输的时间非常短,只有2秒、3秒或者慢启动阈值非常低(4或8)的时候,本实施例提供的拥塞控制方法的性能可能会相对于现有的TCP Reno算法的优势并不明显,因为上述情况中可能采用TCP Reno本身不存在突发性流量导致的丢包问题,因此,在采用本实施例提供的将慢启动阶段进行分段的拥塞控制方法前可以首先判断数据传输时间和慢启动阈值是否满足预设条件,针对数据传输时间非常长并且慢启动阈值很大的情况,再采用本实施例提供的方式。并且,对于数据传输速率越长,慢启动阈值越大的情况,本实施例提供的拥塞控制方法的优势会更加的明显。
在一些实施例中,业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,可以包括:获取业务服务器到对端服务器之间的数据传输时间和慢启动阈值;若所述数据传输时间大于第一预设值,且所述慢启动阈值大于第二预设值,则判定所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件。
本实施例中,将慢启动阶段划分为第一区间和第二区间,两个区间的分界点可以根据实际需要进行确定,示例性的,可以以传输效率为指标,通过进行多次实验,选定传输效率最高的实验中的分界点。例如选在拥塞窗口与慢启动阈值之间的比值为1:2的时段RTT。本实施例对此不作限定。
202、针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
具体的,考虑到在慢启动阶段的前期不易出现数据流暴涨的情况,因此可以通过采用以指数增长的方式设计拥塞窗口,从而能够保证业务数据传输的效率。
在一些实施例中,根据时间变量的指数函数,确定第一拥塞窗口,可以包括:确定系数与时间变量的指数函数的乘积,并将所述乘积与初始值的总和确定为第一拥塞窗口。
示例性的,初始值可以为0,还可以根据实际情况确定,例如可以根据当前的网络性能和慢启动阈值来确定。本实施例对此不作限定。
在一些实施例中,所述系数为所述时间变量的指数函数中的常数的倒数。
示例性的,时间变量的指数函数中的常数可以为2,则系数可以为1/2。
203、针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
具体的,考虑到指数增长的快速特性,可以采用相对于指数增长,增长趋势更缓和的幂增长的方式来延长拥塞窗口达到慢启动阈值的时间。
在一些实施例中,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,可以包括:将时间变量的预设幂次的幂函数与预设常量的总和,确定为第二拥塞窗口。
在一些实施例中,预设常量是根据所述慢启动阈值和所述预设比值确定的。
在一些实施例中,预设幂次大于2.5小于3.5。
示例性的,预设幂次可以为3。预设常量可以为慢启动阈值与预设比值的乘积,例如以预设比值为1/2,慢启动阈值为1万为例,可以为1/2的1万,即5000。
在TCP Reno算法中发送端每收到一个确定的ACK,拥塞窗口就增加1:
轮次一:发送方发送M1拥塞窗口大小为1,接收方确认M1;
轮次二:发送方发送M2~M3拥塞窗口大小为2,接收方确认M2~M3;
轮次三:发送方发送M4~M7拥塞窗口大小为4,接收方确认M4~M7;
……
由此可知,拥塞窗口的大小随时间段RTT的变化关系,可得关系式(6):
cwnd=2RTT-1+θ (6)
其中,拥塞窗口的初始大小用θ表示,一般设置为0,函数图像可参考图3:
假设慢启动阈值ssthresh大小为4,那么拥塞窗口到达慢启动阈值时所用时间为3。
将慢启动分成前期(第一区间)和后期(第二区间),前期是从RTT=0到cwnd(RTT)=ssthresh/2;后期是从cwnd(RTT)=ssthresh/2到cwnd(RTT)=ssthresh。
为了解决现有的TCP Reno算法中慢启动后期突发流量增长导致丢包率上升的问题,可以让拥塞窗口大小等于慢启动阈值时的RTT到来的更晚一些,使得网络预留出充分的时间处理增长的流量。
具体的,可以通过幂函数来实现,当纵坐标上涨到慢启动阈值的二分之一时,拥塞窗口大小随时间变化关系式如公式(7)所示:
示例性的,令ssthresh=20000,可得如图4所述的函数图像。如图5所示,
将图3和图4所示的两个图像进行叠加可以参考图5。函数(6)到达慢启动阈值的时间t1明显小于函数(7)到达慢启动阈值的时间t2。
对现有的TCP Reno算法来说,纵坐标从10000增长到20000的时间为t1-t0,而幻术(7)从t0到增长到20000的时间为t2-t0,网络将近延长6s的反应时间处理网络流量的增长,丢包率大幅下降,已经基本满足慢启动后期解决丢包的问题。
在上述改进基础上,针对前期(第一区间),虽然采用幂增长的方式后后期(第二区间)延迟了拥塞窗口到达慢启动阈值的时间,但是若前期也采用幂增长的方式,前期的低迷的数据传输速率以及初始拥塞窗口大小被设置为慢启动阈值的一半会导致网络的传输能力下降。
因此,在一些实施例中为了既能够保证慢启动前期(第一区间)的数据传输速率,又能够延长后期(第二区间)拥塞窗口大小增长为慢启动阈值的到来时间,可以采用以下表达式:
从以上描述可知,本申请实施例提供的拥塞控制算法通过将慢启动阶段进行划分,并且在慢启动阶段的后期采用幂次增长的方式设计拥塞窗口加长了拥塞窗口达到慢启动阈值的处理时间,减缓拥塞窗口的增长速度,避免指数增长带来的数据流突然增大的情况,降低了数据的丢失率,并且通过在前期采用指数增长的方式设计拥塞窗口,保证了前期的数据传输速率。
在本公开的一些实施例中,在步骤203之后还可以包括:在拥塞避免阶段,根据时间变量的预设幂次的幂函数,确定第三拥塞窗口,并基于所述第三拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
具体的,可以将拥塞避免阶段的线型增长方式替换为幂增长方式,以提高业务数据的传输效率。
为了更清楚的指出现有的TCP Reno算法存在的问题,以下结合图6和图7对现有的TCP Reno算法进行模拟验证过程进行示例说明。
为了深入理解TCP Reno算法的运行机制,可以采用网络模拟仿真器NS2对本实施例提供的拥塞控制方法进行模拟。首先,如图6所示,可以设置网络拓扑结构和链路参数配置(FTP表示的是端施加恒定的流CBR)。其中,FTP source是一个发送端,FTP Sink是一个接收端,令它们之间的传输协议为TCP协议中的FTP协议,R0和R1为仿真中的两个路由器,数据传输带宽设置为10,延迟时间设置为1ms,在两个路由之间设置带宽为1Mb/s双向链路,对拥塞队列的管理采用去尾法,数据发送速率恒定。
在实现过程中,可以采用tcl脚本程序。示例性的,脚本包括以下内容//打开一个trace文件,用来记录数据报传送的过程;//打开一个文件用来记录cwnd变化情况;//定义一个结束的程序;//定义一个记录的程序;//产生传送结点,路由器r1和r2和接收结点;//建立链路;//设置队列长度为18个封包大小;//根据用户的设置,指定TCP版本,并建立相应的Agent。
TCP Reno算法的具体实现流程可以包括:(1)进入快速恢复阶段。(2)把已经丢失的数据包再次发送。(3)发送新的数据包。(4)拥塞窗口大小=慢开始阈值。(5)进入拥塞避免的阶段。Reno流程主要还是通过是否收到3个重复ACK来决定进入四个过程中的哪个阶段。得到的结果如图7所示。
由图7所示的TCP Reno仿真模拟所产生的结果,可知虽然在开始阶段,慢启动通过限制数据分组的增长速度来阻止网络发生拥塞,但是在后期,数据分组增长速率呈指数增长的劣势就一览无余,这种数据流的突然增大,会导致网络的处理时间大幅缩水,网络来不及管理这些突发性的流量,使网络数据的丢失率大幅上升。
在Reno算法之前被提出的Tache算法,TCP Reno采纳慢启动、拥塞避免和丢包快速重传的方法,相比之下Reno除了增加在连续的收到三个重复ACK时,则直接实施拥塞避免算法,不需要再次慢启动,并且还做到了了从拥塞状态中迅速复原。改进后的Reno算法例如TCP New-Reno和TCP SACK,主要是通过对消息的响应和答复,把更加完整的信息返回给发送端,能够具体确认究竟是哪一个数据包丢失,从而一定程度上解决了问题。后续的发展过程中,也有很多学者慢慢意识到TCP Reno慢启动机制所带来的问题,也相应提出很多的改进方案,例如Transaction TCP、大小初始窗口技术、TCP快速启动算法等等,这些方案大同小异,都是通过减少慢启动阶段所用的时间来完善因慢启动所带来的数据传输速率和突发性流量问题,但是,本身这个阶段所花费的时间就不是很长,单纯的通过只减少这一阶段的时间其实并不能很有效的改善TCP Reno算法由于慢启动机制所带来的问题,所以本申请发明人经过研究后发现更应该着手于如果解决后期数据突发性增长的问题。
本实施例提供的拥塞控制方法主要从慢启动阶段入手,令拥塞窗口增长的速度变慢,这样使得网络拥有更充分的反应时间来处理即将到来的网络拥塞的发生,提高网络性能,降低丢包率。
从函数的角度分析,三次幂的增长速度明显比指数增长速度小得多,一方面,前期二者的增长速度并不会相差很大,网络中数据流量的注入速度大体一致,可以保证原TCPReno算法中数据传输速率的正常性,另一方面通过在后期采用幂增长方式,后期数据增长速度平缓,不会产生数据流的突发性增长,从而延迟网络拥塞的到来时间。
在一些实施例中,幂增长方式中的常数项为非零。证明如下:
当常数项为零时,后期的表达式为:cwnd=(RTT-1)3(9)
以慢启动阈值ssthresh=20000,可以得到函数图像如图8所示:对现有的TCPReno算法函数图像,当拥塞窗口大小为10000时,显然在该时间t0下,n点的拥塞窗口大小要远远高于m点的拥塞窗口大小。
也就是说,网络中已经产生了t0时间数据分组数量,此时的拥塞窗口不能被减小,否则会引起数据丢失,致使网络拥塞的发生提前到来,故常数项不能为零。且可以根据改进后的算法在t0时间内的cwnd一定要大于原算法t0时间下的拥塞窗口大小的原则确定常数项的值。
在一些实施例中,幂函数的预设幂次可以大于2小于4,或者大于2.5小于3.5。证明如下:
针对幂指数为2的情况,
当幂指数为2时,后期的表达式为:
以慢启动阈值ssthresh=20000,可以得到函数图像如图9所示:
参考图9可知,从拥塞窗口大小为10000开始,慢启动后期的数据增长速率相比之下大幅下降,但是到达慢启动阈值的时间延长高达近100秒,这不仅让网络的处理能力变得十分缓慢,也让数据的传输效率变得很低,相较3次幂的6秒延迟,是不可取的。同理,幂指数小于2的所有情况,均不可取。
针对幂指数为4的情况,
当幂指数为4时,后期的表达式为:
以慢启动阈值ssthresh=20000,可以得到函数图像如图10所示:
参考图10可知,幂指数为4时,改进后的算法到达慢启动阈值甚至比原算法更快,使得慢启动后期突发性流量更迅猛,丢包数量大幅上升,改进显然不可取。
需要说明的是,当设置的慢启动阈值无穷大时,幂指数为4的改进算法性能的确比原算法性能高,但是网络本身流量就不是无限的,在相对平均的慢启动阈值下,幂指数调整为4反而会导致网络拥塞的提前发生。同理,幂指数大于等于4的情况均不可取。
图11为本申请实施例提供的拥塞控制设备的结构示意图。如图11所示,该拥塞控制设备110包括:划分模块1101和确定模块1102。
划分模块1101,若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时间点;
确定模块1102,用于针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;
确定模块1102,还用于针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
本申请实施例提供的拥塞控制算法通过将慢启动阶段进行划分,并且在慢启动阶段的后期采用幂次增长的方式设计拥塞窗口加长了拥塞窗口达到慢启动阈值的处理时间,减缓拥塞窗口的增长速度,避免指数增长带来的数据流突然增大的情况,降低了数据的丢失率,并且通过在前期采用指数增长的方式设计拥塞窗口,保证了前期的数据传输速率。
在一些实施例中,划分模块1101具体用于:
获取业务服务器到对端服务器之间的数据传输时间和慢启动阈值;
若所述数据传输时间大于第一预设值,且所述慢启动阈值大于第二预设值,则判定所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件。
在一些实施例中,确定模块1102具体用于:
确定系数与时间变量的指数函数的乘积,并将所述乘积与初始值的总和确定为第一拥塞窗口。
在一些实施例中,所述系数为所述时间变量的指数函数中的常数的倒数。
在一些实施例中,确定模块1102具体用于:
将时间变量的预设幂次的幂函数与预设常量的总和,确定为第二拥塞窗口。
在一些实施例中,所述预设常量是根据所述慢启动阈值和所述预设比值确定的。
在一些实施例中,所述预设幂次大于2.5小于3.5。
在一些实施例中,确定模块1102还用于:
在拥塞避免阶段,根据时间变量的预设幂次的幂函数,确定第三拥塞窗口,并基于所述第三拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
本申请实施例提供的拥塞控制设备,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图12为本申请实施例提供的电子设备的硬件结构示意图。如图12所示,本实施例提供的电子设备120包括:至少一个处理器1201和存储器1202。该电子设备120还包括通信部件1203。其中,处理器1201、存储器1202以及通信部件1203通过总线1204连接。
在具体实现过程中,至少一个处理器1201执行所述存储器1202存储的计算机执行指令,使得至少一个处理器1201执行如上电子设备120所执行的拥塞控制方法。
处理器1201的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图12所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上拥塞控制设备执行的拥塞控制方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
Claims (11)
1.一种拥塞控制方法,应用于业务服务器,其特征在于:
若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时段;
针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;
针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
2.根据权利要求1所述的方法,其特征在于,所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,包括:
获取业务服务器到对端服务器之间的数据传输时间和慢启动阈值;
若所述数据传输时间大于第一预设值,且所述慢启动阈值大于第二预设值,则判定所述业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件。
3.根据权利要求1所述的方法,其特征在于,所述根据时间变量的指数函数,确定第一拥塞窗口,包括:
确定系数与时间变量的指数函数的乘积,并将所述乘积与初始值的总和确定为第一拥塞窗口。
4.根据权利要求3所述的方法,其特征在于,所述系数为所述时间变量的指数函数中的常数的倒数。
5.根据权利要求1所述的方法,其特征在于,所述根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,包括:
将时间变量的预设幂次的幂函数与预设常量的总和,确定为第二拥塞窗口。
6.根据权利要求5所述的方法,其特征在于,所述预设常量是根据所述慢启动阈值和所述预设比值确定的。
7.根据权利要求5所述的方法,其特征在于,所述预设幂次大于2.5小于3.5。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述将慢启动阶段划分为第一区间和第二区间之后,还包括:
在拥塞避免阶段,根据时间变量的预设幂次的幂函数,确定第三拥塞窗口,并基于所述第三拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
9.一种拥塞控制设备,包括:
划分模块,若业务服务器与对端服务器之间的数据传输时间和慢启动阈值满足预设条件,则将慢启动阶段划分为第一区间和第二区间;所述第一区间和第二区间的分界点为拥塞窗口与慢启动阈值之间的比值为预设比值时的时间点;
确定模块,用于针对第一区间,根据时间变量的指数函数,确定第一拥塞窗口,并基于所述第一拥塞窗口进行业务服务器与对端服务器之间的业务数据传输;
确定模块,还用于针对第二区间,根据时间变量的预设幂次的幂函数,确定第二拥塞窗口,并基于所述第二拥塞窗口进行业务服务器与对端服务器之间的业务数据传输。
10.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310807683.0A CN116582491A (zh) | 2023-07-03 | 2023-07-03 | 拥塞控制方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310807683.0A CN116582491A (zh) | 2023-07-03 | 2023-07-03 | 拥塞控制方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116582491A true CN116582491A (zh) | 2023-08-11 |
Family
ID=87543411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310807683.0A Pending CN116582491A (zh) | 2023-07-03 | 2023-07-03 | 拥塞控制方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116582491A (zh) |
-
2023
- 2023-07-03 CN CN202310807683.0A patent/CN116582491A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Henderson et al. | On improving the fairness of TCP congestion avoidance | |
US10791192B2 (en) | Hybrid approach for performance enhancing proxies | |
EP3338396B1 (en) | Device and method for establishing connection in load-balancing system | |
US7912911B2 (en) | Method and system for increasing throughput rate by dynamically modifying connection parameters | |
US8064345B2 (en) | Optimisation process of the control of traffic in a packet telecommunications network | |
US7782794B2 (en) | Methods and systems for bandwidth measurement techniques | |
EP2661030A2 (en) | Maximizing bandwidth utilization in networks with high latencies and packet drops using transmission control protocol | |
US10715442B2 (en) | Congestion control | |
US11258717B2 (en) | Method for sending service packet, network device, and system | |
CN113076280B (zh) | 一种数据传输方法及相关设备 | |
CN112118191A (zh) | 多路径传输拥塞控制方法、装置、控制设备及存储介质 | |
WO2019101208A1 (zh) | 一种传输速率调整的方法、节点设备以及服务器 | |
KR20100005721A (ko) | 네트워크 장치를 위한 버퍼 제어 방법 | |
Abdelsalam et al. | TCP Wave over Linux: a disruptive alternative to the traditional TCP window approach | |
Ziegler et al. | A quantitative Model for the Parameter Setting of RED with TCP traffic | |
CN112230880B (zh) | 一种数据传输控制方法、装置、fpga及介质 | |
JP4429982B2 (ja) | 輻輳制御方法およびその通信端末 | |
CN116582491A (zh) | 拥塞控制方法、设备及存储介质 | |
JP5087595B2 (ja) | エッジノード、ウィンドウサイズ制御方法およびプログラム | |
US7424544B2 (en) | Method for improving performance in computer networks based on lossy channel | |
US10015288B2 (en) | Communication apparatus and control method of communication apparatus | |
US7500012B2 (en) | Method for controlling dataflow to a central system from distributed systems | |
KR102141498B1 (ko) | 패킷 전송 방법 및 장치 | |
CN109039900B (zh) | 一种发送credit包的停止信号的方法和装置 | |
Małowidzki | Simulation-based study of ECN performance in RED networks |
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 |