一种用于DCN中任务传输的拥塞控制方法与流程

文档序号:11548545阅读:318来源:国知局
一种用于DCN中任务传输的拥塞控制方法与流程

本发明设计一种用于dcn(数据中心网络,datacenternetwork)中任务传输的拥塞控制方法。



背景技术:

数据中心网络计算平台的出现给在线服务(比如网络搜索、在线零售、广告)带来了巨大的收益。这些数据密集的服务具有以下特点:每个查询都可以看作一个任务,每个查询分发给成千上万的叶子节点,最后叶子节点完成查询将结果返回给分发节点,只有所有流都完成任务才能够算是完成,即任务的完成需要每条流都完成。

随着互联网应用变得高度多样化和复杂化,为了解决传统控制传输协议的不足,改善任务级别的完成时间,国内外许多学者为降低任务级别的完成时间做了很多研究,寻求一些切实可行的方法降低任务完成时间。

dctcp(datacentertcp)协议就是针对高带宽、高扇入应用的数据中心网络提出的替换传统tcp协议的改进传输协议。其利用显式拥塞通知(explicitcongestionnotification,ecn)来判断拥塞状态。dctcp第一次全面讨论尾部延迟,在不更换低缓存的商业交换机的前提下,实现dcn(数据中心网络)的高突发容限、低延迟、高吞吐率。但是,dctcp问题在于其不具有任务感知性。

l2dct(lowlatencydatacentertransport)通过提高短流的优先权减少短流的完成时间,进而降低平均流完成时间。在拥塞避免阶段,在每个包往返时间内短流的拥塞窗口增加1,而长流仅仅增加0.05。当探测到拥塞时,长流的拥塞窗口下降的多,而短流的拥塞窗口下降的少。l2dct在降低短流的完成时间表现很好,但是损害了长流的吞吐量,同时也没有基于任务级别优化性能。

baraate是一个不需要网络中各个交换机进行太多合作的分布式任务敏感的调度系统,设计的目的在于实现fifo-lm的分布式调度机制。baraate为每个任务分发一个全局唯一的任务id,规定拥有更小id号的任务具有更高的优先权,而先到的任务分发更小的id号,即实现了先进先出的优先权控制。baraate能降低平均任务完成时间,但是可部署性较差。

varys协议旨在数据密集的数据中心网络中减少任务的通信时间。varys是一个数据密集型的框架,保持高的网络利用率并且保证任务不会被饥饿。varys借鉴了的调度策略是基于coflow的,但是varys关于coflow的划分不清晰,其实现和部署存在困难。

因此,提出有效降低平均任务完成时间且具有可部署性的数据中心网络传输层协议,成为了一个亟待解决的问题。



技术实现要素:

本发明所要解决的技术问题是,针对现有技术的不足,提供一种用于dcn中任务传输的拥塞控制方法,该方法能有效降低数据中心网络中数据任务的平均完成时间。

发明的技术解决方案如下:

一种用于dcn中任务传输的拥塞控制方法,包括以下步骤:

步骤一:参数初始化;初始化发送窗口大小cwnd、发送数据包的拥塞标志位(即ce位);小任务数据量阈值taskmin,大任务数据量阈值taskmax;

步骤二:判断当前工作端是接收方还是发送方,如果是接收方转向步骤八否则转向步骤三;

步骤三:发送方接收ack包(确认包);当收到当前发送窗口内的全部ack包之后,判断全部ack包中是否有ack包的拥塞标志位被置为1,如果有ack包的拥塞标志位被置为1,则依据拥塞标志位被置为1的ack包的数量计算当前数据包往返周期的拥塞程度αn并转向步骤四;否则判断是否处于慢启动阶段,如处于慢启动阶段则更新cwnd为2×cwnd,否则更新cwnd为cwnd+1,并转向步骤七;

步骤四:发送方依据ack包附加字段中返回的当前任务已接收数据量st以及大、小任务数据量阈值计算任务因子β,并转向步骤五;

步骤五:发送方更新当前流已发送的数据量sf,结合当前任务已接收数据量st和当前任务中流的数目n计算流拖尾因子γ,并转向步骤六;

步骤六:发送方根据步骤三、四、五计算得到的αn、β、γ更新发送窗口大小cwnd并转向步骤七;

步骤七:发送方在数据包往返时延内发送cwnd个数据包,并判断数据是否发送完毕,如果没有发送完毕则返回步骤三,否则结束数据传输;

步骤八:接收方接收数据包并查看数据包包头的拥塞标志位是否被置为1,如果是则将其对应的ack包的拥塞标志位置为1,否则置为0,转向步骤九;其中数据包包头的拥塞标志位由交换机进行设置,交换机监控当前队列长度,若队列长度超过设定阈值时,立即将当前进入队列的数据包的拥塞标志位置为1;

步骤九:接收方更新当前任务已接收数据量st和当前任务中流的数目n,并存入对应ack包中的附加字段;然后将ack包发送给发送方,并转向步骤八。

所述步骤三中当前数据包往返周期的拥塞程度αn的计算公式为:

其中,m是当前发送窗口内所有ack包中拥塞标志位被置为1的ack包的数量,αn-1表示上一个数据包往返周期的拥塞程度,g表示滑动平均权值。

所述滑动平均权值g设置为0.625。

所述步骤四中任务因子β的计算公式为:

其中,st为当前任务已接收数据量,taskmin为小任务数据量阈值,taskmax为大任务数据量阈值。

所述步骤五中拖尾因子γ的计算公式为:

其中,sf为当前流已发送的数据量,st为当前任务已接收数据量(即任务已发送数据量),n为当前任务中流的数目。

所述步骤六中:发送方根据步骤三、四、五计算得到的αn、β、γ更新发送窗口大小cwnd的公式为:

该公式不仅可以根据拥塞程度调整发送窗口的大小,还可以加速小任务的发送速率,避免大任务传输造成的阻塞现象,同时能够加速任务内部拖尾流的发送速率,降低了平均任务完成时间。

所述步骤一中初始化包括将发送窗口大小cwnd设置为2,将所发送数据包的拥塞标志位设置为0,将小任务数据量阈值taskmin设置为100kb,大任务数据量阈值taskmax设置为1mb。

有益效果:

本发明依据当前任务和流已发送的数据量优化任务平均完成时间。在发生拥塞时,通过对不同的任务依据已发送大小的不同实行不同的惩罚措施,在任务内部对拖尾流采取更轻的惩罚措施,加速小任务和任务内拖尾流的发送速率,避免了dcn网络中的大任务造成的阻塞现象和少数慢速流导致的任务拖尾现象,有效地减小了任务的平均完成时间,提升网络应用的整体性能。

实测表明本方法能有效提高平均任务完成时间,详见实施例。

附图说明

图1为本发明的流程图。

图2为一简单的数据中心网络拓扑示意图。

图3为本发明方法(tl2dct)、dctcp、l2dct改变任务大小(任务内部流大小不变,改变任务中流的数目n)的平均任务完成时间。

图4为本发明方法(tl2dct)、dctcp、l2dct改变任务内部流开始时间的平均任务完成时间。

图5为本发明方法(tl2dct)、dctcp、l2dct在大规模环境下归一化的平均任务完成时间;图5(a)为不同分位数任务完成时间,图5(b)为不同类型任务平均任务完成时间。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明:

实施例1:

参见图1,图1为本发明的流程图:一种用于dcn中基于多级拥塞反馈的传输控制方法,过程如下:

发送方将初始发送窗口cwnd大小设置为2,交换机将队列长度阈值设置为65,将拥塞标志位即ce位设置为0,将小任务数据量阈值taskmin设置为100kb,大任务数据量阈值taskmax设置为1mb;

交换机监控当前队列长度超过阈值时,立即将当前进入队列的数据包的拥塞标志位置为1,当拥塞标志位被置为1的数据包到达接收方后,接收方将该数据包对应的ack包的拥塞标志位置为1,并将ack包发送给发送方。

发送方收到当前发送窗口内的全部ack包之后,依据拥塞标志位被置为1的ack包的数量计算当前数据包往返周期的拥塞程度αn:

