一种基于服务器的流调度方法

文档序号:9790974阅读:950来源:国知局
一种基于服务器的流调度方法
【技术领域】
[0001 ]本发明涉及数据中心网络中TCP流调度技术和拥塞控制技术。
【背景技术】
[0002]最小化流完成时间(Flow Complet1n Times,简称FCT)是数据中心网络(DataCenter Networks,简称DCN)中非常重要的一个问题。云服务往往在DCN中产生大量的TCP流,流的完成速度很大程度上决定了任务的完成时间。任何一个不能及时完成的流都会影响到任务最后的结果,降低用户体验或带来直接的经济损失。然而,在当前的DCN中,流经常需要很长时间才能完成传输,甚至超过其理论完成时间的十倍。其主要原因是数据包拥塞在网络中交换机的输出端口上形成很长的队列,在传输中经历了太久的排队时延。
[0003]学者们已经提出了多种最小化FCT的方案,这些方法可以分为两类:速率控制类和流调度类。速率控制类工作(如DCTCP、D2TCP和HULL)—般是在发送端感知网络的拥塞状况,不断调整发送速率来保持网络中交换机输出端口队列尽量短,以减小数据包在传输中经历的排队时延。这类工作在一定程度上减少了排队时延,并且较容易部署,因为它们都是基于服务器的。但这类工作会让多个流同时传输,共享带宽,无法最小化FCT ο最近的研究表明最小化FCT需要使用流调度的方法(如roQ,pFabric,PASE和PIAS),也就是按照流的优先级顺序从高到低(一般采用小流优先的规则)让流一个接一个地完成。pFabric是一种基于交换机的流调度方案,它是流调度类工作中做得最好的。它在交换机的输出端口队列中按照数据包的优先级来推出数据包,使得小流中最慢的那个流都几乎能以其理论传输时间完成。然而,由于pFabric根本性地改变了交换机输出端口先进先出的数据包推出方式,要实现pFabric,必须对交换机做硬件上的改动。而DCN中有成千上万个交换机,部署pFabric可能会需要大量的费用。

【发明内容】

[0004]本发明所要解决的技术问题是,针对现有技术不足,提供一种基于服务器的流调度方法(Server-based Flow Scheduling,简称SFS),既容易部署,又能在最小化FCT上取得和pFabric相似的效果。
[0005]为解决上述技术问题,本发明所采用的技术方案是:一种基于服务器的流调度方法,包括以下步骤:
1)在发送方,TCP流从应用层获得优先级,再将优先级嵌入发送的SYN包和数据包中;在接收方,所述优先级被拷贝到相应的ACK包中;TCP的拥塞窗口固定为BDP,timeout值固定为500us,TCP的拥塞避免和快速重传功能被关闭;网络采用I比I收敛比的FatTree网络,并使用包喷射的路由方式将负载均匀地分配在多条等价路径上;
2)在接收方的TCP/IP协议栈和网卡之间加入反向调度器,反向调度器通过释放/捕获ACK包来激活/暂停接收方收到的流来实现反向的流调度,同时通过释放ACK包控制网络中飞行的TCP数据包总量;反向调度器包含一个流表和一个流窗口,从TCP/IP协议栈传来的ACK包被推入流表中,流表内的流以优先级高低排列,流窗口限制活动的流数,网卡从在流窗口内的流表表项中抽取ACK包并发送到网络中;
3)在发送方的TCP/IP协议栈和网卡之间加入正向调度器,正向调度器通过释放/捕获SYN包和数据包来激活/暂停其发送的流来实现正向的流调度;正向调度器包含一个流表,从TCP/IP协议栈传来的SYN包和数据包被推入到流表中,流表内的流以优先级高低排列,网卡总是从当前有数据包且优先级最高的表项中抽取数据包并发送到网络中;
4)在所述反向调度器和所述正向调度器中加入协调模块,在发送方和接收方对于某个流的优先级判断不一致时,协调发送者和接收方,填充链路带宽。
[0006]所述协调模块米用最热流协调方法,最热流协调方法包含以下二步,首先,当接收方当前接收的流被发送方中断时,发送方通知接收方当前传输已中断;然后,接收方激活最热的流以填充链路接收方;最后,接收方方激活最热的流转变回激活最高优先级的流。
[0007]接收方通过流的温度来识别最热的流,流的温度用来衡量接收方在上一次收到此流的数据包后等待的时间,所述最热的流就是最近传输过的流。
[0008]被接收方暂停住的流的发送方可以通过发送心跳包来刷新该暂停住的流在其接收方处的温度,所述心跳包是指TCP超时事件产生的重传包,如果所述暂停住的流在发送方有足够的优先级,那么该暂停住的流的心跳包被释放并刷新该暂停住的流在接收方处的温度,反之,该暂停住的流在接收方处的温度随时间推移下降为零度。
[0009]若接收方收到发送方的传输中断通知时,接收方知道流窗口中的流已经被发送方暂停了,则接收方额外开启一个候选窗口来激活最热的流。
[0010]接收方移动所述候选窗口,将激活最热的流向激活最高优先级流转化,这是因为激活最热的流可以有效填充网络链路,但无法最小化流完成时间;移动过程为:在任意时亥Ij,如果接收方发现候选窗口左边的表项的流刚被刷新为最高温度时,接收方将会把候选窗口移动到这个流去,暂停原有的流,新激活了一个同温度但优先级更高的流。
[0011]当接收方流窗口内的被发送方中断的流又开始传输时,接收方关闭候选窗口。
[0012]与现有技术相比,本发明所具有的有益效果为:本发明可以通过软件实现流调度;本发明能有效加快数据中心网络中流的传输速度,与同样是基于服务器的方案DCTCP相比,我们的小流的完成速度可达它的四倍。
【附图说明】
[0013]图1是SFS的基本架构;
图2是接收方流调度的示例;
图3是接收方基于窗口的流调度模块的示意图;
图4是发送方流调度的示例;
图5是发送方基于优先级的流调度模块的示意图;
图6(a)是优先级不一致初始状态图;6(b)是优先级不一致事件发生示意图;
图7(a)是最热流协调技术初始状态图;图7(b)是流温度降低示意图;图7(c)是优先级不一致时间发生时,候选窗口开启示意图;图7(d)为被激活的流收到发送方的响应的示意图;图7(e)为优先级不一致事件再次发生时,候选窗口开启示意图;图7(f)为被激活的流收到发送方的响应的示意图;图7(g)为候选窗口移动示意图;图7(h)为候选窗口关闭示意图; 图8(a)是SFS与DCTCP和pFabric在FatTree中采用网页搜索负荷时的小流的平均FCT;图8(b)是SFS与DCTCP和pFabric在FatTree中采用网页搜索负载时的最慢的小流的FCT;图8(c)是SFS与DCTCP和pFabric在FatTree中采用网页搜索负载时的大流的FCT;
图9(a)是SFS与DCTCP和pFabric在FatTree中采用数据挖掘负荷时的小流的平均FCT;图9(b)是SFS与DCTCP和pFabric在FatTree中采用数据挖掘负载时的最慢的小流的FCT;图9(c)是SFS与DCTCP和pFabric在FatTree中采用数据挖掘负载时的大流的FCT;
图10(a)是在网络重负载情况下使用SFS时,网络中下行链路的最大队列长度;图10(b)是在网络重负载情况下使用SFS时,网络中下行链路的平均队列长度。
【具体实施方式】
[0014]I)对服务器和网络进行配置,包含如下四个方面:
a)优先级策略:在发送方,流从应用层获得当前的优先级,这些优先级被SYN包和数据包附带着,以便发
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1