HPCC:高精度拥塞控制

HPCC:高精度拥塞控制

文章目录

    • HPCC:高精度拥塞控制
      • 摘要
      • 1 引言
        • 1.1 背景
        • 1.2 现有CC的局限性
        • 1.3 HPCC的提出
      • 2 研究动机
        • 2.1 大型RDMA部署
        • 2.2 RDMA目标
        • 2.3 当前RDMA CC中的权衡
          • DCQCN
          • TIMELY
        • 2.4 下一代高速CC
      • 3 技术方案
        • 3.1 INT
        • 3.2 HPCC设计
        • 3.3 HPPC的参数
      • 4 仿真结果
      • 5 结论

摘要

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

在这里插入图片描述

3.3 HPPC的参数

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

4 仿真结果

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

在这里插入图片描述

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

在这里插入图片描述

5 结论

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/274887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

改进YOLO系列 | YOLOv5/v7 引入高效的混合特征编码器 AIFI

论文地址:https://arxiv.org/abs/2304.08069 代码地址:https://github.com/PaddlePaddle/PaddleDetection 中文翻译:https://blog.csdn.net/weixin_43694096/article/details/131353118 注意!这个模块需要 torch>=1.9 才能使用 源代码 import torch import torch.nn …

深入探究Protostuff枚举类型的序列化

背景: 有一天突然被一个群组排查线上问题,说是一个场景划线价和商品原价一模一样。看到问题时,我的内心毫无波澜,因为经常处理线上类似的问题,但了解业务后发现是上个版本经我手对接的新客弹窗商品算价,内心…

C# MVC +Layui侧边导航栏的收缩及展开

目录 1、头部代码 2、侧边栏&#xff08;例子只写了一级导航&#xff0c;需要多级可自行添加&#xff09; 3、body内容填充 4、 JS 1、头部代码 <div class"layui-layout layui-layout-admin"> <div class"layui-header"> …

MySQL 核心模块揭秘 |《发刊词》

1. 为什么要写专栏&#xff1f; 我还在做业务系统研发的时候&#xff0c;有一段时间&#xff0c;系统不稳定&#xff0c;慢 SQL 很多。我们团队花了很长时间持续优化 SQL。 我们有一个表格&#xff0c;从慢查询日志里整理出了很多慢 SQL。其中一些 SQL&#xff0c;按照我们的…

大华NVR和IPC通过主动注册协议方式接入AS-V1000视频监控平台的步骤

最近有人经常用到有的型号的大华网路摄像机&#xff0c;不支持国标GB28181标准&#xff0c;问我们能否接入到在公网的AS-V1000平台 &#xff1f; 我们早期就开发了大华的主动注册协议SDK&#xff0c;能够支持大华的NVR和IPC接入到AS-V1000平台。 今天就直接讲解如何一步步的把局…

人工智能 机器学习 深度学习:概念,关系,及区别说明

如果过去几年&#xff0c;您读过科技主题的文章&#xff0c;您可能会遇到一些新词汇&#xff0c;如人工智能&#xff08;Artificial Intelligence&#xff09;、机器学习&#xff08;Machine Learning&#xff09;和深度学习&#xff08;Deep Learning&#xff09;等。这三个词…

关于使用Selenium获取网页控制台的数据

背景&#xff1a; 需要获取网页的控制台的数据&#xff0c;如下图 在此文章将使用到 Pycharm 和 Selenium4 Pycharm安装 Selenium安装 from selenium import webdriver from selenium.webdriver.common.by import By import time# 创建浏览器对象 browser webdriver.Chro…

普中STM32-PZ6806L开发板(使用过程中的问题收集)

Keil使用ST-Link 报错 Internal command error 描述: 在某一次使用过程中&#xff0c;前面都是正常使用, Keil在烧录时报错Internal command error, 试了网上的诸多方式, 例如 升级固件;ST-Link Utility 清除;Keil升级到最新版本;甚至笔者板子的Micro头也换了&#xff0c;因为坏…

docker学习笔记02-安装mysql

1.安装mysql8 下载MySQL镜像 docker pull mysql:8.0创建并启动容器 docker run -itd --name mysqltest -p 9999:3306 -e MYSQL_ROOT_PASSWORD123456 mysql其中-it是交互界面 -d是后台执行 -name 指定容器名称 -p指定映射端口 -e设置环境变量 最后mysql是镜像名或者用镜像id如…

消防数据监测可视化大屏:守护城市安全的智慧之眼

