CN103051554B - 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 - Google Patents
基于吞吐量变化率和ecn机制的tcp拥塞控制方法 Download PDFInfo
- Publication number
- CN103051554B CN103051554B CN201310002460.3A CN201310002460A CN103051554B CN 103051554 B CN103051554 B CN 103051554B CN 201310002460 A CN201310002460 A CN 201310002460A CN 103051554 B CN103051554 B CN 103051554B
- Authority
- CN
- China
- Prior art keywords
- ecn
- throughput
- rate
- window
- 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
Abstract
本发明提供一种基于吞吐量变化率和ECN机制的TCP拥塞控制方法,该方法使用ECN机制防止拥塞的发生,在没有ECN标记时,如果出现丢包会根据吞吐量的变换率来判断丢包发生的原因,进而调整发送速率,而不是盲目减半,进而避免由于无线随机丢包而导致的严重的性能问题。同时,当没有丢包发生时,窗口的增长幅度也要根据吞吐量的变换率来调整,进一步防止拥塞的发生。本发明结合采用ECN技术和基于吞吐量变换率的控制方法,ECN可以在网络轻度拥塞时进行控制,避免有线数据中心的TCP Incast现象。基于吞吐量变换率的控制方法根据当前网络吞吐量的变换率对发送窗口进行调整,当出现丢包时可以判断丢包发生的原因,进而避免由于无线随机丢包而导致的发送窗口减半。
Description
技术领域
本发明涉及计算机网络以及通信技术领域,具体涉及基于吞吐量变化率和ECN机制的TCP拥塞控制方法。
背景技术
传统的有线数据中心网络TCP拥塞控制算法使用网络中的丢包作为拥塞信号,当丢包发生时,算法会降低连接的数据包发送速度,从而避免网络发生拥塞。
随着数据中心规模的扩大,网络负载分布不均的现象越发严重,有线数据中心的布线问题也越来越复杂。为了解决这些问题,无线技术被引入到现有的有线数据中心网络。然而,无线网络因其介质的不可靠性,导致网络中存在大量的与拥塞无关的随机丢包。这些随机丢包也会引发算法降低传输速率,引起严重的性能问题。而现有方法中还没有一种可以同时处理有线数据中心网络TCP Incast现象和无线随机丢包而引发的性能下降问题。
在现有的TCP拥塞控制方法中,与本申请最为接近的技术方案为DCTCP方案。该方案在交换机上进行ECN控制,发送方根据收到标记ECN的ACK占上一窗口发送数据包总数的比例来调整发送速率。DCTCP的一个重要缺陷是当没有ECN标记时,如果出现丢包发送方就会将发送速率减半,而不去判别丢包是否真的由于拥塞导致的。因此,无法抵抗无线随机丢包问题。
现有的无线TCP拥塞控制方法主要有TCP Veno、TCP Westwood等。这些方法都采取了一定的手段来分辨丢包发生的原因:随机丢包或是拥塞丢包。但它们都是以丢包作为基础的,而如果丢包真的是由于拥塞导致的,则说明此时的网络拥塞已经非常严重。这些方法都不能提早进行控制,防止拥塞的发生。所以并不适用于数据中心网络中。
本发明与现有拥塞控制方法的区别是本发明可以根据交换机缓冲区队列长度提前对发送速率进行调整,防止网络拥塞的发生。当没有ECN标记时,如果出现丢包,发送方会根据吞吐量的变换率来判断丢包发生的原因,进而调整发送速率,而不是盲目减半,进而避免由于无线随机丢包而导致的严重的性能问题。同时,当没有丢包发生时,窗口的增长幅度也要根据吞吐量的变换率来调整。
发明内容
针对现有技术的缺点,本申请提案要解决的技术问题为:DCTCP当没有ECN标记时,如果出现丢包就会将发送速率减半,因此,无法抵抗无线随机丢包问题。而无线TCP拥塞控制方法都不能对拥塞提前进行控制,无法应用于数据中心网络。本发明使用ECN机制防止拥塞的发生,在没有ECN标记时,如果出现丢包会根据吞吐量的变换率来判断丢包发生的原因,进而调整发送速率,而不是盲目减半,进而避免由于无线随机丢包而导致的严重的性能问题。同时,当没有丢包发生时,窗口的增长幅度也要根据吞吐量的变换率来调整,进一步防止拥塞的发生。
本发明采用的技术方案为:一种基于吞吐量变化率和ECN机制的TCP拥塞控制方法,该方法包括有下列处理步骤:
步骤一:交换机上进行ECN标记
当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位,否则,不设置;
步骤二:接收方设置ECN-echo
接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;
步骤三:发送方动态调整发送窗口
当发送端收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif;
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN调整发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α,并根据α调整发送窗口。否则,根据吞吐量的变化率动态调整发送窗口。
本发明的优点在于结合采用ECN技术和基于吞吐量变换率的控制方法。ECN可以在网络轻度拥塞时进行控制,避免有线数据中心的TCP Incast现象。基于吞吐量变换率的控制方法根据当前网络吞吐量的变换率对发送窗口进行调整,当出现丢包时可以判断丢包发生的原因,进而避免由于无线随机丢包而导致的发送窗口减半。而且,当没有丢包发生时,窗口的增长幅度也根据吞吐量的变换率调整,进一步避免了拥塞的发生。因此,本发明可以用于有线数据中心网络和无线网络中。
附图说明
图1是系统发送端结构;
图2是该发明发送端控制过程流程图。
具体实施方式
下面结合附图以及具体实施例进一步说明本发明。
本发明的目的是提出一种基于吞吐量变化率和ECN机制的TCP拥塞控制方法,可以同时用于有线数据中心网络和无线网络中。该方法在交换机上进行ECN标记,接收方根据收到的数据包中ECN标记位的状态决定它所发送的ACK是否应该设置ECN-echo位。发送方计算吞吐量的变换率,并根据收到的ACK中ECN-echo位的状态动态调整发送窗口。本发明综合考虑了数据中心网络和无线网络的特点,能够缓解有线数据中心网络的TCP Incast现象,同时避免由于无线丢包而导致的网络性能下降。
本发明是一种基于吞吐量变化率和ECN机制的TCP拥塞控制方法,该方法包括有下列处理步骤:
步骤一:交换机上进行ECN标记
当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位。否则,不设置。
步骤二:接收方设置ECN-echo
接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK。
步骤三:发送方动态调整发送窗口
如图1所示,发送端主要包括吞吐量变化率计算模块、ECN控制模块、丢包判定模块和发送速率控制模块。当发送端收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif。具体过程如下:
expected=cwnd/RTTmin
actual=cwnd/RTT
dif=expected-actual
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN调整发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α。丢包判定模块判断网络是否出现丢包。发送速率控制模块根据以上3个模块的结果动态设置拥塞窗口。具体过程如下:
如果ecn_flag=true,则根据α调整发送速率,设置拥塞窗口否则,根据吞吐量变化率计算模块的结果动态调整发送速率。具体过程分丢包和非丢包两种情况。
丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值β,如果吞吐量的变换率dif大于β/·RTTmin则认为丢包是由于拥塞导致的,故将拥塞窗口cwnd减半,即cwnd=cwnd×1/2。否则,认为是无线随机丢包,设置拥塞窗口cwnd=cwnd×4/5。
非丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值γ,如果吞吐量的变换率dif小于γ,则认为当前网络状况很好,故设置拥塞窗口cwnd=cwnd+1/cwnd。否则,认为当前网络有出现拥塞的迹象,减小拥塞窗口增长的幅度,设置拥塞窗口
本发明未详细阐述的部分属于本领域公知技术。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (1)
1.一种基于吞吐量变化率和ECN机制的TCP拥塞控制方法,其特征在于,该方法包括有下列处理步骤:
步骤一:交换机上进行ECN标记
当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位,否则,不设置;
步骤二:接收方设置ECN-echo
接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;
步骤三:发送方动态调整发送窗口
当发送端收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif;
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN调整发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α,并根据α调整发送窗口,否则,根据吞吐量的变化率动态调整发送窗口;
其中,根据吞吐量的变化率动态调整发送窗口的过程分丢包和非丢包两种情况;
丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值β,如果吞吐量的变换率dif大于β/RTTmin,则认为丢包是由于拥塞导致的,故将拥塞窗口cwnd减半,即cwnd=cwnd×1/2,否则,认为是无线随机丢包,设置拥塞窗口cwnd=cwnd×4/5;
非丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值γ,如果吞吐量的变换率dif小于γ,则认为当前网络状况很好,故设置拥塞窗口cwnd=cwnd+1/cwnd,否则,认为当前网络有出现拥塞的迹象,减小拥塞窗口增长的幅度,设置拥塞窗口
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310002460.3A CN103051554B (zh) | 2013-01-05 | 2013-01-05 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310002460.3A CN103051554B (zh) | 2013-01-05 | 2013-01-05 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103051554A CN103051554A (zh) | 2013-04-17 |
CN103051554B true CN103051554B (zh) | 2015-09-16 |
Family
ID=48064059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310002460.3A Active CN103051554B (zh) | 2013-01-05 | 2013-01-05 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103051554B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281255B (zh) * | 2013-06-12 | 2016-08-10 | 北京航空航天大学 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
CN103297346B (zh) * | 2013-06-12 | 2017-05-10 | 北京航空航天大学 | 一种基于ecn机制的tcp友好速率控制方法 |
CN103457871B (zh) * | 2013-09-18 | 2016-03-30 | 中南大学 | Dcn中基于延迟约束的拥塞避免阶段的增窗方法 |
CN104980365A (zh) * | 2014-04-01 | 2015-10-14 | 广西大学 | 一种基于连续丢包拥塞判断的tcp传输加速方法 |
CN104301239B (zh) * | 2014-10-23 | 2017-06-16 | 西安电子科技大学 | 基于lqg的车辆自组织网络拥塞控制方法 |
CN104378307B (zh) * | 2014-10-27 | 2017-11-21 | 北京华夏创新科技有限公司 | 基于吞吐率和丢包控制cwnd的优化方法和系统 |
CN104702526B (zh) * | 2015-03-16 | 2018-11-02 | 哈尔滨工业大学深圳研究生院 | 拥塞控制方法及装置 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
CN106330752B (zh) * | 2015-06-26 | 2020-11-03 | 华为技术有限公司 | Tcp流量控制中接收窗口的确定方法和设备 |
CN105049369A (zh) * | 2015-08-14 | 2015-11-11 | 浙江大学 | 异构无线网络中基于mptcp的视频传输拥塞控制方法 |
CN106027412B (zh) * | 2016-05-30 | 2019-07-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN106789719B (zh) * | 2016-12-15 | 2019-06-04 | 中国科学院沈阳自动化研究所 | 一种面向工业无线Mesh网络的拥塞控制方法及装置 |
CN108259383B (zh) * | 2016-12-29 | 2021-10-01 | 北京华为数字技术有限公司 | 一种数据的传输方法和网络设备 |
CN107770082B (zh) * | 2017-10-19 | 2020-05-12 | 中南大学 | 数据中心网络中一种基于任务流量特性的传输控制方法 |
CN108833293B (zh) * | 2018-06-20 | 2021-01-26 | 北京邮电大学 | 一种基于软件定义网络sdn的数据中心拥塞控制方法及装置 |
CN109167735B (zh) * | 2018-11-12 | 2021-04-06 | 四川长虹电器股份有限公司 | 一种基于nginx请求转发的Web防火墙拥塞控制方法 |
CN112737971B (zh) * | 2019-10-28 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及网络设备 |
CN110868359B (zh) * | 2019-11-15 | 2023-03-24 | 中国人民解放军国防科技大学 | 一种网络拥塞控制方法 |
CN112492646B (zh) * | 2020-11-27 | 2022-04-08 | 清华大学 | 基于拥塞成因识别的拥塞控制方法及装置 |
CN114157399B (zh) * | 2021-06-16 | 2023-07-14 | 北京天德科技有限公司 | 一种tcp反馈包ack包的优化方法、装置以及系统 |
CN114339829B (zh) * | 2021-12-10 | 2024-04-19 | 清华大学 | 一种基于丢包类型识别的吞吐补偿方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964755A (zh) * | 2010-11-03 | 2011-02-02 | 中南大学 | 高带宽延时网络中基于带宽估计的显式拥塞控制方法 |
CN102083133A (zh) * | 2011-01-25 | 2011-06-01 | 大连大学 | 基于Vegas算法改进的一种卫星网络拥塞控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100411447B1 (ko) * | 2001-12-26 | 2003-12-18 | 엘지전자 주식회사 | 티씨피 혼잡 제어 방법 |
-
2013
- 2013-01-05 CN CN201310002460.3A patent/CN103051554B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101964755A (zh) * | 2010-11-03 | 2011-02-02 | 中南大学 | 高带宽延时网络中基于带宽估计的显式拥塞控制方法 |
CN102083133A (zh) * | 2011-01-25 | 2011-06-01 | 大连大学 | 基于Vegas算法改进的一种卫星网络拥塞控制方法 |
Non-Patent Citations (1)
Title |
---|
《Data Center TCP(DCTCP)》;Mohammad Alizadeh, et al.;《SIGCOMM’10》;20100903;第1页左栏第1行至第2页左栏第40行,第5页左栏第20行至第6页左栏第20行 * |
Also Published As
Publication number | Publication date |
---|---|
CN103051554A (zh) | 2013-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103051554B (zh) | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 | |
CN103051555A (zh) | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 | |
CN103281255B (zh) | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 | |
CN105049369A (zh) | 异构无线网络中基于mptcp的视频传输拥塞控制方法 | |
CN102449600A (zh) | 用于i/o受驱速率自适应的方法和系统 | |
CN103297346B (zh) | 一种基于ecn机制的tcp友好速率控制方法 | |
CN103905328A (zh) | 一种数据传输控制系统、方法及相关装置 | |
CN106059951A (zh) | 一种用于dcn中基于多级拥塞反馈的传输控制方法 | |
US20090022055A1 (en) | Systems and methods for improving tcp-friendliness of delay-based congestion control | |
CN106789702B (zh) | 控制tcp传输性能的方法及装置 | |
CN104320809A (zh) | 基于rtt的无线多跳网络拥塞控制方法及系统 | |
CN105376172B (zh) | 一种控制网络拥塞的方法 | |
CN105227484B (zh) | 一种面向卫星网络的数据传输控制方法 | |
CN105471757A (zh) | 一种tcp拥塞控制方法及装置 | |
CN104202257A (zh) | 一种基于带宽估计的卫星网络拥塞控制方法 | |
CN103152278A (zh) | 拥塞确定方法、装置和网络设备 | |
Lee et al. | Reviving delay-based TCP for data centers | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
CN107770082B (zh) | 数据中心网络中一种基于任务流量特性的传输控制方法 | |
US9357481B2 (en) | Control method for adaptive modulation circuit and wireless transmission device provided with adaptive modulation circuit | |
US7855954B2 (en) | Speculative credit data flow control | |
CN100481758C (zh) | Tcp传送控制中的数据包传送率决定方法 | |
CN107888508B (zh) | 一种基于pc-nc的数控系统及其抗干扰弱实时通讯方法 | |
An et al. | An adaptive UDT congestion control method with reflecting of the network status | |
CN105049956A (zh) | 一种提高dash视频传输效率的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |