CN103297346A - 一种基于ecn机制的tcp友好速率控制方法 - Google Patents
一种基于ecn机制的tcp友好速率控制方法 Download PDFInfo
- Publication number
- CN103297346A CN103297346A CN201310231462XA CN201310231462A CN103297346A CN 103297346 A CN103297346 A CN 103297346A CN 201310231462X A CN201310231462X A CN 201310231462XA CN 201310231462 A CN201310231462 A CN 201310231462A CN 103297346 A CN103297346 A CN 103297346A
- Authority
- CN
- China
- Prior art keywords
- ecn
- rate
- transmission rate
- ack
- 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.)
- Granted
Links
Images
Abstract
一种基于ECN机制的TCP友好速率控制方法:首先在交换机上进行ECN标记,接收方计算丢包率和ECN标记率,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方动态调整发送速率,即发送方维护一个虚拟发送窗口win,并根据接收方返回的信息计算网络的往返时延R和发送方的期望发送速率Expect_rate,然后根据Expect_rate和当前发送速率Rate_的大小的比较来动态调整虚拟发送窗口win,最后根据win计算新的发送速率。
Description
技术领域
本发明涉及一种基于ECN(Explicit Congestion Notification,显式拥塞通知)机制的TCP友好速率控制方法,属于计算机网络和通信技术领域。
背景技术
数据中心网络中广泛使用的TCP拥塞控制算法将网络中的丢包作为拥塞信号,当丢包发生时,算法会减小发送窗口,进而降低连接的数据包发送速度,从而避免网络发生拥塞。
在现有的TCP拥塞控制方法中,与本申请最为接近的技术方案为DCTCP方案。该方案在交换机上进行ECN控制,发送方根据收到标记ECN的ACK占上一窗口发送数据包总数的比例来调整发送窗口。DCTCP的一个重要缺陷是数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。
TCP友好的速率控制算法(TCP Friendly Rate Control)简称为TFRC,其目的是控制非TCP的连接的数据包发送速度,使其数据包发送速度接近TCP连接,以保证当受TFRC控制的数据连接和TCP连接共同竞争一段网络瓶颈时,他们可以公平的分享数据连接。但传统的TFRC算法使用网络中的丢包作为拥塞信号,当丢包发生时TFRC算法会降低连接的数据包发送速度,从而避免网络发生拥塞。而丢包的发生说明此时的网络拥塞已经非常严重,因而该方法不能提早进行控制,防止拥塞的发生。所以并不适用于数据中心网络中。
DCTCP数据包的发送是基于窗口的,窗口为整数,最小为1。然而,通过实验表明,即使将发送窗口恒定设置为1,随着发送方数目的增加,网络还是会发生incast现象的。Icast现象在数据中心网络中很普遍,它是指多个发送方同时通过同一条瓶颈链路向同一个接收方发送数据包,发送方不能发送下一个请求数据块,除非所有发送方都完成了当前数据块的发送,进而导致网络吞吐量的严重下降。TFRC使用网络中的丢包作为拥塞信号,而丢包的发生说明此时的网络拥塞已经非常严重,因而不能提早进行控制,防止拥塞的发生,不适用于数据中心网络中。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于ECN机制的TCP友好速率控制方法,用于避免数据中心网络中incast现象的发生。
本发明技术解决方案:一种基于ECN机制的TCP友好速率控制方法,实现步骤如下:首先在交换机上进行ECN标记,接收方计算丢包率和ECN标记率,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方动态调整发送速率,即发送方维护一个虚拟发送窗口win,并根据接收方返回的信息计算网络的往返时延R和发送方的期望发送速率Expect_rate,然后根据Expect_rate和当前发送速率Rate_的大小的比较来动态调整虚拟发送窗口win,最后根据win计算新的发送速率。
所述在交换机上进行ECN标记的具体方法为:当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位;否则,不设置。
所述发送方包括RTT计算模块、ECN控制模块、期望发送速率计算模块和发送速率控制模块;发送方维护一个虚拟的发送窗口win,当发送端收到ACK后,首先由RTT计算模块计算当前网络的往返时延R,由ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN计算期望发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α;然后,期望发送速率计算模块根据RTT计算模块和ECN控制模块的输出信息计算期望发送速率Expect_rate,并将结果传给发送速率控制模块;最后,由发送速率控制模块计算实际的发送速率。
所述期望发送速率计算公式如下:
其中,R是网络的往返时延RTT,p是丢包率,g是ECN标记率,α是发送方收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例。
本发明与现有技术相比优点在于:本发明与现有拥塞控制方法的区别是本发明可以根据交换机缓冲区队列长度提前对发送速率进行调整,防止网络拥塞的发生。而且,本发明中数据包的发送是基于速率的,同时为了能与其他网络连接公平竞争网络带宽,本发明为每个连接维护一个虚拟发送窗口,根据期望发送速率与当前发送速率的比较来调整虚拟发送窗口的大小,进而调整发送速率。由于数据包的发送是基于速率的,因而,不存在发送窗口最小值的限制,进一步避免的incast现象的发生。
附图说明
图1为本发明的实现流程图;
图2为本发明中发送端结构示意图;
图3为本发明中发送端控制过程流程图;
图4为本发明与其它几种拥塞控制方法在incast场景下的性能比较。
具体实施方式
如图1所示,本发明实现步骤如下:
步骤一:交换机上进行ECN标记
当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位。否则,不设置。
步骤二:接收方设置ECN-echo
接收方收到的数据包后,计算丢包率p和ECN标记率g,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK。
步骤三:发送方动态调整发送速率
如图2所示,发送方主要包括RTT计算模块、ECN控制模块、期望发送速率计算模块和发送速率控制模块。具体控制过程如图3所示。发送方维护一个虚拟的发送窗口win。当发送端收到ACK后,首先由RTT计算模块计算当前网络的往返时延R,由ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN计算期望发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α。然后,期望发送速率计算模块根据RTT计算模块和ECN控制模块的输出信息计算期望发送速率Expect_rate,并将结果传给发送速率控制模块。
传统TFRC的发送速率计算公式为:
该公式并没有考虑ECN标记的情况。本发明提出当发送方收到的ACK不带有ECN标记时,按照公式(1)计算期望发送速率,否则,计算公式如下:
综上,本发明的期望发送速率计算公式为:
其中,R是网络的往返时延RTT,p是丢包率,g是ECN标记率,α是发送方收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例。
期望发送速率的计算具体过程如下:
如果ecn_flag=true,则根据公式(2)计算期望发送速率。
否则,根据公式(1)计算期望发送速率。
最后,由发送速率控制模块计算实际的发送速率Rate_。具体过程如下:
如果Expect_rate>Rate_,则设置虚拟发送窗口win=win+1,Rate_=win×alze_/R。
其中,R是网络的往返时延RTT,size_是数据包的载荷长度。
如图4所示,在incast场景下,将本发明与DCTCP和Reno以及发送窗口恒定为1的TCP进行比较。x轴表示发送方的数目,y轴表示吞吐量(单位为:Mbps)。可以看到,DCTCP和Reno以及1窗口TCP随着发送端数目的增加,终会导致吞吐量的急剧下降,而本发明并没有出现吞吐量的下降,即本发明并没有像其他方法一样出现吞吐量的骤降。因此,本发明可以防止数据中心网络中的incast现象,可以应用于数据中心网络中。
总之,本发明采用ECN技术,并基于速率发送数据包。ECN可以在网络轻度拥塞时进行控制,在一定程度上避免数据中心的Incast现象。而且,基于速率发送数据包不存在发送窗口最小值的限制,进一步避免数据中心网络中Incast现象的出现。因此,本发明适用于数据中心网络。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种基于ECN机制的TCP友好速率控制方法,其特征在于实现步骤如下:首先在交换机上进行ECN标记,接收方计算丢包率和ECN标记率,通过ACK返回给发送方,并查看收到的数据包是否设置了ECN标记,如果是,则在它所发送的ACK中设置ECN-echo位,否则,返回没有设置ECN-echo位的ACK;发送方动态调整发送速率,即发送方维护一个虚拟发送窗口win,并根据接收方返回的信息计算网络的往返时延R和发送方的期望发送速率Expect_rate,然后根据Expect_rate和当前发送速率Rate_的大小的比较来动态调整虚拟发送窗口win,最后根据win计算新的发送速率。
2.根据权利要求1所述的基于ECN机制的TCP友好速率控制方法,其特征在:所述在交换机上进行ECN标记的具体方法为:当交换机收到数据包时,首先判断当前缓冲区的队列长度,如果超过某一个门限值,则为该数据包设置ECN标记位;否则,不设置。
3.根据权利要求1所述的基于ECN机制的TCP友好速率控制方法,其特征在:所述发送方包括RTT计算模块、ECN控制模块、期望发送速率计算模块和发送速率控制模块;发送方维护一个虚拟的发送窗口win,当发送端收到ACK后,首先由RTT计算模块计算当前网络的往返时延R,由ECN控制模块查看该ACK是否设置了ECN-echo位,如果是,则设置ecn_flag表示需要根据ECN计算期望发送速率,并计算它收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例α;然后,期望发送速率计算模块根据RTT计算模块和ECN控制模块的输出信息计算期望发送速率Expect_rate,并将结果传给发送速率控制模块;最后,由发送速率控制模块计算实际的发送速率。
4.根据权利要求3所述的基于ECN机制的TCP友好速率控制方法,其特征在于:所述期望发送速率计算公式如下:
其中,R是网络的往返时延RTT,p是丢包率,g是ECN标记率,α是发送方收到的带有ECN-echo标记的ACK占上一发送窗口所发送数据包总数的比例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310231462.XA CN103297346B (zh) | 2013-06-12 | 2013-06-12 | 一种基于ecn机制的tcp友好速率控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310231462.XA CN103297346B (zh) | 2013-06-12 | 2013-06-12 | 一种基于ecn机制的tcp友好速率控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103297346A true CN103297346A (zh) | 2013-09-11 |
CN103297346B CN103297346B (zh) | 2017-05-10 |
Family
ID=49097686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310231462.XA Active CN103297346B (zh) | 2013-06-12 | 2013-06-12 | 一种基于ecn机制的tcp友好速率控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103297346B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734985A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 数据接收流量控制方法及其系统 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
CN105099929A (zh) * | 2014-04-18 | 2015-11-25 | 海尔集团公司 | 网络控制方法、装置及相应设备 |
WO2019210725A1 (zh) * | 2018-05-04 | 2019-11-07 | 华为技术有限公司 | 拥塞控制方法、装置、设备及存储介质 |
CN112532535A (zh) * | 2019-09-17 | 2021-03-19 | 华为技术有限公司 | 一种用于优化网络拥塞的方法和装置 |
CN116016370A (zh) * | 2022-12-27 | 2023-04-25 | 北京铭海博纳科技发展有限公司 | 一种丢包率优化方法、系统、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051555A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 |
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
-
2013
- 2013-06-12 CN CN201310231462.XA patent/CN103297346B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051555A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 |
CN103051554A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 |
Non-Patent Citations (2)
Title |
---|
MOHAMMAD ALIZADEH: "Data Center TCP(DCTCP)", 《SIGCOMM’10》 * |
许凡,曾致远: "基于TCP友好速率控制和前向纠错的MPEG-2视频传输", 《微计算机应用》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734985A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 数据接收流量控制方法及其系统 |
CN105099929A (zh) * | 2014-04-18 | 2015-11-25 | 海尔集团公司 | 网络控制方法、装置及相应设备 |
CN105099929B (zh) * | 2014-04-18 | 2018-11-27 | 海尔集团公司 | 网络控制方法、装置及相应设备 |
CN105024946A (zh) * | 2015-06-16 | 2015-11-04 | 清华大学 | 一种基于滑动窗口的带宽分配方法、装置和系统 |
WO2019210725A1 (zh) * | 2018-05-04 | 2019-11-07 | 华为技术有限公司 | 拥塞控制方法、装置、设备及存储介质 |
US11838208B2 (en) | 2018-05-04 | 2023-12-05 | Huawei Technologies Co., Ltd. | Congestion control method and apparatus, device, and storage medium |
CN112532535A (zh) * | 2019-09-17 | 2021-03-19 | 华为技术有限公司 | 一种用于优化网络拥塞的方法和装置 |
CN116016370A (zh) * | 2022-12-27 | 2023-04-25 | 北京铭海博纳科技发展有限公司 | 一种丢包率优化方法、系统、电子设备及可读存储介质 |
CN116016370B (zh) * | 2022-12-27 | 2024-01-30 | 北京铭海博纳科技发展有限公司 | 一种丢包率优化方法、系统、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103297346B (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103051554B (zh) | 基于吞吐量变化率和ecn机制的tcp拥塞控制方法 | |
CN103297346A (zh) | 一种基于ecn机制的tcp友好速率控制方法 | |
CN103051555A (zh) | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 | |
CN106059951B (zh) | 一种用于dcn中基于多级拥塞反馈的传输控制方法 | |
CN103281255B (zh) | 一种基于吞吐量变化率和ecn机制的tcp友好速率控制方法 | |
CN103166974B (zh) | 一种基于tcp/udp混合协议的流媒体无线传输方法 | |
CN101964755B (zh) | 高带宽延时网络中基于带宽估计的显式拥塞控制方法 | |
TWI487389B (zh) | 避免網路壅塞的方法及其裝置 | |
CN103457871B (zh) | Dcn中基于延迟约束的拥塞避免阶段的增窗方法 | |
CN102404077B (zh) | 基于喷泉码的多径传输控制方法 | |
CN109194450B (zh) | 天地一体化网络通信的snack-p应答系统及方法、无线通信系统 | |
CN103067791A (zh) | 一种网络动态适应监控视频传输方法 | |
GB201121508D0 (en) | Network traffic accelerator | |
CN101854297B (zh) | 一种卫星网络中传输控制协议跨层的设计方法 | |
CN105024946A (zh) | 一种基于滑动窗口的带宽分配方法、装置和系统 | |
US20090022055A1 (en) | Systems and methods for improving tcp-friendliness of delay-based congestion control | |
CN101146032A (zh) | 一种媒体流传输带宽自适应的方法 | |
CN102946361A (zh) | 基于交换机缓存分配的流量控制方法及系统 | |
CN105227484B (zh) | 一种面向卫星网络的数据传输控制方法 | |
CN103152278B (zh) | 拥塞确定方法、装置和网络设备 | |
CN107395325A (zh) | 一种服务于战术级通信网的自适应估计传输方法 | |
CN104796235B (zh) | 基于丢包率的卫星通信自适应拥塞控制方法 | |
CN104135486A (zh) | 一种基于tcp协议的流媒体无线自适应传输方法 | |
CN104980365A (zh) | 一种基于连续丢包拥塞判断的tcp传输加速方法 | |
CN107770082B (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 |