CN106027407B - 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 - Google Patents
网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 Download PDFInfo
- Publication number
- CN106027407B CN106027407B CN201610639105.0A CN201610639105A CN106027407B CN 106027407 B CN106027407 B CN 106027407B CN 201610639105 A CN201610639105 A CN 201610639105A CN 106027407 B CN106027407 B CN 106027407B
- Authority
- CN
- China
- Prior art keywords
- network flow
- current time
- link
- network
- indicated
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种网络拥塞控制方法,所述网络包含设备以及链路,所述设备向所述链路发送有截止时间的网络流,所述网络流包含数据包。所述网络拥塞控制方法包括步骤:S1、判断所述网络流能否在其截止时间前完成,若能,则循环执行步骤S2和S3直至完成所述网络流,若不能,则丢弃所述网络流;S2、根据以下公式调整设备在下一时刻的拥塞窗口,S3、令所述设备在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。本发明实施例还公开了一种网络中拥塞窗口的调整方法以及一种交换机。采用本发明可以让有截止时间的网络流为无截止时间的网络流让出更多的带宽。
Description
技术领域
本发明涉及通信领域,尤其涉及一种网络中拥塞窗口的调整方法、一种网络拥塞控制方法及一种交换机。
背景技术
面向用户的数据中心应用(如网页搜索,社交网络,零售,推荐系统等)对延迟具有严苛的要求。由这些应用生成的长短不一的网络流都具有严格的截止时间,那些没能在截止时间内完成的网络流将被直接从结果中删除。而这既影响用户体验,又浪费带宽,同时也造成供应商的收入减少。很多现今的数据中心传输协议都是在互联网刚出现时制定的,如TCP(Transmission Control Protocol,传输控制协议),他们并没有对有关截止时间的部分进行明确的规定,因此他们的表现在目前看来很多都不够理想。有资料显示,在TCP协议下,很大一部分网络流(7%至25%以上不等)都没能在截止时间内完成。关于传输协议的文献有很多,下面介绍几个密切相关的。
DCTCP(Data Center Transmission Control Protocol,数据中心传输控制协议)是一种用于DCN(Data Center Network,数据中心网络)的尽力而为的传输协议。DCTCP是截止时间不知晓的,并且由于DCTCP网络流平均共享带宽,因此它不能模拟SJF(Shortest JobFirst,最短作业优先调度)。
D3(Deadline-driven Delivery,截止时间驱使交付)通过贪婪算法处理有截止时间的网络流,但是会引起优先级倒置的问题,并且需要对服务器做出很大改动。具体的,它将网络流速率设为γ=M/δ加上除去所有有截止时间的网络流的需求后剩余链路带宽的平均值。然而,如图1所示,D3会出现优先级反转的问题。D3总是尽可能的为先到达的网络流分配速率。在图1(a)中,网络流C没能在其截止时间内完成,因为更早的网络流A和网络流B不肯为网络流C让出它们的带宽。而从图1(b)中可以看出,对于网络流A和网络流B,即使它们为网络流C让出带宽也并不影响它们自己在截止时间前完成。
D2TCP(Deadline-aware Datacenter TCP,截止时间知晓的数据中心传输控制协议)在DCTCP的基础上增加了截止时间知晓。通过设置截止时间知晓拥塞窗口更新方程,D2TCP克服了这个问题。所述截止时间知晓拥塞窗口更新方程允许各个网络流独立地在截止时间之前完成。然而,D2TCP不适用于最高优先级的情况。这是因为D2TCP过于激进地接管所有可用的带宽,从而会影响到那些无截止时间的网络流。
FCP(Flexible Control Protocol,灵活的控制协议)同样应用了D3,并且它增加了代价机制。
PDQ(Preemptive Distributed Quick flow scheduling,抢占式分布的快速流调度)和pFabric(最小接近最优的数据传输)都是基于临界的网络流调度策略,但他们可能会影响到其他无截止时间的网络流。
PASE综合了以上传输层策略,但是不能直接解决混合网络流调度的问题。并且,PASE需要网络控制层的协调速率仲裁。
PIAS(Practical Information-Agnostic flow Scheduling,实际的信息不可知网络流调度)是信息不可知的网络流调度策略,它可以不用知道网络流的大小模拟SJF(Shortest Job First,最短任务优先调度)。PIAS对大小未知的网络流有效,但是对其它的不行。PIAS将所有的网络流都当作既不知道截止时间也不知道大小的网络流进行处理,这显然对无截止时间的网络流造成影响。
现有的数据中心传输协议在传输有截止时间的网络流时都很激进。为了能够让有截止时间的网络流在其截止时间内完成,它们占尽所有可用的带宽。这种激进的行为造成的后果之一就是令无截止时间的网络流没有带宽可用,从而影响到那些无截止时间网络流的表现。此外,为了控制网络流的尾延迟,所述截止时间又通常被设定地很松散(例如,网络延迟的99百分位)。也就是说,通常有截止时间的网络流都在其截止时间到来之前很早就提前完成了。
因此,为了解决以上问题,需要提出一种方法,能够让有截止时间的网络流尽可能在其截止时间内完成的同时更小程度地影响无截止时间的网络流。
发明内容
本发明实施例所要解决的技术问题在于,如何使有截止时间的网络流让出更多的带宽给无截止时间的网络流。
为了解决上述技术问题,本发明实施例提供了一种网络中拥塞窗口的调整方法。所述网络包含至少一个设备和至少一条链路,所述设备向所述链路发送有截止时间的网络流。所述调整方法根据公式(a)调整设备在下一时刻的拥塞窗口:
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价。
进一步地,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Qι(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
进一步地,当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
进一步地,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息,通过读取所述接收到的数据包可以获取当前时刻的所述总的队列长度和当前时刻的所述总的链路代价。
相应地,本发明实施例还提供一种网络拥塞控制方法,所述网络包含设备以及链路,所述设备向所述链路发送有截止时间的网络流,所述网络流包含数据包,所述网络拥塞控制方法包括步骤:
S1、判断所述网络流能否在其截止时间前完成,若能,则循环执行步骤S2和S3直至完成所述网络流,若不能,则丢弃所述网络流;
S2、根据公式(a)调整设备在下一时刻的拥塞窗口Ws(t+τs(t)),
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑ι∈L(s)λι(t)表示当前时刻所述链路的总的链路代价;
S3、令所述设备在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。
进一步地,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑ι∈L(s)Qι(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
进一步地,当前时刻的所述总的链路代价由公式(c)计算得到:
∑ι∈L(s)λι(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
进一步地,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息,通过读取所述接收到的数据包可以获取当前时刻的所述总的队列长度和当前时刻的所述总的链路代价。
进一步地,所述步骤S1进一步包括:若所述网络流的虚拟队列的队列长度大于所述链路的容量,则判断所述网络流不能在其截止时间前完成。
进一步地,所述步骤S1进一步包括:若所述网络流的期望速率大于所述链路的容量时,则判断所述网络流不能在其截止时间前完成。
相应地,本发明实施例还提供了一种交换机,所述交换机依据拥塞窗口向链路发送有截止时间的网络流,所述网络流包含数据包,所述交换机包含:
判断模块,用于判断所述网络流能否在其截止时间前完成;
调整模块,用于根据公式(a)调整设备在下一时刻的拥塞窗口
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价;和
发送模块,用于在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。
进一步地,所述交换机支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
进一步地,当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
进一步地,若所述网络流的虚拟队列的队列长度大于所述链路的容量,所述判断模块判定所述网络流无法在其截止时间前完成。
进一步地,若所述网络流的期望速率大于所述链路的容量,所述判断模块判定所述网络流无法在其截止时间前完成。
进一步地,所述交换机在其发送的每个所述数据包中添加所述交换机处的队列长度和链路代价。
进一步地,所述交换机通过发送套接字并利用setsockopt设置每个数据包的mark将所述网络流的信息传递至内核空间网络堆栈。
实施本发明实施例,具有如下有益效果:
1、本发明不仅能够很大程度的保证有截止时间的网络流在其截止时间前完成,并且还能为无截止时间的网络流最大程度地让出带宽。
2、而本发明只需要网络ECN(Explicit Congestion Notification,显示拥塞指示)的支持,不需要对交换机进行硬件改动,也无需为各个网络流分别设置速率,并可反向兼容现有TCP/IP(传输控制协议/因特网协议)堆栈。
附图说明
图1是现有技术D3和最优情况下的对比图;
图2是本发明一个实施例的示意图;
图3是本发明另一个实施例的示意图;
图4是用于估计队列长度的示意图;
图5是本发明与现有技术DCTCP和pFabric的对比图;
图6是三种网络流的放弃方案的对比图;
图7是叶脊网络拓扑结构示意图;
图8是仿真试验中工作负载的示意图;
图9是本发明和其他现有技术的效果对比图;
图10是本发明在瓶颈状态下的效果示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明的一个实施例公开了一种网络中拥塞窗口的调整方法。所述网络包含至少一个设备和至少一条链路,所述设备向所述链路发送有截止时间的网络流。所述调整方法根据公式(a)调整设备在下一时刻的拥塞窗口:
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价。
上述公式(a)中的第一项(源):Θ(γs(t),xs(t))是γs(t)的增函数,γs(t)=Ms(t)/δs(t)。一个网络流的γs(t)值越大说明这个网络流越紧急,即它剩余要传的数据还很多和/或它的截止时间马上就要到了。这一项保证了越紧急的网络流抢夺资源的能力越强。第二项(网络):
∑l∈L(s)(Ql(t)+λl(t))是所述网络流所要通过的链路的拥塞总和。如果某一链路处于拥塞状态,那么使用该链路的设备会降低发送速率。这保证了网络流能够根据拥塞状况相应地做出反应。上述第一项和第二项的相互配合,使得有截止时间的网络流既能在截止时间内完成又对其他无截止时间的网络流影响最小。
需要指出的是,上述第二项(网络)是依据路径而计算的,这需累计每一跳信息,因此无法从源处直接获得。为解决这个问题,本发明提出两种解决方法。
方法一:
在本发明的一个实施例中,提供了一种利用现售交换机具有的功能,即ECN(Explicit Congestion Notification,显示拥塞指示),来计算上述第二项(网络)。
具体的,在该实施例中,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
而当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
上述实施例利用现售交换机具有的功能,以一种简便实用地方式解决了无法从源处直接获得总的队列长度及总的链路代价的问题。
方法二:
在本发明的另一个实施例中,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息,通过读取所述接收到的数据包便可获取当前时刻的所述总的队列长度和当前时刻的所述总的链路代价。
更具体地,在本实施例中,所述网络中的每个设备在其发送的每个数据包包头的附加字段中增加并存储器自己的队列长度及链路代价。这样所述数据包在经过其路径上的每一个设备时都会获得该设备处的队列长度及链路代价,从而得到整条路径上的总的队列长度和总的链路代价。
本实施例不是通过ECN来估计所述队列长度和所述链路代价,而是直接将每个设备的信息进行记录,因此得到得队列长度和链路代价信息更加的准确。
综合以上实施例可知,本发明提出的网络中拥塞窗口的调整方法可以在尽量使有截止时间的网络流在其截止时间前完成的同时让出更多的带宽给无截止时间网络流。同时本发明方法利用现售交换机已经具有的ECN功能计算拥塞窗口,不需要对交换机进行硬件改动。
除了前述一种网络中的拥塞窗口的调整方法,本发明实施例还提供一种网络拥塞控制方法。同样的,所述网络包含设备以及链路,所述设备向所述链路发送有截止时间的网络流,所述网络流包含数据包。如图2所示,所述网络拥塞控制方法包括步骤:
S1、判断所述网络流能否在其截止时间前完成,若能,则循环执行步骤S2和S3直至完成所述网络流,若不能,则丢弃所述网络流。
在截止时间到来之前就丢弃一些网络流,可以更早地让出更多的带宽给其他的网络流。而选择丢弃掉哪些网络流是一个NP难的问题。对此,本发明提出的一个方法是丢弃掉那些肯定无法在其截至时间内完成网络流。
更具体的,本发明实施例还提出两种优选的丢弃方案。方案1,若判定所述网络流的虚拟队列的队列长度大于所述链路的容量,即Zs(t)>maxι∈L(s)Cl,丢弃所述网络流。方案2,若判定所述网络流的期望速率大于所述链路的容量,即γs(t)>maxl∈L(s)Cl,丢弃所述网络流,其中γs(t)为所述网络流在当前时刻的期望速率,可通过完成所述网络流还需要传输的剩余数据大小Ms(t)和距离截止时间到来还剩的时间δs(t)来计算,即γs(t)=Ms(t)/δs(t)。
对于那些在截止时间前有可能完成的网络流,本发明实施例根据公式(a)调整设备在下一时刻的拥塞窗口。上述公式(a)中的第一项(源):Θ(γs(t),xs(t))是γs(t)的增函数,γs(t)=Ms(t)/δs(t)。一个网络流的γs(t)值越大说明这个网络流越紧急,即它剩余要传的数据还很多和/或它的截止时间马上就要到了。这一项保证了越紧急的网络流抢夺资源的能力越强。第二项(网络):∑l∈L(s)(Qι(t)+λι(t))是所述网络流所要通过的链路的拥塞总和。如果某一链路处于拥塞状态,那么使用该链路的设备会降低发送速率。这保证了网络流能够根据拥塞状况相应地做出反应。上述第一项和第二项的相互配合,使得有截止时间的网络流既能在截止时间内完成又对其他无截止时间的网络流影响最小。
S2、根据公式(a)调整设备在下一时刻的拥塞窗口,
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价;
需要指出的是,上述第二项(网络)是依据路径而计算的,这需总的每一跳信息,因此无法从源处直接获得。为解决这个问题,本发明提出两种解决方法。
方法一:
在本发明的一个实施例中,提供了一种利用现售交换机具有的功能,即ECN(Explicit Congestion Notification,显示拥塞指示),来计算上述第二项(网络)。
具体的,在该实施例中,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
而当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
上述实施例利用现售交换机具有的功能,以一种简便实用地方式解决了无法从源处直接获得队列长度及链路代价的总的信息的问题。
方法二:
在本发明的另一个实施例中,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息,通过读取所述接收到的数据包获取当前时刻的所述总的队列长度和当前时刻的所述总的链路代价发送的每个所述数据包中携带有存储有所述队列长度和所述链路代价。
更具体地,在本实施例中,所述网络中的每个设备在其发送的每个数据包包头的附加字段中增加并存储器自己的队列长度及链路代价。这样所述数据包在经过其路径上的每一个设备时都会获得该设备处的队列长度及链路代价,从而得到整条路径上的总的队列长度和总的链路代价。
实施该实施例的方法,不是通过ECN来估计所述队列长度和所述链路代价,而是直接将每个设备的信息进行记录,因此得到得队列长度和链路代价信息更加的准确。
S3、令所述设备在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。
需要说明的是,步骤S3并不限定设备发送的数据包的数量一定等同于所述拥塞窗口的大小。也可以是按照所述拥塞窗口与其他相关窗口(例如,接收端的接受窗口)中相对较小的窗口发送对应数量的数据包。或是其他。
综合以上实施例可知,本发明提出的网络拥塞控制方法通过调整拥塞窗口的大小可以在尽量使有截止时间的网络流在其截止时间前完成的同时让出更多的带宽给无截止时间网络流。通过抛弃那些肯定无法在其截止时间前完成的网络流进一步让出更多的带宽给无截止时间的流。同时本发明方法利用现售交换机已经具有的ECN功能计算拥塞窗口,不需要对交换机进行硬件改动。
此外,本发明实施例还提供一种交换机。所述交换机依据拥塞窗口向链路发送有截止时间的网络流,所述网络流包含数据包。如图3所示,所述交换机包含判断模块、调整模块和发送模块。
其中所述判断模块,用于判断所述网络流能否在其截止时间前完成。
在截止时间到来之前就丢弃一些网络流,可以更早地让出更多的带宽给其他的网络流。而选择丢弃掉哪些网络流是一个NP难的问题。对此,本发明提出的一个方法是丢弃掉那些肯定无法在其截至时间内完成的网络流。
更具体的,本发明实施例还提出两种优选的丢弃方案。方案1,若判定所述网络流的虚拟队列的队列长度大于所述链路的容量,即Zs(t)>maxl∈L(s)Cl,丢弃所述网络流。方案2,若判定所述网络流的期望速率大于所述链路的容量,即γs(t)>maxl∈L(s)Cl,丢弃所述网络流,其中γs(t)为所述网络流在当前时刻的期望速率,可通过完成所述网络流还需要传输的剩余数据大小Ms(t)和距离截止时间到来还剩的时间δs(t)来计算,即γs(t)=Ms(t)/δs(t)。
对于那些在截止时间前有可能完成的网络流,本发明实施例根据公式(a)调整设备在下一时刻的拥塞窗口。上述公式(a)中的第一项(源):Θ(γs(t),xs(t))是γs(t)的增函数,γs(t)=Ms(t)/δs(t)。一个网络流的γs(t)值越大说明这个网络流越紧急,即它剩余要传的数据还很多和/或它的截止时间马上就要到了。这一项保证了越紧急的网络流抢夺资源的能力越强。第二项(网络):∑l∈L(s)(Ql(t)+λl(t))是所述网络流所要通过的链路的拥塞总和。如果某一链路处于拥塞状态,那么使用该链路的设备会降低发送速率。这保证了网络流能够根据拥塞状况相应地做出反应。上述第一项和第二项的相互配合,使得有截止时间的网络流既能在截止时间内完成又对其他无截止时间的网络流影响最小。
所述调整模块,用于根据公式(a)调整设备在下一时刻的拥塞窗口,
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价。
需要指出的是,上述第二项(网络)是依据路径而计算的,这需总的每一跳信息,因此无法从源处直接获得。为解决这个问题,本发明提出两种解决方法。
方法一:
在本发明的一个实施例中,提供了一种利用现售交换机具有的功能,即ECN(Explicit Congestion Notification,显示拥塞指示),来计算上述第二项(网络)。
具体的,在该实施例中,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
而当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
上述实施例利用现售交换机具有的功能,以一种简便实用地方式解决了无法从源处直接获得队列长度及链路代价的总的信息的问题。
方法二:
在本发明的另一个实施例中,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息,通过读取所述接收到的数据包便可获取当前时刻的所述总的队列长度和当前时刻的所述总的链路代价。
更具体地,在本实施例中,所述网络中的每个设备在其发送的每个数据包包头的附加字段中增加并存储器自己的队列长度及链路代价。这样所述数据包在经过其路径上的每一个设备时都会获得该设备处的队列长度及链路代价,从而得到整条路径上的总的队列长度和总的链路代价。
实施该实施例的方法,不是通过ECN来估计所述队列长度和所述链路代价,而是直接将每个设备的信息进行记录,因此得到得队列长度和链路代价信息更加的准确。
所述发送模块,用于在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。但所述依据所述下一时刻的拥塞窗口向所述链路发送数据包并不限定所述交换机发送的数据包的数量一定等同于所述拥塞窗口的大小。也可以是按照所述拥塞窗口与其他相关窗口(例如,接收端的接受窗口)中相对较小的窗口发送对应数量的数据包。或是其他。
实施本发明实施例需要获得所述网络流的信息,(例如大小、截止时间)以实行网络流的调度。网络流的信息可以通过修改用户空间的应用来获得,一些现有技术也有相关内容的介绍。然而,将网络流的信息传递至内核空间网络堆栈还是很具挑战的。现有技术并没有公开相关的内容。
在本发明的另一个实施例中,所述交换机具有Linux内核,用于发送网络流的交换机被设置为发送套接字并利用Linux内核的setsockopt设置每个数据包的mark,使mark包含所述网络流的大小及截止时间信息,并使用mark中的12位表示所述截止时间,用20位来表示所述大小。
由此,本实施例提供了一种能够将网络流信息传递至内核空间网络堆栈的交换机,无需对交换机进行硬件改动,也无需为速率仲裁设置复杂的控制面,并可反向兼容现有TCP/IP堆栈。
综合以上实施例可知,本发明提出的交换机可以在尽量使有截止时间的网络流在其截止时间前完成的同时让出更多的带宽给无截止时间网络流。本发明交换机仅需要在现有交换机的基础上进行软件的升级而不需对要进行硬件改动,也无需为速率仲裁设置复杂的控制面,并可反向兼容现有TCP/IP堆栈。
下面,详细说明本发明上述几个实施例中涉及公式的推导及计算过程。
首先建立系统模型。假设有所述系统包含L条链路,每条所述链路具有Clbps(bitsper second,每秒传输位数)的容量。整个系统中活跃的网络流的数量为S。在t时刻,网络流s的传输速率为xs(t)bps,还需传输的剩余数据大小用Ms(t)来表示。距离截止时间到来还剩的时间用δs(t)来表示。在发送数据的请求中,应用将截止时间信息传递给传输层。定义γs(t)=Ms(t)/δs(t)为网络流s在时刻t的期望速率,在下一个RTT(Round Trip Time,往返时间)的期望速率为
其中τs(t)是网络流s在t时刻的RTT。假定网络流s通过链路L(s)的一个固定组路由。对于链路l,使用yl来表示总的输入速率,yl=∑s∈S(l)xs,其中S(l)表示在链路l上传输的一组网络流。
最大程度地减少有截止时间网络流造成的影响是本发明的目的。在一个实施例中,没有选择使用有截止时间网络流的总的速率,而是用每包延迟来表示有截止时间网络流造成的影响。这是因为无截止时间网络流对每包延迟更敏感,特别是当有截止时间网络流在高优先级队列中时影响最大。
以最小化每包延迟的长期平均值为目标。用dl(yl)表示一个数据包在到达速率为yl的链路l上的延迟。对于网络流s,平均包延迟定义为∑l∈L(s)dl(yl)。链路l的延迟,dl(yl),是yl的函数,是链路l的总的到达速速率。dl(yl)是一个正的、凸的、递增的函数。定义目标方程为每个源的每包延迟的总和的时间平均。
其中,是一个L×1的向量。
为了稳定队列,需要每个源都控制其发送速率xs(t),使每条链路l的总的速率yl(t)=∑s∈S(l)xs(t)满足实际情况下,由于交换机中存在缓冲装置,暂时的过载也是允许的。因此我们将限制条件设为超过链路容量的网络流将受到惩罚。
为了使网络流能够在截止时间内完成,需要令传输速率大于等于所述期望速率,xs(t)-γs(t)≥0,用长期时间平均来放宽所述条件可以得到:
这个公式基本上在表达,对于每一个期望速率是γs(t)的网络流,所述传输速率xs(t)平均上讲要大于所述期望速率γs(t)以实现在截止时间前完成所述网络流。本发明对限制条件的放宽是基于实际中不存在存续时间无限长的网络流而做出的。
本发明的目标是导出最优源速率一个S×1的向量,来最小化长期每包延迟,同时让网络流能够在截止时间前完成。为此,本发明构建如下所述随机最小化问题来满足上述需求。
约束条件:xs(t)>0,yl(t)=∑s∈S(l)xs(t),
本发明利用李雅普诺夫优化框架(Lyapunov optimization framework)将所述最小化问题转换成一个凸问题,然后基于所述凸问题的最优解导出最优拥塞窗口更新方程。漂移加惩罚(Drift-plus-penalty)方法是李雅普诺夫优化的关键技术。漂移加惩罚方法在保持排队网络的稳定的同时最优化目标的时间平均(所述目标可以是,例如,每包延迟)。
接下来介绍如何利用漂移加惩罚方法将问题(4)转换为凸规划问题。在所述李雅普诺夫优化框架下,需要考虑以下几个方面:
1、所有链路的队列稳定性:首先定义L(t)为排队系统在t时刻的稳定性。所述L(t)在控制理论中被称为李雅普诺夫方程(Lyapunov function)。对于一个交换网络,本发明使用二次型李雅普诺夫方程:
李雅普诺夫漂移(Lyapunov drift)定义为两个连续时刻之间的差Δ(tk)=L(tk+1)-L(tk)。要获得一个稳定的排队系统,需要使李雅普诺夫方程漂移向负方向趋近于0。通过使用漂移加惩罚方法,本发明可以控制源的传输速率,最小化网络李雅普诺夫漂移的上限,并由此实现网络的稳定性。
2、截止时间约束条件:要解决公式(4)中截止时间约束条件,本发明将所述截止时间约束条件转换为虚拟队列。设网络流s在时刻t的虚拟队列为Zs(t),输入是所述期望速率,输出是实际速率。
要使所述虚拟队列稳定,需要:
类似于交换机的包队列,所述虚拟队列也可以通过最小化李雅普诺夫漂移来实现稳定性。现将所述虚拟队列一并进行考虑,所述李雅普诺夫方程变为
由于所述虚拟队列的输入γs(t)平均而言是小于所述输出xs(t)的,因此如果所述虚拟队列是稳定的,那么所述截止时间约束条件便即可满足。
3、最小化影响(每包延迟):上述两点都关于“漂移”,接下来本发明进一步用“惩罚”来实现本发明的目标,即最小化每包延迟。首先建立漂移加惩罚的表达式其中V是非负权重用于确保的时间平均任意接近最优解(在O(1/V)在内),相应的O(V)来平衡平均队列大小。通过最小化漂移加惩罚表达式的上限,可以最小化所述每包延迟的时间平均,并且使包队列和虚拟队列的网络保持稳定。
4、凸问题:最后,本发明要解决凸问题:
约束条件:yl(t)=∑s∈S(l)xs(t),
本发明将每一时刻t的长期(t→∞)随机延迟最小化问题(4)转换为漂移加惩罚最小化问题(7)。为了求出问题的解,本发明提出自适应源速率控制算法。
通过考虑最优解的属性以及上述问题的KKT条件(Karush-Kuhn-Tuckercondition),可以得出用于求解问题(7)最优解的初级算法。公式(8)可以解决队列系统的稳定问题,并可以最小化网络的整体每包延迟。
其中,λl(t)=dl′(yl(t))
每个网络流都根据公式(8)调整其传输速率。公式(8)可以重新写为:
其中,
然后可以导出最优拥塞窗口更新方程:
第一项(源):Θ(γs(t),xs(t)),其中xs(t)=Ws(t)/τs(t),是γs(t)的增函数,xs(t)的减函数。一个网络流的γs(t)值越大说明这个网络流越紧急,即它剩余要传的数据还很多和/或它的截止时间马上就要到了。这一项保证了越紧急的网络流抢夺资源的能力越强。
第二项(网络):∑l∈L(s)(Ql(t)+λl(t))是一条路径上链路的拥塞总和。如果某一链路处于拥塞状态,那么使用该链路的每个源的源速率都会降低以减小所述传输速率。这保证了网络流能够根据拥塞状况相应地做出反应。
依据上述第一项和第二项的相互配合,所述更新方程使得网络流既能在截止时间内完成又对其他网络流的影响最小。
在拥有公式(10)的基础上,现在来讨论实际算法设计。
上述第一项(源)可以从上层应用中获得。然而,获取上述第二项(网络)并不容易。由于链路代价λl(t)以及队列的长度Ql(t)的总和是依据路径而计算的,这需累计每一跳信息,因此无法从源处直接获得。可以将所述总和存储在数据包头的附加字段,并让每个交换机为每个数据包在所述附加字段增加并存储其自己的代价及队列长度。然而,现售交换机并不具有这个功能。为了实现本发明的目的,本发明采用现售交换机可用的功能,即ECN,来估计上述第二项(网络)。
首先关注每个网络流的总的队列长度Q。用F(0≤F≤1)来表示在最后一个数据包窗口中被标记的数据包的比例。F对每个数据包窗口都进行更新。DCTCP和D2TCP通过计算F来估计拥塞的程度,本发明进一步利用F来估计队列的长度。
本发明将DCN构架视为一个交换机。当前数据中心的拓扑结构使得构架的对分带宽很大。这将带宽的争夺推向了边缘交换机(假设负载平衡做得很好)。作为一个为数据中心设计的传输协议,经常在构架的出口交换机处发现瓶颈链路。连接瓶颈链路的交换机称为瓶颈交换机。本发明的估计策略将对瓶颈交换机的排队行为进行建模。
图4显示了网络流s如何基于F估计队列长度。假设ECN阈值为K,所述K是判断交换机是否处于拥塞状态的阈值。假设当前队列长度为Q,并且假设网络流s的最后窗口尺寸为Ws(t)。由ECN标记的网络流s的窗口Ws(t)中的数据包的部分在图中显示为白色。因此可以得到Fs(t)≈(Ql(t)-K)/Ws(t)。然后可以得到Ql(t)≈K+Fs(t)×Ws(t),本发明用此近似值作为每个网络流的总的队列长度。
链路代价代表了具体链路的拥塞程度,它通常通过M/M/1延迟公式进行估计。d(y)=1/(C-y)。因此,链路代价与延迟方程的倒数成正比d′(y)=(C-y)-2。到达速率可以在源处直接通过两个连续的队列进行估计
基于上述估计以及公式(10),实际的拥塞窗口更新方程可描述为:
其中
有些网络流可能需要在截止时间到来之前就被丢弃,从而保证其他的网络流可以在截止时间内完成。选择丢弃掉哪些网络流是一个NP难问题。本发明提出的一个方法是丢弃掉那些肯定无法在截止时间内完成的网络流。具体的,当一个网络流需要的剩余速率大于所述链路的容量,那么这个网络流将被丢弃。Fs(t)>maxl∈L(s)Cl,其中Zs(t)是每个网络流的虚拟队列,它存储着实际速率和期望速率之间的累积差。Zs(t)因此是该网络流的过去性能指标。要满足这个条件意味着即使是最大链路容量也不够网络流在截止时间内完成。早点终止这些网络流可以让渡更多的机会给其他的网络流。
本发明需要获得网络流信息(例如:大小,截止时间)以实行网络流的调度。网络流的信息可以通过修改用户空间的应用来获得,一些现有技术也有相关内容的介绍。然而,将网络流信息传递至内核空间网络堆栈还是很具挑战的。现有技术并没有公开相关内容。
为了解决这个问题,本发明通过发送套接字并利用setsockopt设置每个数据包的mark。在Linux内核中,mark是sk_buff结构的一个无符号的32位整数变量。通过改变mark的值可以将每网络流信息传送给内核。考虑到mark只有32位,可以使用12位来表示截止时间(单位:ms),剩下的20位来表示大小(单位:KB)。因此,mark最大可表示1GB的大小和4s的截止时间。这已经可以满足绝大多数数据中心应用的需求了。
包标注模块用于维持每网络流状态并在端主机处给数据包标注优先级。本发明的一个实施例在Linux内核模块上实现。包标注模块在TX数据路径NetfilterLocal_Out处设置挂钩,位于TCP/IP堆栈和TC之间。
包标注操作网络流程如下:1)当一个出站包被Netfilter挂钩拦截下来,它将被导入基于哈希的网络流表。2)网络流表中的每个网络流具有5个元组,分别是src IP,dst IP,src port,dst port和protocol.对每个出站包都进行鉴定,看它属于哪一个网络流(或者新建一个网络流条目)并更新每网络流状态(通过mark提取有截止时间网络流的网络流大小及截止时间信息)。3)基于网络流信息,相应地更改IP头的DSCP域以使数据包在交换机上进入不同的队列。
如今的NIC(Network Interface Card,网络接口卡)使用很多卸载机制来降低CPU(Central Processing Unit,中央处理器)的开支。当使用LSO(Large SegmentationOffloading,大段卸载机制)时,包标注模块可能不能够为每个独立的具有最大传输单元大小的数据包(MTU-sized packet)正确地设定DSCP值。为了评估因此而带来的影响,本申请测量1G试验床中有效载荷数据的TCP段的长度。平均段长度仅为7.2KB,这对包标注的影响非常小。我们把它归因为具有小带宽延迟积(BDP,bandwidth delay product)的数据中心网络TCP窗口尺寸较小。将包标注模块设置在NIC模块可以彻底避免这个影响。
本发明的一个实施例采用上述最优拥塞窗口更新方法处理有截止时间的网络流,同时在端主机对无截止时间的网络流采用DCTCP。在实施DCTCP时,在Linux内核2.6.38.3下使用DCTCP包。将上述最优拥塞窗口更新方法作为接收方Netfilter内核模块。该模块拦截有截止时间网络流的TCP包,依据上述方法更改接收窗口大小。这样的做法避免了为不同操作系统的网络堆栈打补丁。
本发明依据RTT估计值和被ECN标记的数据包的比例更新拥塞窗口。因此,获得准确的RTT对本发明是非常重要的。由于由接收端向发送端的网络流量可能不够,我们只能通过使用TCP时间戳选项来获取RTT。然而,现在的TCP时间戳选项都是毫秒级别的,达不到数据中心网络的要求。因此,我们将时间戳修改为微秒级的。
下面,详细介绍对本发明上述几个实施例进行仿真的实验结果。
我们使用试验床实验和ns-3离散事件模拟器进行模拟。
试验床实验主要从微观视角对本发明的性能进行测试。主要目的是显示本发明是如何工作的,以及显示本发明的运行结果。
首先建立试验床,包括16个服务器,每个服务器都具有Intel 4核2.8GHz处理器,8G内存。所述服务器运行Debian 6.0 64位Linux2.6.38.3内核并搭载BroadcomBCM5719NetXtreme Gigabit Ethernet NICs.NIC卸载机制被设置为默认选项以降低CPU的负荷。所有服务器连接至具有4MB共享内存的Pronto 329548-port Gigabit Ethernet交换机。所述交换机支持ECN基础RTT为~100us。
然后建立用户/服务器模型以产生网络流量,并在应用层测量FCT(flowcompletion time,网络流完成时间)。在一个服务器上运行的用户应用向其他15个服务器发出数据请求。所述请求是基于泊松过程产生的动态工作负载。
本发明只需要刚好够用的带宽就可以让有截止时间网络流在截止时间内完成。因此,本发明可以为无截止时间网络流让出更多的带宽。为了证明这一点,我们用图5来展示本发明的试验床实验。在这个实验中,4个网络流共享1Gbps链路。可以观测到,有截止时间网络流如预期的一样正常地运行着,并且刚好在截止时间到来前结束。成功地为其他网络流节省了带宽。然而,对DCTCP,可以看到网络流1和3没能在截止时间内完成,他们分别延迟了21ms和13ms,而网络流2和网络流4又过多的占用带宽使得他们相对其截止时间早早地就完成了。pFabric虽然都在截止时间内完成,但是占用了全部的带宽。
根据剩余速率尽早的丢弃网络流可以把带宽让出给其他的网络流,让其他的网络流能够在截止时间前完成。图6示出用于实现网络流的丢弃的3个方案。1)根据Z(t)丢弃网络流(当Fs(t)>maxl∈L(s)Cl时放弃所述网络流),2)根据期望速率(当γs(t)>maxl∈L(s)Cl时丢弃所述网络流),3)永不放弃。可以看到方案1的整体效果比较好,虽然方案1丢弃的网络流比方案2多,但是错过截止时间的网络流的数目相对较少(被丢弃的网络流也算入错过截止时间的网络流)。方案2丢弃网络流的条件比较高,这导致有一些已无法在截止时间内完成的网络流还在传送数据,浪费带宽。
接下来使用常见的DCN拓扑结构下的DCN工作负载对本发明进行模拟仿真。测试本发明在瓶颈场景中网络流完成度、饥饿、网络流量变化这几个方面的极限值。
首先用ns-3模拟器实施大规模包级别仿真,并利用fnss生成不同的场景。如图7所示,具有叶脊网络拓扑(spine-and-leaf fabric)的144个服务器。这是DCNs产品的的常见拓扑结构。包括4个核心交换机,9个架顶式交换机(ToR,Top-of-Rack),每个所述架顶式交换机有16个服务器。这是一个多跳、多瓶颈设置用以完成我们的评估。服务器至架顶式交换机链路设为10G。架顶式交换机的上行链路为40G。
如图8所示,在这个测试中使用了两个广泛使用的DCN网络流量工作负载:一个是网络搜索工作负载,一个是数据挖掘工作负载。在这些工作负载中,超过一半的网络流都小于100KB。这体现的是真实DCN网络流量的状况。当然也会存在一些情况倾向于大的尺寸。为了深入研究,我们生成了一个工作负载“Long Flow”.在这个工作负载中,网络流的尺寸均匀分布在1KB到10MB之间.这表示有一半的网络流比5MB大。
下面将本发明与pFabric做一个对比。pFabric是最新的从零开始(cleanslate)的数据中心传输。仿真参数设定如下,并按照EDF进行调度。队列长度为76包(2倍BDP(bandwidth delay product,带宽延迟积)),初始窗口大小为38包(BDP)。RTO最小值为1ms。每次仿真持续60秒(虚拟时间)。
由图9可见,pFabric的有截止时间的网络流在早于其截止时间很多时就已经完成了。为了易于比较,可以计算有截止时间的网络流的完成时间与其截止时间的比值。通过对pFabric和本发明中已经完成了的有截止时间的网络流绘制所述比值的累积分布函数(Cumulative Distribution Function),可以看到,对于pFabric而言,几乎所有网络流都在其各自截止时间一半之前就完成了。这意味着它们占据了超过他们所必须的带宽,而这些多占了的带宽本是可以用于那些无截止时间的网络流的。而对本发明而言,几乎所有的网络流都在其截止时间快到达(超过80%)时完成。如果进一步将截止时间减少到10ms,可以看到pFabric的曲线是有所改善的,但是仍然有超过50%的网络流在进行到截止时间的60%之前就已经结束。
总之,现存的调度算法,例如pFabric,在处理有截止时间的网络流时过于激进,从而使这些有截止时间的网络流都在其截止时间到来之前很早就完成了,它们不必要地占据了过多的带宽。而这些带宽本事可以用来优化无截止时间的网络流的,特别是优化那些短的无截止时间网络流,可以提速。本发明可以在保证有截止时间的网络流在其截止时间内完成的同时还可以为无截止时间的网络流留出更多的带宽。
以上所有仿真都是假定完全对分带宽网络的基础上进行的,这个能够满足公式(11)中估计网络项在一个交换机的假定。为了计算网络项,我们有意通过使1(目的地架顶式交换机),2(源/目的地架顶式交换机),3(源/目的地架顶式交换机和核)过载的方式创造交叉架有截止时间网络流的瓶颈情景。我们获得本发明的真实队列长度和在模拟器中的估计队列长度。
在图10中,各瓶颈链路具有不同的负载。我们定义平均队列估计误差为和平均错过截止时间率。可以观察到,当设定偏离我们的假设时(包括瓶颈的负载和数量都对估计的准确度产生负影响),队列估计误差增大。然而,即便如此,本发明仍然能够保证在100%负载2条瓶颈线路时<10%的错过率。这是因为,剩余速率累积,源项会提升发送率,即使在网络项不准确时。
综上所述,本发明实施例提供了一种网络中拥塞窗口的调整方法、一种网络拥塞控制方法和一种交换机。实施本发明实施例可以让有截止时间的网络流让出更多的带宽给无截止时间的网络流。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (17)
1.一种网络中拥塞窗口的调整方法,所述网络包含至少一个设备和至少一条链路,所述设备向所述链路发送有截止时间的网络流,其特征在于,所述调整方法根据公式(a)调整设备在下一时刻的拥塞窗口:
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价。
2.根据权利要求1所述的方法,其特征在于:所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
3.根据权利要求2所述的方法,其特征在于:当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
4.根据权利要求3所述方法,其特征在于:所述设备从所述链路接收数据包,接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息。
5.一种网络拥塞控制方法,其特征在于,所述网络包含设备以及链路,所述设备向所述链路发送有截止时间的网络流,所述网络流包含数据包,所述网络拥塞控制方法包括步骤:
S1、判断所述网络流能否在其截止时间前完成,若能,则循环执行步骤S2和S3直至完成所述网络流,若不能,则丢弃所述网络流;
S2、根据公式(a)调整设备在下一时刻的拥塞窗口,
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价;
S3、令所述设备在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。
6.根据权利要求5所述的网络拥塞控制方法,其特征在于,所述设备支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈l(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
7.根据权利要求5所述的拥塞控制方法,其特征在于,当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
8.根据权利要求5所述的拥塞控制方法,其特征在于,所述设备从所述链路接收数据包,所述接收到的数据包中携带所述总的队列长度和所述总的链路代价的信息。
9.根据权利要求5所述的拥塞控制方法,其特征在于,所述步骤S1进一步包括:若所述网络流的虚拟队列的队列长度大于所述链路的容量,则判断所述网络流不能在其截止时间前完成。
10.根据权利要求5所述的拥塞控制方法,其特征在于,所述步骤S1进一步包括:若所述网络流的期望速率大于所述链路的容量时,则判断所述网络流不能在其截止时间前完成。
11.一种交换机,所述交换机依据拥塞窗口向链路发送有截止时间的网络流,所述网络流包含数据包,其特征在于:所述交换机包含:
判断模块,用于判断所述网络流能否在其截止时间前完成;
调整模块,用于根据公式(a)调整设备在下一时刻的拥塞窗口,
其中,
s表示所述网络流,t表示当前时刻,τs(t)表示当前时刻所述网络流的往返时间,t+τs(t)表示下一时刻,Ws(t)表示当前时刻的拥塞窗口,Ws(t+τs(t))表示所述下一时刻的拥塞窗口,L(s)表示所述链路,γs(t)表示当前时刻所述网络流的期望速率,Zs(t)表示当前时刻所述网络流的虚拟队列,Ms(t)表示当前时刻要完成所述网络流还需要传输的剩余数据大小,δs(t)表示所述网络流在当前时刻距离截止时间到来还剩余的时间,∑l∈L(s)Ql(t)表示当前时刻所述链路上的总的队列长度,∑l∈L(s)λl(t)表示当前时刻所述链路的总的链路代价;和
发送模块,用于在下一时刻依据所述下一时刻的拥塞窗口向所述链路发送数据包。
12.根据权利要求11所述的交换机,其特征在于,所述交换机支持显示拥塞指示,当前时刻的所述总的队列长度由公式(b)计算得到:
∑l∈L(s)Ql(t)≈K+Fs(t)×Ws(t) 公式(b)
其中,K为所述显示拥塞指示的阈值,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t)表示当前时刻的拥塞窗口。
13.根据权利要求12所述的交换机,其特征在于,当前时刻的所述总的链路代价由公式(c)计算得到:
∑l∈L(s)λl(t)=C-(Fs(t)Ws(t)-Fs(t-τs(t))Ws(t-τs(t))-2)/τs(t) 公式(c)
其中C表示所述链路的容量,Fs(t)表示根据上一时刻拥塞窗口发送的数据包中显示拥塞指示有标记的数据包的比例,Fs(t-τs(t))表示根据再上一个时刻拥塞窗口发送的数据包中所述显示拥塞指示有标记的数据包的比例,Ws(t-τs(t))表示上一时刻的拥塞窗口。
14.根据权利要求11所述的交换机,其特征在于,若所述网络流的虚拟队列的队列长度大于所述链路的容量,所述判断模块判定所述网络流无法在其截止时间前完成。
15.根据权利要求11所述的交换机,其特征在于,若所述网络流的期望速率大于所述链路的容量,所述判断模块判定所述网络流无法在其截止时间前完成。
16.根据权利要求11所述的交换机,其特征在于,所述交换机在其发送的每个所述数据包中添加所述交换机处的队列长度和链路代价。
17.根据权利要求11所述的交换机,其特征在于,所述交换机通过发送套接字并利用setsockopt设置每个数据包的mark将所述网络流的信息传递至内核空间网络堆栈。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639105.0A CN106027407B (zh) | 2016-08-05 | 2016-08-05 | 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610639105.0A CN106027407B (zh) | 2016-08-05 | 2016-08-05 | 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027407A CN106027407A (zh) | 2016-10-12 |
CN106027407B true CN106027407B (zh) | 2018-12-28 |
Family
ID=57133868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610639105.0A Active CN106027407B (zh) | 2016-08-05 | 2016-08-05 | 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027407B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603432B (zh) * | 2016-12-23 | 2019-09-17 | 浙江大华技术股份有限公司 | 一种报警网络的网络拥塞控制方法及装置 |
CN108809858B (zh) * | 2017-04-28 | 2020-11-10 | 华为技术有限公司 | 网络拥塞控制方法、设备及系统 |
CN108809859A (zh) * | 2018-07-05 | 2018-11-13 | 清华大学 | 一种面向数据包截止时间的传输层控制方法 |
CN109039818B (zh) * | 2018-08-08 | 2022-03-04 | 郑州云海信息技术有限公司 | 一种tor与节点间aoc链路稳定性的测试方法 |
CN109656703B (zh) * | 2018-12-19 | 2022-09-30 | 重庆邮电大学 | 一种移动边缘计算辅助车辆任务卸载方法 |
CN111132195B (zh) * | 2019-12-19 | 2022-05-03 | 京信网络系统股份有限公司 | 数据倒换方法、装置、计算机设备和存储介质 |
CN112929295B (zh) * | 2021-01-22 | 2022-07-12 | 宁波大学 | 一种微突发抑制的动态标记阈值缓存管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763385A (zh) * | 2010-02-26 | 2012-10-31 | 微软公司 | 针对数据中心环境优化的通信输送 |
US8948009B1 (en) * | 2012-05-15 | 2015-02-03 | Google Inc. | Deadline aware network protocol |
CN105827540A (zh) * | 2016-05-30 | 2016-08-03 | 清华大学深圳研究生院 | 一种基于优先级的数据中心网络传输层数据流传输方法 |
-
2016
- 2016-08-05 CN CN201610639105.0A patent/CN106027407B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102763385A (zh) * | 2010-02-26 | 2012-10-31 | 微软公司 | 针对数据中心环境优化的通信输送 |
US8948009B1 (en) * | 2012-05-15 | 2015-02-03 | Google Inc. | Deadline aware network protocol |
CN105827540A (zh) * | 2016-05-30 | 2016-08-03 | 清华大学深圳研究生院 | 一种基于优先级的数据中心网络传输层数据流传输方法 |
Non-Patent Citations (2)
Title |
---|
"Deadline-aware datacenter tcp (d2tcp)";Balajee Vamanan,等;《ACM SIGCOMM Computer Communication Review - Special october issue SIGCOMM "12,Volume 42 Issue 4》;20121031;全文 * |
"Towards minimal-delay deadline-driven data center TCP";Li Chen,等;《HotNets-XII Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks》;20131122;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106027407A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106027407B (zh) | 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机 | |
Chen et al. | Scheduling mix-flows in commodity datacenters with karuna | |
US20200296049A1 (en) | Automatic rate limiting based on explicit network congestion notification in smart network interface card | |
CN106302227A (zh) | 混合网络流调度方法和交换机 | |
US20180145933A1 (en) | Programmable Broadband Gateway Hierarchical Output Queueing | |
Bai et al. | {Information-Agnostic} flow scheduling for commodity data centers | |
Rojas-Cessa et al. | Schemes for fast transmission of flows in data center networks | |
CN109120544B (zh) | 一种数据中心网络中基于主机端流量调度的传输控制方法 | |
CN103477596B (zh) | 用于减小从绑定通信链路中接收的包的时间差异的方法与系统 | |
US20110007631A1 (en) | Network Communication | |
CN105025524B (zh) | 一种多路径并行传输数据调度方法及传输控制协议 | |
CN112041826B (zh) | 用于网络接口卡的细粒度业务整形分流 | |
US8570864B2 (en) | Kernel awareness of physical environment | |
US8462815B2 (en) | Accurate measurement of packet size in cut-through mode | |
Wu et al. | Network congestion avoidance through packet-chaining reservation | |
Jiang et al. | Copa+: Analysis and improvement of the delay-based congestion control algorithm copa | |
CN114172849A (zh) | 一种基于博弈论的确定性流量整形方法 | |
KR20120055946A (ko) | 공평한 대역 할당 기반 패킷 스케줄링 방법 및 장치 | |
Zhu et al. | An efficient priority-driven congestion control algorithm for data center networks | |
Laki et al. | Core-stateless forwarding with QoS revisited: Decoupling delay and bandwidth requirements | |
JP2015061126A (ja) | トラフィック制御装置 | |
Zhang et al. | More load, more differentiation—Let more flows finish before deadline in data center networks | |
Briscoe | The native AQM for L4S traffic | |
Pan et al. | Improvement of BBRv2 Congestion Control Algorithm Based on Flow‐aware ECN | |
Yang et al. | TCCC: a throughput consistency congestion control algorithm for MPTCP in mixed transmission of long and short flows |
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 |