HPCC:高精度拥塞控制

摘要

TCP是最基础的网络传输层通信协议,其拥塞控制算法是为Internet这种相对低速、高延迟的网络环境设计的。在新一代的高速云网络中,TCP的拥塞控制算法无法充分发挥底层网络能力,而现有高速网络拥塞控制算法(如:RDMA协议中的拥塞控制算法DCQCN、TIMELY)都存在有一定的局限性。HPCC(高精度拥塞控制)是一种新的高速CC机制,它利用网络遥测(INT)获得精确的链路负载信息并精确控制流量。通过解决诸如在拥塞期间延迟INT信息和对INT信息的过度反应等难题,HPCC可以快速收敛以利用空闲带宽,同时避免拥塞,并且可以在网络队列中保持接近零的数据堆积以实现超低的延迟,HPCC也更加公平且易于在硬件中部署。

1 引言

1.1 背景

在过去的十年中,数据中心网络的链路速度从1Gbps增长到100Gbps,而且这种增长还在继续。超低延迟和高带宽是当今和未来高速网络的两个关键要求,越来越多的应用要求超低延迟和高带宽。近年来,数据中心部署了大规模网络,通过聚合以太网版本2(RoCEv2,Converged Ethernet Version 2)实现RDMA(远程直接内存访问)作为当前的硬件卸载解决方案。但是,在运行大规模RoCEv2网络多年后,我们发现RDMA网络在协调低延迟、高带宽利用率和高稳定性方面面临着根本性的挑战。这是因为高速意味着流量以线路速率开始,并积极攫取可用网络容量,这很容易在大规模网络中造成严重拥塞。此外,高吞吐量通常会导致深度数据包排队,这会破坏延迟敏感流的性能以及网络处理意外拥塞的能力。

1.2 现有CC的局限性

为了解决协调延迟、带宽/利用率和稳定性的困难,良好的CC设计是关键。这是因为CC是在高流量负载下避免数据包缓冲或丢失的主要机制。如果CC频繁失败,像PFC或数据包重传这样的备份方法要么会带来稳定性问题,要么会遭受巨大的性能损失。现有的CC如DCQCN和TIMELY,有一些基本的局限性:

收敛慢。对于粗粒度反馈信号,如ECN或RTT,当前的CC方案不知道增加或减少多少发送速率,需要使用启发式来猜测速率更新,并尝试迭代收敛到稳定的速率分布。这种迭代方法处理大规模拥塞事件的速度很慢。

不可避免的数据包排队。DCQCN发送方利用一位ECN标记来判断拥塞风险,TIMELY发送方使用RTT的增加来检测拥塞,发送方只有在队列建立后才开始降低流量,这些构建的队列会显著增加网络延迟。

复杂的参数调整。当前CC算法用于调整发送速率的启发式算法有许多参数需要针对特定网络环境进行调整。例如,DCQCN需要设置15个参数。

1.3 HPCC的提出

前面三个限制的根本原因是传统网络中缺少细粒度的网络负载信息。ECN是终端主机可以从交换机获得的唯一反馈,RTT是一种纯端到端的测量,没有交换机的参与。然而,随着新的交换ASIC中提供的网络遥测(INT,In-network telemetry)功能,在生产网络中获得细粒度网络负载信息并使用它改进CC已成为可能。

HPCC(高精度拥塞控制)是一种新的CC机制,用于大规模高速网络。HPCC背后的关键思想是利用来自INT的精确链路负载信息来计算准确的流量更新。与通常需要大量迭代才能找到合适流速的现有方法不同,HPCC在大多数情况下只需要一个流速更新步骤。使用INT提供的精确信息使HPCC能够解决当前CC方案中的三个限制。

2 研究动机

2.1 大型RDMA部署

数据中心中采用RDMA,以满足分布式存储、数据库和深度学习训练框架等多个关键应用程序的超低延迟和大带宽需求。一般而言,数据中心网络是一个Clos拓扑结构,有三层:ToR、Agg和核心交换机。PoD(交付点,point-of-delivery)是一个基本部署单元,由数十个ToR交换机组成,这些交换机由多个Agg交换机互连。不同的PoD通过核心交换机互连。每台服务器都有两条上行链路,与两个ToR交换机相连,以根据客户的要求实现服务器的高可用性。在当前的RDMA部署中,每个PoD都是一个独立的RDMA域,这意味着只有同一PoD中的服务器才能使用RDMA通信。

大规模RDMA部署可能涉及成千上万的节点,每个节点都在进行高速、低延迟的通信。在这种环境下,拥塞控制的研究需要考虑如何适应大规模并行通信,确保网络稳定性和性能。而现有的CC算法都有一定的局限性,因此需要设计出更高效、更高精度的CC算法。

2.2 RDMA目标

除了超低延迟和高带宽之外,网络稳定性和操作复杂性在RDMA网络中也至关重要,因为RDMA网络比TCP/IP网络面临更多的风险和更严格的性能要求。

RDMA网络有四个基本目标:(1)延迟应尽可能低;(2)带宽利用率应尽可能高;(3)拥堵和PFC暂停应尽可能少;(4)操作复杂性应尽可能低。实现这四个目标将为我们的客户和我们自己提供巨大的价值,我们相信实现这四个目标的关键是一个适当的CC机制。

2.3 当前RDMA CC中的权衡
DCQCN

对于DCQCN,权衡方面:

1、分布式控制:DCQCN引入了分布式控制的思想,允许数据中心网络中的交换机独立地进行拥塞检测和控制。这种分布式方法可以更好地适应大规模网络的动态性和异构性。

2、基于标记的拥塞信号:DCQCN使用基于标记的拥塞信号(PFC标记)来传达网络拥塞状态,这使得交换机能够更精确地指导终端节点的传输速率。

3、快速收敛:DCQCN致力于实现快速的拥塞状态收敛,以减小对网络性能的影响。

局限性:

1、PF开销:基于标记的拥塞信号需要使用PFC(Priority Flow Control)来暂停交换机上的输出队列。PFC的开销可能导致网络的低效利用,尤其在面对短流时。

2、对带宽敏感:DCQCN对带宽非常敏感,可能导致在某些情况下过度保护,并在网络中形成不均衡的流量分布。

TIMELY

对于TIMELY,权衡方面:

1、时延感知:TIMELY引入了对网络时延的感知,以便更精确地调整拥塞控制策略。通过考虑时延,TIMELY可以更好地适应不同的网络环境和负载。

2、弹性多资源:TIMELY考虑了多个资源的弹性调整,包括带宽和排队时延。这种综合考虑可以使算法更全面地适应不同的网络条件。

3、抗噪声能力:TIMELY设计了一种抗噪声的拥塞信号采样方法,有助于更准确地捕捉网络拥塞状态。

局限性:

1、复杂性:TIMELY的设计相对较为复杂,需要综合考虑多个资源的调整,这可能使得实现和管理相对繁琐。

2、对时钟同步的依赖:TIMELY对时钟同步要求较高,需要确保网络中的时钟同步性能良好,否则可能影响算法的准确性。

2.4 下一代高速CC

下一代应用于RDMA的CC或其他类型的高速网络应同时具备以下特性,以显著提高应用性能和网络稳定性:

(1)快速收敛。网络可以快速收敛到高利用率或避免拥塞。流量调整的时间应该适合特定的网络环境,而不是手动配置。

(2)接近空队列。网络内缓冲区的队列大小保持稳定的低,接近于零。

(3)参数很少。新的CC不应该依赖于需要操作员调整的大量参数。相反,它应该适应环境和流量模式本身,以便降低操作复杂性。

(4)公平。新的CC确保了流之间的公平性。

(5)易于在硬件上部署。新的CC算法非常简单,可以在商品NIC硬件和商品交换机硬件上实现。

目前有两个关键趋势,它们有可能实现满足上述所有要求的CC。第一个趋势是交换机在数据平面上更加开放和灵活;特别是网络遥测技术(INT)正在迅速普及。使用INT,发送方可以从ACK数据包准确地知道流路径上的链路负载,这有助于发送方进行准确的流量调整。第二个趋势是NIC硬件的功能和可编程性越来越强,它们有更快的速度和更多的资源来公开数据包级别的事件和处理。利用这些新的硬件特性,设计并实现了HPCC,同时实现了所需的CC特性。

3 技术方案

设计HPCC有两个主要挑战。首先,链路拥塞会延迟数据包上承载的INT信息,从而延迟流量降低以解决拥塞。HPCC旨在限制和控制繁忙链路的传输中总字节数(total inflight bytes),防止发送方发送额外流量,及时反馈延迟。第二,尽管所有ACK数据包中都包含INT信息,但如果发送方盲目地对所有信息做出快速反应,则可能会出现破坏性的过度反应。因此,CC算法需要通过结合每次确认和每次RTT反应,选择性地使用INT信息,实现快速反应而无过度反应。

3.1 INT

In-band Network Telemetry(INT)是一种利用数据转发平面来收集、携带、整理和上报网络状态信息的技术。它不需要使用单独的控制面管理流量来进行上述信息收集,而是通过在数据流中嵌入INT指令,让中间转发设备收集并上报所需的数据。

INT技术利用了数据平面和转发设备的处理能力,通过在数据流中嵌入INT指令,让转发设备在处理数据流的同时收集网络状态信息。这些信息可以包括网络延迟、带宽利用率、丢包率等,以便于网络管理员及时了解网络状况并进行相应的优化调整。
INT技术还具有以下优点:

减少控制平面负载:INT技术不需要使用单独的控制面管理流量进行信息收集,从而减少了控制平面的负载,提高了网络的性能和稳定性。

实时性:INT技术可以实时收集网络状态信息,并快速上报给网络管理员,以便于及时发现和解决问题。

灵活性:INT技术可以根据不同的需求和场景,灵活地嵌入不同的INT指令,以满足不同的网络监控和管理需求。

3.2 HPCC设计

HPCC是一个发送方驱动的CC框架。 如图3所示,采用逐包确认,即sender发送的每个数据包都会得到receiver的确认。 数据包从sender传播到receiver的过程中,路径上的每个交换机都会利用其交换 ASIC 的 INT 功能插入一些元数据,报告数据包出端口的当前负载,包括时间戳(ts)、队列长度(qLen)、传输字节(txBytes)和链路带宽容量(B)。当receiver收到数据包时,会将交换机记录的所有元数据通过ACK发送给sender。然后sender根据带有网络负载信息的 ACK 决定如何调整其流量。

HPCC:高精度拥塞控制-LMLPHP

HPCC是一种基于窗口的CC方案,使用窗口控制infligh字节数。inflight字节数表示已发送但尚未确认的数据量。这里需要解释下,为啥采用控制inflight字节数,而不是控制发送速率。在没有拥塞的情况下,inflight字节数和速率的关系等价于等式inflight=速率×T,其中T是base RTT。与纯粹基于速率的CC方案(在反馈到来之前不断发送数据包)相比,对inflight字节数的控制可以确保inflight字节数在限制范围内,使得sender在达到限制时立即停止发送,无论反馈(ack)延迟了多长时间。 这样一来,整个网络就大大稳定了。

HPCC:高精度拥塞控制-LMLPHP

3.3 HPPC的参数

HPCC具有三个易于设置的参数:η、maxStage和。η控制带宽利用率和队列长度之间的简单权衡(由于数据包随机到达造成的临时冲突。),因此默认将其设置为95%,仅损失5%的带宽,但实现了几乎零排队。maxStage控制状态稳定性和回收可用带宽的速度之间的简单权衡。控制链路上可维持buffer接近零排队的最大并发流数与公平收敛速度之间的权衡,通常设置一个非常小的 来支持链路上的大量并发流。

4 仿真结果

1、使用ns3仿真,下图是HPCC、DCQCN的队列长度的CDF曲线,从图中可以看出HPCC的队列长度维持在比较低的水平。

HPCC:高精度拥塞控制-LMLPHP

2、下图是FCT延迟和流的大小对应的图像关系,从图中可以看出,HPCC的FCT延迟相对于其他现有的算法而言,在绝大多数的流的大小对应的情况之下都要低,只有在流的大小非常大的时候才会比其他算法差一些。

HPCC:高精度拥塞控制-LMLPHP

5 结论

在本文中,我们介绍了一种新型的高精度拥塞控制机制,即HPCC(High Precision Congestion Control),它旨在解决现有高速网络中TCP拥塞控制算法的局限性。在新一代高速云网络中,传统的TCP拥塞控制算法无法充分发挥底层网络能力,而现有的高速网络拥塞控制算法也存在一定的局限性。

HPCC利用网络遥测(INT)技术获取精确的链路负载信息,并通过解决在拥塞期间延迟INT信息和对INT信息的过度反应等难题,实现了快速的拥塞状态收敛,充分利用空闲带宽,同时避免拥塞的发生。与现有的拥塞控制算法相比,HPCC在网络队列中保持接近零的数据堆积,从而实现了超低的延迟,同时更加公平且易于在硬件中部署。
研究动机主要源于大规模RDMA部署和对RDMA网络的目标,包括超低延迟、高带宽、网络稳定性和操作复杂性。分析了现有拥塞控制算法(如DCQCN和TIMELY)的局限性,提出了HPCC的设计思想,通过利用INT信息和设计新的控制机制,实现了快速收敛、接近空队列、参数很少、公平、易于在硬件上部署等特性。

在仿真结果中,HPCC在各项性能指标上展现出明显的优势,特别是在大规模RDMA部署中,其快速收敛和低延迟的特性使其成为下一代高速网络拥塞控制的有力候选。因此,HPCC为满足未来高速网络的需求提供了一种创新的解决方案。

12-28 11:14