掌桥专利:专业的专利平台
掌桥专利
首页

面向无损数据中心网络的快速精确拥塞反馈方法

文献发布时间:2024-04-18 20:01:55


面向无损数据中心网络的快速精确拥塞反馈方法

技术领域

本发明属于无损数据中心网络优化技术领域,具体的说是涉及一种面向无损数据中心网络的快速精确拥塞反馈方法。

背景技术

无损以太网(Lossless Ethernet)是一种专门用于数据中心网络的网络技术,旨在提供低延迟、高吞吐量和可靠性的传输服务。在数据中心的应用中,通常使用无损以太网和RDMA结合,以实现高性能的无丢包数据传输。RDMA可以实现直接访问远程计算机的内存,不需要CPU的介入,从而减少了数据传输的延迟和CPU占用率。在无损以太网中,交换机可以使用PFC(Priority Flow Control)机制暂停低优先级流量,以确保高优先级流量的传输。同时需要使用端到端的拥塞控制技术,以避免数据包丢失和网络拥塞。

但传统的基于ECN的拥塞控制方案并未考虑到端到端的拥塞控制与逐跳的流量控制之间的相互作用,这种不恰当的拥塞检测方案无法识别导致拥塞的流量以及仅受逐跳流量控制影响的流量。同时,端到端的拥塞控制方案还存在控制链路过长,拥塞反馈不及时,发送端速率收敛较慢等缺陷。

发明内容

为了解决上述技术问题,本发明提供了一种面向无损数据中心网络的快速精确拥塞反馈方法,该方法为现有的拥塞控制方案提供了快速、精确的拥塞通知反馈,在交换机中发生数据堆积时精确识别真正导致拥塞的流量,并在真正的拥塞发生时为发送端提供快速的拥塞反馈,通过与现有的拥塞控制算法相结合,帮助发送端快速收敛速率,消除瓶颈链路的拥塞。

为了达到上述目的,本发明是通过以下技术方案实现的:

本发明是一个面向无损数据中心网络的快速精确拥塞反馈方法,包括步骤如下:

步骤1:在无损数据中心网络中部署基于优先级的流量控制(PFC)与端到端的拥塞控制算法DCQCN。同时,对交换机中的每个端口,维护一个端口状态表portTable,当交换机收到暂停帧时,记录端口收到暂停帧的时刻pauseTime、暂停的持续时间

步骤1-1:在交换机的每个端口维护一个端口状态表portTable,其中表中分别记录了端口收到暂停帧时,收到暂停帧的时刻pauseTime、暂停的持续时间

步骤1-2:在端口暂停期间,每当一个数据包到达出口队列,进行如下操作:

步骤1-3:当端口由收到一个恢复帧后,记录当前的时间戳,并进行如下操作:

步骤1-4:比较端口的接收速率与发送速率。交换机默认以链路带宽

因此,

步骤2:定义每个端口有2类状态:确定(Determined)状态和不确定(Undetermined)状态,其中,确定状态的端口又可分为拥塞态和非拥塞态。在交换机受到PFC影响后,使用portTable计算端口当前状态。对于不确定状态的端口,持续跟踪队列长度的变化,直到端口状态恢复为确定状态。对于确定的拥塞端口,对经过此端口的数据流进行拥塞通知。对于确定的非拥塞端口,对经过此端口的数据流不进行处理。

确定状态:端口未受到PFC的影响,能够明确判断当前端口处于拥塞或非拥塞。对于确定状态的端口,当队列存在堆积时,表明端口出现了拥塞,此时需要通过向发送端发送CNP报文,通知发送端降速。

不确定状态:端口受到了PFC影响,此时出口队列虽然存在队列堆积,但无法判断队列堆积的原因是由于真正的端口拥塞还是PFC暂停蔓延引起的暂时的队列堆积,此时端口属于不确定状态。端口只有在存在队列堆积时才有可能处于不确定状态。对于不确定状态的端口,我们暂时不做处理,以免造成不必要的吞吐量下降。

步骤2-1:所有端口初始时全部定义为确定状态。在出口队列经过暂停-恢复切换后,通过队列长度及端口状态表portTable判断端口是否需要从确定状态切换为不确定状态。

步骤2-2:如果出口队列长度QLength和阈值Threshold之间满足QLength

步骤2-3:如果出口队列长度QLength和阈值Threshold之间满足QLength ≥Threshold,表示出口队列存在一定的堆积,通过读取端口状态表portTable,继续比较入端口数据包接收速率与发送速率,进一步判断该端口是真正的拥塞端口,还是受到PFC影响队列暂时堆积的端口。

步骤2-4:如果出口队列的数据接收速率portTable.rxByte,链路带宽

步骤2-5:如果出口队列的数据接收速率portTable.rxByte,链路带宽

步骤2-6:对于非确定状态的端口,若队列长度Qlength与Threshold之间满足Qlength≥Threshold,且队列长度Qlength不断减小,则端口继续维持不确定状态。对于不确定状态的端口,我们不对数据包做任何处理。

步骤2-7:对于非确定状态的端口,若队列长度Qlength与Threshold之间满足Qlength≥Threshold,且队列长度Qlength增加,则将端口状态更新为确定状态,并向发送端发送CNP报文。此时表明端口数据在继续堆积,端口存在拥塞,需要及时结束不确定状态并尽快向发送端返回CNP报文,通知源端进行降速。

步骤2-8:若队列长度Qlength与Threshold之间满足Qlength<Threshold,则端口状态更新为确定状态。此时表明端口受到暂停帧影响而导致堆积的数据包已经排空,端口恢复到非拥塞状态。

步骤3:对交换机维护一个流表flowTable,记录通过端口的 每一条数据流的源IP地址(sip)、目的IP地址(dip)、堆积的数据量(data)等信息。对于确定的拥塞端口,我们维护的流表flowTable,为通过此端口的每条数据流显式分配一个窗口,并将此窗口值由CNP报文携带,从拥塞点直接发送至发送端。发送端收到CNP报文,更新窗口值并降速。

步骤3-1: 对交换机维护一个流表flowTable,记录通过端口的每一条数据流的源IP地址(sip)、目的IP地址(dip)、堆积的数据量。

当数据包到达出口队列时,对流表项进行更新。使用flowTable[sip,dip]确定唯一一条流,并使用如下公式更新流表项中流对应的数据包数量:

在数据包离开出口队列时,使用如下公式更新流表项中流对应的数据包数量:

步骤3-2:对于真正拥塞的端口,使用流表flowTable计算出一个窗口值Win,并通过CNP报文将窗口值携带回发送端,从而借助窗口控制链路中的inflight数据包数量,实现快速显式的窗口分配。窗口值Win的具体计算公式为:

其中,

步骤3-3:发送端在收到携带有窗口值的CNP报文后,对报文进行解析,并针对链路中的拥塞结点做出如下操作。

使用端到端的拥塞控制算法DCQCN调节发送速率,并将对应流的窗口大小限制为CNP报文中所携带的窗口大小。在DCQCN算法进入速率恢复阶段时,将窗口大小重新恢复为初始值。窗口大小初始值使用如下方式计算得出:

本发明的有益效果是:本发明是从无损数据中心网络低时延、高吞吐的需求角度出发用于无损数据中心拥塞控制的快速、精确的拥塞反馈方法框架;具体具有如下优势:

(1)拥塞发生时,在拥塞点直接向发送方返回CNP报文,不需要通知接收方,可以有效缩短链路反馈时延,使拥塞反馈更加快速,发送方能够更早获取链路拥塞信息并收敛速率。

(2)为通过拥塞端口的每条数据流显式分配一个窗口,并将此窗口值由CNP报文携带发送端。快速控制链路中的inflight数据包数量,尽早排空链路中堆积的数据包,消除拥塞。

(3)采用基于队列预测的精准的拥塞检测,能够快速判断当前端口状态,精确区分真正的拥塞端口和仅受逐跳流量控制影响的端口。

(4)能够与现有的端到端的拥塞控制方法如DCQCN兼容,并且几乎不需要修改发送端的任何内容,便于部署。

附图说明

图1为本发明实施例中拥塞检测方法示意图。

图2为本发明实施例中快速显式窗口分配示意图。

具体实施方式

以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。

本发明提出一种面向无损数据中心网络的快速精确拥塞反馈方法,包括以下三个部分:

反映点RP:本发明为发送端,当收到一个CNP报文时,RP判断出当前流量发送速率会导致网络拥塞。使用DCQCN减小当前发送速率,并将窗口信息更新为CNP报文中携带的窗口大小。

拥塞点CP:本发明为交换机,在转发数据包时,会按照一定的拥塞检测流程判断当前结点是否拥塞,并对拥塞流进行相应处理。

通知点NP:本发明中为交换机,NP收到报文后,判断网络中是否存在拥塞,如果存在,则向RP发送CNP报文,通知RP进行流量降速。在本发明中,NP等同于CP。

如图1所示,本发明的是一种面向无损数据中心网络的快速精确拥塞反馈方法,该方法包括以下两种操作:

出口队列经过暂停-恢复切换后,判断出口队列长度QLength和阈值Threshold之间是否满足QLength < Threshold,如果是,保持确定状态,否则判断接收速率是否大于发送速率,如果接收速率大于发送速率,保持确定状态,如果接收速率小于发送速率,保持不确定状态,重置检测队列长度的计时器并记录当前出口队列长度。

端口发送一个数据包时,判断端口状态,如果端口是确定状态,进一步判断出口队列长度,如果出口队列长度大于阈值,发送CNP报文。如果端口是非拥塞状态,判断检测队列长度的计时器是否到期,如果没有到期,继续保持不确定状态,如果到期,判断出口队列长度是否小于阈值,如果小于,切换为确定非拥塞状态,如果大于,继续判断出口队列长度是否增加,如果增加,切换为确定拥塞状态并向发送端发送CNP报文,如果不增加,暂时继续保持不确定状态,重置检测队列长度的计时器并重新记录当前出口队列长度。

如图2所示,本发明的快速显式窗口分配包括以下操作:

交换机维护一个流表flowTable,记录通过端口的每一条数据流的源IP地址、目的IP地址、堆积的数据量。并在数据包到达/离开出口队列时更新流表。当通过当前端口的流被判断为拥塞时,交换机会向发送端返回CNP报文,并通过查表,为当前拥塞流显式分配一个窗口值,窗口值由CNP报文携带回发送端。

本发明由拥塞检测模块和显式窗口分配模块组成。

(一)拥塞检测模块包括以下具体步骤:

步骤1:在无损数据中心网络中部署基于优先级的流量控制(PFC)与端到端的拥塞控制算法DCQCN。同时,对交换机中的每个端口,维护一个端口状态表portTable,当交换机收到暂停帧时,记录端口收到暂停帧的时刻pauseTime、暂停的持续时间

步骤1-1:在交换机的每个端口维护一个端口状态表portTable,其中表中分别记录了端口收到暂停帧时,收到暂停帧的时刻pauseTime、暂停的持续时间

步骤1-2:在端口暂停期间,每当一个数据包到达出口队列,进行如下操作:

步骤1-3:当端口由收到一个恢复帧后,记录当前的时间戳,并进行如下操作:

步骤1-4:比较端口的接收速率与发送速率。交换机默认以链路带宽

因此,

步骤2:定义每个端口有2类状态:确定(Determined)状态和不确定(Undetermined)状态,其中,确定状态的端口又可分为拥塞态和非拥塞态。在交换机受到PFC影响后,使用portTable计算端口当前状态。对于不确定状态的端口,持续跟踪队列长度的变化,直到端口状态恢复为确定状态。对于确定的拥塞端口,对经过此端口的数据流进行拥塞通知。对于确定的非拥塞端口,对经过此端口的数据流不进行处理。

确定状态:端口未受到PFC的影响,能够明确判断当前端口处于拥塞或非拥塞。对于确定状态的端口,当队列存在堆积时,表明端口出现了拥塞,此时需要通过向发送端发送CNP报文,通知发送端降速。

不确定状态:端口受到了PFC影响,此时出口队列虽然存在队列堆积,但无法判断队列堆积的原因是由于真正的端口拥塞还是PFC暂停蔓延引起的暂时的队列堆积,此时端口属于不确定状态。端口只有在存在队列堆积时才有可能处于不确定状态。对于不确定状态的端口,我们暂时不做处理,以免造成不必要的吞吐量下降。

步骤2-1:所有端口初始时全部定义为确定状态。在出口队列经过暂停-恢复切换后,通过队列长度及端口状态表portTable判断端口是否需要从确定状态切换为不确定状态。

步骤2-2:如果出口队列长度QLength和阈值Threshold之间满足QLength

步骤2-3:如果出口队列长度QLength和阈值Threshold之间满足QLength ≥Threshold,表示出口队列存在一定的堆积,通过读取端口状态表portTable,继续比较入端口数据包接收速率与发送速率,进一步判断该端口是真正的拥塞端口,还是受到PFC影响队列暂时堆积的端口。

