一种用于dcn中基于多级拥塞反馈的传输控制方法

文档序号:10690998阅读:250来源:国知局
一种用于dcn中基于多级拥塞反馈的传输控制方法
【专利摘要】本发明公开了一种用于DCN中基于多级拥塞反馈的传输控制方法,设置交换机缓存队列长度阈值:包括第一级队列标记门限Threshold1和第二级队列标记门限Threshold2;当多个发送方并发地发送数据时,传输路径上的各交换机监控当前队列长度;将当前队列长度与第一级队列标记门限Threshold1和第二级队列标记门限Threshold2比较,反馈当前网络拥塞状态;依据第一级拥塞反馈缓解慢启动的增窗速率;依据第二级拥塞反馈及时退出慢启动阶段并进入拥塞避免阶段。本发明能有效避免DCN网络并发传输中由于慢启动阶段发送窗口增加速度过快导致的吞吐率崩溃现象,大幅提升网络吞吐率,提升网络应用的整体性能。
【专利说明】
一种用于DCN中基于多级拥塞反馈的传输控制方法
技术领域
[0001 ] 本发明设id 种用于DCN(数据中心网络,Data CenterNetwork)中基于多级拥塞反馈的传输控制方法。
【背景技术】
[0002]近年来,随着在线搜索、社交网络、电子商务等网络应用的飞速发展和普及,越来越多的在线应用系统被迀移到数据中心中,利用大规模的计算和存储资源来为用户提供各种网络服务。在巨大的用户访问量面前,作为下一代互联网的计算和存储核心,数据中心的承载能力和服务性能受到了严峻的挑战。
[0003]由于数据中心网络具有超高带宽、超低时延的特性,这与传统的广域网有着很大的差别,所以传统的TCP在数据中心网络中的应用效果很差。在数据中心网络中高并发的同步并发流极易造成某些路径瞬时成为瓶颈,引起网络拥塞,出现数据丢包并最终导致TCP流超时。而且数据中心网络中传输流大部分是延时敏感的小数据流(90%小于100KB),而这些流很可能在慢启动阶段就完成传输。TCP流慢启动阶段的发送窗口快速增长而导致的超时拖尾,传统TCP协议的超时时间(默认最小200ms)与数据中心网络往返传输时延(90 %小于Ims)等不匹配因素,导致出现吞吐率崩溃现象,出现TCP Incast现象,极大的降低了数据中心网络的通信能力。
[0004]随着互联网应用变得高度多样化和复杂化,为了解决传统控制传输协议的不足,缓解数据中心网络中的TCP Incast现象,国内外许多学者在提高TCP对网络数据拥塞控制的发现和控制能力方面做了大量的改进性研究,寻求一些稳定的方法让数量动态变化的网络用户能公平的共享有限的网络带宽资源。
[0005]ICTCP(Incast Congest1n Control TCP)主要关注避免高并发引起的链路吞吐率崩溃所产生的丢包情况,ICTCP只修改接收方。将时间以2RTT (往返时间)为间隔分成时间槽,在第一个RTT进行可用带宽的评估,在第二个RTT根据可用带宽评估结果计算调整配额来对接收窗口进行调整。但是,RTT计算的准确性直接影响ICTCP的性能。
[0006]DCTCP(Data Center TCP)协议就是针对高带宽、高扇入应用的数据中心网络提出的替换传统TCP协议的改进传输协议。其利用显式拥塞通知(Expl icit Congest1nNotificat1n,ECN)来判断拥塞状态。DCTCP第一次全面讨论尾部延迟,在不更换低缓存的商业交换机的前提下,实现DCN(数据中心网络)的高突发容限、低延迟、高吞吐率。但是,DCTCP协议当并发度较小时,交换机缓存依然会出现部分流拥塞丢包出现超时。而且DCTCP流在极小发送窗口下,更容易发生整个发送窗口的包丢失而导致RTO(超时重传时间)超时。
[0007]D2TCP协议在DCTCP的基础上,利用伽马修正函数,对DCTCP的降窗方式进行改进,并在改进的过程中考虑每条数据流的延迟约束要求来进行合理的降窗。D2TCP不仅提高了在延迟约束内完成的数据流的数量,还能很好的和传统TCP共存,但由于延迟约束的敏感程度不足,所以性能还有很大的提升空间。
[0008]因此,为了避免并发传输中慢启动阶段增窗过快而造成吞吐率崩溃问题,让数据中心网络应用能够有效利用可用带宽,成为了一个亟待解决的问题。

【发明内容】

[0009]本发明所要解决的技术问题是提供一种用于DCN中基于多级拥塞反馈的传输控制方法,该方法能有效缓解数据中心网络中数据流在慢启动内由于增窗过快而出现拖尾超时,从而避免产生吞吐率崩溃的现象,大幅提升网络吞吐率,提升网络应用的整体性能。
[0010]发明的技术解决方案如下:
[0011 ] 一种用于DCN中基于多级拥塞反馈的传输控制方法,
[0012]设置交换机缓存队列长度阈值:包括第一级队列标记门限Thresholdl和第二级队列标记门限Threshold〗;
[0013]当多个发送方并发地发送数据时,传输路径上的各交换机监控当前队列长度;将当前队列长度与第一级队列标记门限Thresholdl和第二级队列标记门限Threshold2比较,反馈当前网络拥塞状态;
[0014]依据当前队列长度与第一级队列标记门限Thresholdl的比较结果,即第一级拥塞反馈缓解慢启动的增窗速率;
[0015]依据当前队列长度与第二级队列标记门限Threshold〗的比较结果,即第二级拥塞反馈及时退出慢启动阶段并进入拥塞避免阶段。
[0016]上述用于DCN中基于多级拥塞反馈的传输控制方法,具体包括以下步骤:
[0017]步骤一:初始化:设置发送方发送窗口cwnd大小的初始值、设置机监控当前队列长度阈值:包括第一级队列标记门限Thre sho I d I和第二级队列标记门限Thr e sho I d2、设置数据包第一级拥塞标志位ECT和第二级拥塞标志位CE的初始值、设置发送方慢启动标志位ST的初始值为0;
[0018]步骤二:传输路径上的各交换机监控当前队列长度,当当前队列长度超过第一级队列标记门限Thresholdl时,立即将当前队列中的数据包的第一级拥塞标志位ECT置为I;当当前队列长度超过第二级队列标记门限Threshold2时,则将当前队列中的数据包的第二级拥塞标志位CE置为I;当数据包到达接收方后,接收方对数据包的确认包ACK打上对应的拥塞标志,并将确认包ACK发送给发送方;
[0019]发送方收到当前发送窗口内的全部确认包ACK之后,依据全部确认包ACK中第一级拥塞标志位ECT和第二级拥塞标志位CE被置为I的数量计算第一级和第二级拥塞程度α和β;
[0020]步骤三:发送方依据其慢启动标志位ST【ST是发送端的一个标志位】判断是否继续处于慢启动阶段,如果ST为0,则继续处于慢启动阶段并转步骤四,否则退出慢启动阶段,进入拥塞避免阶段,并转步骤六;
[0021]步骤四:判断当前发送窗口内的所有确认包ACK的第一级拥塞标志位ECT是否都为O,如果是,则将发送窗口 cwnd更新为2 X cwnd,并转入步骤八;否则,转步骤五;
[0022]步骤五:判断当前发送窗口内的所有确认包ACK的第二级拥塞标志位CE是否都为O,如果是,则将发送窗口 cwnd更新为cwnd+cwnd X (1_α)3,转入步骤八;否则,置慢启动标志位ST为I,转入步骤八;
[0023]步骤六:判断当前发送窗口内的所有确认包ACK的第二级拥塞标志位CE是否都为O,如果是,则将发送窗口 cwnd更新为cwnd+Ι,转入步骤八;否则,转入步骤七;
[0024]步骤七:根据网络拥塞程度调整发送窗口大小,将发送窗口 cwnd更新为cwnd X (1-β/2),转入步骤八;
[0025]步骤八:发送端按更新后的发送窗口cwnd大小发送数据,并判断数据是否发送完毕,如果没有发送完毕则返回步骤二,否则结束数据传输。
[0026]上述用于DCN中基于多级拥塞反馈的传输控制方法,所述步骤一包括:将初始发送窗口cwnd大小设置为I,第一级队列标记门限Thresholdl设置为20,第二级队列标记门限Threshold〗设置为65,将第一级拥塞标志位ECT和第二级拥塞标志位CE都设置为O;
[0027]上述用于DCN中基于多级拥塞反馈的传输控制方法,所述步骤二中:发送方收到当前发送窗口内的全部确认包ACK之后,依据全部确认包ACK中第一级拥塞标志位ECT和第二级拥塞标志位CE被置为I的数量计算第一级和第二级拥塞程度α和β,计算公式为:
[0028]a=m/cwnd
[0029]β = η/ cwnd
[0030]其中,111和11分别是当前发送窗口内所有确认包ACK中第一级拥塞标志位ECT和第二级拥塞CE被置为I的数量。
[0031]有益效果:
[0032]本发明的技术效果在于:当多个发送方并发地发送数据时,交换机的缓存队列长度先后两次经过的门限Thresholdl和Threshold〗来反馈当前网络拥塞状态。门限Thresholdl用来缓解慢启动阶段中发送窗口的快速增长,防止TCP流超时,从而能平缓过渡到拥塞避免阶段,而门限Threshold〗则让TCP流进入拥塞避免阶段,从而降低多并发流的数据流的完成时间,提升网络吞吐率。
[0033]实测表明本方法能有效解决吞吐率崩溃现象明显,详见实施例。
【附图说明】
[0034]图1为本发明的流程图。
[0035]图2为数据中心TCP Incast场景示意图。
[0036]图3是并发超时测试结果对比,图3(a)为DCTCP下6条流的吞吐率,图3(b)为本发明(GS-DCTCP)时6条流的吞吐率。
[0037]图4为25台工作机并发发送数据的情况下,DCTCP协议与本发明(GS-DCTCP)之间相关参考指标对比,其中服务请求单元SRU大小为512Kbytes;图4(a)为不同协议之间窗口变化情况对比;图4(b)为不同协议之间TCP包序号变化情况对比;图4(c)为不同协议之间交换机队列长度变化情况对比;图4(d)为不同协议之间总吞吐率变化情况对比。
[0038]图5为服务请求单元大小为64Kbytes,不同协议随着发送端并发数目增加的吞吐率对比。
[0039]图6为服务请求单元总大小为2Mbytes,不同协议随着发送端并发数目增加的吞吐率对比。
【具体实施方式】
[0040]以下将结合附图和具体实施例对本发明做进一步详细说明:
[0041 ] 实施例1:
[0042]参见图1,图1为本发明的流程图:一种用于DCN中基于多级拥塞反馈的传输控制方法,过程如下:
[0043]初始化;将初始发送窗口cwnd大小设置为I,第一级队列标记门限Thresholdl设置为20,第二级队列标记门限Threshold〗设置为65,将拥塞标志位ECT和CE都设置为0,慢启动阶段的标志ST设置为O;
[0044]发送方收到当前发送窗口内的全部确认包ACK之后,依据全部确认包ACK中第一级拥塞标志位ECT和第二级拥塞标记拥塞标志位CE被置为I的数量计算第一级和第二级拥塞程度α和β;
[0045]a=m/cwnd
[0046]β = η/ cwnd
[0047]其中,111和11分别是当前发送窗口内所有确认包ACK中第一级拥塞标志位ECT和第二级拥塞CE被置为I的数量。
[0048]发送端依据其慢启动标志为ST判断是否继续处于慢启动阶段:
[0049]当ST为O时,则继续处于慢启动阶段,若当前发送窗口内所有确认包ACK的第一级拥塞标志位ECT都为O,则将发送窗口 cwnd更新为2 X cwnd;而当前发送窗口内所有确认包ACK的第一级拥塞标志位ECT不都为O时,若当前发送窗口内所有确认包ACK的第二级拥塞标志位CE位都为O,则将发送窗口 cwnd更新为cwnd+cwnd X (1-a)3;若当前发送窗口内所有确认包ACK的第二级拥塞标志位CE位不都为O,置慢启动标志位ST为I ;
[0050]当ST为I时,退出慢启动阶段,进入拥塞避免阶段,若当前发送窗口内所有确认包ACK的第二级拥塞标志位CE位都为O,则将发送窗口 cwnd更新为cwnd+Ι;否则,根据网络拥塞程度调整发送窗口大小,将发送窗口cwnd更新为cwndX (1-β/2);
[0051 ]发送端按更新后发送窗口 cwnd大小发送数据,并判断数据流是否发送完毕,如果没有发送完毕,那么数据流会再次进入到更新网络拥塞程度的步骤重复上述过程,否则结束数据传输。
[0052]为验证本发明的效果,在NS2.35网络仿真平台上进行了性能测试。
[0053]图2展示了发生TCPIncast的典型拓扑。数据中心应用中,为了保证服务的高扩展性和可靠性,应用数据通常是切分存储在不同的服务器,各服务器存储的数据片段被称为服务器请求单元(Server Request Unit,SRU)。通常,数据中心内部按照以下方式进行通信:汇聚服务器向所有工作服务器发送数据请求。各工作服务器收到数据请求之后,将传输所存储的数据片段,即SRU。汇聚服务器收到所有请求的SRU后,将数据片段合并或者处理,然后发出下一轮数据请求。
[0054]图3是并发超时测试,目的是为了比较DCTCP和本发明方法(GS-DCTCP)在较小并发下出现超时现象的情况。实验环境如下:7台工作机经由1Gbps的链路接入到一个交换机,其中6台工作机同时向第7台工作机发送数据。6条数据流大小均为512KB,交换机缓存为10pkts,链路延时为lOOys。对于DCTCP协议,交换机队列标记门限K的值设为65。对于本发明,交换机多级标记门限Thresholdl和Threshold2的值分别设为20和65。
[0055]从图3(a)和(b)看出,DCTCP在工作服务器数量为6时就已经出现吞吐率崩溃的现象,由于慢启动阶段中发送窗口的快速增长使得吞吐率相当高,但是由于增长太迅猛,导致拥塞避免不及时而出现超时的现象。而本发明GS-DCTCP,通过多级门限标记机制,缓解慢启动阶段中发送窗口的过快增长,使得保持吞吐率较高的情况下避免超时现象,防止因为链路时延跟RTO重传时间不匹配而出现应用性能急剧下降的情况。
[0056]图4为25台工作机并发发送数据的情况下,不同协议之间相关参考指标对比,其中服务请求单元SRU大小为512Kbytes。
[0057]图4(a)可以看出DCTCP协议中,整个发送窗口内的所有数据包都丢失,等待200ms后重传,链路利用率低。本发明GS-DCTCP协议则在慢启动阶段及时缓解窗口过快增长,避免整窗丢失现象。图4(b)显示DCTCP协议丢包过多出现超时,TCP包序号中断。本发明则能尽可能减少丢包,避免超时,效果明显。图4(c)显示了交换机排队情况,其中DCTCP协议因超时导致队列为空,造成交换机缓存浪费。本发明则能有效避免缓存溢出,保证链路利用率。图4(d)为瞬时总吞吐率情况,DCTCP协议在占满带宽后由于增窗过快而出现吞吐率崩溃,超时重传导致链路带宽浪费严重。而本发明则适时减慢增窗,由慢启动阶段平滑的过渡到拥塞避免阶段,充分利用链路带宽,性能提升明显。
[0058]图5为服务请求单元大小为64Kbytes,不同协议随着发送端并发数目增加的吞吐率的对比。由于DCTCP协议出现了超时现象,所以吞吐率很低,链路利用率低;而本发明GS-DCTCP由于有效的避免了拖尾超时,吞吐率提升明显。图6为服务请求单元总大小为2Mbytes,不同协议随着发送端并发数目增加的吞吐率对比。可以看到,本发明相对DCTCP协议的吞吐率提升效果更加明显。
【主权项】
1.一种用于DCN中基于多级拥塞反馈的传输控制方法,其特征在于, 设置交换机缓存队列长度阈值:包括第一级队列标记门限Thresholdl和第二级队列标记门限Threshold〗; 当多个发送方并发地发送数据时,传输路径上的各交换机监控当前队列长度;将当前队列长度与第一级队列标记门限Thresholdl和第二级队列标记门限Threshold2比较,反馈当前网络拥塞状态; 依据当前队列长度与第一级队列标记门限Thresholdl的比较结果,即第一级拥塞反馈缓解慢启动的增窗速率; 依据当前队列长度与第二级队列标记门限Threshold〗的比较结果,即第二级拥塞反馈及时退出慢启动阶段并进入拥塞避免阶段。2.根据权利要求1所述的用于DCN中基于多级拥塞反馈的传输控制方法,其特征在于,包括以下步骤: 步骤一:初始化:设置发送方发送窗口 cwnd大小的初始值、设置交换机监控当前队列长度阈值:包括第一级队列标记门限Thre sho I d I和第二级队列标记门限Thr e sho I d2、设置数据包第一级拥塞标志位ECT和第二级拥塞标志位CE的初始值、设置发送方慢启动标志位ST的初始值为O; 步骤二:传输路径上的各交换机监控当前队列长度,当当前队列长度超过第一级队列标记门限Thresholdl时,立即将当前队列中的数据包的第一级拥塞标志位ECT置为I;当当前队列长度超过第二级队列标记门限Threshold2时,则将当前队列中的数据包的第二级拥塞标志位CE置为I;当数据包到达接收方后,接收方对数据包的确认包ACK打上对应的拥塞标志,并将确认包ACK发送给发送方; 发送方收到当前发送窗口内的全部确认包ACK之后,依据全部确认包ACK中第一级拥塞标志位ECT和第二级拥塞标志位CE被置为I的数量计算第一级和第二级拥塞程度α和β; 步骤三:发送方依据其慢启动标志位ST判断是否继续处于慢启动阶段,如果ST为O,则继续处于慢启动阶段并转步骤四,否则退出慢启动阶段,进入拥塞避免阶段,并转步骤六; 步骤四:判断当前发送窗口内的所有确认包ACK的第一级拥塞标志位ECT是否都为0,如果是,则将发送窗口 cwnd更新为2 X cwnd,并转入步骤八;否则,转步骤五; 步骤五:判断当前发送窗口内的所有确认包ACK的第二级拥塞标志位CE是否都为O,如果是,则将发送窗口 cwnd更新为cwnd+cwnd X (1-a )3,转入步骤八;否则,置慢启动标志位ST为I,转入步骤八; 步骤六:判断当前发送窗口内的所有确认包ACK的第二级拥塞标志位CE是否都为0,如果是,则将发送窗口 cwnd更新为cwnd+Ι,转入步骤八;否则,转入步骤七; 步骤七:根据网络拥塞程度调整发送窗口大小,将发送窗口 cwnd更新为cwnd X (1-β/2),转入步骤八; 步骤八:发送端按更新后的发送窗口 cwnd大小发送数据,并判断数据是否发送完毕,如果没有发送完毕则返回步骤二,否则结束数据传输。3.根据权利要求2所述的用于DCN中基于多级拥塞反馈的传输控制方法,其特征在于,所述步骤一包括:将初始发送窗口 cwnd大小设置为I,第一级队列标记门限Thresholdl设置为20,第二级队列标记门限Threshold〗设置为65,将第一级拥塞标志位ECT和第二级拥塞标志位CE都设置为O。4.根据权利要求2所述的用于DCN中基于多级拥塞反馈的传输控制方法,其特征在于,所述步骤二中: 发送方收到当前发送窗口内的全部确认包ACK之后,依据全部确认包ACK中第一级拥塞标志位ECT和第二级拥塞标志位CE被置为I的数量计算第一级和第二级拥塞程度α和β,计算公式为: a=m/ cwnd β = η/ cwnd 其中,m和n分别是当前发送窗口内所有确认包ACK中第一级拥塞标志位ECT和第二级拥塞CE被置为I的数量。
【文档编号】H04L12/825GK106059951SQ201610402552
【公开日】2016年10月26日
【申请日】2016年6月8日
【发明人】黄家玮, 徐文茜, 王建新, 郝晓强, 张华健, 有启迪
【申请人】中南大学, 航天恒星科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1