在数字化时代&#xff0c;数据已经成为决策的关键。特别是在消防领域&#xff0c;快速、准确的数据分析对于及时应对火情、挽救生命财产具有不可估量的价值。为此&#xff0c;消防数据监测可视化大屏应运而生&#xff0c;成为城市安全的守护者。 一、什么是消防数据监测可视化大…

Qt 中使用 MySQL 数据库保姆级教程(下)

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 前言 上篇中我们安装好了 MySQL 数据库和 Navicat 软件&#xff0c;下面在 Qt 中尝试使用数据库 1. 在 Qt 中连接 MySQL 数据库&#…

VuePress、VuePress-theme-hope 搭建个人博客 1【快速上手】 —— 防止踩坑篇

vuePress官网地址 &#x1f449; 首页 | VuePress 手动安装 这一章节会帮助你从头搭建一个简单的 VuePress 文档网站。如果你想在一个现有项目中使用 VuePress 管理文档&#xff0c;从步骤 3 开始。 步骤 1: 创建并进入一个新目录 mkdir vuepress-starter cd vuepress-star…

Unity 代码控制Text自适应文本高度

在使用代码给Text赋值时&#xff0c;且文本有多段&#xff0c;并需要根据实际文本高度适配Text组件的高度时&#xff0c;可以使用以下方法&#xff1a; //Text文本 public TextMeshProUGUI text;void Start() {//代码赋值文本text.text "好!\n很好!\n非常好!";//获…

加强->servlet->tomcat

0什么是servlet jsp也是servlet 细细体会 Servlet 是 JavaEE 的规范之一&#xff0c;通俗的来说就是 Java 接口&#xff0c;将来我们可以定义 Java 类来实现这个接口&#xff0c;并由 Web 服务器运行 Servlet &#xff0c;所以 TomCat 又被称作 Servlet 容器。 Servlet 提供了…

ebay如何发货到国外?ebay发货规则是什么?——站斧浏览器

​ebay如何发货到国外&#xff1f; 对于卖家来说&#xff0c;在eBay上向海外买家发货可能会面临一些额外的挑战。以下是一些建议&#xff0c;帮助卖家顺利地将商品发货给海外买家&#xff1a; 1、选择合适的物流服务&#xff1a;eBay合作的物流服务通常提供可靠和经济实惠的国…

【ARMv8M Cortex-M33 系列 2.1 -- Cortex-M33 使用 .hex 文件介绍】

文章目录 HEX 文件介绍英特尔十六进制文件格式记录类型hex 示例Cortex-M 系列hex 文件的使用 HEX 文件介绍 .hex 文件通常用于微控制器编程&#xff0c;包括 ARM Cortex-M 系列微控制器。这种文件格式是一种文本记录&#xff0c;用于在编程时传递二进制信息。.hex 文件格式最常…

【Java EE初阶三 】线程的状态与安全(上)

1. join方法与多线程 1.1 初识多线程 为了提高cpu得利用率&#xff0c;因此就引入了多个线程的概念&#xff1b;即每个线程负责完成整个程序的一部分工作即可。 写一个代码&#xff0c;让主线程&#xff0c;创建一个新的线程&#xff0c;由新线程负责完成运算&#xff08;12。…

人工智能时代,如何借助新技术实现突破?| 圆桌对话

继上篇介绍完干货满满的议题分享后&#xff0c;更精彩的圆桌论坛衔尾相随。本次圆桌对话以“人工智能时代&#xff0c;如何借助新技术实现突破&#xff1f;”为主题&#xff0c;由华锐技术机构市场团队负责人-高媛主持&#xff0c;邀请了AMD中国区数据中心事业部资深架构师-梁朝…

轻松实现不同类型文件,统一重命名与隐藏编号!

你是否经常需要处理大量的文件&#xff0c;却为如何进行高效的文件管理而苦恼&#xff1f;现在&#xff0c;我们为你提供了一种全新的解决方案——轻松实现文件统一重命名与隐藏编号&#xff01; 第一步&#xff0c;首先我们要进入文件批量改名高手主页面&#xff0c;并在板块栏…

优思学院|掌握TPM的全貌:8大支柱及其优势

TPM&#xff08;全面生产维护&#xff09;是一种旨在通过组织内人员的参与&#xff0c;持续改进生产设备或制造过程的有效性的方法。它的目标是实现“零机器故障”或“零停机”。 TPM的八大支柱 自主保养&#xff08;JISHU HOZEN&#xff09; 操作员执行日常的CLIT活动&#…