步骤2-4:如果出口队列的数据接收速率portTable.rxByte,链路带宽

步骤2-5:如果出口队列的数据接收速率portTable.rxByte,链路带宽

步骤2-6:对于非确定状态的端口,若队列长度Qlength与Threshold之间满足Qlength≥Threshold,且队列长度Qlength不断减小,则端口继续维持不确定状态。对于不确定状态的端口,我们不对数据包做任何处理。

步骤2-7:对于非确定状态的端口,若队列长度Qlength与Threshold之间满足Qlength≥Threshold,且队列长度Qlength增加,则将端口状态更新为确定状态,并向发送端发送CNP报文。此时表明端口数据在继续堆积,端口存在拥塞,需要及时结束不确定状态并尽快向发送端返回CNP报文,通知源端进行降速。

步骤2-8:若队列长度Qlength与Threshold之间满足Qlength<Threshold,则端口状态更新为确定状态。此时表明端口受到暂停帧影响而导致堆积的数据包已经排空,端口恢复到非拥塞状态。

(二)显式窗口分配模块包括以下具体步骤:

步骤3:对交换机维护一个流表flowTable,记录通过端口的 每一条数据流的源IP地址(sip)、目的IP地址(dip)、堆积的数据量(data)等信息。对于确定的拥塞端口,我们维护的流表flowTable,为通过此端口的每条数据流显式分配一个窗口,并将此窗口值由CNP报文携带,从拥塞点直接发送至发送端。发送端收到CNP报文,更新窗口值并降速。

步骤3-1: 对交换机维护一个流表flowTable,记录通过端口的每一条数据流的源IP地址(sip)、目的IP地址(dip)、堆积的数据量。

当数据包到达出口队列时,对流表项进行更新。使用flowTable[sip,dip]确定唯一一条流,并使用如下公式更新流表项中流对应的数据包数量:

在数据包离开出口队列时,使用如下公式更新流表项中流对应的数据包数量:

步骤3-2:对于真正拥塞的端口,使用流表flowTable计算出一个窗口值Win,并通过CNP报文将窗口值携带回发送端,从而借助窗口控制链路中的inflight数据包数量,实现快速显式的窗口分配。窗口值Win的具体计算公式为:

其中,

步骤3-3:发送端在收到携带有窗口值的CNP报文后,对报文进行解析,并针对链路中的拥塞结点做出如下操作。

使用端到端的拥塞控制算法DCQCN调节发送速率,并将对应流的窗口大小限制为CNP报文中所携带的窗口大小。在DCQCN算法进入速率恢复阶段时,将窗口大小重新恢复为初始值。窗口大小初始值使用如下方式计算得出:

本发明是从无损数据中心网络低时延、高吞吐的需求角度出发用于无损数据中心拥塞控制的快速、精确的拥塞反馈方法框架。端到端工作的拥塞控制不利于迅速地根据链路拥塞情况调整发送速率,无法及时对瓶颈链路出现的拥塞做出反应,DCQCN的速率调节算法也无法在收到拥塞反馈后做到速率的快速收敛。同时,基于ECN的拥塞检测方案会混淆真正的拥塞流和仅仅收到端到端的流量控制影响的数据流,导致受害者流的出现,造成吞吐量的损失。

以上所述仅为本发明的实施方式而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理的内所作的任何修改、等同替换、改进等,均应包括在本发明的权利要求范围之内。

相关技术
  • 电剥离用粘合剂组合物、粘合片、及接合体
  • 紫外线固化型丙烯酸类粘合剂组合物、紫外线固化型丙烯酸类粘合剂层、带粘合剂层的偏振膜、紫外线固化型丙烯酸类粘合剂层的制造方法、以及图像显示装置
  • 光学膜用粘合剂组合物、光学膜用粘合剂层、带粘合剂层的光学膜和图像显示装置
  • 光学膜用粘合剂组合物、光学膜用粘合剂层、带粘合剂层的光学膜和图像显示装置
  • 光学膜用粘合剂组合物、光学膜用粘合剂层、带粘合剂层的光学膜和图像显示装置
  • 聚合物组合物、粘合剂组合物、使用该聚合物组合物而制造的温度响应片、以及使用该粘合剂组合物而制造的冷却剥离粘合片
  • 聚合物组合物、粘合剂组合物、使用该聚合物组合物而制造的温度响应片、以及使用该粘合剂组合物而制造的冷却剥离粘合片
技术分类

06120116566753