CN104702526B - 拥塞控制方法及装置 - Google Patents
拥塞控制方法及装置 Download PDFInfo
- Publication number
- CN104702526B CN104702526B CN201510114988.9A CN201510114988A CN104702526B CN 104702526 B CN104702526 B CN 104702526B CN 201510114988 A CN201510114988 A CN 201510114988A CN 104702526 B CN104702526 B CN 104702526B
- Authority
- CN
- China
- Prior art keywords
- rate
- congestion window
- threshold value
- change
- change threshold
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种拥塞控制方法及装置,其中方法包括:计算确认字符的变化率;以及根据所述确认字符的变化率,调整拥塞窗口。更特别的,如果确认字符的变化率大于k倍最小变化率阈值,且小于最大变化率阈值,则将当前拥塞窗口值减半,其中k为2~5之一。采用本发明实施例,能够提前进入拥塞避免状态,以防止因拥塞窗口过大引起的丢包和超时问题。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种拥塞控制方法及装置。
背景技术
对于网络可能出现的拥塞问题,数据中心网络的TCP(Transmission ControlProtocol,传输控制协议)NewReno协议和TCP Vegas协议都不能保证网络吞吐量,容易导致网络拥塞;而ICTCP(IncastCongestionControlTCP)算法虽然性能好,但是不能在多跳网络中正常运行。因此,现有技术需要改进。
发明内容
有鉴于此,本发明实施例提供了一种拥塞控制方法及装置,能够有效的避免网络拥塞并且能够在多跳网络中正常运行。
为了解决以上技术问题,本发明实施例提供了如下技术方案:
本发明实施例提供了一种拥塞控制方法,包括:
计算确认字符的变化率;以及
根据所述确认字符的变化率,调整拥塞窗口。
其中,所述计算确认字符的变化率包括:
根据式:计算所述确认字符的变化率,其中所述表示第i时段发送端收到的确认字符的个数。
其中,所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率小于最小变化率阈值,则更新所述最小变化率阈值,以及获得拥塞窗口期望值,并根据所述拥塞窗口期望值,更新当前拥塞窗口。
其中,所述根据所述拥塞窗口期望值,更新当前拥塞窗口,包括:
根据式:更新当前拥塞窗口,其中所述cwnd_i'是更新前的当前拥塞窗口,cwnd_i是更新后的当前拥塞窗口,cwnd_tar是所述拥塞窗口期望值。
其中,所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率大于最小变化率阈值,且小于k倍所述最小变化率阈值,则更新拥塞窗口期望值;其中k为大于1的整数,且k倍所述最小变化率阈值小于最大变化率阈值。
其中,所述更新拥塞窗口期望值,包括:
根据式:cwnd_tar=α×cwnd_i+(1-α)×cwnd_tar'更新拥塞窗口期望值,其中α为展平因子,cwnd_i是当前的拥塞窗口值,cwnd_tar'是更新前的拥塞窗口期望值,cwnd_tar是更新后的拥塞窗口期望值。
其中,所述k的值为2至5之一,所述α=7/8。
其中,所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率大于k倍最小变化率阈值,且小于最大变化率阈值,则将当前拥塞窗口值减半,所述k为大于1的整数。
其中,所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率大于最大变化率阈值,更新所述最大变化率阈值。
本发明实施例还提供了一种拥塞控制装置,包括:
计算模块,用于计算确认字符的变化率;以及
调整模块,用于根据所述确认字符的变化率,调整拥塞窗口。
本发明实施例的有益效果是:
本发明实施例,根据确认字符的变化率来调整拥塞窗口,因此能够提前进入拥塞避免状态,以防止因拥塞窗口过大引起的丢包和超时问题,并且能够在多跳网络中正常运行。
附图说明
图1是本发明的拥塞控制方法的实施例的流程示意图;
图2是本发明的拥塞控制方法的详细实施例的流程示意图;
图3是吞吐量随服务器数量的变化示意图;
图4是丢包率随服务器数量的变化示意图;
图5是本发明的拥塞控制装置的实施例的结构示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明实施例的拥塞控制方法的实施例的流程示意图,该方法可以用于发送端。其包括步骤:
步骤101、计算确认字符(即acknowledgement,可简称“ACK”)的变化率。以及
步骤102、根据步骤101计算的确认字符的变化率,调整拥塞窗口。
其中,步骤101中的计算确认字符的变化率可以采用如下式计算:
其中,表示第i时段发送端收到的确认字符的个数。
其中,步骤102中根据步骤101计算的确认字符的变化率,调整拥塞窗口的步骤主要包括:将步骤101计算的确认字符的变化率与阈值进行比较,并执行与比较结果相适应的操作。
此处,阈值包括:最小变化率阈值(即变化率阈值极小值)、k倍最小变化率阈值(即变化率阈值中间值)和最大变化阈值(即变化率阈值极大值),其中最小变化率阈值<k倍最小变化率阈值<最大变化阈值,其中k=2~5中任一。需要说明的是,阈值可以由本领域技术人员根据具体系统而预先设定。
具体的,当步骤101计算的确认字符的变化率小于最小变化率阈值时,更新该最小变化率阈值,具体的更新该最小变化率阈值可以包括:将该最小变化率阈值设置为当前的确认字符变化率或者1/ACKi rec(如果确认字符变化率为零时则更新为此值)。更进一步的,若有得到拥塞窗口期望值,则根据拥塞窗口期望值更新当前拥塞窗口(即更新当前拥塞窗口的值,此值可以表示该拥塞窗口的尺寸,即表示拥塞窗口的大小)。其中,当前拥塞窗口的更新方式可以采用式:
其中cwnd_i'是更新前的当前拥塞窗口,cwnd_i是更新后的当前拥塞窗口,cwnd_tar是拥塞窗口期望值。
具体的,当步骤101计算的确认字符的变化率大于最小变化率阈值,且小于k倍最小变化率阈值时,更新拥塞窗口期望值。其中,可根据下式:
cwnd_tar=α×cwnd_i+(1-α)×cwnd_tar'
更新拥塞窗口期望值。其中,α为展平因子,优选为α=7/8,cwnd_i是当前的拥塞窗口值(即第i时段的拥塞窗口值),cwnd_tar'是更新前的拥塞窗口期望值,cwnd_tar是更新后的拥塞窗口期望值。
具体的,当确认字符的变化率大于k倍最小变化率阈值且小于最大变化率阈值,则将当前拥塞窗口值减半。即:
具体的,当确认字符的变化率大于最大变化率阈值时,更新该最大变化率阈值,此处更新该最大变化率阈值可以包括:将最大变化率阈值设置为当前确认字符的变化率。
本发明实施例,根据确认字符的变化率来调整拥塞窗口,因此能够提前进入拥塞避免状态,以防止因拥塞窗口过大引起的丢包和超时问题。
如图2所示,是本发明实施例的拥塞控制方法的详细实施例的流程示意图。其包括:
步骤201、计算ACK变化率。
步骤202、判断是否小于diff_min(最小变化率阈值),若是执行步骤203,否则执行步骤204。
步骤203、更新diff_min并根据拥塞窗口期望值更新拥塞窗口。然后返回步骤201。
步骤204、判断是否小于k*diff_min,若是执行步骤205,否则执行步骤206。
步骤205、更新拥塞窗口期望值,然后返回步骤201。
步骤206、判断是否小于diff_max(最大变化率阈值),若是执行步骤207,否则执行步骤208。
步骤207、将拥塞窗口减半。然后返回步骤201。
步骤208、更新diff_max。然后返回步骤201
以下举一个仿真例说明本发明实施例。
如图3和4所示的仿真结果,随着服务器数量上升,TCP_newreno协议的性能大打折扣,因为发送端无法收到三个重复发回的ACK,造成超时,严重影响吞吐量。而TCP_Vegas协议由于不能准确测量每个RTT(round-trip time,往返时延)时间,出现了异常曲线。时间测量值的波动导致拥塞窗口的抖动,从而无法准确计算吞吐量。ICTCP对于拥塞控制有不错的表现,然而在多跳网络中不能恰当地调整接收窗口是其主要局限。TCP_ACR(ACK ChangeRate,ACR变化率)的性能好,表现在吞吐量稳定。这是因为它能估测当前拥塞窗口和最佳拥塞窗口的大小,并据此作出调整。总体吞吐量达到链路带宽的80%到90%。总体来说,采用TCP_ACR系统维持稳定状态比关注丢包和超时的指标更重要。另外,在服务器数量小的情况下,TCP_ACR的吞吐量比TCP_NewReno要小。这是因为TCP_ACR提前进入拥塞避免阶段,缩小窗口以维持低的丢包率。实际应用中,发送端的数量会在15到60之间,所以TCP_ACR是应对拥塞问题非常有效的方案。
另外,如图5所示,本发明实施例还提供了一种拥塞控制装置500,其包括:
计算模块501,用于计算确认字符的变化率。以及
调整模块502,用于根据计算模块501计算的确认字符的变化率,调整拥塞窗口。
其中,计算模块501计算确认字符的变化率,以及调整模块502调整拥塞窗口的具体实施细节参考前述方法实施例所述,在此不赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种拥塞控制方法,其特征在于,包括:
计算确认字符的变化率;以及
根据所述确认字符的变化率,调整拥塞窗口;
所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率小于最小变化率阈值,则更新所述最小变化率阈值,所述最小变化率阈值设置为当前的确认字符变化率或者其中,当确认字符变化率为零时将所述最小变化率阈值设置为所述表示第i时段发送端收到的确认字符的个数;以及根据拥塞窗口期望值,更新当前拥塞窗口;
如果所述确认字符的变化率大于最小变化率阈值,且小于k倍所述最小变化率阈值,则更新拥塞窗口期望值;且k倍所述最小变化率阈值小于最大变化率阈值;所述更新拥塞窗口期望值包括:根据式:cwnd_tar=α×cwnd_i+(1-α)×cwnd_tar'更新拥塞窗口期望值,其中α为展平因子,cwnd_i是当前的拥塞窗口值,cwnd_tar'是更新前的拥塞窗口期望值,cwnd_tar是更新后的拥塞窗口期望值;所述k的值为2至5之一的整数,所述α=7/8;
如果所述确认字符的变化率大于k倍最小变化率阈值,且小于最大变化率阈值,则将当前拥塞窗口值减半;
如果所述确认字符的变化率大于最大变化率阈值,更新所述最大变化率阈值。
2.如权利要求1所述的方法,其特征在于,所述计算确认字符的变化率包括:
根据式:计算所述确认字符的变化率。
3.如权利要求1所述的方法,其特征在于,所述根据拥塞窗口期望值,更新当前拥塞窗口,包括:
根据式:更新当前拥塞窗口,其中所述cwnd_i'是更新前的当前拥塞窗口,cwnd_i是更新后的当前拥塞窗口,cwnd_tar是所述拥塞窗口期望值。
4.一种拥塞控制装置,其特征在于,包括:
计算模块,用于计算确认字符的变化率;以及
调整模块,用于根据所述确认字符的变化率,调整拥塞窗口;
所述根据所述确认字符的变化率,调整拥塞窗口,包括:
如果所述确认字符的变化率小于最小变化率阈值,则更新所述最小变化率阈值,所述最小变化率阈值设置为当前的确认字符变化率或者其中,当确认字符变化率为零时将所述最小变化率阈值设置为 表示第i时段发送端收到的确认字符的个数;以及根据拥塞窗口期望值,更新当前拥塞窗口;
如果所述确认字符的变化率大于最小变化率阈值,且小于k倍所述最小变化率阈值,则更新拥塞窗口期望值;且k倍所述最小变化率阈值小于最大变化率阈值;所述更新拥塞窗口期望值包括:根据式:cwnd_tar=α×cwnd_i+(1-α)×cwnd_tar'更新拥塞窗口期望值,其中α为展平因子,cwnd_i是当前的拥塞窗口值,cwnd_tar'是更新前的拥塞窗口期望值,cwnd_tar是更新后的拥塞窗口期望值;所述k的值为2至5之一的整数,所述α=7/8;
如果所述确认字符的变化率大于k倍最小变化率阈值,且小于最大变化率阈值,则将当前拥塞窗口值减半;
如果所述确认字符的变化率大于最大变化率阈值,更新所述最大变化率阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510114988.9A CN104702526B (zh) | 2015-03-16 | 2015-03-16 | 拥塞控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510114988.9A CN104702526B (zh) | 2015-03-16 | 2015-03-16 | 拥塞控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702526A CN104702526A (zh) | 2015-06-10 |
CN104702526B true CN104702526B (zh) | 2018-11-02 |
Family
ID=53349304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510114988.9A Active CN104702526B (zh) | 2015-03-16 | 2015-03-16 | 拥塞控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702526B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686100A (zh) * | 2008-09-25 | 2010-03-31 | 华为技术有限公司 | 处理丢包的方法、传输质量控制方法、装置及系统 |
WO2012148214A2 (ko) * | 2011-04-29 | 2012-11-01 | 서강대학교 산학협력단 | 혼잡 윈도우 크기 조절 방법 및 그에 따른 tcp 시스템 |
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
-
2015
- 2015-03-16 CN CN201510114988.9A patent/CN104702526B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101686100A (zh) * | 2008-09-25 | 2010-03-31 | 华为技术有限公司 | 处理丢包的方法、传输质量控制方法、装置及系统 |
WO2012148214A2 (ko) * | 2011-04-29 | 2012-11-01 | 서강대학교 산학협력단 | 혼잡 윈도우 크기 조절 방법 및 그에 따른 tcp 시스템 |
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Non-Patent Citations (1)
Title |
---|
《数据中心网络中拥塞现象和不公平现象的分析和改进》;史尧;《中国优秀硕士学位论文全文数据库(电子期刊)》;20140415;第2-3章,第5章 * |
Also Published As
Publication number | Publication date |
---|---|
CN104702526A (zh) | 2015-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10326698B2 (en) | Kind of congestion improvement method based on the QUIC protocol | |
US8514715B2 (en) | Congestion window control based on queuing delay and packet loss | |
CN107800642A (zh) | 一种拥塞控制方法及装置 | |
CN106059950B (zh) | 一种基于scps-tp的自适应网络拥塞控制方法 | |
US10193779B2 (en) | Apparatus and method for controlling downlink throughput in communication system | |
US20210051102A1 (en) | Congestion Control Method and Apparatus, Device, and Storage Medium | |
US9473974B2 (en) | Enhancing AQM to combat wireless losses | |
CN107171969A (zh) | 一种数据传输方法、装置及系统 | |
CN107800638B (zh) | 一种拥塞控制方法及装置 | |
CN104320809A (zh) | 基于rtt的无线多跳网络拥塞控制方法及系统 | |
CN105471757B (zh) | 一种tcp拥塞控制方法及装置 | |
CN108075988A (zh) | 数据传输方法和装置 | |
Casoni et al. | Implementation and validation of TCP options and congestion control algorithms for ns-3 | |
US8670416B2 (en) | Segment size determination | |
CN109525458A (zh) | 数据传输方法、装置、介质及电子设备 | |
CN103152285B (zh) | 本端网元、对端网元以及发送窗口调整方法 | |
CN110730469B (zh) | 一种基于扩展卡尔曼无线网络带宽预测方法及其拥塞控制 | |
CN104378307B (zh) | 基于吞吐率和丢包控制cwnd的优化方法和系统 | |
CN106992937A (zh) | 基于garch时间序列算法的拥塞控制方法 | |
CN102694731A (zh) | 速率调整方法、装置和网络设备 | |
CN103763212A (zh) | 一种网络拥堵的调节方法 | |
CN105227484B (zh) | 一种面向卫星网络的数据传输控制方法 | |
WO2017192414A1 (en) | Adaptive gain reduction for background connections | |
CN109525447A (zh) | 一种调整网络传输带宽的方法、装置及电子设备 | |
CN104202257A (zh) | 一种基于带宽估计的卫星网络拥塞控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |