一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据中心无损网络中基于拥塞反馈的数据流传输控制方法

2022-08-24 03:05:48 来源:中国专利 TAG:


1.本发明涉及数据中心无损网络技术领域,尤其涉及一种数据中心无损网络中基于拥塞反馈的数据流传输控制方法。


背景技术:

2.为了降低数据中心内部网络传输延时、提高网络吞吐率,基于远程直接内存访问(remote direct memory access,rdma)的roce(rdma over converged ethernet)技术广泛部署于以太网数据中心网络(data center network,dcn)。但是,在rdma传输过程中,即使是单个数据包丢失也会大大降低网络吞吐率,使得流完成时间大幅增加,严重损害了应用服务的性能。
3.为了保证高效、可靠的rdma数据传输,数据中心以太网络广泛部署了基于优先级的流量控制(priority-based flow control,pfc)机制,防止缓存溢出。pfc机制是基于端口的逐跳流控机制,当交换机入端口队列长度超过pfc的暂停阈值,则向上游交换机发送pfc暂停报文,暂停上游交换机相关出端口的数据传输;当入端口队列长度减小到小于pfc的恢复阈值后,则向上游端口发送pfc恢复报文,恢复其数据传输。
4.但是上述基于端口的pfc暂停/恢复机制极容易导致队头阻塞、拥塞扩散和死锁等问题。即当交换机某个出端口被pfc暂停了,将导致队列中发送到其他无拥塞的出端口的数据包也被阻塞。更严重的是,当网络中某个交换机持续发生拥塞时,pfc逐跳流控机制最终会使得与该拥塞无关的上游交换机都会接收到pfc暂停信号并暂停数据包的转发,造成数据包的排队延时增加、网络吞吐率下降,显著增加了流的传输完成时间。
5.为了解决上述问题,一些流级别的端到端传输协议,如dcqcn(data center quantized congestion notification)、timely、hpcc、swift和pcn等协议相继被提出,可以有效缓解网络拥塞,减少pfc的触发次数。但是上述传输协议解决网络拥塞时还会存在以下问题:
6.1、至少要1个rtt才能感知到网络拥塞,因而通常需要多个rtt才能将流的速率收敛到目标速率。
7.2、虽然能有效控制长流造成的持续拥塞,但难以控制生命期极短的突发短流所造成的突发拥塞。
8.3、在突发拥塞场景下,即使部署了上述端到端的传输协议,也会不可避免地触发pfc,出现pfc的负面问题。
9.因此,如何快速反馈拥塞,避免pfc触发,从而避免pfc的负面影响、加速流的完成,提升应用性能和用户体验,是亟待解决的问题。


技术实现要素:

