一种基于优先级的数据中心网络传输层数据流传输方法

文档序号:10473636阅读:793来源:国知局
一种基于优先级的数据中心网络传输层数据流传输方法
【专利摘要】本发明公开一种基于优先级的数据中心网络传输层数据流传输方法,包括如下步骤:S1、将数据中心网络正在传输的数据流分类为小数据流和大数据流;S2、计算小数据流优先级数pri;S3、计算小数据流权重w;S4、计算当前网络拥塞程度α;S5、判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7;S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小;S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小;S8、按更新后的窗口发送数据流。本发明的基于优先级的数据中心网络传输层数据流传输方法能够在不要求应用层提示关于数据流大小等参数的前提下减小小数据流的传输延迟的同时,还能保持网络整体的高吞吐率。
【专利说明】
-种基于优先级的数据中心网络传输层数据流传输方法
技术领域
[0001] 本发明属于计算机网络领域,特别是设及基于优先级的数据中屯、网络传输层数据 流传输方法。
【背景技术】
[0002] 随着信息技术不断渗透到生产生活的各个领列入域,集中处理大规模数据的需求 变得越来越明显,所W人们能提出了数据中屯、的概念。所谓数据中屯、,就是把若干台主机 (有时甚至是数百万台主机)当作一个整体来进行数据存储和处理,对外表现为一台功能更 为强大的主机来向用户提供服务。数据中屯、包括两个部分,即用于数据存储和处理的部分 和用于数据通信的部分,其中用于数据存储和处理的部分就是数据中屯、中的各台主机,而 用于数据通信的部分则由数据中屯、中的交换机和路由器构成。数据中屯、中用于数据通信的 部分称为数据中屯、网络。数据中屯、网络作为数据中屯、的神经系统,承担着各台主机之间通 信的重要任务,对数据中屯、的总体性能至关重要。而数据中屯、网络相比于普通的互联网有 自己的特点,比如数据中屯、网络中一个主机更倾向于和自己的相邻主机进行通信,由于用 户希望数据中屯、能够立即对用户请求做出响应,因此数据中屯、网络对实时流的传输延迟非 常敏感等等。此外,数据中屯、的拥有者大多为商业公司,因此数据中屯、的拥有者往往对数据 中屯、的吞吐率也有一定的要求。
[0003] 由于数据中屯、网络在实际生产生活中的重要作用,研究者们针对优化数据中屯、网 络各方面的性能做了大量的工作,其中一个受到广泛认可的工作是发表于2010年SIGCOMM 的DCTCPeDCTCP要求数据中屯、网络的交换机必须支持ECN化xplicit Congestion Notification)机制。事先为网络中的每一台交换机都配置一个阔值K,当交换机的转发队 列长度超过了阔值K,新到达的数据包就会被标记为CE(Congestion Experienced)。在 DCTCP中,发送端会为每一个数据流维护一个估计量a用W度量当前网络的拥塞程度。而a的 值就是上一个往返延时RTT(Round-化ip Time)中发送的数据包中被网络中的交换机标记 为CE的数据包所占的比例的平滑值。具体而言,a的值可计算为:a^(l-g)Xa+gXF,其中,F 是上一个RTT中被标记为CE的数据包所占的比例,而g是最新的样本值F所占的权重。每当接 收端接收到了 一个被标记为CE的数据包,接收端都会通过ACK包将运一信息及时反馈给发 送端,因此发送端能够比较准确地了解网络中的拥塞情况。而当发送端了解到网络中发生 了拥塞W后,它将会减小它自己的拥塞窗口如下:cwnd户cwnd X (l-a/2)。
[0004] DCTCP通过量化当前网络的拥塞程度,当检测到拥塞的时候根据网络拥塞程度决 定拥塞窗口减小量的大小,而不是像TCP化W Reno-样一旦检测到拥塞就立即将拥塞窗口 减小为原来的1/2,因此在提高网络的吞吐率和减小数据流的传输延迟方面取得了显著的 效果。
[0005] 人们通过观察商用数据中屯、网络中数据流量的特点发现在商用数据中屯、网络中, 80% W上的数据流的大小小于200KB,而数据中屯、中大部分的流量都来自于少数几个大数 据流。同时小数据流往往来自与用户交互的应用,因而对传输延迟非常敏感,相比之下,大 数据流往往来自数据中屯、内部的数据备份和索引计算等操作,因而对传输延迟要求不高, 但是要求有较高的吞吐率。但是在实际的数据中屯、网络中,大数据流会占据交换机的缓冲 区,导致小数据流经历了较高的排队延迟。而DCTCP在设计过程中没有考虑到大数据流和小 数据流的传输特点,因此不利于减小小数据流的传输延迟。为了解决运一问题,2012年的 SIGCOMM上发表的D2TCP提出采用伽马函数来调节数据流的拥塞窗口大小。D2TCP要求应用程 序在启动一个数据流的时候向传输层指定运个流需要传输的数据量W及运个数据流需要 在多长时间内传输完成。假设对于一个数据流,它当前剩余的数据量为B,拥塞窗口最大情 况下为W,则可W计算出来它在传统的TCP(比如TCP New Reno)下传输完运个流所需要的时 间为T。。而由于应用程序指定的运个数据流的完成时间是已知的,所W也可W知道到运个 数据流的截止时间(deadline)还剩余多少时间,把运段时间记为D。于是可W为运个流计算 出一个变量d = Tc/D。如果当前为运个数据流分配的带宽可W在它的截止时间将运个流传 输完成,则Tc<D,所Wd<l;反之,如果当前为运个流分配的带宽不能在它的截止时间之前 完成,则Tc>D,所Wd> 1DD2TCP依然采用了DCTCP中提出的估计量a,即把上一个RTT中被标 记为CE的数据包所占的比例的平滑值作为当前网络的拥塞程度的估计量。当检测到拥塞的 时候,发送端就会调节它的拥塞窗口如下:cwnd^cwnd X (1 -ad/2)。令P = (jd,则对于d< 1、d = 1和d〉l的情况P的值的变化情况如图1所示。当a的值一定时,一个数据流W当前的带宽传输 完成数据所需时间和它的剩余传输时间的比值越小,则说明它满足它的截止时间要求的压 力越小,因此它的拥塞窗口的减小量就越大,从而可W将更多的带宽留出来分配给更需要 带宽的数据流。若网络的拥塞程度不断加剧,即a的值不断增大,则从图1可W看出,无论d取 何值,P的值都会随着a的值趋于1而迅速接近1,对应地,所有数据流都会将它们的拥塞窗口 减半,因此能够有效地缓解拥塞。
[0006] 通过指定数据流的截止时间,D2TCP能够为不同的数据流区分不同的优先级,并依 据数据流的优先级来调节数据流的拥塞窗口大小。但是D 2TCP存在两个方面的不足。首先, D2TCP要求应用程序在启动一个数据流的时候指定运个数据流的大小和截止时间,而运些 信息有时候是很难得到的。比如一个应用程序要传输的数据是根据需要实时产生的,所W 应用程序本身并不知道需要传输的数据量的大小。而作为一个程序员,为了从网络获得更 好的带宽,他可能会在启动一个数据流的时候故意给运个数据流指定一个比较近的截止时 间,尽管实际上他并不需要运么近的截止时间。当有很多的应用程序都故意给它们的数据 流指定了一个不合理的截止时间的时候D 2TCP的性能就会受到严重的影响。因此让应用程 序给传输层指定一些重要的参数并不是一个明智的选择。另外让应用程序给传输层指定一 些参数还会加重程序员的负担,而且运违背了传输层对应用层透明的原则。D 2TCP的第二个 缺点是它在某些情况下并不能有效区分不同的数据流优先级。比如对于第一个数据流有Tc =IOms,D = 9ms,而对于第二个数据流有Tc = IOOms,D = 90ms,则D2TCP会认为对于运两个流 都有d = Tc/D= 1.1,因此运两个流将会获得相同的优先级,运有可能会导致第一个数据流 错过它的截止时间。而在运种情况下第二个数据流的拥塞窗口有很大的调节空间,因此可 W优先把带宽分配给第一个数据流W保证第一个数据流能够满足其截止时间要求。对于 D2TCP的运两个方面的不足,后来相继有工作进行了进一步的修正。
[0007] 对D2TCP的第一个不足进行修正的方案是在2013年的INFOCOM上发表的L 2DCTd L化CT提出使用一种自适应的方法来给不同的数据流区分不同的优先级。W往的研究表明, 在数据中屯、中对传输延迟敏感的数据流的大小一般小于200KB,所WL2DCT提出当一个数据 流启动的时候把它当作一个小数据流,并给它赋予权重W。= Wmax = 2.5。当运个数据流的传 输的数据量超过200KBW后开始怀疑它可能是一个大数据流,所W逐渐减小它的权重,具体 而言,随着运个数据流传输的数据量从200KB增大到IMB,它的权重将会从2.5减小到0.125。 当它传输的数据量大于IMBW后就认为运个流是一个大数据流,因此把它的权重固定为Wc =Wmin = O. 125。根据数据数据流的权重Wg,为它确定两个量incr和deer如下:

,其中a依然是DCTCP中用于表示网络拥塞程度的估计量。然后,如果网络中没有 发生拥塞,则增大数据流的拥塞窗口如下:ewnd^ewnd+k。所W大数据流的拥塞窗口每个 RTT的增大量为0.05,而小数据流的拥塞窗口每个RlT的增大量为1,因此在拥塞避免阶段小 数据流能够分配到更多的带宽。当网络中发生拥塞的时候数据流将会减小它的拥塞窗口如 下:cwnd^cwndX(l-decr/2)。从W上发生拥塞和没有发生拥塞的情况下数据流的拥塞窗 口的变化情况可W看出,。DCT的设计思路是让小数据流的拥塞窗口增大得快而减小得慢, 大数据流则正好相反,也就是在TCP的"加法增加乘法减小"的基本框架下给小数据流赋予 尽可能高的优先级。运种方案不要求应用层向传输层指定诸如数据流的大小和截止时间等 参数,因而传输层对于应用程序依然是透明的。实验证明运种方案在减小小数据流的平均 完成时间方面性能确实非常优越,但同时大数据流的传输效率也受到了极大的影响,因为 大数据流在遇到拥塞的时候其拥塞窗口减小非常剧烈,而当网络中没有拥塞的时候其拥塞 窗口大小则增大得非常缓慢,运导致大数据流不能充分利用网络中的可用带宽。
[0008] D2TCP的第二个不足是当有若干个数据流的截止时间不同但是d = Tc/D的值相同的 时候,D2TCP将无法有效区分它们的优先级。针对运一不足,发表于2015年INFOCOM的Lro提 出了一个修正的方案。LTO有如下两个设计目标:一个具有更近的截止时间的数据流应该分 配到更多的带宽,因而具有更高的传输优先级;当网络负荷增大的时候,具有不同传输截止 时间的数据流的优先级之间的差别应该变大,因此它们的传输速率增大的速率之间的差别 也应该变得更加明显。
[0009] 为了实现W上两个设计目标,LPD首先选定一个参数tmax,运个参数是从当前时刻 到一个数据流的截止时间的时间长度的可能最大值。和之前的方案一样,a是当前网络的拥 塞程度的估计量。对于一个数据流,首先计算出一个惩罚变量f
痒中t是从当
前时刻到运个数据流的截止时间的时间长度。当没有检测到拥塞的时候,发送端就会增大 它的拥塞窗口为ewnd^ewnd+ (1 -f),所W -个数据流的截止时间越近,f的值越小,所W它 的拥塞窗口的增大量就越大,但是运个增大量的最大值依然为1,即不超过传统的TCP中一 AMr心'的增大量。当检测到拥塞的时候,发送端就会减小它的拥塞窗口为 君此一个数据流的截止时间越近,遇到拥塞时它的拥塞窗口减小量越 小。运两个机制能够相互补充能够保证给截止时间比较近的数据流分配更大的带宽。尽管 LTO克服了先前的方案的一些缺点,但是它本身仍然存在一些不足,其中最显著的问题就是 它要求人工配置一个参数tmax。因为在不同的数据中屯、中截止时间的变化范围可能差别会 很大,所W需要为不同的数据中屯、单独配置一个Uax值,而为了配置运个参数,往往需要对 数据中屯、的流量特征有一个比较好的了解。限于数据中屯、维护人员的能力水平,运有时候 是很难做到的。
[0010] W上方案从不同的角度对数据中屯、网络中数据流的传输进行了优化,但是依然存 在很多的改进空间。

【发明内容】

[0011] 本发明的目的是在现有技术方案的基础上对数据中屯、网络的传输层协议进行改 进,提出一种在数据中屯、网络中减小小数据流的传输延迟同时能够保证网络的高吞吐率的 传输层协议,解决现有技术中在减小小数据流的传输延迟的同时不能够兼顾大数据流的吞 吐率的问题。
[0012] 为了解决上述问题,本发明采用W下技术方案:
[0013] 本发明首先提出一种基于优先级的数据中屯、网络传输层数据流传输方法,所述数 据中屯、网络的交换机支持ECN机制,该方法包括如下步骤:
[0014] S1、将数据中屯、网络中正在传输的数据流分类为小数据流和大数据流;
[0015] S2、计算小数据流优先级数pri;
[0016] S3、计算小数据流权重W;
[0017] S4、计算当前网络拥塞程度a;
[0018] S5、判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7;
[0019] S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小;
[0020] S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小;
[0021 ] S8、按更新后的窗口发送数据流。
[0022] 优选地,所述步骤Sl采用启发式的算法对数据流进行分类:当一个数据流刚开始 启动的时候,将其视为一个小数据流;当一个数据流传输的数据量超过预设的阔值M的时 候,运个数据流就会被归类为一个大数据流。
[0023] 优选地,所述步骤S2中计算小数据流优先级数pri的方法为:假设它传输完成的数 据量为m,则它的优先级数pri为:
[0024]
,其中,M为预设的数据流的阔值,即一个数据流传输完成的数据量一旦超 过M就会被归类成为一个大数据流;所述优先级数pri的取值范围是[0,1];
[0025] 所述步骤S3中计算小数据流权重W的方法为:
[00%] w^pri+1,其中,W是小数据流的权重,pri是运个小数据流的优先级数,权重W的取 值范围是[1,2]。
[0027]优选地,所述步骤S6采用伽马函数来减小数据流的拥塞窗口大小,当检测到当前 网络拥塞的时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小:
[002引 cwnd^cwndX(lXaV2),其中,cwnd为网络拥塞窗口,日为当前网络拥塞程度;
[0029] 对于大数据流来说,令T <1;对于小数据流来说,令T =W,W为小数据流的权重。
[0030] 优选地,所述步骤S7中增大数据流拥塞程度窗口的大小方法为:
[0031 ]大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
[0032] cwnd^cwnd+1,cwnd 为网络拥塞窗口;
[0033] 小数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
[0034] cwnd^cwnd+w,其中,cwnd为网络拥塞窗口,W是该小数据流的权重。
[0035] 本发明还提供一种包含上述任一项所述的基于优先级的数据中屯、网络传输层数 据流传输方法的数据中屯、网络,所述数据中屯、网络包括数据中屯、内连接计算主机的路由器 和交换机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发 送端主机和接收端主机包含网络协议找;所述协议找包含五层结构,运五层结构从下到上 分别为物理层、数据链路层、网络层、传输层和应用层;其中,所述发送端主机的传输层还包 括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块 和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。
[0036] 优选地,所述数据流分类模块采用启发式的算法对数据流进行分类:当一个数据 流刚开始启动的时候,将运一数据流归类为一个小数据流;一旦数据流传输的数据量超过 了阔值M=200KB,数据流分类模块就会将运个数据流归类为一个大数据流。
[0037] 优选地,所述优先级数和权重计算模块用来计算小数据流的优先级数pri和权重 W;
[0038] 对于一个小数据流,其优先级数pri为:
[0039]
庚中,m是运个数据流已经传输完成的数据量,M是预设的数据流的阔值, 也是一个小数据流已经传输完成数据量的上限,一个小数据流优先级数的取值范围为[0, 1];
[0040] 其权重W为:
[0041 ] w(pri) = 1.0+pri,其中,pri为一个小数据流的优先级数。
[0042] 优选地,所述拥塞窗口增大模块用来增大大数据流和小数据流的拥塞窗口大小;
[0043] 大数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
[0044] cwnd^cwnd+1,cwnd 为网络拥塞窗口;
[0045] 小数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
[0046] cwnd^cwnd+w,其中,cwnd为网络拥塞窗口,W是该小数据流的权重。
[0047] 优选地,所述拥塞窗口减小模块用来减小大数据流和小数据流的拥塞窗口大小; [004引减小大数据流的拥塞窗口大小的方法为:
[0049] cwnd^cwndX (1-日日'12日/2),cwnd为网络拥塞窗口;
[0050] 减小小数据流的拥塞窗口大小的方法为:
[0051 ] cwnd^cwndX (1-日"/2),其中,cwnd为网络拥塞窗口,W是该小数据流的权重。
[0052] 本发明的有益效果是:
[0053] 本发明的基于优先级的数据中屯、网络传输层数据流传输方法将数据流分成大数 据流和小数据流两大类,并在小数据流内部划分不同的优先级,计算小数据流的优先级数 和权重,同时根据当前网络的拥塞程度,动态调节数据流拥塞程度窗口的大小,能够在不要 求应用层提示关于数据流大小等的参数的前提下减小小数据流的传输延迟的同时,还能保 持网络整体的高吞吐率。
[0054] 本发明的包含基于优先级的数据中屯、网络传输层协议数据流传输方法的数据中 屯、网络,只需要对数据中屯、中主机的协议找进行修改,而不必对交换机进行升级,大大降低 了部署成本。
【附图说明】
[0055] 图1是现有技术中D2TCP中当d值分别取为小于1、等于1和大于1时P值的变化情况 示意图;
[0056] 图2是现有技术中数据中屯、网络整体结构图;
[0057] 图3是现有技术中数据中屯、网络拓扑图;
[0058] 图4是现有技术中给当前网络中的所有数据流平均分配带宽示意图;
[0059] 图5是现有技术中按最小剩余数据量优先原则分配带宽示意图;
[0060] 图6是是现有技术中ECN机制不意图;
[0061] 图7是本发明基于优先级的数据中屯、网络传输层数据流传输方法流程图;
[0062] 图8是本发明包含基于优先级的数据中屯、网络传输层数据流传输方法的数据中屯、 网络整体结构图。
[0063] 图9本发明实施例新增加的模块结构图;
[0064] 图10是本发明实施例伽马函数的变化情况示意图。
【具体实施方式】
[0065] 下面结合【具体实施方式】并对照附图对本发明作进一步详细说明。应该强调的是, 下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
[0066] 一、数据中屯、网络模型
[0067] 请参考图2,图2是现有技术的数据中屯、网络整体结构图。一个数据中屯、网络包括 连接数据中屯、的计算主机的路由器和交换机,所述交换机支持ECN机制,所述计算主机包括 发送端主机和接受端主机;所述发送端主机和接收端主机中包含协议找;所述协议找分为 五层,运五层从下到上分别为物理层、数据链路层、网络层、传输层和应用层。
[0068] 请参考图3,图3是现有技术的数据中屯、网络拓扑结构示意图。
[0069] 数据中屯、网络具有如下几个方面的特点:
[0070] 首先,数据中屯、网络在管理层面属于同一个管理域,因此为了网络整体性能的提 高,可W部分牺牲公平性。运种数据流之间的不对等的地位主要表现在服务于用户的实时 流和用于维护数据中屯、本身的数据结构W及数据备份等背景流量之间。由于有人的参与, 服务于用户的是实时流量要求有极低的延迟,比如Amazon曾经宣布,他们服务用户的延迟 每增加 IOOms他们的销量就会降低1%,而Google则宣称他们相应用户的时间每增加0.5s则 他们的流量就会降低20%,可见延迟对于服务于用户的实时流量是极端重要的。但是与此 相反,数据中屯、网络中的背景流量,比如数据备份等,对延迟则没有特别的要求,但是由于 它们要传输的数据量极大,所W他们要求有较高的吞吐率。此外,安全和增量部署也不是数 据中屯、网络中需要重点考虑的问题。
[0071] 其次,当前数据中屯、网络的拓扑结构大多比较规则,比如当前普遍采用的网络拓 扑结构有化ttree,BCube等,相关参数一旦给定W后运些网络的结构都是确定的,因此数据 流在网络中的传输路径在很大程度上是确定的。此外,限于数据中屯、在物理空间上的规模, 交换机之间的距离一般都比较短,因此数据包的传播延迟都比较小,运就决定了数据流所 经历的延迟主要是在交换机中的排队延迟,因此减小数据流的传播延迟的主要任务就是减 小数据包在交换机中的排队延迟。
[0072] 二、相关概念介绍
[0073] cwnd:运是TCP中数据流的拥塞窗口大小,当数据流的接受窗口足够大的时候,数 据流的拥塞窗口大小将会直接影响数据流的发送速率。本申请正是通过调节数据流的拥塞 窗口大小来调节数据流的传输速率。
[0074] ECN:基于显式反馈的协议巧邱licit Congestion Notification)。请参考图6,图 6是是现有技术中ECN机制示意图。运是一种网络中和TCP配合使用的预防拥塞的机制。当网 络中的交换机或路由器检测到在它运个节点发生拥塞W后它就会给新到达的数据包设置 CE(Congestion E邱erienced)标记(而不是简单地将其丢弃),接收端收到设置了CE标记的 数据包W后知道当前网络中已经发生了拥塞,于是通过应答包将运一信息反馈给数据流的 发送端,然后数据流再采取相应的措施来缓解网络的拥塞。
[0075] a:运是由数据流的发送端维护的当前网络的拥塞程度,它的值在0到1之间。a = 〇 表示当前网络几乎没有拥塞,而0 = 1表示当前网络极端拥塞。它的值是上一个RTT中发送的 数据包中被打了 CE标记的数据包所占的比例的平滑值,具体而言,则是aMl-g)Xa+gXF, 其中F是上一个RlT中实际被打了 CE标记的数据包所占的比例,而g是运个最新样本在计算a 的值的时候所占的权重,其推荐值为1/16。
[0076] M:本申请采用一种自适应的方法对数据流进行分类,即把一个数据流归类成为一 个大数据流或者一个小数据流。当一个数据流刚启动的时候,将其归类成为一个小数据流; 当一个数据流传输的数据量超过一定的阔值W后运个数据流就会被归类成为一个大数据 流。运里M就是运一阔值。它是根据前人对商用数据中屯、的流量特点进行分析研究得出的观 察值,本申请实施例把M的取值取为M=200KB。
[0077] pri:为了进一步减小小数据流的传输延迟,在小数据流之间区分不同的优先级。 运里pri就是一个小数据流的优先级,它根据一个小数据流已经传输完成的数据量得到。
[0078] W:运是一个小数据流的权重,它由该小数据流的优先级数计算得到。小数据流的 权重是真正用于调节数据流的拥塞窗口的变量。
[0079] S、实施例1
[0080] 本发明提出的一种基于优先级的数据中屯、网络传输层数据流传输方法,请参见图 7。图7是本发明基于优先级的数据中屯、网络传输层数据流传输方法流程图。所述数据中屯、 网络的交换机支持ECN机制,该方法包括如下步骤:
[0081] S1、将数据中屯、网络中正在传输的数据流分类为小数据流和大数据流。
[0082] 在商用数据中屯、中,用于服务于终端用户的实时流量对传输延迟的要求极高,而 实时流量大多是一些相对较小的数据流,因此减小小数据流的传输延迟是本实施例的一个 基本的目标。由于本实施例要求传输层对应用层透明,所W应用层不会给传输层提供关于 数据流的大小之类的信息。本实施例采用的是一种启发式的算法。根据之前的研究人员对 商用数据中屯、的统计结果,在商用数据中屯、中,80% W上的数据流的数据量小于200KB,因 此在本实施例中,当数据流开始启动的时候,将其视为一个小数据流;一旦运个数据流传输 的数据量超过了 200KB,就会将其归类为一个大数据流。因为大数据流在所有数据流中所占 比例极小,所W只有一部分大数据流在启动初期被错误地归类为小数据流,而一旦它们传 输的数据量超过了 200KB的阔值,它们便一直都被当作大数据流对待。因此将部分大数据流 在启动初期当作小数据流来处理并不会对网络性能产生实质性的影响。
[0083] S2、计算小数据流优先级数pri。
[0084] 在区分了大数据流和小数据流之后,由于大数据流往往来自数据中屯、本身,比如 捜索引擎的索引计算、数据备份等,对传输延迟并不敏感,因此本实施例中将会给小数据流 赋予更高的优先级。为了进一步减小小数据流的传输延迟,考虑在小数据流内部也划分不 同的优先级。当网络中有多个数据流存在的时候,在理想情况下,可W有多种方法对它们进 行调度,比如先来先服务、在当前的所有数据流之间均匀分配带宽、最少剩余数据量优先 等。如图4、图5所示。在t = 0时刻有一个小数据流fi开始启动,在t = 0.5时刻另一个小数据 流f2开始启动,且运两个小数据流需要传输的数据量相等,如果获得所有带宽的话每个数 据流都需要一个单位的时间就可W传输完成。请参考图4,图4是现有技术中给当前网络中 的所有数据流平均分配带宽示意图。在图4中,当数据流f2在t = 0.5时刻启动W后将带宽均 匀分配给运两个数据流,最终fi和f2的完成时间都为1.5,两个数据流的平均完成时间为 1.5。请参考图5,图5是现有技术中按最小剩余数据量优先原则分配带宽示意图。因为在t = 0.5时刻数据流fi的剩余数据量比较少,所W把所有带宽全部分配给fi,直至在t= 1.0时刻 fi传输完成W后才把所有带宽分配给f 2,最终fi的完成时间为1,f 2的完成时间为1.5,平均 完成时间为1.25。可见在减小数据流的平均完成时间的性能方面,最小剩余数据量优先的 原则的性能要优于给所有数据流均匀分配带宽的原则。不难证明最小剩余数据量优先的原 则也要优于先来先服务的原则。因此在本实施例中采用最小剩余数据量优先的原则对小数 据流进行调度。
[0085] 注意到在本实施例中传输层对应用层是透明的,因此应用层并不会提交关于数据 流的大小的信息,因此传输层不可能确切知道一个数据流的剩余数据量的大小。为了解决 运一问题,本实施例中采用最大传输完成数据量优先的原则来近似最小剩余数据量优先的 原则,即对于多个不同的小数据流而言,已经传输完成的数据量最大的小数据流将会获得 最高的优先级。W下介绍为什么最大传输完成数据量优先的原则可W用于近似最小剩余数 据量优先的原则。假设一个数据中屯、网络中的小数据流的大小都服从同一分布Fe,其概率 密度为分布函数Fe和概率密度fc事先并不知道。本实施例中有两个小数据流f Iowi和 floW2,它们传输完成的数据量大小分别为a和b,且a<b。设flowi和floW2的剩余数据量分别 为remain(f Iowi)和remain(f loW2),贝扣1〇*1的剩余数据量小于等于^〇¥2的剩余数据量的 概率为:
[0086]
[0087]因此floW2的剩余数据量小于f Iowi的剩余数据量的概率为:
[008引
[0089] 所W在所有数据流的大小都服从同一分布的前提下,若数据流fl0W2已传输完成 的数据量大于数据流f Iowi已经传输完成的数据量,贝化l〇W2的剩余数据量小于f Iowi的剩余 数据量的概率大于1/2,并且随着数据流fl〇W2已经传输完成的数据量的增大,该概率不断 趋近于1。因此最大传输完成数据量优先的原则能够很好地近似最小剩余数据量优先的原 贝IJ。基于运一原则,在本实施例中,对于一个数据流,假设它传输完成的数据量为m,且111<1, 即当前坟个居'流被归类为一个小数据流,则它的优先级数为:
[0090]
[0091] 所W对于一个小数据流,它传输完成的数据量越多,它的优先级数就越大。在本实 施例中,优先级数越大的数据流,其传输的优先级也就越高。由于本实施例中只对小数据流 计算优先级数,而M是数据流的阔值,即一个数据流传输完成的数据量一旦超过M就会被归 类成为一个大数据流,而所有的小数据流传输完成的数据量都不会超过M,因此数据流的优 先级数的取值范围是[0,1]。
[0092] S3、计算小数据流权重W。
[0093] 在传统的TCP中,当数据流处于拥塞避免阶段的时候,每过一个RTT按照如下方式 增大其拥塞窗口:
[0094] cwnd^cwnd + 10
[00M]在本实施例中,为了让小数据流能够获得比其在传统TCP中更高的优先级,希望它 在拥塞避免阶段拥塞窗口能够W更快的速率增大,且具有更高优先级数(因而具有更高优 先级)的数据流的拥塞窗口能够增大得更快。因此本实施例中考虑定义一个小数据流的权 重如下:
[0096] w^pri+1,其中pri是运个小数据流的优先级数。
[0097] 由于pri的取值范围是[0,1],因此小数据流的权重的取值范围就是[1,2]。当小数 据流处于拥塞避免阶段的时候,本实施例中利用该小数据流的权重来增大其拥塞窗口大 小,即增大其拥塞窗口大小如下:
[009 引 cwnd^cwnd+w。
[0099] 由于权重W的下限为1,所W小数据流在拥塞避免阶段其拥塞窗口的增大速度总是 大于其在传统TCP中的增大速度,从而起到了赋予小较高优先级的目的。同时,传输完成数 据量越大的小数据流其优先级数越大,因而其权重也越大,在拥塞避免阶段其拥塞窗口增 大得越快,因此在分配带宽时其优先级也越高。
[0100] S4、计算当前网络拥塞程度曰。
[0101] 本实施例是建立在DCTCP中提出的网络拥塞程度的基础之上的。为计算网络的拥 塞程度,数据中屯、网络中的交换机必须要能够支持ECN( Exp 1 i C i t Conges t ion Notification)机制,如图6所示。图6是是现有技术中ECN机制示意图。首先为每一个支持 ECN机制的交换机都设置一个阔值K。一旦一个交换机的转发队列长度超过了运个阔值K,运 个交换机就会认为当前网络在它运个点已经发生了拥塞,于是它就会将所有新到达的数据 包都设置为CE(Congestion Experienced)。运个数据包到达接受端W后,接收端通过运个 数据包的CE标志得知当前网络中已经发生了拥塞,于是就会通过应答包将运一信息反馈给 数据流的发送端。数据流通过收到的应答包可W推测出上一个RTT内发送的数据包中有多 少数据包经历了拥塞,分别是哪几个数据包经历了拥塞等。于是发送端便会根据运些信息 做出相应的反应来缓解网络的拥塞。
[0102] 为了计算当前网络的拥塞程度,数据包的发送端会维护一个估计量a,并W-个 RTT为周期对其进行更新。假设上一个RTT内发送的数据包中被标记为CE的数据包所占的比 例为F,则发送端将会更新网络拥塞程度a如下:
[0103] aM1 -g) X a+g X F,其中g是新样本值F所占的比例,DCTCP中权重g的取值的推荐 值为g= 1/16。可见网络拥塞程度a实际上是上一个RTT中被标记为CE的数据包所占比例的 平滑值。
[0104] S5、判断当前网络中是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7。
[0105] S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口的大 小。
[0106] 在传统的TCP方案中,比如在TCP New Reno中,一旦检测到拥塞,数据流的发送端 就会将其拥塞窗口减小为原来的1/2,但是在DCTCP中,由于定义了网络的拥塞程度a,因此 当检测到拥塞的时候,发送端并不是简单地将其拥塞窗口减小为原来的1/2,而是按照W下 方式对其拥塞窗口进行调整:
[0107] cwnd^cwndX (l-a/2) 〇
[0108] 因此能够更精确地对当前网络的拥塞状况做出反应,避免因过分减小拥塞窗口大 小而导致带宽资源的浪费,从而提高网络的整体吞吐率并减小数据流的传输延迟。
[0109] 而在本实施例中,因为小数据流具有比大数据流更高的优先级,因此能够采用不 同的策略来减小大数据流和小数据流的拥塞窗口大小。由于网络的拥塞程度是已知的,因 此本实施例中采用伽马函数来减小数据流的拥塞窗口大小。具体而言,当检测到当前网络 拥塞的时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小:
[0110] cwnd^cwndx (1-日丫/2)。
[0111] 由于a的取值范围为[0,1],因此对于一个确定的a值,丫的值越小,数据流的拥塞 窗口的减小量越大。为了能够释放出更多的带宽W利于小数据流的传输,减小小数据流的 传输延迟,本实施例中令丫 <1,运样当遇到网络拥塞的时候,大数据流的拥塞窗口的减小 量就会小于数据流在DCTCP中的减小量。在本实施例中选择的丫的取值为丫 =0.125。
[0112] 同时为了能够有效减小小数据流的传输延迟,本实施例中对于小数据流能够有丫 > 1。注意到之前已经计算了小数据流的权重W,并且有we[l,2],因此对于小数据流令丫 = W。因此当检测到当前网络拥塞的时候,小数据流的拥塞窗口减小量总是小于它们在DCTCP 中拥塞窗口减小量,运相当于给小数据流分配了更多的带宽。同时,因为传输完成数据量越 多的小数据流其权重也越大,因此遇到拥塞的时候其拥塞窗口减小量也越小。运实质上给 传输完成数据量较多的小数据流分配了更多的带宽,符合先前介绍的最大传输完成数据量 优先的原则。
[0113] 通过使用伽马函数来调节数据流的拥塞窗口大小,本实施例中保证了当检测到拥 塞的时候,小数据流的拥塞窗口减小量总是小于大数据流的拥塞窗口减小量,同时传输完 成数据量越多的小数据流其拥塞窗口的减小量也越小。此外,随着网络拥塞程度的不断增 大,具有不同优先级的数据流其拥塞窗口的减小量之间的差异越来越小,当网络极度拥塞 的时候,网络的拥塞程度a趋于1,此时无论丫取何值,的取值均趋于1,因而能够有效地缓 解网络拥塞,避免了网络发生崩溃。
[0114] S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口的大小。
[0115] 在上一步骤中介绍的对于大数据流减小其拥塞窗口大小的方法为:
[0116] cwnd^cwndX (l-a〇'i2已/2)。
[0117] 假设当前数据流的拥塞窗口大小为16,网络拥塞程度为0.2,则检测到当前网络拥 塞^后该数据流的拥塞窗口大小减小量为16 X 0.2*^'125/ 2 = 6.54。在。0口'中,处于拥塞避免 阶段的大数据流其拥塞窗口的增大量为0.05/RTT,则为了使一个大数据流恢复到原来的拥 塞窗口大小,需要在经历大约131个RTT,此时如果网络中没有足够的小数据流对网络带宽 加 W利用将会造成网络带宽资源浪费,从而导致网络吞吐率的降低。而在DCTCPW及传统的 TCP方案中,数据流的拥塞窗口在拥塞避免阶段的增大量为1,因此为了让拥塞窗口大小回 复到发生拥塞之前的水平只需要6.5个RTT,运将会极大地提高网络带宽资源的利用率。在 本实施例中,为了保持网络的高吞吐率,本实施例中令大数据流的拥塞窗口在拥塞避免阶 段的增大量为1,即大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
[011 引 cwnd^cwnd + 1。
[0119] 同时,为了让小数据流具有比大数据流更高的优先级,希望小数据流的拥塞窗口 具有比大数据流更高的增大速度。由于小数据流的权重W的取值范围为[1,2],在运里本实 施例直接将小数据流的拥塞窗口在拥塞避免阶段的增大量设为W,即小数据流的拥塞窗口 在拥塞避免阶段将按如下方式增大:
[0120] cwnd户cwnd+w,其中W是该小数据流的权重。
[0121] 此外,由小数据流的权重的定义知,已传输完成的数据量越多的小数据流其权重 越大,因而其拥塞窗口增大得越快。因此,按照运种方式增大数据流的拥塞窗口大小,小数 据流能够获得比大数据流更高的优先级,同时小数据流之间也能够满足最大完成数据量优 先的原则。
[0122] S8、按更新后的窗口发送数据流。
[0123] 四、实施例2
[0124] 本发明提供一种包含基于优先级的数据中屯、网络传输层数据流传输方法的数据 中屯、网络。如图8所示,图8是本发明包含基于优先级的数据中屯、网络传输层数据流传输方 法的数据中屯、网络整体结构图。所述数据中屯、网络包括数据中屯、内连接计算主机的路由器 和交换机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发 送端主机和接收端主机包含网络协议找;所述协议找包含五层结构,运五层结构从下到上 分别为物理层、数据链路层、网络层、传输层和应用层;其中,所述发送端主机的传输层还包 括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块 和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。
[0125] 本实施例不需要对数据中屯、的交换机和应用程序做任何修改,只需要对终端主机 的协议找做少量的修改便可实现部署。具体而言,为实现本实施例需要在发送端主机的协 议找中的传输层增加网络拥塞程度维护模块、数据流分类模块、优先级数和权重计算模块、 拥塞窗口增大模块和拥塞窗口减小模块,同时在接受端主机的协议找中的传输层增加拥塞 通告模块,新增加的各模块如图9所示,图9为本发明实施例新增加的模块结构图。W下对运 些模块进行逐一介绍:
[01%] 1、拥塞通告模块
[0127] 运个模块要求数据中屯、网络的交换机能够支持ECN机制,如图6所示,每个交换机 都被配置了一个阔值K。当一个交换机的转发队列长度超过了该阔值K的时候,为了避免发 送端持续W过快的速度发送数据包而导致其缓冲区溢出,运个交换机会认为当前网络中在 它运里出现了拥塞或者即将出现拥塞,于是就对新到达的数据包设置CE标记,但不是简单 地将其丢弃。被设置了 CE标记的数据包到达了接收端W后,接收端得知网络中出现了拥塞 运一情况,于是就通过应答包把网络中发生拥塞的信息反馈给发送端,最后再由发送端对 网络中发生拥塞的状况做出合适的反应。发送端对网络中发生拥塞的状况做出反应的具体 过程将在下边几个模块中进行介绍。
[0128] 尽管运个模块设计到了数据中屯、网络中的交换机,但是当前数据中屯、网络中的交 换机普遍支持EC咐几制,而为使运些交换机支持本实施例,只需要对运些交换机的动态缓冲 区管理算法配置相应的参数,因此运并不会为本实施例的实际部署增加额外的困难。
[0129] 2、网络拥塞程度维护模块
[0130] 该模块被终端主机用于在本地维护当前数据中屯、网络的拥塞程度a。当数据流的 发送端通过应答包获知网络中发生拥塞的状况W后,它可W通过应答包的情况推测出上一 个RTT中哪几个数据包经历了拥塞,即哪几个数据包被网络中的交换机标记为CE,于是它就 能够计算出在上一个RTT内传输的数据包中被标记为CE的数据包所占的比例。假设该比例 为F,则它将对本地维护的当前网络拥塞程度进行更新如下:
[0131] a^(l-g)Xa+gXF,其中g是最新的样本值F所占的权重。
[0132] 由此可见,由该模块在本地维护的网络拥塞程度实际上是上一个RTT中发送的数 据包中被标记为CE的数据包所占的比例的平滑值。当网络负荷比较小的时候,交换机能够 迅速地将其缓冲区中的数据包转发出去,避免了数据包在其缓冲区中过分堆积,运个时候 由于转发队列长度没有达到阔值K,因此很少有数据包会被标记为CE,因而a的值将持续减 小。反之,如果当前网络的负荷比较大,则数据包就会因为没有被及时转发出去而在交换机 的缓冲区中堆积起来,当转发队列超过阔值KW后新到达的数据包就会被打上CE标记。当越 来越多的数据包被打上CE标记W后,发送端维护的估计量a的值就会持续增大。可见估计量 a确实可W用做当前网络拥塞程度的估计量。
[0133] 3、数据流分类模块
[0134] 由于本实施例是在传输层实现的,对应用层完全透明,不要求应用程序提供数据 流的大小等信息,而本实施例需要采用不同的策略来分别对大数据流和小数据流调节拥塞 窗口大小,因此必须有一个模块通过某种方法对数据流进行分类,数据流分类模块正是用 于完成运一功能。根据相关研究,在典型的商用数据中屯、中,超过80%的数据流大小都小于 200KB,因此数据流分类模块采用一种启发式的算法,当一个数据流刚开始启动的时候,将 运一数据流归类为一个小数据流。一旦数据流传输的数据量超过了 200KB,数据流分类模块 就会将运个数据流归类为一个大数据流。由于绝大多数的数据流的大小都小于200KB,因此 大多数小数据流都会在被归类成为大数据流之前传输完成,而只有占总的数据流很小比例 的大数据流会在传输的初期被错误地归类为小数据流,但是一旦被归类为大数据流之后它 们将会一直当作大数据流进行处理,因此不会对网络整体的性能产生实质性的影响。
[0135] 数据流分类模块所采用的运种启发式的分类策略与当前商用数据中屯、的应用场 景有很强的相关性。当前的商用数据中屯、中主要有两种类型的流量,分别是与终端用户交 互的实时流量和数据中屯、自身产生的数据流量。与终端用户交互的流量通常是来自于社交 网站、购物网站、捜索引擎等应用,限于用户的实际需求,运些应用所产生的流量不会很大, 但是对延迟非常敏感。而数据中屯、自身产生的流量包括数据备份、捜索引擎的索引计算等, 运些应用往往需要传输大量的数据,而对传输延迟则没有明确的要求。
[0136] 4、优先级数及权重计算模块
[0137] 优先级数及权重计算模块是本实施例中最重要的模块。若当前数据中屯、网络中同 时存在若干小数据流,则为减小运些小数据流总体传输延迟,更精确地则是减小运些小数 据流的平均完成时间,本实施例采用最小剩余数据量优先的原则来为运些小数据流分配带 宽。但是因为本实施例的方案是在传输层实现的,并且对应用层是完全透明的,因而应用层 不可能提供关于数据流的大小之类的信息,因此传输层也就不可能知道一个数据流的剩余 数据量之类的信息。为了解决运一问题,本实施例采用的策略是使用最大已传输数据量优 先的原则来近似最小剩余数据量优先的原则。能够证明,假设一个数据中屯、中的所有数据 流的大小服从统一分布Fe,其中分布Fc未知,则对于任意两个数据流(小数据流)f Iowi和 fl〇W2,假设它们传输完成的数据量分别为a和6,且3<6,则floW2的剩余数据量小于flowi的 剩余数据量的概率关
因此最大传输完成数据量优先的原则能够很好 地近似最小剩余数据量优先的原则。
[0138] 同时根据数据流分类模块,数据流开始启动的时候它被归类成为一个小数据流, 而一旦数据流传输完成的数据量超过阔值M= 200KB,则该数据流将会被归类成为一个大数 据流,而本实施例只对小数据流计算优先级数和权重,因此在本实施例中计算优先级数和 权重的过程中一个数据流已传输完成的数据量将不会超过M=200KB。
[0139] 对于一个小数据流,定义它的优先级数pr巧日下:
[0140]t中,m是运个数据流已经传输完成的数据量,M是数据流的阔值,也是一 个小数据流已
经传输完成数据量的上限。因此一个小数据流优先级数的取值范围为[0,1]。
[0141] 设小数据流的权重为W,且W是优先级数pri的函数,设W=W(Pri)。由于该权重将会 被用于在拥塞避免阶段增大拥塞窗口大小,如下所示:
[0142] cwnd^cwnd+w(pri) 〇
[0143] 而在DCTCP中数据流的拥塞窗口的增大量为1,即:
[0144] cwnd^cwnd + 10
[0145] 为了使得小数据流在拥塞避免阶段具有比DCTCP中的数据流具有更高的优先级, 希望w(pri)的下限值不小于1。在本实施例中采取的权重的计算方法为:
[0146] w(pri) = 1.0+pri〇
[0147] 5、拥塞窗口增大模块
[0148] 由前所述,数据流分类模块已经把数据流分成了大数据流和小数据流两类,而优 先级数及权重计算模块已经根据小数据流传输完成的数据量计算好了小数据流的权重,因 此当数据流处在拥塞避免阶段的时候拥塞窗口增大模块只需要根据不同的策略来分别增 大大数据流和小数据流的拥塞窗口大小。我们通过观察发现,保证网络具有比较高的吞吐 率的关键在于当网络中有可用带宽的时候即使网络中没有足够的小数据流,大数据流也能 够迅速地增大其拥塞窗口大小从而充分利用网络的可用带宽,避免网络带宽资源的浪费。 因此把大数据流的拥塞窗口在拥塞避免阶段的增大量设为1,即大数据流的拥塞窗口将按 照如下方式增大:
[0149] cwnd^cwnd+1 〇
[0150] 运种增长方式和DCTCP W及传统的TCP方案中是一致的,因而能够在充分利用网络 带宽方面具有很好的性能。
[0151] 同时,为了让小数据流具有比大数据流更高的优先级,希望小数据流的拥塞窗口 在拥塞避免阶段具有比大数据流更高的增大速度。注意到小数据流的权重W的取值范围为 [1,2],本实施例采用如下方式增大小数据流的拥塞窗口大小:
[0152] cwnd^cwnd+w。
[0153] 则小数据流的拥塞窗口的增大速度将总是不低于大数据流的拥塞窗口的增大速 度。同时,小数据流的拥塞窗口的增大速度也不会超过2/RTT,从而避免了因为网络中小数 据流的拥塞窗口增大过快而导致网络崩溃。此外,由于传输完成数据量越多的小数据流的 权重越大,因而其拥塞窗口也就增大得越快,因此小数据流的拥塞窗口的运种方式能够很 好的实现最大传输完成数据量优先的原则。
[0154] 6、拥塞窗口减小模块
[0155] 当数据流的发送端通过应答包获知网络中已经发生拥塞W后,发送端就会根据网 络拥塞程度维护模块维护的网络拥塞程度W及数据流分类模块的分类结果对大数据流和 小数据流分别采取不同的策略来减小它们的拥塞窗口大小。
[0156] 设当前网络拥塞程度为a,则DCTCP中采取的减小数据流拥塞窗口大小的策略是:
[0157] cwnd^cwndX (l-a/2) 〇
[0158] 因为本实施例认为小数据流应该具有比大数据流更高的优先级,因此考虑当检测 到拥塞的时候大数据流的拥塞窗口的减小量应该大于其在DCTCP中的减小量,而小数据流 的拥塞窗口的减小量应该小于其在DCTCP中的减小量,运样就相当于让大数据流释放出更 多的带宽,而将运些带宽分配给小数据流,从而有利于小数据流减小其传输延迟。而另一方 面,由于在拥塞窗口增大模块中,本实施例将大数据流的拥塞窗口的增大量设为1,因此即 使检测到拥塞的时候大数据流的拥塞窗口减小量比较大,当网络中有可用带宽的时候大数 据流的拥塞窗口也能够迅速恢复,从而有效避免网络带宽资源的浪费,保证网络的高吞吐 率。
[0159] 在本实施例中拥塞窗口减小模块减小大数据流的拥塞窗口大小的所采用的方法 为:
[0160] cwnd^cwndX (l-a〇'i2已/2)。
[0161] 而减小小数据流的拥塞窗口大小所采用的方法为:
[0162] cwnd^cwndX (l-aV2),其中,W是运个小数据流的权重。
[0163] 请参考图10,图10是本发明实施例伽马函数的变化情况示意图。由于小数据流权 重W的取值范围为[I,2],而网络拥塞程度a的取值范围为[O,I ],由图10知当a e [O,I ]时对 于任意给定a伽马函数f(丫)=at是丫的单调递减函数,因此当检测到拥塞的时候,小数据 流的拥塞窗口的减小量〇72总是小于等于大数据流拥塞窗口的减小量〇<>'1 25/2,且只有当〇 =1.0的时候小数据流的拥塞窗口减小量才和大数据流的拥塞窗口减小量相等,运相当于 给小数据流赋予比大数据流更高的优先级。而在小数据流内部,传输完成数据量越多的小 数据流,其权重W越大,因而其拥塞窗口的减小量aV2越小,运等价于该数据流的优先级越 高。因此,运种减小小数据流的拥塞窗口的方法能够很好地实现最大完成数据量优先的原 则。
[0164] 采用伽马函数减小数据流的拥塞窗口的另一个好处是当网络极度拥塞的时候,网 络的拥塞程度a趋近于1,此时无论丫取何值,的值都会迅速趋近于1,如图1所示(在附图1 中d= 丫,而P = 〇d),因而所有数据流的拥塞窗口都会减半,从而有效地缓解网络的拥塞情 况。
[0165] W上内容是结合具体的/优选的实施方式对本发明所作的进一步详细说明,不能 认定本发明的具体实施只局限于运些说明。对于本发明所属技术领域的普通技术人员来 说,在不脱离本发明构思的前提下,其还可W对运些已描述的实施例做出若干替代或变型, 而运些替代或变型方式都应当视为属于本发明的保护范围。
【主权项】
1. 一种基于优先级的数据中心网络传输层数据流传输方法,所述数据中心网络的交换 机支持ECN机制,其特征在于:该方法包括如下步骤: 51、 将数据中心网络中正在传输的数据流分类为小数据流和大数据流; 52、 计算小数据流优先级数pri ; 53、 计算小数据流权重w; 54、 计算当前网络拥塞程度α; 55、 判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7; 56、 将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小; 57、 将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小; 58、 按更新后的窗口发送数据流。2. 根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征 在于:所述步骤S1采用启发式的算法对数据流进行分类:当一个数据流刚开始启动的时候, 将其视为一个小数据流;当一个数据流传输的数据量超过预设的阈值Μ的时候,这个数据流 就会被归类为一个大数据流。3. 根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征 在于:所述步骤S2中计算小数据流优先级数pri的方法为:假设它传输完成的数据量为m,则 它的优先级数pri为:其中,Μ为预设的数据流的阈值,即一个数据流传输完成的数据量一旦超过Μ就 会被归类成为一个大数据流;所述优先级数pri的取值范围是[0,1]; 所述步骤S3中计算小数据流权重w的方法为: w-pri+l,其中,w是小数据流的权重,pri是这个小数据流的优先级数,权重w的取值范 围是[1,2]。4. 根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征 在于:所述步骤S6采用伽马函数来减小数据流的拥塞窗口大小,当检测到当前网络拥塞的 时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小: cwnd-cwndX (1_αγ/2),其中,cwnd为网络拥塞窗口,α为当前网络拥塞程度; 对于大数据流来说,令γ < 1;对于小数据流来说,令γ =w,w为小数据流的权重。5. 根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征 在于:所述步骤S7中增大数据流拥塞程度窗口的大小方法为: 大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大: cwnd-cwnd+l,cwnd为网络拥塞窗口; 小数据流的拥塞窗口在拥塞避免阶段将按如下方式增大: cwnd-cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。6. -种包含权利要求1-5任一项所述的基于优先级的数据中心网络传输层数据流传输 方法的数据中心网络,所述数据中心网络包括数据中心内连接计算主机的路由器和交换 机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发送端主 机和接收端主机包含网络协议栈;所述协议栈包含五层结构,这五层结构从下到上分别为 物理层、数据链路层、网络层、传输层和应用层;其特征在于:所述发送端主机的传输层还包 括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块 和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。7. 根据权利要求6所述的数据中心网络,其特征在于:所述数据流分类模块采用启发式 的算法对数据流进行分类:当一个数据流刚开始启动的时候,将这一数据流归类为一个小 数据流;一旦数据流传输的数据量超过了阈值M = 200KB,数据流分类模块就会将这个数据 流归类为一个大数据流。8. 根据权利要求6所述的数据中心网络,其特征在于:所述优先级数和权重计算模块用 来计算小数据流的优先级数pr i和权重w; 对于一个小数据流,其优先级数pri为:_其中,m是这个数据流已经传输完成的数据量,Μ是预设的数据流的阈值,也是 一个小数据流已经传输完成数据量的上限,一个小数据流优先级数的取值范围为[〇,1]; 其权重w为: w(pri) = l .O+pri,其中,pri为一个小数据流的优先级数。9. 根据权利要求6所述的数据中心网络,其特征在于:所述拥塞窗口增大模块用来增大 大数据流和小数据流的拥塞窗口大小; 大数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大: cwnd-cwnd+l,cwnd为网络拥塞窗口; 小数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大: cwnd-cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。10. 根据权利要求6所述的数据中心网络,其特征在于:所述拥塞窗口减小模块用来减 小大数据流和小数据流的拥塞窗口大小; 减小大数据流的拥塞窗口大小的方法为: cwnd-cwnd X (l_aQ'125/2),cwnd为网络拥塞窗口; 减小小数据流的拥塞窗口大小的方法为: cwnd-cwndX (l_aw/2),其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
【文档编号】H04L12/803GK105827540SQ201610369912
【公开日】2016年8月3日
【申请日】2016年5月30日
【发明人】李清, 赵宗义, 徐明伟, 江勇
【申请人】清华大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1