其中,m为当前发送窗口内所有ack包中ce位被置为1的ack包的数量,αn-1表示上一个数据包往返周期的拥塞程度,g表示滑动平均权值,设为0.625。

发送方根据ack包反馈回来的当前任务已接收数据量st,根据下面式子计算任务因子β:

发送方统计当前流已发送的数据量sf,结合ack包反馈回来的当前任务已接收数据量st和当前任务中流的数目n,计算拖尾因子γ:

接收方通过之前计算出来的αn、β、γ更新当前窗口大小cwnd:

将发送窗口cwnd更新为新计算出来的cwnd。

为验证本发明的效果,在ns2.35网络仿真平台上进行了性能测试。

图2展示了发生在数据中心网络中经过单一瓶颈的多对一的拓扑。数据中心应用中,为了保证服务的高扩展性和可靠性,应用数据通常是切分存储在不同的服务器,各服务器存储的数据片段被称为服务器请求单元(serverrequestunit,sru)。通常,数据中心内部按照以下方式进行通信:汇聚服务器向所有工作服务器发送数据请求。各工作服务器收到数据请求之后,将传输所存储的数据片段,即sru。汇聚服务器收到所有请求的sru后,将数据片段合并或者处理,然后发出下一轮数据请求。

图3比较了dctcp、l2dct和本发明方法(tl2dct)在不同任务大小情况下的平均任务完成时间。其中,100台主机各自同时向一台汇聚主机发送1条流,每条流大小为100kb。实验包含三组对比实验,为任务设置不同的流数目n(任务宽度),以改变任务的大小。第一组实验中,存在二十个小任务,每个小任务包含两条流;另存在二十个大任务,每个任务包含三条流。第二组实验中,存在二十个小任务,每个小任务包含两条流;另存在十五个大任务,每个大任务包含四条流。第三组实验中,存在二十个小任务,每个小任务包含两条流;另存在十二个大任务,每个任务包含五条流。从图3可见,因为tl2dct加速了小任务的发送速率,避免了大任务传输造成的阻塞现象,最终降低了平均任务完成时间。其中,随着大小任务的宽度差距的增加,tl2dct的收益越明显。例如,第三组实验中,l2dct的平均任务完成时间相比于dctcp和l2dct分别减少了15%和11.9%。

图4显示了dctcp、l2dct和tl2dct任务内部出现拖尾流的平均任务完成时间。其中,100台主机各自同时向一台汇聚主机发送1条流,每条流大小为100kb。实验中有五十个任务,每个任务包含两条流。第1条流同时开始发送数据,第2条流距第1条流发送的间隔时间分别在0-10ms、0-20ms、0-30ms、0-40ms内均匀分布。图3显示,相比于dctcp和l2dct,tl2dct的平均任务完成时间大幅降低。随着时间间隔加大,tl2dct能大幅提升拖尾流的发送速率,进一步加快任务完成速度。

图5显示了tl2dct在真实数据中心网络流量模型下的加速效果。其中,100台主机通过同一交换机向一台汇聚主机共发送2038条流。这些流组成了四类任务,具体包括窄短任务、窄长任务、宽短任务和宽长任务。其中,52个窄短任务的宽度为3,流大小都是10kb;16个窄长任务的宽度为7,流大小都是200kb;15个宽短任务的宽度为50,流大小都是9kb;17个宽长任务的宽度60,流大小都是3mb。任务的发送开始时间服从泊松到达分布,任务内部的所有流的发送时间均匀分布在20ms内。图5(a)实验结果显示,tl2dct前百分之50、75、95、100完成的任务的平均任务完成时间相比于dctcp分别减少了100%、36.36%、17.8%、14%,相比于l2dct减少了80%、31.8%、24%、13.9%。图5(b)实验结果显示,tl2dct中窄短任务和窄长任务的平均任务完成时间相比于dctcp分别减少了98%和53%,相比于l2dct减少了80%和46%,这说明tl2dct能依据任务宽度有效地减少窄任务的完成时间。由于窄任务约占总任务数的68%,tl2dct降低了整体的平均任务完成时间。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1