CN110247853A - Tcp拥塞控制方法、系统、存储介质及网络服务器 - Google Patents
Tcp拥塞控制方法、系统、存储介质及网络服务器 Download PDFInfo
- Publication number
- CN110247853A CN110247853A CN201810196265.1A CN201810196265A CN110247853A CN 110247853 A CN110247853 A CN 110247853A CN 201810196265 A CN201810196265 A CN 201810196265A CN 110247853 A CN110247853 A CN 110247853A
- Authority
- CN
- China
- Prior art keywords
- window
- size
- network
- pacing
- delay
- 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 32
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 230000005540 biological transmission Effects 0.000 claims abstract description 65
- 230000007246 mechanism Effects 0.000 claims abstract description 15
- 238000001514 detection method Methods 0.000 claims abstract description 12
- 238000012790 confirmation Methods 0.000 claims abstract description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 37
- 230000015654 memory Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000005070 sampling Methods 0.000 claims description 8
- 238000011084 recovery Methods 0.000 claims description 4
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 230000002035 prolonged effect Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000005055 memory storage Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 10
- 230000001960 triggered effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002360 preparation method 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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- 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/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种TCP拥塞控制方法、系统、存储介质及网络服务器,包括以下步骤:当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数;判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口;判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小;根据所述调整后的发送窗口大小收发数据包。本发明的TCP拥塞控制方法、系统、存储介质及网络服务器基于pacing机制来加速网络服务器间的数据传输速度,有效地利用了带宽,减小了延时,极大地提升了用户体验。
Description
技术领域
本发明涉及网络通信的技术领域,特别是涉及一种基于pacing机制的TCP拥塞控制方法、系统、存储介质及网络服务器。
背景技术
现有技术中,用户访问的企业网站的网络服务器在传输层方案存在以下三个弊端:
(1)应用服务器托管在互联网数据中心(Internet Data Cente,IDC)机房,大都采用操作系统默认配置;其中,IDC机房是电信部门利用已有的互联网通信线路、带宽资源,建立标准化的电信专业级机房环境,为企业、政府提供服务器托管、租用以及相关增值等方面的全方位服务;
(2)默认配置的应用服务器针对跨国海外环境的拥塞控制没有进行优化;
(3)默认配置的应用服务器在跨国海外环境传输控制的算法性能实际测试有时效果并不理想。
内容分发网络(Content Delivery Network,CDN)的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上,其目的是使用户可就近取得所需内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。特别地,在CDN跨国的网络环境下,网络带宽延时积比较大,网络服务器间数据传输速度较慢,导致用户上网体验较差。因此,需要通过一定的拥塞控制算法优化网络传输速度。然而,现有的Linux系统默认拥塞控制算法具有以下不足:
(1)所采用的拥塞控制算法如bic或cubic不适合CDN跨国的网络环境;
(2)所采用的拥塞控制算法在CDN跨国的网络环境下的加速效果较差;
(3)所采用的拥塞控制算法在CDN跨国的网络环境下有时不能有效地利用带宽;
(4)所采用的拥塞控制算法有时会突然发包,有可能造成网络拥塞或丢包。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种TCP拥塞控制方法、系统、存储介质及网络服务器,基于pacing机制来加速网络服务器间的数据传输速度,有效地利用了带宽,减小了延时,极大地提升了用户体验。
为实现上述目的及其他相关目的,本发明提供一种TCP拥塞控制方法,包括以下步骤:当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数;判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口;判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小;根据所述调整后的发送窗口大小收发数据包。
于本发明一实施例中,所述网络状态参数包括平均延时、传输延时和排队延时;所述平均延时、所述传输延时和所述排队延时的初始值均为0;
根据avgRTT=((scale-1)*avgRTT+rtt)/scale估算平均延时avgRTT;其中,根据网络中已经发送还没有被确认的数据包进行估计scale的取值;
根据baseRTT=min(avgRTT,rtt)估算传输延时baseRTT;
根据queueRTT=avgRTT-baseRTT估算排队延时queueRTT。
于本发明一实施例中,基于丢包探测的方式计算发送窗口的大小时,根据ωi(t1)=ω+N*ωi(t0)计算发送窗口的大小,其中,ωi(t1)表示计算的发送窗口的大小;ω是常量,ωi(t0)是上一次FastTCP拥塞控制算法计算得到的发送窗口的大小。
于本发明一实施例中,基于网络延时的方式计算发送窗口的大小时,根据计算发送窗口的大小,其中γ表示FastTCP拥塞控制算法的收敛系数;ωi(t0)表示上一次rtt采样时的发送窗口的大小;ωi(t1)表示计算的发送窗口的大小;αi表示网络中排队数据包的估计值;d表示传输延时,D表示排队延时。
于本发明一实施例中,所述判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小,包括以下步骤:
设置定时器以周期性地触发所述pacing窗口控制参数的调整;
当定时器触发了所述pacing窗口控制参数的调整,估算发送接收方通告窗口大小的数据包的时间和网络延时;
若所述发送接收方通告窗口大小的数据包的时间和所述网络延时有效;当所述发送接收方通告窗口大小的数据包的时间小于所述网络延时参数时,pacing窗口控制参数为1,否则pacing窗口控制参数为发送接收方通告窗口大小的数据包的时间与网络延时参数的比值。
于本发明一实施例中,还包括:每间隔预设时长,当rtt<=s_rtt时,增大FastTCP拥塞控制算法的收敛系数,否则,减小FastTCP拥塞控制算法的收敛系数;并重新估算网络状态参数,根据所述FastTCP拥塞控制算法计算发送窗口的大小,其中s_rtt为上次收包计算得到rtt。
于本发明一实施例中,还包括:当接收到重复确认信息或者检测到丢包时,
若当前网络带宽估计无效,则设置发送窗口的大小为预设初始值,并根据发送窗口发送数据包;
若当前网络带宽估算有效,则记录当前网络带宽;在丢包恢复完成后,根据所述当前网络带宽设置发送窗口的大小,并在pacing机制启动后,根据pacing窗口控制参数调整发送窗口的大小,并根据发送窗口发送数据包。
对应地,本发明提供一种TCP拥塞控制系统,包括估算模块、计算调整模块、判断调整模块和收发模块;
所述估算模块用于当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数;
所述计算调整模块用于判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口;
所述判断调整模块用于判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小;
所述收发模块用于根据所述调整后的发送窗口大小收发数据包。
本发明提供一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的TCP拥塞控制方法。
最后,本发明提供一种网络服务器,包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述云制造平台执行上述的TCP拥塞控制方法。
如上所述,本发明的基于pacing机制的TCP拥塞控制方法、系统、存储介质及网络服务器,具有以下有益效果:
(1)基于FastTCP拥塞控制算法进行网络带宽和时延参数估计,基于pacing机制来加速网络服务器间的数据传输速度;在没有获得网络带宽和时延参数前,能够在实验分析的基础上,采用基于丢包探测策优化数据传输;
(2)有效地控制了网络服务器发送方的发包速率,改善状态方程的参数,实现拥塞窗口的更准确估计;并在丢包发生后,根据对网络的带宽估计迅速恢复丢包前的状态;
(3)减少了突然发包,平滑发包速率,有效地利用了带宽,减小了延时,极大地提升了用户体验;
(4)尤其适用于CDN网络中间一公里、网络带宽延时积比较大的长肥管道、跨国家的网络状况不确定,环境相对不确定的海外环境下,网络服务器间数据传输速度的问题。
附图说明
图1显示为本发明的TCP拥塞控制方法于一实施例的流程图;
图2显示为本发明的获取pacing窗口的大小于一实施例中的流程图;
图3显示为本发明的TCP拥塞控制系统于一实施例中的结构示意图;
图4显示为本发明的网络服务器于一实施例中的结构示意图。
元件标号说明
31 估算模块
32 计算调整模块
33 判断调整模块
34 收发模块
41 处理器
42 存储器
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明的TCP拥塞控制方法、系统、存储介质及网络服务器基于pacing机制来加速网络服务器间的数据传输速度,尤其适用于CDN网络中间一公里、网络带宽延时积比较大的长肥管道、跨国家的网络状况不确定,环境相对不确定的海外环境下,网络服务器间数据传输速度的问题。其中,长肥管道应用于计算机网络传输层的TCP协议中。带宽延迟积很大的网络叫做长肥网络(LFN,long fat network),在LFN中建立的TCP链接叫做长肥管道。
如图1所示,于一实施例中,本发明的TCP拥塞控制方法包括以下步骤:
步骤S1、当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数。
具体地,所述网络状态参数包括平均延时avgRT、传输延时baseRTT和排队延时queueRTT。所述平均延时avgRT、传输延时baseRTT和排队延时queueRTT的初始值均为0。
于本发明一实施例中,根据avgRTT=((scale-1)*avgRTT+rtt)/scale估算平均延时;其中,根据网络中已经发送还没有被确认的数据包进行估计scale的取值,且当估计的scale的取值大于256时,scale取值为256。其中,rtt为系统观察或者测量得到的当前连接的网络延时(round-trip time,rtt)
于本发明一实施例中,根据baseRTT=min(avgRTT,rtt)估算传输延时。
于本发明一实施例中,根据queueRTT=avgRTT-baseRTT估算排队延时。
步骤S2、判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口。
具体地,若估算的网络状态参数的取值均为0,则表明网络状态参数的估算没有生效。此时,采用丢包探测的方式计算发送窗口的大小。
于本发明一实施例中,采用N条FastTCP拥塞控制算法和一条Hybla拥塞控制算法计算发送窗口的大小参数。即ωi(t1)=ω+N*ωi(t0),其中,ωi(t1)表示计算的发送窗口的大小;ω是常量,ωi(t0)上一次FastTCP拥塞控制算法计算得到的发送窗口的大小;t1表示当前采样时刻,t0表示上一次采样时刻。优选地,N取值为2。
具体地,若估算的网络状态参数的取值不全为0,即传输延时baseRTT和平均延时avgRTT不为零,则说明已经采集到了rtt相关信息,故网络状态参数的估算生效。此时,采用基于网络延时的方式计算发送窗口的大小。
于本发明一实施例中,根据FastTCP拥塞控制算法估算发送窗口的大小参数。具体地,其中γ表示收敛系数,在FastTCP拥塞控制算法中取固定常数0.5;ωi(t0)表示上一次rtt采样时的发送窗口的大小;ωi(t1)表示计算的发送窗口的大小;αi表示网络中排队数据包的估计值;d表示传输延时,D表示排队延时,t1表示当前采样时刻,t0表示上一次采样时刻。
步骤S3、判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小。
具体地,如图2所示,判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小包括以下步骤:
31)设置定时器以周期性地触发所述pacing窗口控制参数的调整。
具体地,在系统初始化时,设置有pacing定时器。通过pacing定时器的设定值来每隔预设时长触发一次pacing定时器,以根据网络传输状况更新pacing机制下的发送窗口的大小。
32)当定时器触发了所述pacing窗口控制参数的调整,估算发送接收方通告窗口大小的数据包的时间和网络延时。
于本发明一实施例中,根据r_rtt=接收方通告窗口大小/当前最大报文段大小计算发送接收方通告窗口大小的数据包的时间r_rtt。
于本发明一实施例中,网络延时s_rtt由系统平滑获取。
33)若所述发送接收方通告窗口大小的数据包的时间和所述网络延时有效;当所述发送接收方通告窗口大小的数据包的时间小于所述网络延时参数时,pacing窗口的大小为1,否则pacing窗口的大小为发送接收方通告窗口大小的数据包的时间与网络延时参数的比值。
具体地,当发送接收方通告窗口大小的数据包的时间r_rtt和网络延时s_rtt均不为0时,表明有效。
步骤S4、根据所述调整后的发送窗口大小收发数据包。
具体地,根据所述调整后的发送窗口大小收发数据包,即可实现CDN网络中间一公里、网络带宽延时积比较大的长肥管道、跨国家的网络状况不确定,环境相对不确定的海外环境下的TCP拥塞控制。
优选地,本发明的TCP拥塞控制方法还包括:每间隔预设时长,,当rtt<=s_rtt时,增大FastTCP拥塞控制算法的收敛系数γ,否则,减小FastTCP拥塞控制算法的收敛系数γ;并重新估算网络状态参数,根据FastTCP拥塞控制算法计算发送窗口的大小,其中s_rtt为上次收包计算得到rtt。具体地,设置窗口更新定时器,在判断是否启动pacing机制之前,判断窗口更新定时器是否被触发,并在窗口更新定时器被触发时,启动窗口更新。需要说明的是,窗口更新也可以不是周期性的,可根据网络性能进行更新。
具体地,在系统初始化时,设置有窗口更新定时器。通过窗口更新定时器的设定值来每隔预设时长触发一次pacing定时器,以根据网络传输状况更新计算得到的发送窗口。其中,在窗口更新定时器被触发时,当rtt<=s_rtt时,则认为网络负载降低,应增加窗口,故增大FastTCP拥塞控制算法的收敛系数γ。优选地,γ取值为[0.6,0.8],默认为0.7。反之,则认为网络负载增加,应减少拥塞窗口,故减小FastTCP拥塞控制算法的收敛系数γ。优选地,γ设置为[0.3,0.5]之间,默认为0.4。
优选地,本发明的TCP拥塞控制方法还包括:当接收到重复确认信息或者检测到丢包时,
若当前网络带宽估计无效,则设置发送窗口的大小为预设初始值,并根据发送窗口发送数据包;
若当前网络带宽估算有效,则记录当前网络带宽;在丢包恢复完成后,根据所述当前网络带宽设置发送窗口的大小,并在pacing机制启动后,根据pacing窗口控制参数调整发送窗口的大小,并根据发送窗口发送数据包。
如图3所示,于一实施例中,本发明的TCP拥塞控制系统包括估算模块31、计算调整模块32、判断调整模块33和收发模块34。
估算模块31用于当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数。
具体地,所述网络状态参数包括平均延时avgRT、传输延时baseRTT和排队延时queueRTT。所述平均延时avgRT、传输延时baseRTT和排队延时queueRTT的初始值均为0。
于本发明一实施例中,根据avgRTT=((scale-1)*avgRTT+rtt)/scale估算平均延时;其中,根据网络中已经发送还没有被确认的数据包进行估计scale的取值,且当估计的scale的取值大于256时,scale取值为256。其中,rtt为系统观察或者测量得到的当前连接的往返延时(round-trip time,rtt)
于本发明一实施例中,根据baseRTT=min(avgRTT,rtt)估算传输延时。
于本发明一实施例中,根据queueRTT=avgRTT-baseRTT估算排队延时。
计算调整模块32用于判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口。
具体地,若估算的网络状态参数的取值均为0,则表明网络状态参数的估算没有生效。此时,采用丢包探测的方式计算发送窗口的大小。
于本发明一实施例中,采用N条FastTCP拥塞控制算法和一条Hybla拥塞控制算法计算发送窗口的大小参数。即ωi(t1)=ω+N*ωi(t0),其中,ωi(t1)表示计算的发送窗口的大小;ω是常量,ωi(t0)上一次FastTCP拥塞控制算法计算得到的发送窗口的大小;t1表示当前采样时刻,t0表示上一次采样时刻。优选地,N取值为2。
具体地,若估算的网络状态参数的取值不全为0,即传输延时baseRTT和平均延时avgRTT不为零,则说明已经采集到了rtt相关信息,故网络状态参数的估算生效。此时,采用基于网络延时的方式计算发送窗口的大小。
于本发明一实施例中,根据FastTCP拥塞控制算法估算发送窗口的大小参数。具体地,其中γ表示收敛系数,在FastTCP拥塞控制算法中取固定常数0.5;ωi(t0)表示上一次rtt采样时的发送窗口的大小;ωi(t1)表示计算的发送窗口的大小;αi表示网络中排队数据包的估计值;d表示传输延时,D表示排队延时,t1表示当前采样时刻,t0表示上一次采样时刻。
判断调整模块33用于判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小。
具体地,如图2所示,判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小包括以下步骤:
31)设置定时器以周期性地触发所述pacing窗口控制参数的调整。
具体地,在系统初始化时,设置有pacing定时器。通过pacing定时器的设定值来每隔预设时长触发一次pacing定时器,以根据网络传输状况更新pacing机制下的发送窗口的大小。
32)当定时器触发了所述pacing窗口控制参数的调整,估算发送接收方通告窗口大小的数据包的时间和网络延时。
于本发明一实施例中,根据r_rtt=接收方通告窗口大小/当前最大报文段大小计算发送接收方通告窗口大小的数据包的时间r_rtt。
于本发明一实施例中,网络延时s_rtt由系统平滑获取。
33)若所述发送接收方通告窗口大小的数据包的时间和所述网络延时有效;当所述发送接收方通告窗口大小的数据包的时间小于所述网络延时参数时,pacing窗口的大小为1,否则pacing窗口的大小为发送接收方通告窗口大小的数据包的时间与网络延时参数的比值。
具体地,当发送接收方通告窗口大小的数据包的时间r_rtt和网络延时s_rtt均不为0时,表明有效。
收发模块34与计算调整模块32和判断调整模块33相连,用于根据所述调整后的发送窗口大小收发数据包。
具体地,根据所述调整后的发送窗口大小收发数据包,即可实现CDN网络中间一公里、网络带宽延时积比较大的长肥管道、跨国家的网络状况不确定,环境相对不确定的海外环境下的TCP拥塞控制。
优选地,本发明的TCP拥塞控制系统还包括窗口更新模块,用于每间隔预设时长,当rtt<=s_rtt时,增大FastTCP拥塞控制算法的收敛系数γ,否则,减小FastTCP拥塞控制算法的收敛系数γ;并重新估算网络状态参数,根据FastTCP拥塞控制算法计算发送窗口的大小,其中s_rtt为上次收包计算得到rtt。具体地,设置窗口更新定时器,在判断是否启动pacing机制之前,判断窗口更新定时器是否被触发,并在窗口更新定时器被触发时,启动窗口更新。需要说明的是,窗口更新也可以不是周期性的,可根据网络性能进行更新。
具体地,在系统初始化时,设置有窗口更新定时器。通过窗口更新定时器的设定值来每隔预设时长触发一次pacing定时器,以根据网络传输状况更新计算得到的发送窗口。其中,在窗口更新定时器被触发时,当rtt<=s_rtt时,则认为网络负载降低,应增加窗口,故增大FastTCP拥塞控制算法的收敛系数γ。优选地,γ取值为[0.6,0.8],默认为0.7。反之,则认为网络负载增加,应减少拥塞窗口,故减小FastTCP拥塞控制算法的收敛系数γ。优选地,γ设置为[0.3,0.5]之间,默认为0.4。
优选地,本发明的TCP拥塞控制系统还包括丢包控制模块,用于当接收到重复确认信息或者检测到丢包时,
若当前网络带宽估计无效,则设置发送窗口的大小为预设初始值,并根据发送窗口发送数据包;
若当前网络带宽估算有效,则记录当前网络带宽;在丢包恢复完成后,根据所述当前网络带宽设置发送窗口的大小,并在pacing机制启动后,根据pacing窗口控制参数调整发送窗口的大小,并根据发送窗口发送数据包。
需要说明的是,应理解以上系统的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,x模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上x模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC),或,一个或多个微处理器(digitalsingnalprocessor,简称DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessingUnit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
本发明的存储介质上存储有计算机程序,该程序被处理器执行时实现上述的TCP拥塞控制方法。优选地,所述存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
如图4所示,于一实施例中,本发明的网络服务器包括处理器41及存储器42。
所述存储器42用于存储计算机程序。
优选地,所述存储器42包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
所述处理器41与所述存储器42相连,用于执行所述存储器42存储的计算机程序,以使所述网络服务器执行上述TCP拥塞控制方法。
优选地,处理器41可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
综上所述,本发明的TCP拥塞控制方法、系统、存储介质及网络服务器基于FastTCP拥塞控制算法进行网络带宽和时延参数估计,基于pacing机制来加速网络服务器间的数据传输速度;在没有获得网络带宽和时延参数前,能够在实验分析的基础上,采用基于丢包探测策优化数据传输;有效地控制了网络服务器发送方的发包速率,改善状态方程的参数,实现拥塞窗口的更准确估计;并在丢包发生后,根据对网络的带宽估计迅速恢复丢包前的状态;减少了突然发包,平滑发包速率,有效地利用了带宽,减小了延时,极大地提升了用户体验;尤其适用于CDN网络中间一公里、网络带宽延时积比较大的长肥管道、跨国家的网络状况不确定,环境相对不确定的海外环境下,网络服务器间数据传输速度的问题。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种TCP拥塞控制方法,其特征在于,包括以下步骤:
当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数;
判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口;
判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小;
根据所述调整后的发送窗口大小收发数据包。
2.根据权利要求1所述的TCP拥塞控制方法,其特征在于:所述网络状态参数包括平均延时、传输延时和排队延时;所述平均延时、所述传输延时和所述排队延时的初始值均为0;
根据avgRTT=((scale-1)*avgRTT+rtt)/scale估算平均延时avgRTT;其中,根据网络中已经发送还没有被确认的数据包进行估计scale的取值;
根据baseRTT=min(avgRTT,rtt)估算传输延时baseRTT;
根据queueRTT=avgRTT-baseRTT估算排队延时queueRTT。
3.根据权利要求1所述的TCP拥塞控制方法,其特征在于:基于丢包探测的方式计算发送窗口的大小时,根据ωi(t1)=ω+N*ωi(t0)计算发送窗口的大小,其中,ωi(t1)表示计算的发送窗口的大小;ω是常量,ωi(t0)是上一次FastTCP拥塞控制算法计算得到的发送窗口的大小。
4.根据权利要求1所述的TCP拥塞控制方法,其特征在于:基于网络延时的方式计算发送窗口的大小时,根据计算发送窗口的大小,其中γ表示FastTCP拥塞控制算法的收敛系数;ωi(t0)表示上一次rtt采样时的发送窗口的大小;ωi(t1)表示计算的发送窗口的大小;αi表示网络中排队数据包的估计值;d表示传输延时,D表示排队延时。
5.根据权利要求1所述的TCP拥塞控制方法,其特征在于:所述判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小,包括以下步骤:
设置定时器以周期性地触发所述pacing窗口控制参数的调整;
当定时器触发了所述pacing窗口控制参数的调整,估算发送接收方通告窗口大小的数据包的时间和网络延时;
若所述发送接收方通告窗口大小的数据包的时间和所述网络延时有效;当所述发送接收方通告窗口大小的数据包的时间小于所述网络延时参数时,pacing窗口控制参数为1,否则pacing窗口控制参数为发送接收方通告窗口大小的数据包的时间与网络延时参数的比值。
6.根据权利要求1所述的TCP拥塞控制方法,其特征在于:还包括:每间隔预设时长,当rtt<=s_rtt时,增大FastTCP拥塞控制算法的收敛系数,否则,减小FastTCP拥塞控制算法的收敛系数;并重新估算网络状态参数,根据所述FastTCP拥塞控制算法计算发送窗口的大小,其中s_rtt为上次收包计算得到rtt。
7.根据权利要求1所述的TCP拥塞控制方法,其特征在于:还包括:当接收到重复确认信息或者检测到丢包时,
若当前网络带宽估计无效,则设置发送窗口的大小为预设初始值,并根据发送窗口发送数据包;
若当前网络带宽估算有效,则记录当前网络带宽;在丢包恢复完成后,根据所述当前网络带宽设置发送窗口的大小,并在pacing机制启动后,根据pacing窗口控制参数调整发送窗口的大小,并根据发送窗口发送数据包。
8.一种TCP拥塞控制系统,其特征在于:包括估算模块、计算调整模块、判断调整模块和收发模块;
所述估算模块用于当接收到客户端发送来的拥塞控制请求或拥塞确认信息时,估算网络状态参数;
所述计算调整模块用于判断所述网络状态参数是否有效;若否,基于丢包探测的方式计算发送窗口的大小参数;若是,基于网络延时的方式计算发送窗口的大小参数;并通过发送窗口大小参数调整发送窗口;
所述判断调整模块用于判断pacing窗口控制参数是否变化;若是,重新获取pacing窗口控制参数,并根据pacing窗口控制参数调整所述发送窗口的大小;
所述收发模块用于根据所述调整后的发送窗口大小收发数据包。
9.一种存储介质,其上存储有计算机程序,其特征在于:该程序被处理器执行时实现权利要求1至7中任一项所述的TCP拥塞控制方法。
10.一种网络服务器,其特征在于:包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述存储器存储的计算机程序,以使所述云制造平台执行权利要求1至7中任一项所述的TCP拥塞控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810196265.1A CN110247853A (zh) | 2018-03-09 | 2018-03-09 | Tcp拥塞控制方法、系统、存储介质及网络服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810196265.1A CN110247853A (zh) | 2018-03-09 | 2018-03-09 | Tcp拥塞控制方法、系统、存储介质及网络服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110247853A true CN110247853A (zh) | 2019-09-17 |
Family
ID=67882816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810196265.1A Pending CN110247853A (zh) | 2018-03-09 | 2018-03-09 | Tcp拥塞控制方法、系统、存储介质及网络服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110247853A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111371692A (zh) * | 2020-03-13 | 2020-07-03 | 中科驭数(北京)科技有限公司 | 基于tcp协议的窗口控制方法、装置和电子设备 |
CN111371639A (zh) * | 2020-02-21 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 网络延时分析方法、装置、存储介质和计算机设备 |
CN111541626A (zh) * | 2020-04-21 | 2020-08-14 | 广州市百果园信息技术有限公司 | 网络带宽更新方法、装置、电子设备及存储介质 |
CN112187651A (zh) * | 2020-09-09 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种流量调度方法、装置、设备及可读介质 |
CN112367265A (zh) * | 2020-10-27 | 2021-02-12 | 中国电子科技集团公司第二十八研究所 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
CN112787942A (zh) * | 2019-11-05 | 2021-05-11 | 中兴通讯股份有限公司 | 一种tcp拥塞控制方法、装置、终端及可读存储介质 |
WO2024001763A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645765A (zh) * | 2009-08-03 | 2010-02-10 | 四川大学 | 面向高误码率、长时延特性网络的可靠传输加速方法 |
CN102299899A (zh) * | 2010-06-24 | 2011-12-28 | 清华大学 | 一种恶劣信道下的tcp加速方法 |
CN102882803A (zh) * | 2012-10-11 | 2013-01-16 | 四川大学 | 一种基于丢包和时延的混合拥塞控制方法 |
CN104158760A (zh) * | 2014-08-29 | 2014-11-19 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
US20150043339A1 (en) * | 2011-12-28 | 2015-02-12 | Cdf Ke Yuan | Tcp congestion control for large latency networks |
CN105357138A (zh) * | 2015-09-30 | 2016-02-24 | 四川大学 | 一种基于低优先级的自适应可靠传输方法 |
CN106131208A (zh) * | 2016-08-09 | 2016-11-16 | 中南大学 | 一种数据中心网络中http高并发数据传输方法 |
CN106464598A (zh) * | 2014-04-23 | 2017-02-22 | 贝匡特有限公司 | 用于基于传输速率梯度的网络拥塞控制的方法和装置 |
-
2018
- 2018-03-09 CN CN201810196265.1A patent/CN110247853A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645765A (zh) * | 2009-08-03 | 2010-02-10 | 四川大学 | 面向高误码率、长时延特性网络的可靠传输加速方法 |
CN102299899A (zh) * | 2010-06-24 | 2011-12-28 | 清华大学 | 一种恶劣信道下的tcp加速方法 |
US20150043339A1 (en) * | 2011-12-28 | 2015-02-12 | Cdf Ke Yuan | Tcp congestion control for large latency networks |
CN102882803A (zh) * | 2012-10-11 | 2013-01-16 | 四川大学 | 一种基于丢包和时延的混合拥塞控制方法 |
CN106464598A (zh) * | 2014-04-23 | 2017-02-22 | 贝匡特有限公司 | 用于基于传输速率梯度的网络拥塞控制的方法和装置 |
US20170195231A1 (en) * | 2014-04-23 | 2017-07-06 | Bequant S.L. | Method and Apparatus for Network Congestion Control Based on Transmission Rate Gradients |
CN104158760A (zh) * | 2014-08-29 | 2014-11-19 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
CN105357138A (zh) * | 2015-09-30 | 2016-02-24 | 四川大学 | 一种基于低优先级的自适应可靠传输方法 |
CN106131208A (zh) * | 2016-08-09 | 2016-11-16 | 中南大学 | 一种数据中心网络中http高并发数据传输方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112787942A (zh) * | 2019-11-05 | 2021-05-11 | 中兴通讯股份有限公司 | 一种tcp拥塞控制方法、装置、终端及可读存储介质 |
CN111371639A (zh) * | 2020-02-21 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 网络延时分析方法、装置、存储介质和计算机设备 |
CN111371639B (zh) * | 2020-02-21 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 网络延时分析方法、装置、存储介质和计算机设备 |
CN111371692A (zh) * | 2020-03-13 | 2020-07-03 | 中科驭数(北京)科技有限公司 | 基于tcp协议的窗口控制方法、装置和电子设备 |
CN111541626A (zh) * | 2020-04-21 | 2020-08-14 | 广州市百果园信息技术有限公司 | 网络带宽更新方法、装置、电子设备及存储介质 |
CN111541626B (zh) * | 2020-04-21 | 2023-08-25 | 广州市百果园信息技术有限公司 | 网络带宽更新方法、装置、电子设备及存储介质 |
CN112187651A (zh) * | 2020-09-09 | 2021-01-05 | 苏州浪潮智能科技有限公司 | 一种流量调度方法、装置、设备及可读介质 |
CN112187651B (zh) * | 2020-09-09 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 一种流量调度方法、装置、设备及可读介质 |
CN112367265A (zh) * | 2020-10-27 | 2021-02-12 | 中国电子科技集团公司第二十八研究所 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
CN112367265B (zh) * | 2020-10-27 | 2023-04-07 | 中国电子科技集团公司第二十八研究所 | 一种适用于窄带弱连接网络的可靠数据传输方法和装置 |
WO2024001763A1 (zh) * | 2022-06-29 | 2024-01-04 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247853A (zh) | Tcp拥塞控制方法、系统、存储介质及网络服务器 | |
CN105515915B (zh) | 节点探测方法及装置、路径选取方法及装置、及网络系统 | |
US9497135B2 (en) | Method and system for reduction of time variance of packets received from bonded communication links | |
WO2020022209A1 (ja) | ネットワーク制御装置及びネットワーク制御方法 | |
CN106537867B (zh) | 一种数据传输方法、装置和系统 | |
CN109039936A (zh) | 传输速率控制方法、装置、发送设备和接收设备 | |
EP3780542A1 (en) | Data transmission method and device | |
WO2013101942A1 (en) | Tcp congestion control for large latency networks | |
KR20160036878A (ko) | 통신 시스템에서 데이터 흐름 제어 장치 및 방법 | |
CN106302230B (zh) | 一种数据传输方法及装置 | |
CN108322401A (zh) | 网络传输拥塞的控制方法及装置 | |
US20070081561A1 (en) | Single ended solution for estimation of bandwidth delay product | |
CN104734985A (zh) | 数据接收流量控制方法及其系统 | |
Podlesny et al. | Solving the tcp-incast problem with application-level scheduling | |
Salah et al. | Performance analysis and comparison of interrupt-handling schemes in gigabit networks | |
CN109802898A (zh) | 多链路数据传输方法、接收装置及存储介质 | |
CN107682235A (zh) | 一种基于卡尔曼滤波的传输时延预测数据调度方法 | |
CN110072254A (zh) | 一种数据的传输方法及其相关设备 | |
CN113242185B (zh) | 一种地图数据传输方法、清洁机器人、设备和存储介质 | |
CN110120921B (zh) | 拥塞避免方法、装置、计算机设备及存储介质 | |
CN107196856A (zh) | 一种确定路由转发路径的方法和装置 | |
CN108011801A (zh) | 数据传输的方法、设备、装置及系统 | |
Wallace et al. | On-demand scheduling for concurrent multipath transfer under delay-based disparity | |
CN108183926A (zh) | 一种数据包处理方法和装置 | |
EP2761321A1 (en) | Determining the physical location of a client |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190917 |
|
RJ01 | Rejection of invention patent application after publication |