10.本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、成本低、效率高的数据中心无损网络中基于拥塞反馈的数据流传输控制
方法,能够快速反馈拥塞,避免pfc触发和pfc引起的队头阻塞,加速流的完成,提升应用性能和用户体验。
11.为解决上述技术问题,本发明提出的技术方案为:
12.一种数据中心无损网络中基于拥塞反馈的数据流传输控制方法,步骤包括:
13.检测交换机输出端口的数据分组的队列长度,根据检测到的队列长度判断输出端口的拥塞状态;
14.如果输出端口的拥塞状态处于无拥塞状态,则直接转发数据分组到目的输出端口以发送给主机端;
15.如果输出端口的拥塞状态处于持续拥塞状态,则启动ecn标记功能,对数据队列中指定数据分组进行ecn标记后通过目的输出端口发送数据分组给主机端,以根据所述ecn标记控制主机端发送速率;
16.如果输出端口的拥塞状态处于突发拥塞状态,且拥塞流的数据分组与非拥塞流共享输入端口,则禁用ecn标记功能直至队列长度下降指定阈值,转发数据分组到目的输出端口,同时生成拥塞通告报文cnm并直接通告拥塞流的发送端,以根据拥塞通告报文cnm控制主机端发送速率。
17.进一步的,所述根据检测到的队列长度判断输出端口的拥塞状态包括:当所述队列长度小于预设ecn标记阈值qecn时,则判定输出端口处于无拥塞状态;当所述队列长度在预设ecn标记阈值qecn和预设突发拥塞反馈阈值qcnm之间时,则判断输出端口处于持续拥塞状态;当所述队列长度超过预设突发拥塞反馈阈值qcnm时,则判定输出端口处于突发拥塞状态。
18.进一步的,所述如果输出端口的拥塞状态处于持续拥塞状态时,对数据队列中超过所述预设ecn标记阈值qecn的数据分组进行ecn标记。
19.进一步的,所述如果输出端口的拥塞状态处于突发拥塞状态时,判断分组是否与非拥塞流共享输入端口,如果是禁用ecn标记功能直到队列长度下降到所述预设ecn标记阈值qecn以下再重新开启ecn标记功能,否则直接转发数据分组。
20.进一步的,所述突发拥塞反馈阈值qcnm的值在范围[q
ecn
,max(q
ecn
,q
pfc
/m-3dc*(m-1))]内,其中m为交换机出端口数量,d为链路基础延时,c为链路带宽,q
pfc
为预设pfc暂停阈值。
[0021]
进一步的,还包括在接收端判断接收到的接收分组是否带有ecn标记的分组,如果是将ecn标记复制到拥塞通告分组cnp中,周期性向发送端发送所述拥塞通告分组cnp以及ack信号,否则直接发送ack信号给发送端。
[0022]
进一步的,还包括根据接收到的数据分组类型控制发送端的发送速率,当接收到所述拥塞通告分组cnp(congestion notification packet)时,按照aimd算法调节发送速率,当接收到带有拥塞通告报文cnm的数据分组时,将发送速率直接设为目标速率再发送数据分组。
[0023]
进一步的,所述按照aimd(additive increase multiplicative decrease,加性增乘性减)算法调节发送速率包括:
[0024]
如果所述拥塞通告分组cnp中拥塞标记为1,则按照式计算ecn标记比例其中g为速率调节权重,为最近一个统计周期内的ecn标记比例,然后计算调节
后的新发送速率:
[0025]
如果所述拥塞通告分组cnp中拥塞标记为0,则按照式计算ecn标记比例然后计算调节后的新发送速率:新的发送速率=(目标速率 当前发送速率)/2。
[0026]
进一步的,所述当接收到带有拥塞通告报文cnm的数据分组时,将发送速率直接设为c/n目标速率,其中c为链路带宽,n为带有拥塞通告报文cnm的数据分组携带的拥塞流数量。
[0027]
一种存储有计算机程序的计算机可读存储介质,所述计算机程序执行时实现如上述方法。
[0028]
与现有技术相比,本发明的优点在于:
[0029]
1、本发明在数据中心无损网络中,通过交换机根据队列长度判断输出端口的拥塞状态,以识别出持续拥塞和突发拥塞,依据拥塞状态控制启动对转发的数据分组的ecn标记功能或生成拥塞通告报文cnm,从而直接从交换机反馈拥塞信号到主机端,可以实现快速拥塞感知,通过标记不同拥塞状态使得依据拥塞状态类型执行发送速率的动态调节,有效解决持续拥塞和突发拥塞的问题。
[0030]
2、本发明对于因长流竞争造成队列增长的持续拥塞状态,通过启动ecn标记功能,以根据端到端的ecn标记控制调节发送速率,能够有效控制因长流竞争造成队列增长的持续拥塞。
[0031]
3、本发明对于短流造成的突发拥塞,通过识别出与非拥塞流共享入端口的拥塞流,对与非拥塞流共享入端口的拥塞流进行标记,生成拥塞通告报文cnm反馈给主机端,使得能够及时感知并控制数据中心无损网络的突发拥塞,以及时对影响受害流的拥塞流进行速率调节,从而避免pfc触发和pfc的负面影响如队头阻塞问题,有效解决了在数据中心无损网络中即使部署了端到端的传输协议仍会触发pfc的问题。
附图说明
[0032]
图1是本实施例数据中心无损网络中基于拥塞反馈的数据流传输控制方法的实现流程示意图。
[0033]
图2是本发明具体应用实施例中实现数据中心无损网络中基于拥塞反馈的数据流传输控制的详细实现流程示意图。
[0034]
图3是在具体应用实施例中测试床的测试场景拓扑示意图。
[0035]
图4是在具体应用实施例中ns-3大规模仿真测试场景拓扑示意图。
[0036]
图5是在具体应用实施例中测试床的基础性能测试结果示意图。
[0037]
图6是在具体应用实施例中网页搜索工作负载下的性能结果示意图。
[0038]
图7是在具体应用实施例中数据挖掘工作负载下的性能结果示意图。
具体实施方式
[0039]
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
[0040]
如图1所示,本实施例数据中心无损网络中基于拥塞反馈的数据流传输控制方法的步骤包括:
[0041]
检测交换机(拥塞点/通告点)输出端口的数据分组的队列长度,根据检测到的队列长度判断输出端口的拥塞状态;
[0042]
如果输出端口的拥塞状态处于无拥塞状态,则直接转发数据分组到目的输出端口以发送给主机端;
[0043]
如果输出端口的拥塞状态处于持续拥塞状态(因长流竞争造成队列增长的持续拥塞),则启动ecn标记功能,对数据队列中指定数据分组进行ecn标记后通过目的输出端口发送数据分组给主机端,以根据ecn标记控制主机端发送速率;
[0044]
如果输出端口的拥塞状态处于突发拥塞状态,且拥塞流的数据分组与非拥塞流共享输入端口,则禁用ecn标记功能直至队列长度下降指定阈值,转发数据分组到目的输出端口,同时生成拥塞通告报文cnm并直接通告拥塞流的发送端,以根据拥塞通告报文cnm控制主机端发送速率。上述拥塞流的发送端也即为控制速率的主机端。
[0045]
本实施例在数据中心无损网络中,通过交换机根据队列长度判断输出端口的拥塞状态,以识别出持续拥塞和突发拥塞,依据拥塞状态控制启动对转发的数据分组的ecn标记功能或生成拥塞通告报文cnm,从而直接从交换机反馈拥塞信号到主机端以实现快速拥塞感知,通过标记不同拥塞状态使得依据拥塞状态类型执行发送速率的动态调节,有效解决持续拥塞和突发拥塞的问题。对于持续拥塞状态,通过启动ecn标记功能,以根据端到端的ecn标记控制调节发送速率,能够有效控制因长流竞争造成队列增长的持续拥塞;对于短流造成的突发拥塞,通过识别出与非拥塞流(与造成网络拥塞无关的流)共享入端口的拥塞流(真正造成拥塞的流),对与非拥塞流共享入端口的拥塞流进行标记,生成拥塞通告报文cnm反馈给主机端,使得能够及时感知并控制数据中心无损网络的突发拥塞,以及时对影响受害流的拥塞流进行速率调节,从而避免pfc触发和pfc的负面影响如队头阻塞问题,有效解决了在数据中心无损网络中即使部署了端到端的传输协议仍会触发pfc的问题。
[0046]
本实施例中,根据检测到的队列长度判断输出端口的拥塞状态具体包括:当队列长度小于预设ecn标记阈值qecn时,则判定输出端口处于无拥塞状态;当队列长度在预设ecn标记阈值qecn和预设突发拥塞反馈阈值qcnm之间时,则判断输出端口处于持续拥塞状态,即为因长流竞争造成队列增长的持续拥塞,当队列长度超过预设突发拥塞反馈阈值qcnm时,则判定输出端口处于突发拥塞状态,即为因短流造成的突发拥塞。
[0047]
优选的,上述预设ecn标记阈值qecn具体可以取32kb,突发拥塞反馈阈值qcnm的值在范围[q
ecn
,max(q
ecn
,q
pfc
/m-3dc*(m-1))]内取值,其中m为交换机出端口数量,d为链路基础延时,c为链路带宽,q
pfc
为预设pfc暂停阈值。可以理解的是,上述预设ecn标记阈值突发拥塞反馈阈值qcnm、突发拥塞反馈阈值qcnm均可以根据实际需求进行配置。
[0048]
本实施例中,如果输出端口的拥塞状态处于持续拥塞状态时,对数据队列中超过预设ecn标记阈值qecn的数据分组进行ecn标记,以使得在主机端根据该ecn标记调整对应数据分组发送速率,有效控制因长流竞争造成队列增长的持续拥塞。
[0049]
本实施例中,如果输出端口的拥塞状态处于突发拥塞状态时,判断数据分组所属拥塞流是否与非拥塞流共享输入端口,如果是禁用ecn标记功能直到队列长度下降到所述预设ecn标记阈值qecn以下再重新开启ecn标记功能,否则直接转发数据分组。本实施例通过判断数据分组所属拥塞流是否与非拥塞流共享输入端口,识别与非拥塞流共享入端口的拥塞流进行标记,使得仅对影响受害流的拥塞流进行速率调节,可以有效避免pfc触发和
pfc的负面影响如队头阻塞问题,解决在数据中心无损网络中突发拥塞问题。
[0050]
本实施例中还包括在接收端(通告点)判断接收到的接收分组是否带有ecn标记的分组,如果是将ecn标记复制到拥塞通告分组cnp中,周期性向发送端发送拥塞通告分组cnp以及ack(应答)信号,否则直接发送ack信号给发送端。即在接收端,当收到有ecn标记的数据分组后,将ecn标记复制到拥塞通告分组cnp中,并周期性地向发送端发送cnp分组。
[0051]
本实施例中,还包括根据接收到的数据分组类型控制发送端(反应点)的发送速率,当接收到拥塞通告分组cnp时,按照aimd算法调节发送速率,当接收到带有拥塞通告报文cnm的数据分组时,将发送速率直接设为目标速率再发送数据分组。即在发送端,当收到拥塞通告报文cnp分组后,则按aimd算法调节发送速率;当收到cnm分组时,则直接将发送速率直接设为目标速率,以及时对影响受害流的拥塞流进行速率调节。
[0052]
本实施例中,上述按照aimd算法调节发送速率具体包括:
[0053]
如果拥塞通告分组cnp中拥塞标记为1,则按照式计算ecn标记比例其中g为速率调节权重,为最近一个统计周期(设置为一个往返延时rtt)内的ecn标记比例,然后计算调节后的新发送速率:
[0054]
如果拥塞通告分组cnp中拥塞标记为0,则按照式计算ecn标记比例然后计算调节后的新发送速率:新的发送速率=(目标速率 当前发送速率)/2。
[0055]
本实施例当接收到cnp分组时,通过采用aimd算法根据ecn标记比例确定调节的发送速率,可以根据拥塞程度进行动态速率调节,从而有效解决持续拥塞问题。
[0056]
本实施例中,当接收到带有拥塞通告报文cnm的数据分组时,具体将发送速率直接设为c/n目标速率,其中c为链路带宽,n为带有拥塞通告报文cnm的数据分组携带的拥塞流数量。即如果接收到带有拥塞通告报文cnm的数据分组,表明输出端口当前处于突发拥塞状态,需要进行降速处理,按照链路带宽与拥塞流数量确定出适合当前拥塞状态的发送速率,从而有效解决突发拥塞问题。
[0057]
在具体应用实施例中,如图2所示,在交换机、接收端、发送端之间实现数据中心无损网络中基于拥塞反馈的数据流传输控制的详细流程为:
[0058]
步骤1、交换机侧(拥塞点/通告点)
[0059]
步骤1.1在交换机侧,初始化ecn标记阈值q
ecn
为32kb,交换机出端口数量m为32,链路基础延时d为5μs,设置突发拥塞反馈阈值q
cnm
,并使ecn标记阈值q
cnm
的值在范围[q
ecn
,max(q
ecn
,q
pfc
/m-3dc*(m-1))]内;
[0060]
步骤1.2接收数据分组后,首先根据输出端口队列长度检测端口的拥塞状态,判断当前输出端口的队列长度是否大于ecn标记阈值,若不是,则判定输出端口处于无拥塞状态,直接转发分组到目的出端口;否则(队列长度小于ecn标记阈值),判断当前输出端口的队列长度是否小于突发拥塞反馈阈值,若是(队列长度介于ecn标记阈值qecn和突发拥塞反馈阈值qcnm之间)则开启ecn标记功能,并标记队列中超过qecn的数据分组的ecn位;否则(队列长度超过突发拥塞反馈阈值qcnm),判断分组所属拥塞流是否与非拥塞流共享输入端口,若是则禁用ecn标记功能,生成拥塞通告报文cnm,并携带该出端口的拥塞流数量,直接发送cnm到拥塞流的发送端并转发分组到目的出端口;否则(不与非拥塞流共享入端口),直接转发分组到目的出端口。
[0061]
步骤2、接收端(通告点)
[0062]
接收端判断当前数据分组是否有ecn标记,若是,则将ecn标记复制到拥塞通告分组cnp中,并周期性(如每55μs)向发送端发送cnp分组,并发送ack给发送端;否则,直接发送ack给发送端。
[0063]
步骤3、发送端(反应点)
[0064]
步骤3.1发送方首先初始化链路带宽c设置为交换机出端口的带宽值,速率调节权重g为0.185,拥塞流数n为0;
[0065]
步骤3.2判断当前数据分组是否是cnp分组,若是则按aimd算法调节发送速率后发送分组,即如果cnp中拥塞标记为1,则按照式:设置目标速率为当前发送速率,其中如果cnp中拥塞标记为0,则按照式:(新的发送速率=(目标速率 当前发送速率)/2)设置目标速率为当前发送速率,其中否则(不是cnp分组),判断当前分组是否是cnm分组,若是则将发送速率直接设置为目标速率c/n,其中,c为链路带宽,n为cnm分组携带的拥塞流数量,再发送分组;否则(不是cnm分组),发送方发送分组。
[0066]
本实施例通过上述步骤,在数据中心无损网络中通过根据输出端口的队列长度区分持续拥塞和突发拥塞,通过端到端的拥塞反馈解决持续拥塞,通过交换机的直接拥塞反馈解决突发拥塞,只对与非拥塞流共享入端口的拥塞流进行减速,可以有效解决持续拥塞和突发拥塞问题,避免触发pfc及其队头阻塞问题。
[0067]
为验证本发明上述方法的有效性,分别在真实网络测试床和ns-3网络仿真平台中实现了上述方法,并进行了性能测试。图3为测试床的测试场景拓扑图。测试床采用数据中心典型的叶脊网络拓扑结构,其中包括3个叶交换机(l0、l1、l2)、2个脊交换机(s0、s1)、16个发送端(h0~h15)和2个接收端(r0、r1)。在测试床实验环境中,每台主机(dell precision tower 5820)均配备10核intel xeon w-2255cpu、64gb内存和支持dpdk(data plane development kit)mellanox connectx-5 100gbe nic(network interface controller),可编程p4(programming protocol-independent packet processors)交换机的缓存大小为22mb,每个端口都启用了pfc机制且pfc pause阈值为320kb,所有链路带宽设置为40gbps,基础rtt为40微秒。传输控制协议部署的是dcqcn,参数设置为默认参数,其中ecn标记阈值为200kb。两条长流f0和f1分别从发送端h0和h1发送到接收端r0和r1。突发流量从发送端h2~h15发送到接收端r1,每个发送端生成35条大小为64kb的短流,突发短流持续8毫秒。
[0068]
ns-3大规模仿真测试场景拓扑如图4所示,采用叶脊网络拓扑结构,有8个核心层脊交换机和10个接入层叶交换机。每个叶交换机与上层所有脊交换机相连,同时与24台终端服务器相连。整个叶脊网络拓扑有240台服务器。网络中所有链路带宽为40gbps,每一跳的延时为5微秒。网络流量在随机选择的主机对之间产生,并且服从泊松到达过程。实验选择数据中心的两种典型中心的两种典型应用即网页搜索和数据挖掘,该两种工作负载都呈重尾分布,在网页搜索工作负载中,大约60%的流小于100kb,且大约20%的流大于1mb;在数据挖掘工作负载中,约80%的流小于100kb,且约不到5%的流大于35mb。网络负载从0.4逐渐增加到0.8。
[0069]
在测试床的基础性能测试结果如图5所示,其中,图5中(a)为队列长度,图5中(b)为实时吞吐率,dcon为本发明传输控制方法。从图中可以看出,本发明dcon能够及时准确地实现拥塞控制,有效避免叶交换机l2的入端口p1触发pfc,非拥塞流f0也没有经历队头阻塞。在突发流量存在期间,dcon拥塞感知和控制机制及时有效地控制了拥塞流f1的速率。非拥塞流f0和拥塞流f1共享的入端口p1/l2的队列长度未超过pfc阈值,避免了p0/s0端口被pfc暂停,非拥塞流f0未受到阻塞。总之,本发明dcon能够有效地处理突发拥塞,成功避免了pfc的队头阻塞和拥塞扩散问题。
[0070]
在网页搜索和数据挖掘工作负载下的性能测试结果如图6、图7所示,其中,图6中(a)和图7中(a)分别为网页搜索和数据挖掘工作负载下的pfc暂停报文速率,图6(b)和图7(b)分别为网页搜索和数据挖掘工作负载下的平均流完成时间图,图6(c)和图7(c)分别为网页搜索和数据挖掘工作负载下的99分位拖尾流完成时间。从图中可以看出,本发明dcon由于能及时识别出拥塞流,并从交换机直接发送拥塞通告到相应的发送端,将发送速率直接降低到目标速率,dcon获得了最低的平均流完成时间和99分位拖尾流完成时间,因而能够有效地减小pfc暂停报文速率。从实验结果可得,本发明dcon有效避免了pfc的队头阻塞,使流更快完成,有效提升了应用性能。
[0071]
本实施例还提供存储有计算机程序的计算机可读存储介质,计算机程序执行时实现如上述方法。
[0072]
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献