CN103281255B - 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 - Google Patents
一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 Download PDFInfo
- Publication number
- CN103281255B CN103281255B CN201310231476.1A CN201310231476A CN103281255B CN 103281255 B CN103281255 B CN 103281255B CN 201310231476 A CN201310231476 A CN 201310231476A CN 103281255 B CN103281255 B CN 103281255B
- Authority
- CN
- China
- Prior art keywords
- ecn
- rate
- handling capacity
- win
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法:首先在交换机上进行ECN标记,接收方根据收到的数据包中ECN标记位的状态决定它所发送的ACK是否应该设置ECN-echo位;发送方维护一个虚拟发送窗口win,计算吞吐量的变换率,并根据收到的ACK中ECN-echo位的状态和吞吐量的变换率动态调整虚拟发送窗口win;最后根据win计算新的发送速率。本发明综合考虑了数据中心网络和无线网络的特点,能够缓解有线数据中心网络的TCP Incast现象,同时避免由于无线丢包而导致的网络性能下降,因此,可用于有线数据中心网络和无线网络中。
Description
技术领域
本发明涉及一种基于吞吐量变化率和ECN(Explicit Congestion Notification,显式拥塞通知)机制的TCP友好速率控制方法,属于计算机网络和通信技术领域。
背景技术
传统的有线数据中心网络TCP拥塞控制算法使用网络中的丢包作为拥塞信号,当丢包发生时,算法会减小发送窗口,进而降低连接的数据包发送速度,从而避免网络发生拥塞。
随着数据中心规模的扩大,网络负载分布不均的现象越发严重,有线数据中心的布线问题也越来越复杂。为了解决这些问题,无线技术被引入到现有的有线数据中心网络。然而,无线网络因其介质的不可靠性,导致网络中存在大量的与拥塞无关的随机丢包。这些随机丢包也会引发算法降低传输速率,引起严重的性能问题。而现有方法中还没有一种可以同时处理有线数据中心网络TCP Incast现象和无线随机丢包而引发的性能下降问题。Icast现象在数据中心网络中很普遍,它是指多个发送方同时通过同一条瓶颈链路向同一个接收方发送数据包,发送方不能发送下一个请求数据块,除非所有发送方都完成了当前数据块的发送,进而导致网络吞吐量的严重下降。
在现有的TCP拥塞控制方法中,与本申请最为接近的技术方案为DCTCP方案。该技术在交换机上进行ECN控制,发送方根据收到标记ECN的ACK占上一窗口发送数据包总数的比例来调整发送窗口。DCTCP的一个重要缺陷是数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。而且当没有ECN标记时,如果出现丢包,DCTCP发送方就会将发送速率减半,而不去判别丢包是否真的由于拥塞导致的。因此,无法抵抗无线随机丢包问题。
TCP友好的速率控制算法(TCP Friendly Rate Control)简称为TFRC,其目的是控制非TCP的连接的数据包发送速度,使其数据包发送速度接近TCP连接,以保证当受TFRC控制的数据连接和TCP连接共同竞争一段网络瓶颈时,他们可以公平的分享数据连接。但传统的TFRC算法使用网络中的丢包作为拥塞信号,当丢包发生时TFRC算法会降低连接的数据包发送速度,从而避免网络发生拥塞。而丢包的发生说明此时的网络拥塞已经非常严重,因而该方法不能提早进行控制,防止拥塞的发生。所以并不适用于数据中心网络中。
现有的无线TCP拥塞控制方法主要有TCP Veno、TCP Westwood等。这些方法都采取了一定的手段来分辨丢包发生的原因:随机丢包或是拥塞丢包。但它们都是以丢包作为基础的,而如果丢包真的是由于拥塞导致的,则说明此时的网络拥塞已经非常严重。这些方法都不能提早进行控制,防止拥塞的发生。所以并不适用于数据中心网络中。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,综合考虑了数据中心网络和无线网络的特点,能够缓解有线数据中心网络的TCP Incast现象,同时避免由于无线丢包而导致的网络性能下降,用于避免数据中心网络中incast现象的发生。
本发明技术解决方案:一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,实现步骤为:首先在交换机上进行ECN标记,接收方根据收到的数据包中ECN标记位的状态决定它所发送的ACK是否应该设置ECN-echo位,即接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方维护一个虚拟发送窗口win,计算吞吐量的变换率,并根据收到的ACK中ECN-echo位的状态和吞吐量的变换率动态调整虚拟发送窗口win;最后根据win计算新的发送速率。
所述在交换机上进行ECN标记的具体方法为:当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位;否则,不设置。
所述发送方包括吞吐量变化率计算模块、ECN控制模块、丢包判定模块和发送速率控制模块;发送方维护一个虚拟的发送窗口win,当发送方收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif,具体过程如下:
expected=win/RTTmin
actual=win/RTT
dif=expected-actual
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN减小虚拟发送窗口,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α;丢包判定模块判断网络是否出现丢包以及丢包的原因;发送速率控制模块根据以上3个模块的结果动态设置虚拟发送窗口,进而调整发送速率。
所述发送速率控制模块根据以上3个模块的结果动态设置虚拟发送窗口,进而调整发送速率的具体过程如下:
如果ecn_flag=true,则根据α调整发送速率,设置虚拟发送窗口
否则,根据吞吐量变化率计算模块的结果动态调整发送速率;
具体过程分丢包和非丢包两种情况:
(1)丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值β,如果吞吐量的变换率dif大于β/RTTmin,则认为丢包是由于拥塞导致的,故将虚拟窗口win减半,即win=win×1/2。
否则,认为是无线随机丢包,保持虚拟窗口不变。
(2)非丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值γ,如果吞吐量的变换率dif小于γ,则认为当前网络状况很好,故设置虚拟窗口win=win+1。否则,认为当前网络有出现拥塞的迹象,减小虚拟窗口win,设置虚拟窗口
最后,根据虚拟发送窗口计算新的发送速率,即Rate_=win*alze_/RTT;
其中,size_是数据包的载荷长度。
本发明与现有技术相比的优点在于:
(1)本发明与现有拥塞控制方法的区别是本发明可以根据交换机缓冲区队列长度提前对发送速率进行调整,防止网络拥塞的发生。而且,本发明中每个连接维护一个虚拟发送窗口,根据ECN标记状态和吞吐量变化率来调整虚拟发送窗口的大小,进而调整发送速率。当没有ECN标记时,如果出现丢包,发送方会根据吞吐量的变换率来判断丢包发生的原因,进而调整发送速率,避免由于无线随机丢包而导致的严重的性能问题。同时数据包的发送是基于速率的,不存在发送窗口最小值的限制,进一步避免了incast现象的发生。
(2)DCTCP数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。而且当没有ECN标记时,如果出现丢包,DCTCP发送方就会将发送速率减半,而不去判别丢包是否真的由于拥塞导致的。因此,无法抵抗无线随机丢包问题。TFRC使用网络中的丢包作为拥塞信号,而丢包的发生说明此时的网络拥塞已经非常严重,因而不能提早进行控制,防止拥塞的发生,不适用于数据中心网络中。而无线TCP拥塞控制方法都不能对拥塞提前进行控制,无法应用于数据中心网络。本发明使用ECN机制提前对发送速率进行调整,防止拥塞的发生。而且,本发明中每个连接维护一个虚拟发送窗口,根据ECN标记状态和吞吐量变化率来调整虚拟发送窗口的大小,进而调整发送速率。当没有ECN标记时,如果出现丢包,发送方会根据吞吐量的变换率来判断丢包发生的原因,进而调整发送速率,避免由于无线随机丢包而导致的严重的性能问题。同时数据包的发送是基于速率的,不存在发送窗口最小值的限制,进一步避免了incast现象的发生。
附图说明
图1为本发明的实现流程图;
图2为本发明中发送方结构示意图;
图3为本发明中发送方控制过程流程图;
图4为本发明与其它几种拥塞控制方法在incast场景下的性能比较;
图5a和图5b为本发明与DCTCP在无线环境下的性能比较,其中图5a为DCTCP在无线环境下的吞吐量性能,图5b是本发明在无线环境下的吞吐量性能。
具体实施方式
如图1所示,本发明实现步骤如下:
步骤一:交换机上进行ECN标记
当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位。否则,不设置。
步骤二:接收方设置ECN-echo
接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK。
步骤三:发送方动态调整发送速率
如图2所示,发送方主要包括吞吐量变化率计算模块、ECN控制模块、丢包判定模块和发送速率控制模块。具体控制过程如图3所示。发送方维护一个虚拟的发送窗口win。当发送方收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif,具体过程如下:
expected=win/RTTmin
actual=win/RTT
dif=expected-actual
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN减小虚拟发送窗口,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α。丢包判定模块判断网络是否出现丢包以及丢包的原因。发送速率控制模块根据以上3个模块的结果动态设置虚拟发送窗口,进而调整发送速率,具体过程如下:
如果ecn_flag=true,则根据α调整发送速率,设置虚拟发送窗口
否则,根据吞吐量变化率计算模块的结果动态调整发送速率。
具体过程分丢包和非丢包两种情况:丢包情况下窗口的调整和非丢包情况下窗口的调整。
(1)丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值β,如果吞吐量的变换率dif大于β/RTTmin,则认为丢包是由于拥塞导致的,故将虚拟窗口win减半,即win=win×1/2。
否则,认为是无线随机丢包,保持虚拟窗口不变。
(2)非丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值γ,如果吞吐量的变换率dif小于γ,则认为当前网络状况很好,故设置虚拟窗口win=win×1/2。否则,认为当前网络有出现拥塞的迹象,减小虚拟窗口win,设置虚拟窗口
最后,根据虚拟发送窗口计算新的发送速率,即Rate_=win*alze_/RTT。
其中,alze_是数据包的载荷长度。
本申请提案有何技术优点
图4为本发明与其它几种拥塞控制方法在incast场景下的性能比较。x轴表示发送方的数目,y轴表示吞吐量(单位为:Mbps)。在incast场景下,将本发明与DCTCP和Reno以及发送窗口恒定为1的TCP进行比较可以看到,DCTCP和Reno以及1窗口TCP随着发送端数目的增加,终会导致吞吐量的急剧下降,而本发明并没有出现吞吐量的下降。因此可以应用于数据中心网络中。
图5a,5b为本发明与DCTCP在无线环境下的性能比较。x轴表示时间(单位为秒),y轴表示吞吐量(单位为:Mbps);其中图5a为DCTCP在无线环境下的吞吐量性能,可以看到,随着无线丢包率的增加,DCTCP的吞吐量下降。图5b是本发明在无线环境下的吞吐量性能,可以看到,本发明达到稳定状态后,吞吐量几乎不受无线丢包率的影响。
总之,本发明采用基于吞吐量变化率和ECN机制的控制技术,并基于速率发送数据包。基于吞吐量变化率和ECN机制的控制技术可以在网络轻度拥塞时进行控制,在一定程度上避免数据中心的Incast现象,而且可以区分无线随机丢包和拥塞丢包,避免由于非拥塞丢包而导致的严重性能下降问题。基于速率发送数据包不存在发送窗口最小值的限制,进一步避免数据中心网络中Incast现象的出现。因此,本发明适用于有线数据中心和无线数据中心网络。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,其特征在于实现步骤为:首先在交换机上进行ECN标记,接收方根据收到的数据包中ECN标记位的状态决定它所发送的ACK是否应该设置ECN-echo位,即接收方查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方维护一个虚拟发送窗口win,计算吞吐量的变换率,并根据收到的ACK中ECN-echo位的状态和吞吐量的变换率动态调整虚拟发送窗口win;最后根据win计算新的发送速率;
根据虚拟发送窗口计算新的发送速率,即Rate_=win*size_/RTT;
其中,size_是数据包的载荷长度,RTT是往返时延。
2.根据权利要求1所述的一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,其特征在于:所述在交换机上进行ECN标记的具体方法为:当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位;否则,不设置。
3.根据权利要求1所述的一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,其特征在于:所述发送方包括吞吐量变化率计算模块、ECN控制模块、丢包判定模块和发送速率控制模块;发送方维护一个虚拟的发送窗口win,当发送方收到ACK后,首先由吞吐量变化率计算模块计算往返时延RTT、最小往返时延RTTmin、期望吞吐量expected和实际吞吐量actual,并计算吞吐量的变化率dif,具体过程如下:
expected=win/RTTmin
actual=win/RTT
dif=expected-actual
然后ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN减小虚拟发送窗口,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α;丢包判定模块判断网络是否出现丢包以及丢包的原因;发送速率控制模块根据以上3个模块的结果动态设置虚拟发送窗口,进而调整发送速率。
4.根据权利要求3所述的一种基于吞吐量变化率和ECN机制的TCP友好速率控制方法,其特征在于:所述发送速率控制模块根据所述吞吐量变化率计算模块、ECN控制模块、丢包判定模块的结果动态设置虚拟发送窗口,进而调整发送速率的具体过程如下:
如果ecn_flag=true,则根据α调整发送速率,设置虚拟发送窗口
否则,根据吞吐量变化率计算模块的结果动态调整发送速率;
具体过程分丢包和非丢包两种情况:
(1)丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值β,如果吞吐量的变换率dif大于β/RTTmin,则认为丢包是由于拥塞导致的,故将虚拟窗口win减半,即win=win×1/2;
否则,认为是无线随机丢包,保持虚拟窗口不变;
(2)非丢包情况下窗口的调整过程如下:
发送方保存一个预先设置好的门限值γ,如果吞吐量的变换率dif小于γ,则认为当前网络状况很好,故设置虚拟窗口win=win+1;否则,认为当前网络有出现拥塞的迹象,减小虚拟窗口win,设置虚拟窗口
最后,根据虚拟发送窗口计算新的发送速率,即Rate_=win*size_/RTT;
其中,size_是数据包的载荷长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310231476.1A CN103281255B (zh) | 2013-06-12 | 2013-06-12 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310231476.1A CN103281255B (zh) | 2013-06-12 | 2013-06-12 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103281255A CN103281255A (zh) | 2013-09-04 |
CN103281255B true CN103281255B (zh) | 2016-08-10 |
Family
ID=49063708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310231476.1A Active CN103281255B (zh) | 2013-06-12 | 2013-06-12 | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103281255B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105376172B (zh) * | 2014-08-29 | 2019-01-25 | 华平信息技术股份有限公司 | 一种控制网络拥塞的方法 |
CN104780117B (zh) * | 2015-03-26 | 2018-10-16 | 大唐移动通信设备有限公司 | 一种网络拥塞信息的获取方法和装置 |
WO2017132987A1 (zh) * | 2016-02-05 | 2017-08-10 | 中国科学院计算技术研究所 | 识别可靠传输协议的数据传输中的丢包类型的方法及*** |
CN106027412B (zh) * | 2016-05-30 | 2019-07-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN106357551B (zh) * | 2016-11-08 | 2019-05-10 | 中南大学 | 一种数据中心网络中对tcp友好且能快速收敛的调窗方法 |
CN106789701B (zh) * | 2016-12-30 | 2019-04-26 | 北京邮电大学 | 一种数据中心中自适应ecn标记方法及装置 |
CN107770082B (zh) * | 2017-10-19 | 2020-05-12 | 中南大学 | 数据中心网络中一种基于任务流量特性的传输控制方法 |
CN110620737B (zh) * | 2019-09-09 | 2022-09-02 | 中南大学 | 基于延迟的自适应拥塞控制方法 |
CN112491573B (zh) * | 2019-09-12 | 2023-07-18 | 华为技术有限公司 | 一种网络参数配置方法及装置 |
EP4020892A4 (en) | 2019-09-12 | 2022-10-19 | Huawei Technologies Co., Ltd. | METHOD AND DEVICE FOR NETWORK PARAMETER CONFIGURATION |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080239948A1 (en) * | 2007-03-28 | 2008-10-02 | Honeywell International, Inc. | Speculative congestion control system and cross-layer architecture for use in lossy computer networks |
-
2013
- 2013-06-12 CN CN201310231476.1A patent/CN103281255B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103281255A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103281255B (zh) | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 | |
CN103051554B (zh) | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 | |
CN103297346B (zh) | 一种基于ecn机制的tcp友好速率控制方法 | |
CN106059951B (zh) | 一种用于dcn中基于多级拥塞反馈的传输控制方法 | |
CN103051555A (zh) | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 | |
CN101964755B (zh) | 高带宽延时网络中基于带宽估计的显式拥塞控制方法 | |
CN102263697B (zh) | 一种聚合链路流量分担方法和装置 | |
CN101917472B (zh) | 一种多链路报文的重组方法、装置及设备 | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制*** | |
CN108881008A (zh) | 一种数据传输的方法、装置和*** | |
CN101115053A (zh) | 一种信誉流量控制方法 | |
CN102811176B (zh) | 一种数据流量控制方法和装置 | |
CN111585911B (zh) | 数据中心网络流量负载的均衡方法 | |
CN103973587A (zh) | 多路径网络拥塞控制方法及装置 | |
CN105635176A (zh) | 一种基于RapidIO的网络数据传输方法 | |
CN101286942B (zh) | 管理无限带宽通信链路的发送机、接收机和方法 | |
WO2019036132A1 (en) | ACKNOWLEDGMENT RECEIVING ACKNOWLEDGMENTS (ACK) IN A TRANSMISSION CONTROL PROTOCOL / INTERNET PROTOCOL (TCP / IP) COALESCENCE SYSTEM | |
CN103401778A (zh) | 基于接收端缓存溢出概率保障的多路径传输分组调度方法 | |
CN103841042A (zh) | 在高运行效率下传输数据的方法和装置 | |
CN103152278A (zh) | 拥塞确定方法、装置和网络设备 | |
CN106304188A (zh) | 一种am rlc对于重传数据的优化的接收处理方法 | |
US12028263B2 (en) | Telemetry and buffer-capacity based circuits for load-balanced fine-grained adaptive routing in high-performance system interconnect | |
CN103636157B (zh) | 一种ack信息的发送方法及装置 | |
CN104618083B (zh) | 一种多通道报文转发的方法 | |
CN110324255A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |