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

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

Info

Publication number
CN105827540A
CN105827540A CN201610369912.5A CN201610369912A CN105827540A CN 105827540 A CN105827540 A CN 105827540A CN 201610369912 A CN201610369912 A CN 201610369912A CN 105827540 A CN105827540 A CN 105827540A
Authority
CN
China
Prior art keywords
data
stream
low
volume
network
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.)
Granted
Application number
CN201610369912.5A
Other languages
English (en)
Other versions
CN105827540B (zh
Inventor
李清
赵宗义
徐明伟
江勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Graduate School Tsinghua University
Original Assignee
Shenzhen Graduate School Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Graduate School Tsinghua University filed Critical Shenzhen Graduate School Tsinghua University
Priority to CN201610369912.5A priority Critical patent/CN105827540B/zh
Publication of CN105827540A publication Critical patent/CN105827540A/zh
Application granted granted Critical
Publication of CN105827540B publication Critical patent/CN105827540B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2458Modification of priorities while in transit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种基于优先级的数据中心网络传输层数据流传输方法,包括如下步骤:S1、将数据中心网络正在传输的数据流分类为小数据流和大数据流;S2、计算小数据流优先级数pri;S3、计算小数据流权重w;S4、计算当前网络拥塞程度α;S5、判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7;S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小;S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小;S8、按更新后的窗口发送数据流。本发明的基于优先级的数据中心网络传输层数据流传输方法能够在不要求应用层提示关于数据流大小等参数的前提下减小小数据流的传输延迟的同时,还能保持网络整体的高吞吐率。

Description

一种基于优先级的数据中心网络传输层数据流传输方法
技术领域
本发明属于计算机网络领域,特别是涉及基于优先级的数据中心网络传输层数据流传输方法。
背景技术
随着信息技术不断渗透到生产生活的各个领列入域,集中处理大规模数据的需求变得越来越明显,所以人们能提出了数据中心的概念。所谓数据中心,就是把若干台主机(有时甚至是数百万台主机)当作一个整体来进行数据存储和处理,对外表现为一台功能更为强大的主机来向用户提供服务。数据中心包括两个部分,即用于数据存储和处理的部分和用于数据通信的部分,其中用于数据存储和处理的部分就是数据中心中的各台主机,而用于数据通信的部分则由数据中心中的交换机和路由器构成。数据中心中用于数据通信的部分称为数据中心网络。数据中心网络作为数据中心的神经系统,承担着各台主机之间通信的重要任务,对数据中心的总体性能至关重要。而数据中心网络相比于普通的互联网有自己的特点,比如数据中心网络中一个主机更倾向于和自己的相邻主机进行通信,由于用户希望数据中心能够立即对用户请求做出响应,因此数据中心网络对实时流的传输延迟非常敏感等等。此外,数据中心的拥有者大多为商业公司,因此数据中心的拥有者往往对数据中心的吞吐率也有一定的要求。
由于数据中心网络在实际生产生活中的重要作用,研究者们针对优化数据中心网络各方面的性能做了大量的工作,其中一个受到广泛认可的工作是发表于2010年SIGCOMM的DCTCP。DCTCP要求数据中心网络的交换机必须支持ECN(ExplicitCongestionNotification)机制。事先为网络中的每一台交换机都配置一个阈值K,当交换机的转发队列长度超过了阈值K,新到达的数据包就会被标记为CE(CongestionExperienced)。在DCTCP中,发送端会为每一个数据流维护一个估计量α用以度量当前网络的拥塞程度。而α的值就是上一个往返延时RTT(Round-TripTime)中发送的数据包中被网络中的交换机标记为CE的数据包所占的比例的平滑值。具体而言,α的值可计算为:α←(1-g)×α+g×F,其中,F是上一个RTT中被标记为CE的数据包所占的比例,而g是最新的样本值F所占的权重。每当接收端接收到了一个被标记为CE的数据包,接收端都会通过ACK包将这一信息及时反馈给发送端,因此发送端能够比较准确地了解网络中的拥塞情况。而当发送端了解到网络中发生了拥塞以后,它将会减小它自己的拥塞窗口如下:cwnd←cwnd×(1-α/2)。
DCTCP通过量化当前网络的拥塞程度,当检测到拥塞的时候根据网络拥塞程度决定拥塞窗口减小量的大小,而不是像TCPNewReno一样一旦检测到拥塞就立即将拥塞窗口减小为原来的1/2,因此在提高网络的吞吐率和减小数据流的传输延迟方面取得了显著的效果。
人们通过观察商用数据中心网络中数据流量的特点发现在商用数据中心网络中,80%以上的数据流的大小小于200KB,而数据中心中大部分的流量都来自于少数几个大数据流。同时小数据流往往来自与用户交互的应用,因而对传输延迟非常敏感,相比之下,大数据流往往来自数据中心内部的数据备份和索引计算等操作,因而对传输延迟要求不高,但是要求有较高的吞吐率。但是在实际的数据中心网络中,大数据流会占据交换机的缓冲区,导致小数据流经历了较高的排队延迟。而DCTCP在设计过程中没有考虑到大数据流和小数据流的传输特点,因此不利于减小小数据流的传输延迟。为了解决这一问题,2012年的SIGCOMM上发表的D2TCP提出采用伽马函数来调节数据流的拥塞窗口大小。D2TCP要求应用程序在启动一个数据流的时候向传输层指定这个流需要传输的数据量以及这个数据流需要在多长时间内传输完成。假设对于一个数据流,它当前剩余的数据量为B,拥塞窗口最大情况下为W,则可以计算出来它在传统的TCP(比如TCPNewReno)下传输完这个流所需要的时间为Tc。而由于应用程序指定的这个数据流的完成时间是已知的,所以也可以知道到这个数据流的截止时间(deadline)还剩余多少时间,把这段时间记为D。于是可以为这个流计算出一个变量d=Tc/D。如果当前为这个数据流分配的带宽可以在它的截止时间将这个流传输完成,则Tc<D,所以d<1;反之,如果当前为这个流分配的带宽不能在它的截止时间之前完成,则Tc>D,所以d>1。D2TCP依然采用了DCTCP中提出的估计量α,即把上一个RTT中被标记为CE的数据包所占的比例的平滑值作为当前网络的拥塞程度的估计量。当检测到拥塞的时候,发送端就会调节它的拥塞窗口如下:cwnd←cwnd×(1-αd/2)。令p=αd,则对于d<1、d=1和d>1的情况p的值的变化情况如图1所示。当α的值一定时,一个数据流以当前的带宽传输完成数据所需时间和它的剩余传输时间的比值越小,则说明它满足它的截止时间要求的压力越小,因此它的拥塞窗口的减小量就越大,从而可以将更多的带宽留出来分配给更需要带宽的数据流。若网络的拥塞程度不断加剧,即α的值不断增大,则从图1可以看出,无论d取何值,p的值都会随着α的值趋于1而迅速接近1,对应地,所有数据流都会将它们的拥塞窗口减半,因此能够有效地缓解拥塞。
通过指定数据流的截止时间,D2TCP能够为不同的数据流区分不同的优先级,并依据数据流的优先级来调节数据流的拥塞窗口大小。但是D2TCP存在两个方面的不足。首先,D2TCP要求应用程序在启动一个数据流的时候指定这个数据流的大小和截止时间,而这些信息有时候是很难得到的。比如一个应用程序要传输的数据是根据需要实时产生的,所以应用程序本身并不知道需要传输的数据量的大小。而作为一个程序员,为了从网络获得更好的带宽,他可能会在启动一个数据流的时候故意给这个数据流指定一个比较近的截止时间,尽管实际上他并不需要这么近的截止时间。当有很多的应用程序都故意给它们的数据流指定了一个不合理的截止时间的时候D2TCP的性能就会受到严重的影响。因此让应用程序给传输层指定一些重要的参数并不是一个明智的选择。另外让应用程序给传输层指定一些参数还会加重程序员的负担,而且这违背了传输层对应用层透明的原则。D2TCP的第二个缺点是它在某些情况下并不能有效区分不同的数据流优先级。比如对于第一个数据流有Tc=10ms,D=9ms,而对于第二个数据流有Tc=100ms,D=90ms,则D2TCP会认为对于这两个流都有d=Tc/D=1.1,因此这两个流将会获得相同的优先级,这有可能会导致第一个数据流错过它的截止时间。而在这种情况下第二个数据流的拥塞窗口有很大的调节空间,因此可以优先把带宽分配给第一个数据流以保证第一个数据流能够满足其截止时间要求。对于D2TCP的这两个方面的不足,后来相继有工作进行了进一步的修正。
对D2TCP的第一个不足进行修正的方案是在2013年的INFOCOM上发表的L2DCT。L2DCT提出使用一种自适应的方法来给不同的数据流区分不同的优先级。以往的研究表明,在数据中心中对传输延迟敏感的数据流的大小一般小于200KB,所以L2DCT提出当一个数据流启动的时候把它当作一个小数据流,并给它赋予权重wc=wmax=2.5。当这个数据流的传输的数据量超过200KB以后开始怀疑它可能是一个大数据流,所以逐渐减小它的权重,具体而言,随着这个数据流传输的数据量从200KB增大到1MB,它的权重将会从2.5减小到0.125。当它传输的数据量大于1MB以后就认为这个流是一个大数据流,因此把它的权重固定为wc=wmin=0.125。根据数据数据流的权重wc,为它确定两个量incr和decr如下:incr=wc/wmax其中α依然是DCTCP中用于表示网络拥塞程度的估计量。然后,如果网络中没有发生拥塞,则增大数据流的拥塞窗口如下:cwnd←cwnd+k。所以大数据流的拥塞窗口每个RTT的增大量为0.05,而小数据流的拥塞窗口每个RTT的增大量为1,因此在拥塞避免阶段小数据流能够分配到更多的带宽。当网络中发生拥塞的时候数据流将会减小它的拥塞窗口如下:cwnd←cwnd×(1-decr/2)。从以上发生拥塞和没有发生拥塞的情况下数据流的拥塞窗口的变化情况可以看出,L2DCT的设计思路是让小数据流的拥塞窗口增大得快而减小得慢,大数据流则正好相反,也就是在TCP的“加法增加乘法减小”的基本框架下给小数据流赋予尽可能高的优先级。这种方案不要求应用层向传输层指定诸如数据流的大小和截止时间等参数,因而传输层对于应用程序依然是透明的。实验证明这种方案在减小小数据流的平均完成时间方面性能确实非常优越,但同时大数据流的传输效率也受到了极大的影响,因为大数据流在遇到拥塞的时候其拥塞窗口减小非常剧烈,而当网络中没有拥塞的时候其拥塞窗口大小则增大得非常缓慢,这导致大数据流不能充分利用网络中的可用带宽。
D2TCP的第二个不足是当有若干个数据流的截止时间不同但是d=Tc/D的值相同的时候,D2TCP将无法有效区分它们的优先级。针对这一不足,发表于2015年INFOCOM的LPD提出了一个修正的方案。LPD有如下两个设计目标:一个具有更近的截止时间的数据流应该分配到更多的带宽,因而具有更高的传输优先级;当网络负荷增大的时候,具有不同传输截止时间的数据流的优先级之间的差别应该变大,因此它们的传输速率增大的速率之间的差别也应该变得更加明显。
为了实现以上两个设计目标,LPD首先选定一个参数tmax,这个参数是从当前时刻到一个数据流的截止时间的时间长度的可能最大值。和之前的方案一样,α是当前网络的拥塞程度的估计量。对于一个数据流,首先计算出一个惩罚变量f,其中t是从当前时刻到这个数据流的截止时间的时间长度。当没有检测到拥塞的时候,发送端就会增大它的拥塞窗口为cwnd←cwnd+(1-f),所以一个数据流的截止时间越近,f的值越小,所以它的拥塞窗口的增大量就越大,但是这个增大量的最大值依然为1,即不超过传统的TCP中一个数据流的拥塞窗口的增大量。当检测到拥塞的时候,发送端就会减小它的拥塞窗口为cwnd←cwnd×(1-f),因此一个数据流的截止时间越近,遇到拥塞时它的拥塞窗口减小量越小。这两个机制能够相互补充能够保证给截止时间比较近的数据流分配更大的带宽。尽管LPD克服了先前的方案的一些缺点,但是它本身仍然存在一些不足,其中最显著的问题就是它要求人工配置一个参数tmax。因为在不同的数据中心中截止时间的变化范围可能差别会很大,所以需要为不同的数据中心单独配置一个tmax值,而为了配置这个参数,往往需要对数据中心的流量特征有一个比较好的了解。限于数据中心维护人员的能力水平,这有时候是很难做到的。
以上方案从不同的角度对数据中心网络中数据流的传输进行了优化,但是依然存在很多的改进空间。
发明内容
本发明的目的是在现有技术方案的基础上对数据中心网络的传输层协议进行改进,提出一种在数据中心网络中减小小数据流的传输延迟同时能够保证网络的高吞吐率的传输层协议,解决现有技术中在减小小数据流的传输延迟的同时不能够兼顾大数据流的吞吐率的问题。
为了解决上述问题,本发明采用以下技术方案:
本发明首先提出一种基于优先级的数据中心网络传输层数据流传输方法,所述数据中心网络的交换机支持ECN机制,该方法包括如下步骤:
S1、将数据中心网络中正在传输的数据流分类为小数据流和大数据流;
S2、计算小数据流优先级数pri;
S3、计算小数据流权重w;
S4、计算当前网络拥塞程度α;
S5、判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7;
S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小;
S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小;
S8、按更新后的窗口发送数据流。
优选地,所述步骤S1采用启发式的算法对数据流进行分类:当一个数据流刚开始启动的时候,将其视为一个小数据流;当一个数据流传输的数据量超过预设的阈值M的时候,这个数据流就会被归类为一个大数据流。
优选地,所述步骤S2中计算小数据流优先级数pri的方法为:假设它传输完成的数据量为m,则它的优先级数pri为:
其中,M为预设的数据流的阈值,即一个数据流传输完成的数据量一旦超过M就会被归类成为一个大数据流;所述优先级数pri的取值范围是[0,1];
所述步骤S3中计算小数据流权重w的方法为:
w←pri+1,其中,w是小数据流的权重,pri是这个小数据流的优先级数,权重w的取值范围是[1,2]。
优选地,所述步骤S6采用伽马函数来减小数据流的拥塞窗口大小,当检测到当前网络拥塞的时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小:
cwnd←cwnd×(1×αγ/2),其中,cwnd为网络拥塞窗口,α为当前网络拥塞程度;
对于大数据流来说,令γ<1;对于小数据流来说,令γ=w,w为小数据流的权重。
优选地,所述步骤S7中增大数据流拥塞程度窗口的大小方法为:
大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+1,cwnd为网络拥塞窗口;
小数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
本发明还提供一种包含上述任一项所述的基于优先级的数据中心网络传输层数据流传输方法的数据中心网络,所述数据中心网络包括数据中心内连接计算主机的路由器和交换机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发送端主机和接收端主机包含网络协议栈;所述协议栈包含五层结构,这五层结构从下到上分别为物理层、数据链路层、网络层、传输层和应用层;其中,所述发送端主机的传输层还包括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。
优选地,所述数据流分类模块采用启发式的算法对数据流进行分类:当一个数据流刚开始启动的时候,将这一数据流归类为一个小数据流;一旦数据流传输的数据量超过了阈值M=200KB,数据流分类模块就会将这个数据流归类为一个大数据流。
优选地,所述优先级数和权重计算模块用来计算小数据流的优先级数pri和权重w;
对于一个小数据流,其优先级数pri为:
其中,m是这个数据流已经传输完成的数据量,M是预设的数据流的阈值,也是一个小数据流已经传输完成数据量的上限,一个小数据流优先级数的取值范围为[0,1];
其权重w为:
w(pri)=1.0+pri,其中,pri为一个小数据流的优先级数。
优选地,所述拥塞窗口增大模块用来增大大数据流和小数据流的拥塞窗口大小;
大数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
cwnd←cwnd+1,cwnd为网络拥塞窗口;
小数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
cwnd←cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
优选地,所述拥塞窗口减小模块用来减小大数据流和小数据流的拥塞窗口大小;
减小大数据流的拥塞窗口大小的方法为:
cwnd←cwnd×(1-α0.125/2),cwnd为网络拥塞窗口;
减小小数据流的拥塞窗口大小的方法为:
cwnd←cwnd×(1-αw/2),其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
本发明的有益效果是:
本发明的基于优先级的数据中心网络传输层数据流传输方法将数据流分成大数据流和小数据流两大类,并在小数据流内部划分不同的优先级,计算小数据流的优先级数和权重,同时根据当前网络的拥塞程度,动态调节数据流拥塞程度窗口的大小,能够在不要求应用层提示关于数据流大小等的参数的前提下减小小数据流的传输延迟的同时,还能保持网络整体的高吞吐率。
本发明的包含基于优先级的数据中心网络传输层协议数据流传输方法的数据中心网络,只需要对数据中心中主机的协议栈进行修改,而不必对交换机进行升级,大大降低了部署成本。
附图说明
图1是现有技术中D2TCP中当d值分别取为小于1、等于1和大于1时p值的变化情况示意图;
图2是现有技术中数据中心网络整体结构图;
图3是现有技术中数据中心网络拓扑图;
图4是现有技术中给当前网络中的所有数据流平均分配带宽示意图;
图5是现有技术中按最小剩余数据量优先原则分配带宽示意图;
图6是是现有技术中ECN机制示意图;
图7是本发明基于优先级的数据中心网络传输层数据流传输方法流程图;
图8是本发明包含基于优先级的数据中心网络传输层数据流传输方法的数据中心网络整体结构图。
图9本发明实施例新增加的模块结构图;
图10是本发明实施例伽马函数的变化情况示意图。
具体实施方式
下面结合具体实施方式并对照附图对本发明作进一步详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
一、数据中心网络模型
请参考图2,图2是现有技术的数据中心网络整体结构图。一个数据中心网络包括连接数据中心的计算主机的路由器和交换机,所述交换机支持ECN机制,所述计算主机包括发送端主机和接受端主机;所述发送端主机和接收端主机中包含协议栈;所述协议栈分为五层,这五层从下到上分别为物理层、数据链路层、网络层、传输层和应用层。
请参考图3,图3是现有技术的数据中心网络拓扑结构示意图。
数据中心网络具有如下几个方面的特点:
首先,数据中心网络在管理层面属于同一个管理域,因此为了网络整体性能的提高,可以部分牺牲公平性。这种数据流之间的不对等的地位主要表现在服务于用户的实时流和用于维护数据中心本身的数据结构以及数据备份等背景流量之间。由于有人的参与,服务于用户的是实时流量要求有极低的延迟,比如Amazon曾经宣布,他们服务用户的延迟每增加100ms他们的销量就会降低1%,而Google则宣称他们相应用户的时间每增加0.5s则他们的流量就会降低20%,可见延迟对于服务于用户的实时流量是极端重要的。但是与此相反,数据中心网络中的背景流量,比如数据备份等,对延迟则没有特别的要求,但是由于它们要传输的数据量极大,所以他们要求有较高的吞吐率。此外,安全和增量部署也不是数据中心网络中需要重点考虑的问题。
其次,当前数据中心网络的拓扑结构大多比较规则,比如当前普遍采用的网络拓扑结构有Fattree,BCube等,相关参数一旦给定以后这些网络的结构都是确定的,因此数据流在网络中的传输路径在很大程度上是确定的。此外,限于数据中心在物理空间上的规模,交换机之间的距离一般都比较短,因此数据包的传播延迟都比较小,这就决定了数据流所经历的延迟主要是在交换机中的排队延迟,因此减小数据流的传播延迟的主要任务就是减小数据包在交换机中的排队延迟。
二、相关概念介绍
cwnd:这是TCP中数据流的拥塞窗口大小,当数据流的接受窗口足够大的时候,数据流的拥塞窗口大小将会直接影响数据流的发送速率。本申请正是通过调节数据流的拥塞窗口大小来调节数据流的传输速率。
ECN:基于显式反馈的协议(ExplicitCongestionNotification)。请参考图6,图6是是现有技术中ECN机制示意图。这是一种网络中和TCP配合使用的预防拥塞的机制。当网络中的交换机或路由器检测到在它这个节点发生拥塞以后它就会给新到达的数据包设置CE(CongestionExperienced)标记(而不是简单地将其丢弃),接收端收到设置了CE标记的数据包以后知道当前网络中已经发生了拥塞,于是通过应答包将这一信息反馈给数据流的发送端,然后数据流再采取相应的措施来缓解网络的拥塞。
α:这是由数据流的发送端维护的当前网络的拥塞程度,它的值在0到1之间。α=0表示当前网络几乎没有拥塞,而α=1表示当前网络极端拥塞。它的值是上一个RTT中发送的数据包中被打了CE标记的数据包所占的比例的平滑值,具体而言,则是α←(1-g)×α+g×F,其中F是上一个RTT中实际被打了CE标记的数据包所占的比例,而g是这个最新样本在计算α的值的时候所占的权重,其推荐值为1/16。
M:本申请采用一种自适应的方法对数据流进行分类,即把一个数据流归类成为一个大数据流或者一个小数据流。当一个数据流刚启动的时候,将其归类成为一个小数据流;当一个数据流传输的数据量超过一定的阈值以后这个数据流就会被归类成为一个大数据流。这里M就是这一阈值。它是根据前人对商用数据中心的流量特点进行分析研究得出的观察值,本申请实施例把M的取值取为M=200KB。
pri:为了进一步减小小数据流的传输延迟,在小数据流之间区分不同的优先级。这里pri就是一个小数据流的优先级,它根据一个小数据流已经传输完成的数据量得到。
w:这是一个小数据流的权重,它由该小数据流的优先级数计算得到。小数据流的权重是真正用于调节数据流的拥塞窗口的变量。
三、实施例1
本发明提出的一种基于优先级的数据中心网络传输层数据流传输方法,请参见图7。图7是本发明基于优先级的数据中心网络传输层数据流传输方法流程图。所述数据中心网络的交换机支持ECN机制,该方法包括如下步骤:
S1、将数据中心网络中正在传输的数据流分类为小数据流和大数据流。
在商用数据中心中,用于服务于终端用户的实时流量对传输延迟的要求极高,而实时流量大多是一些相对较小的数据流,因此减小小数据流的传输延迟是本实施例的一个基本的目标。由于本实施例要求传输层对应用层透明,所以应用层不会给传输层提供关于数据流的大小之类的信息。本实施例采用的是一种启发式的算法。根据之前的研究人员对商用数据中心的统计结果,在商用数据中心中,80%以上的数据流的数据量小于200KB,因此在本实施例中,当数据流开始启动的时候,将其视为一个小数据流;一旦这个数据流传输的数据量超过了200KB,就会将其归类为一个大数据流。因为大数据流在所有数据流中所占比例极小,所以只有一部分大数据流在启动初期被错误地归类为小数据流,而一旦它们传输的数据量超过了200KB的阈值,它们便一直都被当作大数据流对待。因此将部分大数据流在启动初期当作小数据流来处理并不会对网络性能产生实质性的影响。
S2、计算小数据流优先级数pri。
在区分了大数据流和小数据流之后,由于大数据流往往来自数据中心本身,比如搜索引擎的索引计算、数据备份等,对传输延迟并不敏感,因此本实施例中将会给小数据流赋予更高的优先级。为了进一步减小小数据流的传输延迟,考虑在小数据流内部也划分不同的优先级。当网络中有多个数据流存在的时候,在理想情况下,可以有多种方法对它们进行调度,比如先来先服务、在当前的所有数据流之间均匀分配带宽、最少剩余数据量优先等。如图4、图5所示。在t=0时刻有一个小数据流f1开始启动,在t=0.5时刻另一个小数据流f2开始启动,且这两个小数据流需要传输的数据量相等,如果获得所有带宽的话每个数据流都需要一个单位的时间就可以传输完成。请参考图4,图4是现有技术中给当前网络中的所有数据流平均分配带宽示意图。在图4中,当数据流f2在t=0.5时刻启动以后将带宽均匀分配给这两个数据流,最终f1和f2的完成时间都为1.5,两个数据流的平均完成时间为1.5。请参考图5,图5是现有技术中按最小剩余数据量优先原则分配带宽示意图。因为在t=0.5时刻数据流f1的剩余数据量比较少,所以把所有带宽全部分配给f1,直至在t=1.0时刻f1传输完成以后才把所有带宽分配给f2,最终f1的完成时间为1,f2的完成时间为1.5,平均完成时间为1.25。可见在减小数据流的平均完成时间的性能方面,最小剩余数据量优先的原则的性能要优于给所有数据流均匀分配带宽的原则。不难证明最小剩余数据量优先的原则也要优于先来先服务的原则。因此在本实施例中采用最小剩余数据量优先的原则对小数据流进行调度。
注意到在本实施例中传输层对应用层是透明的,因此应用层并不会提交关于数据流的大小的信息,因此传输层不可能确切知道一个数据流的剩余数据量的大小。为了解决这一问题,本实施例中采用最大传输完成数据量优先的原则来近似最小剩余数据量优先的原则,即对于多个不同的小数据流而言,已经传输完成的数据量最大的小数据流将会获得最高的优先级。以下介绍为什么最大传输完成数据量优先的原则可以用于近似最小剩余数据量优先的原则。假设一个数据中心网络中的小数据流的大小都服从同一分布FC,其概率密度为fC,分布函数FC和概率密度fC事先并不知道。本实施例中有两个小数据流flow1和flow2,它们传输完成的数据量大小分别为a和b,且a<b。设flow1和flow2的剩余数据量分别为remain(flow1)和remain(flow2),则flow1的剩余数据量小于等于flow2的剩余数据量的概率为:
Pr 1 = Pr { &ForAll; x , r e m a i n ( flow 2 ) = x a n d r e m a i n ( flow 1 ) &le; x } = &Integral; 0 + &infin; f c ( b + x ) F c ( a + x ) d x = &Integral; 0 + &infin; F c ( a + x ) d F c ( b + x ) &le; &Integral; 0 + &infin; F c ( b + x ) d F c ( b + x ) = 1 2 &times; Fc 2 ( b + x ) | 0 + &infin; = 1 2 &times; &lsqb; 1 - Fc 2 ( b ) &rsqb; .
因此flow2的剩余数据量小于flow1的剩余数据量的概率为:
Pr 2 = 1 - Pr 1 > 1 - 1 2 &times; &lsqb; 1 - Fc 2 ( b ) &rsqb; = 1 2 + 1 2 &times; Fc 2 ( b ) .
所以在所有数据流的大小都服从同一分布的前提下,若数据流flow2已传输完成的数据量大于数据流flow1已经传输完成的数据量,则flow2的剩余数据量小于flow1的剩余数据量的概率大于1/2,并且随着数据流flow2已经传输完成的数据量的增大,该概率不断趋近于1。因此最大传输完成数据量优先的原则能够很好地近似最小剩余数据量优先的原则。基于这一原则,在本实施例中,对于一个数据流,假设它传输完成的数据量为m,且m<M,即当前这个数据流被归类为一个小数据流,则它的优先级数为:
p r i = m M .
所以对于一个小数据流,它传输完成的数据量越多,它的优先级数就越大。在本实施例中,优先级数越大的数据流,其传输的优先级也就越高。由于本实施例中只对小数据流计算优先级数,而M是数据流的阈值,即一个数据流传输完成的数据量一旦超过M就会被归类成为一个大数据流,而所有的小数据流传输完成的数据量都不会超过M,因此数据流的优先级数的取值范围是[0,1]。
S3、计算小数据流权重w。
在传统的TCP中,当数据流处于拥塞避免阶段的时候,每过一个RTT按照如下方式增大其拥塞窗口:
cwnd←cwnd+1。
在本实施例中,为了让小数据流能够获得比其在传统TCP中更高的优先级,希望它在拥塞避免阶段拥塞窗口能够以更快的速率增大,且具有更高优先级数(因而具有更高优先级)的数据流的拥塞窗口能够增大得更快。因此本实施例中考虑定义一个小数据流的权重如下:
w←pri+1,其中pri是这个小数据流的优先级数。
由于pri的取值范围是[0,1],因此小数据流的权重的取值范围就是[1,2]。当小数据流处于拥塞避免阶段的时候,本实施例中利用该小数据流的权重来增大其拥塞窗口大小,即增大其拥塞窗口大小如下:
cwnd←cwnd+w。
由于权重w的下限为1,所以小数据流在拥塞避免阶段其拥塞窗口的增大速度总是大于其在传统TCP中的增大速度,从而起到了赋予小较高优先级的目的。同时,传输完成数据量越大的小数据流其优先级数越大,因而其权重也越大,在拥塞避免阶段其拥塞窗口增大得越快,因此在分配带宽时其优先级也越高。
S4、计算当前网络拥塞程度α。
本实施例是建立在DCTCP中提出的网络拥塞程度的基础之上的。为计算网络的拥塞程度,数据中心网络中的交换机必须要能够支持ECN(ExplicitCongestionNotification)机制,如图6所示。图6是是现有技术中ECN机制示意图。首先为每一个支持ECN机制的交换机都设置一个阈值K。一旦一个交换机的转发队列长度超过了这个阈值K,这个交换机就会认为当前网络在它这个点已经发生了拥塞,于是它就会将所有新到达的数据包都设置为CE(CongestionExperienced)。这个数据包到达接受端以后,接收端通过这个数据包的CE标志得知当前网络中已经发生了拥塞,于是就会通过应答包将这一信息反馈给数据流的发送端。数据流通过收到的应答包可以推测出上一个RTT内发送的数据包中有多少数据包经历了拥塞,分别是哪几个数据包经历了拥塞等。于是发送端便会根据这些信息做出相应的反应来缓解网络的拥塞。
为了计算当前网络的拥塞程度,数据包的发送端会维护一个估计量α,并以一个RTT为周期对其进行更新。假设上一个RTT内发送的数据包中被标记为CE的数据包所占的比例为F,则发送端将会更新网络拥塞程度α如下:
α←(1-g)×α+g×F,其中g是新样本值F所占的比例,DCTCP中权重g的取值的推荐值为g=1/16。可见网络拥塞程度α实际上是上一个RTT中被标记为CE的数据包所占比例的平滑值。
S5、判断当前网络中是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7。
S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口的大小。
在传统的TCP方案中,比如在TCPNewReno中,一旦检测到拥塞,数据流的发送端就会将其拥塞窗口减小为原来的1/2,但是在DCTCP中,由于定义了网络的拥塞程度α,因此当检测到拥塞的时候,发送端并不是简单地将其拥塞窗口减小为原来的1/2,而是按照以下方式对其拥塞窗口进行调整:
cwnd←cwnd×(1-α/2)。
因此能够更精确地对当前网络的拥塞状况做出反应,避免因过分减小拥塞窗口大小而导致带宽资源的浪费,从而提高网络的整体吞吐率并减小数据流的传输延迟。
而在本实施例中,因为小数据流具有比大数据流更高的优先级,因此能够采用不同的策略来减小大数据流和小数据流的拥塞窗口大小。由于网络的拥塞程度是已知的,因此本实施例中采用伽马函数来减小数据流的拥塞窗口大小。具体而言,当检测到当前网络拥塞的时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小:
cwnd←cwnd×(1-αγ/2)。
由于α的取值范围为[0,1],因此对于一个确定的α值,γ的值越小,数据流的拥塞窗口的减小量越大。为了能够释放出更多的带宽以利于小数据流的传输,减小小数据流的传输延迟,本实施例中令γ<1,这样当遇到网络拥塞的时候,大数据流的拥塞窗口的减小量就会小于数据流在DCTCP中的减小量。在本实施例中选择的γ的取值为γ=0.125。
同时为了能够有效减小小数据流的传输延迟,本实施例中对于小数据流能够有γ≥1。注意到之前已经计算了小数据流的权重w,并且有w∈[1,2],因此对于小数据流令γ=w。因此当检测到当前网络拥塞的时候,小数据流的拥塞窗口减小量总是小于它们在DCTCP中拥塞窗口减小量,这相当于给小数据流分配了更多的带宽。同时,因为传输完成数据量越多的小数据流其权重也越大,因此遇到拥塞的时候其拥塞窗口减小量也越小。这实质上给传输完成数据量较多的小数据流分配了更多的带宽,符合先前介绍的最大传输完成数据量优先的原则。
通过使用伽马函数来调节数据流的拥塞窗口大小,本实施例中保证了当检测到拥塞的时候,小数据流的拥塞窗口减小量总是小于大数据流的拥塞窗口减小量,同时传输完成数据量越多的小数据流其拥塞窗口的减小量也越小。此外,随着网络拥塞程度的不断增大,具有不同优先级的数据流其拥塞窗口的减小量之间的差异越来越小,当网络极度拥塞的时候,网络的拥塞程度α趋于1,此时无论γ取何值,αγ的取值均趋于1,因而能够有效地缓解网络拥塞,避免了网络发生崩溃。
S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口的大小。
在上一步骤中介绍的对于大数据流减小其拥塞窗口大小的方法为:
cwnd←cwnd×(1-α0.125/2)。
假设当前数据流的拥塞窗口大小为16,网络拥塞程度为0.2,则检测到当前网络拥塞以后该数据流的拥塞窗口大小减小量为16×0.20.125/2=6.54。在L2DCT中,处于拥塞避免阶段的大数据流其拥塞窗口的增大量为0.05/RTT,则为了使一个大数据流恢复到原来的拥塞窗口大小,需要在经历大约131个RTT,此时如果网络中没有足够的小数据流对网络带宽加以利用将会造成网络带宽资源浪费,从而导致网络吞吐率的降低。而在DCTCP以及传统的TCP方案中,数据流的拥塞窗口在拥塞避免阶段的增大量为1,因此为了让拥塞窗口大小回复到发生拥塞之前的水平只需要6.5个RTT,这将会极大地提高网络带宽资源的利用率。在本实施例中,为了保持网络的高吞吐率,本实施例中令大数据流的拥塞窗口在拥塞避免阶段的增大量为1,即大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+1。
同时,为了让小数据流具有比大数据流更高的优先级,希望小数据流的拥塞窗口具有比大数据流更高的增大速度。由于小数据流的权重w的取值范围为[1,2],在这里本实施例直接将小数据流的拥塞窗口在拥塞避免阶段的增大量设为w,即小数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+w,其中w是该小数据流的权重。
此外,由小数据流的权重的定义知,已传输完成的数据量越多的小数据流其权重越大,因而其拥塞窗口增大得越快。因此,按照这种方式增大数据流的拥塞窗口大小,小数据流能够获得比大数据流更高的优先级,同时小数据流之间也能够满足最大完成数据量优先的原则。
S8、按更新后的窗口发送数据流。
四、实施例2
本发明提供一种包含基于优先级的数据中心网络传输层数据流传输方法的数据中心网络。如图8所示,图8是本发明包含基于优先级的数据中心网络传输层数据流传输方法的数据中心网络整体结构图。所述数据中心网络包括数据中心内连接计算主机的路由器和交换机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发送端主机和接收端主机包含网络协议栈;所述协议栈包含五层结构,这五层结构从下到上分别为物理层、数据链路层、网络层、传输层和应用层;其中,所述发送端主机的传输层还包括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。
本实施例不需要对数据中心的交换机和应用程序做任何修改,只需要对终端主机的协议栈做少量的修改便可实现部署。具体而言,为实现本实施例需要在发送端主机的协议栈中的传输层增加网络拥塞程度维护模块、数据流分类模块、优先级数和权重计算模块、拥塞窗口增大模块和拥塞窗口减小模块,同时在接受端主机的协议栈中的传输层增加拥塞通告模块,新增加的各模块如图9所示,图9为本发明实施例新增加的模块结构图。以下对这些模块进行逐一介绍:
1、拥塞通告模块
这个模块要求数据中心网络的交换机能够支持ECN机制,如图6所示,每个交换机都被配置了一个阈值K。当一个交换机的转发队列长度超过了该阈值K的时候,为了避免发送端持续以过快的速度发送数据包而导致其缓冲区溢出,这个交换机会认为当前网络中在它这里出现了拥塞或者即将出现拥塞,于是就对新到达的数据包设置CE标记,但不是简单地将其丢弃。被设置了CE标记的数据包到达了接收端以后,接收端得知网络中出现了拥塞这一情况,于是就通过应答包把网络中发生拥塞的信息反馈给发送端,最后再由发送端对网络中发生拥塞的状况做出合适的反应。发送端对网络中发生拥塞的状况做出反应的具体过程将在下边几个模块中进行介绍。
尽管这个模块设计到了数据中心网络中的交换机,但是当前数据中心网络中的交换机普遍支持ECN机制,而为使这些交换机支持本实施例,只需要对这些交换机的动态缓冲区管理算法配置相应的参数,因此这并不会为本实施例的实际部署增加额外的困难。
2、网络拥塞程度维护模块
该模块被终端主机用于在本地维护当前数据中心网络的拥塞程度α。当数据流的发送端通过应答包获知网络中发生拥塞的状况以后,它可以通过应答包的情况推测出上一个RTT中哪几个数据包经历了拥塞,即哪几个数据包被网络中的交换机标记为CE,于是它就能够计算出在上一个RTT内传输的数据包中被标记为CE的数据包所占的比例。假设该比例为F,则它将对本地维护的当前网络拥塞程度进行更新如下:
α←(1-g)×α+g×F,其中g是最新的样本值F所占的权重。
由此可见,由该模块在本地维护的网络拥塞程度实际上是上一个RTT中发送的数据包中被标记为CE的数据包所占的比例的平滑值。当网络负荷比较小的时候,交换机能够迅速地将其缓冲区中的数据包转发出去,避免了数据包在其缓冲区中过分堆积,这个时候由于转发队列长度没有达到阈值K,因此很少有数据包会被标记为CE,因而α的值将持续减小。反之,如果当前网络的负荷比较大,则数据包就会因为没有被及时转发出去而在交换机的缓冲区中堆积起来,当转发队列超过阈值K以后新到达的数据包就会被打上CE标记。当越来越多的数据包被打上CE标记以后,发送端维护的估计量α的值就会持续增大。可见估计量α确实可以用做当前网络拥塞程度的估计量。
3、数据流分类模块
由于本实施例是在传输层实现的,对应用层完全透明,不要求应用程序提供数据流的大小等信息,而本实施例需要采用不同的策略来分别对大数据流和小数据流调节拥塞窗口大小,因此必须有一个模块通过某种方法对数据流进行分类,数据流分类模块正是用于完成这一功能。根据相关研究,在典型的商用数据中心中,超过80%的数据流大小都小于200KB,因此数据流分类模块采用一种启发式的算法,当一个数据流刚开始启动的时候,将这一数据流归类为一个小数据流。一旦数据流传输的数据量超过了200KB,数据流分类模块就会将这个数据流归类为一个大数据流。由于绝大多数的数据流的大小都小于200KB,因此大多数小数据流都会在被归类成为大数据流之前传输完成,而只有占总的数据流很小比例的大数据流会在传输的初期被错误地归类为小数据流,但是一旦被归类为大数据流之后它们将会一直当作大数据流进行处理,因此不会对网络整体的性能产生实质性的影响。
数据流分类模块所采用的这种启发式的分类策略与当前商用数据中心的应用场景有很强的相关性。当前的商用数据中心中主要有两种类型的流量,分别是与终端用户交互的实时流量和数据中心自身产生的数据流量。与终端用户交互的流量通常是来自于社交网站、购物网站、搜索引擎等应用,限于用户的实际需求,这些应用所产生的流量不会很大,但是对延迟非常敏感。而数据中心自身产生的流量包括数据备份、搜索引擎的索引计算等,这些应用往往需要传输大量的数据,而对传输延迟则没有明确的要求。
4、优先级数及权重计算模块
优先级数及权重计算模块是本实施例中最重要的模块。若当前数据中心网络中同时存在若干小数据流,则为减小这些小数据流总体传输延迟,更精确地则是减小这些小数据流的平均完成时间,本实施例采用最小剩余数据量优先的原则来为这些小数据流分配带宽。但是因为本实施例的方案是在传输层实现的,并且对应用层是完全透明的,因而应用层不可能提供关于数据流的大小之类的信息,因此传输层也就不可能知道一个数据流的剩余数据量之类的信息。为了解决这一问题,本实施例采用的策略是使用最大已传输数据量优先的原则来近似最小剩余数据量优先的原则。能够证明,假设一个数据中心中的所有数据流的大小服从统一分布FC,其中分布FC未知,则对于任意两个数据流(小数据流)flow1和flow2,假设它们传输完成的数据量分别为a和b,且a<b,则flow2的剩余数据量小于flow1的剩余数据量的概率为因此最大传输完成数据量优先的原则能够很好地近似最小剩余数据量优先的原则。
同时根据数据流分类模块,数据流开始启动的时候它被归类成为一个小数据流,而一旦数据流传输完成的数据量超过阈值M=200KB,则该数据流将会被归类成为一个大数据流,而本实施例只对小数据流计算优先级数和权重,因此在本实施例中计算优先级数和权重的过程中一个数据流已传输完成的数据量将不会超过M=200KB。
对于一个小数据流,定义它的优先级数pri如下:
其中,m是这个数据流已经传输完成的数据量,M是数据流的阈值,也是一个小数据流已经传输完成数据量的上限。因此一个小数据流优先级数的取值范围为[0,1]。
设小数据流的权重为w,且w是优先级数pri的函数,设w=w(pri)。由于该权重将会被用于在拥塞避免阶段增大拥塞窗口大小,如下所示:
cwnd←cwnd+w(pri)。
而在DCTCP中数据流的拥塞窗口的增大量为1,即:
cwnd←cwnd+1。
为了使得小数据流在拥塞避免阶段具有比DCTCP中的数据流具有更高的优先级,希望w(pri)的下限值不小于1。在本实施例中采取的权重的计算方法为:
w(pri)=1.0+pri。
5、拥塞窗口增大模块
由前所述,数据流分类模块已经把数据流分成了大数据流和小数据流两类,而优先级数及权重计算模块已经根据小数据流传输完成的数据量计算好了小数据流的权重,因此当数据流处在拥塞避免阶段的时候拥塞窗口增大模块只需要根据不同的策略来分别增大大数据流和小数据流的拥塞窗口大小。我们通过观察发现,保证网络具有比较高的吞吐率的关键在于当网络中有可用带宽的时候即使网络中没有足够的小数据流,大数据流也能够迅速地增大其拥塞窗口大小从而充分利用网络的可用带宽,避免网络带宽资源的浪费。因此把大数据流的拥塞窗口在拥塞避免阶段的增大量设为1,即大数据流的拥塞窗口将按照如下方式增大:
cwnd←cwnd+1。
这种增长方式和DCTCP以及传统的TCP方案中是一致的,因而能够在充分利用网络带宽方面具有很好的性能。
同时,为了让小数据流具有比大数据流更高的优先级,希望小数据流的拥塞窗口在拥塞避免阶段具有比大数据流更高的增大速度。注意到小数据流的权重w的取值范围为[1,2],本实施例采用如下方式增大小数据流的拥塞窗口大小:
cwnd←cwnd+w。
则小数据流的拥塞窗口的增大速度将总是不低于大数据流的拥塞窗口的增大速度。同时,小数据流的拥塞窗口的增大速度也不会超过2/RTT,从而避免了因为网络中小数据流的拥塞窗口增大过快而导致网络崩溃。此外,由于传输完成数据量越多的小数据流的权重越大,因而其拥塞窗口也就增大得越快,因此小数据流的拥塞窗口的这种方式能够很好的实现最大传输完成数据量优先的原则。
6、拥塞窗口减小模块
当数据流的发送端通过应答包获知网络中已经发生拥塞以后,发送端就会根据网络拥塞程度维护模块维护的网络拥塞程度以及数据流分类模块的分类结果对大数据流和小数据流分别采取不同的策略来减小它们的拥塞窗口大小。
设当前网络拥塞程度为α,则DCTCP中采取的减小数据流拥塞窗口大小的策略是:
cwnd←cwnd×(1-α/2)。
因为本实施例认为小数据流应该具有比大数据流更高的优先级,因此考虑当检测到拥塞的时候大数据流的拥塞窗口的减小量应该大于其在DCTCP中的减小量,而小数据流的拥塞窗口的减小量应该小于其在DCTCP中的减小量,这样就相当于让大数据流释放出更多的带宽,而将这些带宽分配给小数据流,从而有利于小数据流减小其传输延迟。而另一方面,由于在拥塞窗口增大模块中,本实施例将大数据流的拥塞窗口的增大量设为1,因此即使检测到拥塞的时候大数据流的拥塞窗口减小量比较大,当网络中有可用带宽的时候大数据流的拥塞窗口也能够迅速恢复,从而有效避免网络带宽资源的浪费,保证网络的高吞吐率。
在本实施例中拥塞窗口减小模块减小大数据流的拥塞窗口大小的所采用的方法为:
cwnd←cwnd×(1-α0.125/2)。
而减小小数据流的拥塞窗口大小所采用的方法为:
cwnd←cwnd×(1-αw/2),其中,w是这个小数据流的权重。
请参考图10,图10是本发明实施例伽马函数的变化情况示意图。由于小数据流权重w的取值范围为[1,2],而网络拥塞程度α的取值范围为[0,1],由图10知当α∈[0,1]时对于任意给定α伽马函数f(γ)=αr是γ的单调递减函数,因此当检测到拥塞的时候,小数据流的拥塞窗口的减小量αw/2总是小于等于大数据流拥塞窗口的减小量α0.125/2,且只有当α=1.0的时候小数据流的拥塞窗口减小量才和大数据流的拥塞窗口减小量相等,这相当于给小数据流赋予比大数据流更高的优先级。而在小数据流内部,传输完成数据量越多的小数据流,其权重w越大,因而其拥塞窗口的减小量αw/2越小,这等价于该数据流的优先级越高。因此,这种减小小数据流的拥塞窗口的方法能够很好地实现最大完成数据量优先的原则。
采用伽马函数减小数据流的拥塞窗口的另一个好处是当网络极度拥塞的时候,网络的拥塞程度α趋近于1,此时无论γ取何值,αγ的值都会迅速趋近于1,如图1所示(在附图1中d=γ,而P=αd),因而所有数据流的拥塞窗口都会减半,从而有效地缓解网络的拥塞情况。
以上内容是结合具体的/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施例做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

Claims (10)

1.一种基于优先级的数据中心网络传输层数据流传输方法,所述数据中心网络的交换机支持ECN机制,其特征在于:该方法包括如下步骤:
S1、将数据中心网络中正在传输的数据流分类为小数据流和大数据流;
S2、计算小数据流优先级数pri;
S3、计算小数据流权重w;
S4、计算当前网络拥塞程度α;
S5、判断当前网络是否发生拥塞,如果是,执行步骤S6;如果否,执行步骤S7;
S6、将步骤S2、S3、S4的结果代入伽马函数公式来减小数据流拥塞程度窗口大小;
S7、将步骤S3的结果代入公式来增大数据流拥塞程度窗口大小;
S8、按更新后的窗口发送数据流。
2.根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征在于:所述步骤S1采用启发式的算法对数据流进行分类:当一个数据流刚开始启动的时候,将其视为一个小数据流;当一个数据流传输的数据量超过预设的阈值M的时候,这个数据流就会被归类为一个大数据流。
3.根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征在于:所述步骤S2中计算小数据流优先级数pri的方法为:假设它传输完成的数据量为m,则它的优先级数pri为:
其中,M为预设的数据流的阈值,即一个数据流传输完成的数据量一旦超过M就会被归类成为一个大数据流;所述优先级数pri的取值范围是[0,1];
所述步骤S3中计算小数据流权重w的方法为:
w←pri+1,其中,w是小数据流的权重,pri是这个小数据流的优先级数,权重w的取值范围是[1,2]。
4.根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征在于:所述步骤S6采用伽马函数来减小数据流的拥塞窗口大小,当检测到当前网络拥塞的时候,数据流的发送端将按照如下方式来减小其拥塞窗口大小:
cwnd←cwnd×(1-αγ/2),其中,cwnd为网络拥塞窗口,α为当前网络拥塞程度;
对于大数据流来说,令γ<1;对于小数据流来说,令γ=w,w为小数据流的权重。
5.根据权利要求1所述的基于优先级的数据中心网络传输层数据流传输方法,其特征在于:所述步骤S7中增大数据流拥塞程度窗口的大小方法为:
大数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+1,cwnd为网络拥塞窗口;
小数据流的拥塞窗口在拥塞避免阶段将按如下方式增大:
cwnd←cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
6.一种包含权利要求1-5任一项所述的基于优先级的数据中心网络传输层数据流传输方法的数据中心网络,所述数据中心网络包括数据中心内连接计算主机的路由器和交换机;所述交换机支持ECN机制;所述计算主机包括发送端主机和接受端主机;所述发送端主机和接收端主机包含网络协议栈;所述协议栈包含五层结构,这五层结构从下到上分别为物理层、数据链路层、网络层、传输层和应用层;其特征在于:所述发送端主机的传输层还包括数据流分类模块、网络拥塞程度维护模块、优先级数和权重计算模块、拥塞窗口减小模块和拥塞窗口增大模块;所述接受端主机传输层还包括拥塞通告模块。
7.根据权利要求6所述的数据中心网络,其特征在于:所述数据流分类模块采用启发式的算法对数据流进行分类:当一个数据流刚开始启动的时候,将这一数据流归类为一个小数据流;一旦数据流传输的数据量超过了阈值M=200KB,数据流分类模块就会将这个数据流归类为一个大数据流。
8.根据权利要求6所述的数据中心网络,其特征在于:所述优先级数和权重计算模块用来计算小数据流的优先级数pri和权重w;
对于一个小数据流,其优先级数pri为:
其中,m是这个数据流已经传输完成的数据量,M是预设的数据流的阈值,也是一个小数据流已经传输完成数据量的上限,一个小数据流优先级数的取值范围为[0,1];
其权重w为:
w(pri)=1.0+pri,其中,pri为一个小数据流的优先级数。
9.根据权利要求6所述的数据中心网络,其特征在于:所述拥塞窗口增大模块用来增大大数据流和小数据流的拥塞窗口大小;
大数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
cwnd←cwnd+1,cwnd为网络拥塞窗口;
小数据流的拥塞窗口大小在拥塞避免阶段按如下方式增大:
cwnd←cwnd+w,其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
10.根据权利要求6所述的数据中心网络,其特征在于:所述拥塞窗口减小模块用来减小大数据流和小数据流的拥塞窗口大小;
减小大数据流的拥塞窗口大小的方法为:
cwnd←cwnd×(1-α0.125/2),cwnd为网络拥塞窗口;
减小小数据流的拥塞窗口大小的方法为:
cwnd←cwnd×(1-αw/2),其中,cwnd为网络拥塞窗口,w是该小数据流的权重。
CN201610369912.5A 2016-05-30 2016-05-30 一种基于优先级的数据中心网络传输层数据流传输方法 Expired - Fee Related CN105827540B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610369912.5A CN105827540B (zh) 2016-05-30 2016-05-30 一种基于优先级的数据中心网络传输层数据流传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610369912.5A CN105827540B (zh) 2016-05-30 2016-05-30 一种基于优先级的数据中心网络传输层数据流传输方法

Publications (2)

Publication Number Publication Date
CN105827540A true CN105827540A (zh) 2016-08-03
CN105827540B CN105827540B (zh) 2018-11-02

Family

ID=56532492

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610369912.5A Expired - Fee Related CN105827540B (zh) 2016-05-30 2016-05-30 一种基于优先级的数据中心网络传输层数据流传输方法

Country Status (1)

Country Link
CN (1) CN105827540B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027407A (zh) * 2016-08-05 2016-10-12 广州市香港科大霍英东研究院 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机
CN106254273A (zh) * 2016-08-09 2016-12-21 清华大学深圳研究生院 一种数据中心网络流的调度方法和系统
CN106302227A (zh) * 2016-08-05 2017-01-04 广州市香港科大霍英东研究院 混合网络流调度方法和交换机
CN106338006A (zh) * 2016-10-17 2017-01-18 浙江中控软件技术有限公司 一种蒸汽管网的监控方法及系统
CN106533970A (zh) * 2016-11-02 2017-03-22 重庆大学 面向云计算数据中心网络的差分流传输控制方法及装置
CN107046507A (zh) * 2016-12-13 2017-08-15 中南大学 一种用于dcn中任务传输的拥塞控制方法
CN107070804A (zh) * 2017-03-15 2017-08-18 清华大学 入队标记和出队标记相结合的显示拥塞标记方法及装置
CN109120544A (zh) * 2018-09-30 2019-01-01 华中科技大学 一种数据中心网络中基于主机端流量调度的传输控制方法
CN109309625A (zh) * 2017-07-28 2019-02-05 北京交通大学 一种数据中心网络灾备传输方法
CN109873773A (zh) * 2019-03-14 2019-06-11 宁波大学 一种用于数据中心的拥塞控制方法
CN110198273A (zh) * 2019-05-31 2019-09-03 中南大学 数据中心网络中基于网络编码的多路径传输方法
CN110535778A (zh) * 2019-08-29 2019-12-03 河南科技大学 用于数据中心网络中tcp协议的传输速率分配方法
WO2020200307A1 (zh) * 2019-04-04 2020-10-08 华为技术有限公司 数据包标记方法及设备、数据传输系统
CN112995048A (zh) * 2019-12-18 2021-06-18 深圳先进技术研究院 数据中心网络的阻塞控制与调度融合方法及终端设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428104A (zh) * 2012-05-25 2013-12-04 中国科学院声学研究所 一种基于内容中心网络的拥塞控制方法
CN103457871A (zh) * 2013-09-18 2013-12-18 中南大学 Dcn中基于延迟约束的拥塞避免阶段的增窗方法
CN103795643A (zh) * 2014-01-28 2014-05-14 广西大学 数据中心网络中处理同步优先级突发流的方法
CN104009931A (zh) * 2014-06-13 2014-08-27 中南大学 数据中心网络中基于通告窗口和多流协同的拥塞控制方法
CN104702694A (zh) * 2015-03-19 2015-06-10 清华大学 基于混合传输模式的数据中心的动态数据流调度方法
CN105024946A (zh) * 2015-06-16 2015-11-04 清华大学 一种基于滑动窗口的带宽分配方法、装置和系统
CN105227481A (zh) * 2015-09-02 2016-01-06 重庆邮电大学 基于路径开销和流调度代价最小化的sdn拥塞控制路由方法
US20160080103A1 (en) * 2011-11-17 2016-03-17 Google Inc. Service and application layer optimization using variable rate optical transmission
CN105591970A (zh) * 2015-08-31 2016-05-18 杭州华三通信技术有限公司 一种流量控制的方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160080103A1 (en) * 2011-11-17 2016-03-17 Google Inc. Service and application layer optimization using variable rate optical transmission
CN103428104A (zh) * 2012-05-25 2013-12-04 中国科学院声学研究所 一种基于内容中心网络的拥塞控制方法
CN103457871A (zh) * 2013-09-18 2013-12-18 中南大学 Dcn中基于延迟约束的拥塞避免阶段的增窗方法
CN103795643A (zh) * 2014-01-28 2014-05-14 广西大学 数据中心网络中处理同步优先级突发流的方法
CN104009931A (zh) * 2014-06-13 2014-08-27 中南大学 数据中心网络中基于通告窗口和多流协同的拥塞控制方法
CN104702694A (zh) * 2015-03-19 2015-06-10 清华大学 基于混合传输模式的数据中心的动态数据流调度方法
CN105024946A (zh) * 2015-06-16 2015-11-04 清华大学 一种基于滑动窗口的带宽分配方法、装置和系统
CN105591970A (zh) * 2015-08-31 2016-05-18 杭州华三通信技术有限公司 一种流量控制的方法和装置
CN105227481A (zh) * 2015-09-02 2016-01-06 重庆邮电大学 基于路径开销和流调度代价最小化的sdn拥塞控制路由方法

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302227A (zh) * 2016-08-05 2017-01-04 广州市香港科大霍英东研究院 混合网络流调度方法和交换机
CN106302227B (zh) * 2016-08-05 2019-12-17 广州市香港科大霍英东研究院 混合网络流调度方法和交换机
CN106027407B (zh) * 2016-08-05 2018-12-28 广州市香港科大霍英东研究院 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机
CN106027407A (zh) * 2016-08-05 2016-10-12 广州市香港科大霍英东研究院 网络中拥塞窗口的调整方法、网络拥塞控制方法及交换机
CN106254273A (zh) * 2016-08-09 2016-12-21 清华大学深圳研究生院 一种数据中心网络流的调度方法和系统
CN106338006A (zh) * 2016-10-17 2017-01-18 浙江中控软件技术有限公司 一种蒸汽管网的监控方法及系统
CN106533970A (zh) * 2016-11-02 2017-03-22 重庆大学 面向云计算数据中心网络的差分流传输控制方法及装置
CN106533970B (zh) * 2016-11-02 2019-06-07 重庆大学 面向云计算数据中心网络的差分流传输控制方法及装置
CN107046507B (zh) * 2016-12-13 2019-05-28 中南大学 一种用于dcn中任务传输的拥塞控制方法
CN107046507A (zh) * 2016-12-13 2017-08-15 中南大学 一种用于dcn中任务传输的拥塞控制方法
CN107070804A (zh) * 2017-03-15 2017-08-18 清华大学 入队标记和出队标记相结合的显示拥塞标记方法及装置
CN107070804B (zh) * 2017-03-15 2019-09-20 清华大学 入队标记和出队标记相结合的显示拥塞标记方法及装置
CN109309625A (zh) * 2017-07-28 2019-02-05 北京交通大学 一种数据中心网络灾备传输方法
CN109309625B (zh) * 2017-07-28 2021-10-29 北京交通大学 一种数据中心网络灾备传输方法
CN109120544A (zh) * 2018-09-30 2019-01-01 华中科技大学 一种数据中心网络中基于主机端流量调度的传输控制方法
CN109873773A (zh) * 2019-03-14 2019-06-11 宁波大学 一种用于数据中心的拥塞控制方法
CN109873773B (zh) * 2019-03-14 2022-06-03 宁波大学 一种用于数据中心的拥塞控制方法
WO2020200307A1 (zh) * 2019-04-04 2020-10-08 华为技术有限公司 数据包标记方法及设备、数据传输系统
US11991085B2 (en) 2019-04-04 2024-05-21 Huawei Technologies Co., Ltd. Data packet marking method and device, and data transmission system
CN110198273B (zh) * 2019-05-31 2020-07-24 中南大学 数据中心网络中基于网络编码的多路径传输方法
CN110198273A (zh) * 2019-05-31 2019-09-03 中南大学 数据中心网络中基于网络编码的多路径传输方法
CN110535778A (zh) * 2019-08-29 2019-12-03 河南科技大学 用于数据中心网络中tcp协议的传输速率分配方法
CN110535778B (zh) * 2019-08-29 2022-09-23 河南科技大学 用于数据中心网络中tcp协议的传输速率分配方法
CN112995048A (zh) * 2019-12-18 2021-06-18 深圳先进技术研究院 数据中心网络的阻塞控制与调度融合方法及终端设备
CN112995048B (zh) * 2019-12-18 2023-06-20 深圳先进技术研究院 数据中心网络的阻塞控制与调度融合方法及终端设备

Also Published As

Publication number Publication date
CN105827540B (zh) 2018-11-02

Similar Documents

Publication Publication Date Title
CN105827540A (zh) 一种基于优先级的数据中心网络传输层数据流传输方法
US11316795B2 (en) Network flow control method and network device
CN103346922B (zh) 基于sdn的确定网络状态的控制器及其确定方法
CN106533970B (zh) 面向云计算数据中心网络的差分流传输控制方法及装置
CN103457871B (zh) Dcn中基于延迟约束的拥塞避免阶段的增窗方法
CN103795643B (zh) 数据中心网络中处理同步优先级突发流的方法
CN106059951B (zh) 一种用于dcn中基于多级拥塞反馈的传输控制方法
CN102572941B (zh) 移动容迟网络中基于概率路由的缓冲区管理方法
CN102291389A (zh) 一种卫星网络中跨层拥塞控制方法
RU2012155863A (ru) Способ и система управления полосой пропускания
CN104093009A (zh) 无线自组织网络中基于网络效用的视频传输方法
CN102209077A (zh) 基于改进tfmcc协议的通信方法
CN107154897A (zh) Dcn中基于包散射的异构流隔离方法
CN114500394B (zh) 一种区分服务的拥塞控制方法
Tshiningayamwe et al. A priority rate-based routing protocol for wireless multimedia sensor networks
Tang et al. A MPTCP scheduler combined with congestion control for short flow delivery in signal transmission
CN102427596B (zh) 基于定位信息辅助的节点移动网络的路由方法及调度方法
Wu et al. A hop-by-hop cross-layer congestion control scheme for wireless sensor networks
CN108881045A (zh) 一种异构网络中基于QoS保障的拥塞控制方法
CN105007235A (zh) 一种无线多媒体传感器网络中的拥塞控制方法
Nguyen et al. Energy-efficient QoS-based congestion control for reliable communications in wireless multimedia sensor networks
CN102271092A (zh) 基于节点负荷量化等级的拥塞控制系统及控制方法
Malarvizhi et al. RETRACTED ARTICLE: Dynamic scheduling and congestion control for minimizing delay in multihop wireless networks
CN107770082A (zh) 数据中心网络中一种基于任务流量特性的传输控制方法
CN102917399A (zh) 一种无线传感器网络的时延测量方法

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20181102

CF01 Termination of patent right due to non-payment of annual fee