首页> 中国专利> 多服务队列环境中基于时延的拥塞控制机制和控制装置

多服务队列环境中基于时延的拥塞控制机制和控制装置

摘要

本发明公开了一种多服务队列环境中基于时延的拥塞控制机制和控制装置,包括三个部分:拥塞检测器、空闲带宽检测器和流量控制器。本发明提出在HPCC的基础上融合使用RTT信息来进行拥塞控制,通过传输数据包RTT的变化获得拥塞信号,在拥塞发生时利用RTT携带的拥塞信息精确快速地调整发送速率。仿真平台测试结果表明:本发明可以很好的解决现有技术在多队列环境中存在的带宽分配违反队列调度意图和异构拥塞控制算法共存下的带宽分配不均的问题,在多服务队列环境中实现高吞吐量、低时延、不同队列之间加权公平共享和性能隔离,同时在单队列环境中保持高吞吐量、低时延和公平性的优势。

著录项

  • 公开/公告号CN114844837A

    专利类型发明专利

  • 公开/公告日2022-08-02

    原文格式PDF

  • 申请/专利权人 西安交通大学;

    申请/专利号CN202210439516.0

  • 发明设计人 单丹枫;刘钰琪;

    申请日2022-04-25

  • 分类号H04L47/12(2022.01);H04L47/283(2022.01);

  • 代理机构西安通大专利代理有限责任公司 61200;

  • 代理人安彦彦

  • 地址 710049 陕西省西安市咸宁西路28号

  • 入库时间 2023-06-19 16:14:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-09-26

    授权

    发明专利权授予

  • 2022-08-19

    实质审查的生效 IPC(主分类):H04L47/12 专利申请号:2022104395160 申请日:20220425

    实质审查的生效

说明书

技术领域

本发明属于数据中心网络技术领域,具体涉及一种多服务队列环境中基于时延的拥塞控制机制。

背景技术

数据中心中运行着各种各样的业务,这些业务对数据中心网络提出了高带宽和低时延的网络传输服务需求,满足这一需求的关键在于一个设计良好的端到端拥塞控制机制。这是因为拥塞控制机制是避免在高流量负载下缓存积累和数据包丢失的主要机制,如果拥塞控制机制频繁失败,网络中拥塞带来的后果有数据传输速率降低、数据传输时延增加、传输过程中丢包增加等,同时基于优先级流量控制(Priority-Based Flow Control,PFC)或数据包重传等备份机制也可能会带来不稳定性和性能下降问题,严重情况下还有可能导致网络瘫痪。

高精度拥塞控制(High Precision Congestion Control,HPCC)是阿里巴巴提出的一种高精度拥塞控制策略,HPCC创新性地应用了交换机设备中带内网络遥测技术(In-band Network Telemetry,INT)功能提供的细粒度链路信息重新设计了一种拥塞控制思路,它可以在单队列网络环境中同时实现高带宽、低时延和高稳定性。HPCC的主要思想是利用INT提供的精确的链路负载信息进行拥塞检测从而在检测到网络中发生拥塞或存在空闲带宽时准确地计算出需要调整的目标速率。HPCC是一个发送方驱动的拥塞控制算法,接收端会对接收到的每个数据包进行确认。它的主要工作流程是:发送端发送数据包,数据包经过链路传输到接受端,在这个过程中,数据包经历的完整路径上的每一个交换机利用其INT功能将链路信息插入到数据包头部,这些链路信息可以反映数据包出口的当前负载,包括队列长度,时间戳,链路带宽容量传输的字节数和传输的字节数等。当接收端收到数据包时,它首先从数据包中分离出交换机插入的链路信息元数据,然后这些信息被插入到生成的确认数据包中,最后将确认数据包返回发送端。发送端接收到带有网络负载信息的确认数据包(Acknowledge character,ACK)后,根据其中携带的负载信息决定每次如何调整其流量。发送方利用队列长度和传输的字节数等负载信息可以计算出经过链路的使用情况,如果超过一定的阈值则判断为该条链路发生拥塞,这时发送方就可以根据链路的实际使用情况和理想状态精确地调整发送速率,而不需要经过多次迭代收敛到最终的目标速率,同时,在链路存在空闲时,HPCC也可以采用同样的方法精确地调整发送速率快速利用可用带宽。

然而,目前数据中心网络中的拥塞控制机制都是基于单服务队列的假设(比如HPCC),即数据中心交换机的每个端口都只有一个队列。而现在的数据中心网络中往往使用多服务队列结构,即在交换机的各个端口设置多个队列,通过将不同的业务分布在不同的服务队列中来对不同数据中心业务进行性能隔离,服务队列之间采用优先级、轮询等算法进行调度。虽然现有的拥塞控制机制在单服务队列网络环境中表现出了良好的性能,但是,如果将其直接应用于多服务队列网络环境,则会出现带宽分配不合理的问题,主要表现在以下两个方面:

(1)带宽分配违反队列调度意图。在多服务队列环境中,被赋予不同权重的流量共存时,带宽不能按照队列的权重进行分配、在不同队列之间进行加权公平共享。

(2)异构拥塞控制算法共存下的带宽分配不均。数据中心网络中不同业务会产生不同类型的流量,比如基于HPCC的RDMA流量,基于Reno等拥塞控制算法的TCP流量,在这些不同类型的流量共存时,会出现一种流量抢占另一种流量带宽的问题,带宽不能在不同类型的流量之间公平分配。

之所以会出现带宽分配不合理的问题,本质原因是为了满足低时延的性能需求,通常拥塞控制机制会将交换机中的队列长度控制在一个接近于0的水平,这样网络中的带宽分配就主要由拥塞控制机制来决定,但是目前流行的拥塞控制机制在进行拥塞控制时缺乏细粒度的链路信息,无法获得每个队列的拥塞情况。以HPCC为例,HPCC在设计的时候使用交换机提供的INT功能,获得队列长度和链路传输字节数等信息来计算链路的使用情况,但是经过调研发现,目前市场上主流交换机厂商生产的多队列交换机,其INT功能只能提供总队列长度和链路总传输字节数,即只能获得一个端口中所有队列的队列长度之和和链路传输字节数总和。所以无法区分是哪个或者哪些队列积累而导致的拥塞,从而带来不公平性。

发明内容

本发明的目的在于在数据中心网络中提供一种多服务队列环境中基于时延的拥塞控制机制和控制装置,一方面满足各种业务对高带宽、低时延网络服务的需求,另一方面实现对不同队列中流量的性能隔离,满足不同业务各自的性能需求。

为达到上述目的,本发明所述一种多服务队列环境中基于时延的拥塞控制机制,包括以下步骤:

步骤1:发送端在发出一个数据包时记录当前的发送时间戳,同时从数据包中提取五元组信息;原始数据包经过路由发往接收端,在原始数据包传输的过程中,每经过一个交换机,交换机将INT元数据插入到原始数据包头部,传输给下一跳;接收端接收到数据包后,提取出INT元数据,将INT元数据插入到生成的ACK中,然后将带有INT元数据的ACK返回发送端;

步骤2:发送端接收到带有INT元数据的ACK后,从ACK中提取INT元数据,并根据五元组查询该ACK所确认数据包的发送时间,然后根据数据包传输往返时延检测该数据包的传输路径是否发生拥塞,当存在拥塞时检测路径上是否存在空闲带宽;

步骤3:根据步骤2得到的检测结果,确定是否和如何调整发送窗口;

步骤4:计算出更新后的发送窗口,并更新发送窗口。

进一步的,步骤2包括以下步骤:

步骤2.1:根据当前时间戳和记录的发送时间戳计算数据包传输往返时延RTT;

步骤2.2:对数据包传输往返时延RTT进行归一化处理,得到归一化结果u

步骤2.3:利用归一化后的结果u

若u

否则,该数据包的传输路径上没有发生拥塞,检测网络中是否存在可用空闲带宽。

进一步的,步骤2.3中,检测网络中是否存在可用空闲带宽包括以下步骤:

步骤2.3.1:根据INT元数据计算路径上每条链路上的正在传输中字节数并进行归一化处理,求得第i条链路中传输字节数归一化后的结果u

步骤2.3.2:比较U

若U

进一步的,步骤3包括以下步骤:

步骤3.1:若检测到拥塞的发生,减小发送窗口,对拥塞进行控制,减小发送窗口的公式如下:

W

步骤3.2:若未检测到拥塞的发生,且检测到网络中存在空闲带宽,进行多次加性增加,每次增加公式为:W

进一步的,步骤3.2中,若进行最大次数次加性增加之后仍然网络中存在空闲带宽,则通过乘性增加的方法增大发送窗口。

进一步的,乘性增加的方法为:

进一步的,步骤4包括以下步骤:

步骤4.1:记录用新参考窗口W

W

步骤4.2:更新发送窗口:W=W

步骤4.3:计算并记录发送速率和当前的反馈INT元数据,用于处理该条流下一个确认数据包时传输速度和传输字节数归一化后的结果的计算。

一种多服务队列环境中基于时延的拥塞控制装置,包括拥塞检测器、空闲带宽检测器和流量控制器;

拥塞检测器通过计算每个数据包在网络中传输的往返时延产生基于每条流的拥塞信号,并将往返时延产生基于每条流的拥塞信号发送至流量控制器;

空闲带宽检测器用于根据附在数据包中的INT元数据获得网络中每条链路的传输中字节数,根据传输中字节数检测网络中是否存在可用带宽,并将传输中字节数和检测结果发送至流量控制器;

流量控制器在网络发生拥塞时:基于往返时延减小发送窗口;在链路存在空闲带宽时,基于所有链路中传输字节数归一化后的结果中的最大值增大发送窗口。

与现有技术相比,本发明至少具有以下有益的技术效果:

本发明在HPCC的基础上融合使用往返时延(Round-Trip Time,RTT)信息来进行拥塞检测和拥塞控制,通过传输数据包RTT的变化获得拥塞信号,在拥塞发生时利用RTT携带的拥塞信息精确快速地调整发送窗口大小,进而调整发送速率,提出了一种多服务队列环境中基于时延的拥塞控制机制MECC,具有以下优点:

第一:本发明提出在多服务队列环境中通过RTT的变化来获得拥塞信号,实时监测每个数据包传输的RTT,在RTT增加到一定程度时产生拥塞信号。基于RTT检测拥塞,可以获得更细粒度的、每个队列的拥塞信号,从而可以区分是哪个队列或者哪些队列积累所导致的拥塞,可以实现在拥塞发生时准确、及时的检测。

第二:本发明提出在多服务队列环境中使用RTT携带的拥塞信息指导发送窗口的调整,在检测到网络中发生拥塞时,RTT的增加反映的是拥塞链路排队时延的增加,所以RTT增加的程度实际上反映的就是链路的拥塞程度,基于此针对发生拥塞的队列精确地调整相关流的发送速率,可以实现发送速率的快速收敛并且不会降低非拥塞队列中流量的发送速率。

进一步地,在检测到链路中存在空闲带宽时,根据从INT信息获得的链路使用情况调整发送窗口及时占用可用带宽,从而在多服务队列环境中实现带宽的合理分配,能够很好的解决现有技术在多队列环境中存在的带宽分配违反队列调度意图和异构拥塞控制算法共存下的带宽分配不均的问题,在多服务队列环境中实现高吞吐量、低时延、不同队列之间加权公平共享和性能隔离,同时在单队列环境中保持高吞吐量、低时延和公平性的优势。

附图说明

图1为MECC的结构图;

图2为接收到一个ACK后MECC的工作流程示意图;

图3为MECC算法伪代码;

图4为仿真环境采用的拓扑结构图;

图5为多队列环境下MECC的性能测试结果图;

图6为单队列环境下MECC的性能测试结果图。

具体实施方式

为了使本发明的目的和技术方案更加清晰和便于理解。以下结合附图和实施例,对本发明进行进一步的详细说明,此处所描述的具体实施例仅用于解释本发明,并非用于限定本发明。

在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

本发明在HPCC的基础上融合使用RTT信息来进行拥塞控制,提出了一种多服务队列环境中基于时延的拥塞控制机制MECC。

本发明在HPCC的基础上,融合使用RTT信息进行拥塞检测和拥塞调整,通过监测传输数据包RTT的变化获得拥塞信号,结合INT和RTT携带的拥塞信息进行精确的拥塞控制,在检测到网络中发生拥塞时,通过对RTT信息的处理得到每条流的拥塞程度,进而根据拥塞程度精确地调整发送窗口控制拥塞,因为数据包的发送受发送窗口的调节,所以对发送窗口的调节实际上就是对发送速度的调节;在检测到链路中存在空闲带宽时,根据从INT信息获得的链路使用情况调整发送窗口及时占用可用带宽,从而在多服务队列环境中实现带宽的合理分配,同时保持在单服务队列网络环境中高带宽、低时延、公平性的性能优势。

本发明的拥塞控制装置结构如图1所示,包括3个部分:拥塞检测器、空闲带宽检测器和流量控制器。拥塞检测器、空闲带宽检测器和流量控制器均位于发送端。拥塞检测器通过计算每个数据包在网络中传输的RTT产生基于每条流的拥塞信号,RTT可用于在网络中发生拥塞时指导发送窗口的调节;空闲带宽检测器利用交换机的INT功能附在数据包中的INT信息处理获得网络中每条链路的传输中字节数,根据传输中字节数检测网络中是否存在可用带宽,传输中字节数可在网络中存在可用带宽时指导发送窗口的调节;流量控制器在网络发生拥塞时基于RTT减小所在流的发送窗口,在链路存在空闲的时候,基于使用带宽最多链路的传输中字节数增大发送窗口,基于使用带宽最多链路的传输中字节数进行调整是为了防止给其它链路带来拥塞。

本发明的特征在于在INT信息的基础上融合使用RTT信息进行拥塞检测和拥塞调整,下面结合图2和图3针对一个数据包从发送端发出到发送端接收到其ACK的完整过程来对本发明进行详细说明:

本发明是一种基于窗口作用于发送端的拥塞控制机制,发送端对每条流都维护一个发送窗口,数据包发送时受到发送窗口的控制。一个数据包在网络中经历的处理步骤如下:

步骤1:发送端产生原始数据包:发送端在发出一个数据包时会记录当前的发送时间戳,同时从数据包中提取五元组信息作为每一条流的唯一标识;原始数据包经过路由发往接收端,在数据包传输的过程中,每经过一个交换机,支持INT的交换机都会根据INT头部中的指示收集所需信息,并将INT元数据插入到INT头部中,继续传输给下一跳。接收端接收到数据包后,提取出其中所有的INT元数据,然后INT元数据被插入到生成的ACK中,ACK返回发送端。

INT元数据包括队列号,队列长度,出、入端口时间戳,出、入端口传输的字节数和链路带宽容量等,这些数据可由支持INT的交换机等转发设备根据INT头部中的指示收集。

步骤2:发送端接收到带有INT元数据的ACK后,从ACK中提取INT元数据并根据五元组查询该ACK所确认数据包的发送时间,首先由测检测器检测该数据包的传输路径上是否发生拥塞,进行如下操作:

MeasureRtt(ack):其中ack代表发送端当前处理的确认数据包。该操作用于测量数据包传输过程的RTT,检测途经链路是否发生拥塞包括以下步骤:

步骤2.1:根据当前时间戳和记录的发送时间戳计算数据包传输往返时延RTT,将发送端发出原始数据包时记录的发送时间戳表示为ack.tsSend,当前时间记录为tsNow:

RTT=tsNow-ack.tsSend

步骤2.2:对计算的RTT进行归一化处理,得到归一化结果u

u

baseRTT是该数据包发送方和接收方之间的最小往返时延,在具体实现中,使用当前测量到的最小往返时延来代替,Threshold

步骤2.3:利用归一化后的结果u

如果u

如果拥塞检测器没有检测到网络中存在拥塞链路,则需要进一步判断网络中是否存在可用空闲带宽,空闲带宽检测器沿用HPCC的检测机制检测可用空闲带宽,具体进行如下操作:

MeasureInflight(ack):其中ack代表发送端当前处理的确认数据包。该操作用于测量数据包传输路径上每条链路的正在传输中字节数,基于此检测路径上是否存在空闲带宽,如下操作自HPCC沿用,包括以下步骤:

步骤2.3.1:根据INT元数据估算路径上每条链路上的正在传输中字节数并进行归一化处理,求得第i条链路中传输字节数归一化后的结果u

Uinflight=max(ui)

txRate

步骤2.3.2:比较U

如果U

η是一个接近于1的参数,它表示将链路的利用率控制在η,稍微小于1;

步骤3:根据拥塞检测器和空闲带宽检测器的结果,流量控制器决定是否和如何调整发送窗口,其中检测到空闲带宽增加发送窗口部分的处理沿用自HPCC,流量控制器进行如下操作:

ComputeWind(U

步骤3.1:如果拥塞检测器检测到拥塞的发生,流量控制器使用拥塞检测器传递的u

W

步骤3.2:如果未检测到拥塞的发生,且空闲带宽检测器检测到网络中存在空闲带宽,用空闲带宽检测器传递的传输中字节数信息来增大发送窗口,首先尝试进行设定的最大次数maxStage次加性增加,每次增加公式为:

W

步骤3.3:如果进行maxStage次加性增加之后网络中仍然存在空闲带宽,则通过乘性增加快速利用可用带宽:

进一步地,S3.1中引入一个参考窗口大小Wc,参考窗口在一个RTT期间只更新一次。在同一个RTT期间收到的所有ACK,都使用同一个W

步骤4:计算出更新后的发送窗口大小后,执行以下操作基于每个ACK和每个RTT的策略调整发送窗口:

NewAck(ack):其中ack代表发送端当前处理的确认数据包。该操作结合基于每个ACK和基于每个RTT的策略调整发送窗口。该策略沿用自HPCC,由以下三个步骤完成:

步骤4.1:变量lastUpdateSeq记录的是使用新W

W

W=W

其中,W为当前的发送窗口,W

步骤4.3:发送端计算并记录发送速率和当前的反馈INT元数据,用于处理该条流下一个确认数据包时传输速度txRate和传输字节数归一化后的结果u

在ns-3仿真平台上对MECC进行了验证和性能评价。仿真实验中使用图4所示的哑铃型拓扑,拓扑中间是两个互相连接的交换机,两边分别有若干台端主机分别与两台交换机相连,拓扑网络中所有链路的容量都设置为25Gbps,每条链路的传播时延都是10us,错误率都是0,在多服务队列网络环境中,交换机每个端口设置有8个队列,队列的出队机制配置为基于权重的轮询(WRR),整个网络使用RDMA技术部署,仿真配置的一些参数详见表1。

表1

为了测试MECC在多服务队列环境中的适用性,选取了四组典型的应用场景分别对MECC在多队列环境中的吞吐量、时延、公平性、隔离性进行测试。图5中(a)显示了在多队列环境中多对多发送流量,MECC可以充分利用链路的带宽,所有流获得的总吞吐量超过24.5Gbps,接近于链路的满带宽25Gbps,同时在图中可以看出在两个时刻有流发送结束,链路存在空闲的时候,MECC会迅速调节,利用可用带宽,将吞吐量快速提高到接近满带宽。图5中(b)显示了在多对多保持长时间发送三条进入不同队列的流量时,三个队列中的队列长度,刚开始由于发送方都以线速度开始发送各自的流,所以会产生一定量的队列积累,但是MECC能够很快检测到拥塞并立即采取措施将发送速率降低到一个合适的水平,随后队列很快降低到一个接近于0的长度,并且在之后的传输过程中保持在一个很低的水平,队列中最多积累的数据量不超过5个数据包的长度。图5中(c)显示了在被赋予不同权重的流量共存时,带宽按照队列的权重(1:2:3)进行分配、不同队列之间可以实现加权公平共享;同时可以看到出现流量发送完成的情况时,链路中剩余流量可以快速利用可用带宽,收敛到合适的速率,并且带宽仍然按照剩余流量各自的权重进行分配。图5中(d)显示了在异构拥塞控制算法共存时(基于MECC的RDMA流量与基于TCP-reno的TCP流量),不存在带宽抢占的问题,并且不同流量获得的带宽也会按照它们各自所在队列的权重进行分配。所以,MECC在多服务队列环境中表现出了高吞吐量、低时延、不同队列之间加权公平共享和性能隔离的优势。

同时,进一步验证了MECC在单队列环境中的兼容性。图6中(a)显示在单队列环境下,MECC仍然能够实现高吞吐量,充分利用网络中的带宽。图6中(b)显示MECC在单队列环境下能够快速避免拥塞,在队列开始积累时迅速开始拥塞控制,将队列长度保持在一个很低的水平,从而时延也保持在一个很低的水平。图6中(c)显示了MECC在单队列环境下的公平性,在三条流一个接一个以0.2s的间隔加入到同一条链路中,之后再以同样间隔结束,MECC可以使不同流之间快速收敛到公平的状态。所以,MECC在单队列环境中同样可以保持高吞吐量、低时延和公平性的优势。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号