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为满足未来高速网络的需求提供了一种创新的解决方案。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈WPF之ToolTip工具提示

在日常应用中,当鼠标放置在某些控件上时,都会有相应的信息提示,从软件易用性上来说,这是一个非常友好的功能设计。那在WPF中,如何进行控件信息提示呢?这就是本文需要介绍的ToolTip【工具提示】内容&#xf…

数据结构入门到入土——List的介绍

目录 一,什么是List? 二,常见接口介绍 三,List的使用 一,什么是List? 在集合框架中,List是一个接口,继承自Collection。 Collection也是一个接口,该接口中规范了后序容…

MATLAB中./和/,.*和*,.^和^的区别

MATLAB中./和/,.*和*,.^ 和^ 的区别 MATLAB中./和/,.*和*,.^ 和^ 的区别./ 和 / 的区别.//实验实验结果 .* 和 * 的区别.**实验实验结果 .^ 和^ 的区别.^n^n实验运行结果 MATLAB中./和/,.和,.^ 和^ 的区别 …

关于SQL时间盲注(基于sleep函数)的手动测试、burpsuite爆破、sqlmap全自动化注入

SQL时间注入是一种常见的SQL注入攻击方式,攻击者通过在SQL语句中注入时间相关的代码,来获取敏感信息或者执行非法操作。其基本原理如下: 攻击者向Web应用程序中输入一段恶意代码,通过SQL语句查询数据库,并注入时间相关…

钉钉机器人接入定时器(钉钉API+XXL-JOB)

钉钉机器人接入定时器(钉钉APIXXL-JOB) 首先需要创建钉钉内部群 在群设置中找到机器人选项 选择“自定义”机器人 通过Webhook接入自定义服务 创建完成后会生成一个send URL和一个加签码 下面就是干货 代码部分了 DingDingUtil.sendMessageByText(webho…

什么是迁移学习(Transfer Learning)?定义,优势,方法

迄今为止,大多数人工智能(AI)项目都是通过监督学习技术构建的。监督学习是一种从无到有构建机器学习(ML)模型的方法,它对推动AI发展起到了关键作用。然而,由于需要大量的数据集和强大的计算能力…

账号租号平台PHP源码,支持单独租用或合租使用

源码简介 租号平台源码,采用常见的租号模式。 平台的主要功能如下: 支持单独租用或采用合租模式; 采用易支付通用接口进行支付; 添加邀请返利功能,以便站长更好地推广; 提供用户提现功能;…

PHP的Laravel加一个小页面出现问题(whereRaw的用法)

1.权限更新问题 因为是已经有样例了所以html和php页面很快写出来了 然后就是页面写完了路由不知道在哪写,后来想起来之前有要开权限来着,试了一下,还是不行,不过方向是对了 这是加的路由,不过需要在更新一下权限 这…

【产品经理】axure中继器的使用——表格增删改查分页实现

笔记为个人总结笔记,若有错误欢迎指出哟~ axure中继器的使用——表格增删改查分页实现 中继器介绍总体视图视频预览功能1.表头设计2.中继器3.添加功能实现4.删除功能实现5.修改功能实现6.查询功能实现7.批量删除 中继器介绍 在 Axure RP9 中,中继器&…

leetcode贪心算法题总结(一)

此系列分三章来记录leetcode的有关贪心算法题解,题目我都会给出具体实现代码,如果看不懂的可以后台私信我。 本章目录 1.柠檬水找零2.将数组和减半的最少操作次数3.最大数4.摆动序列5.最长递增子序列6.递增的三元子序列7.最长连续递增序列8.买卖股票的最…

C++:map和set的介绍及使用

目录 1. 关联式容器 2. 键值对 3. 树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 map 3.2.1 map的介绍 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介绍 3.3.2 multiset的使用 3.4 multimap 3.4.1 multimap的介绍 3.4.2 multimap的使用…

Linux磁盘与文件系统管理

在linux系统中使用硬盘 建立分区 安装文件系统 挂载 磁盘的数据结构 磁盘:扇区固定大小,每个扇区4k。磁盘会进行磨损,损失生命周期。 扇区 磁道 柱面 磁盘接口类型 ide SATA SAS SCSI SCSI 设备类型 块设备:block …

kubelet源码学习(二):kubelet创建Pod流程

本文基于Kubernetes v1.22.4版本进行源码学习 4、kubelet创建Pod流程 syncLoop()的主要逻辑是在syncLoopIteration()方法中实现,Pod创建相关代码只需要看处理configCh部分的代码 // pkg/kubelet/kubelet.go // 该方法会监听多个channel,当发现任何一个channel有数…

模式识别与机器学习-SVM(带软间隔的支持向量机)

SVM(带软间隔的支持向量机) 软间隔思想的由来软间隔的引入 谨以此博客作为复习期间的记录。 软间隔思想的由来 在上一篇博客中,回顾了线性可分的支持向量机,但在实际情况中,很少有完全线性可分的情况,大部分线性可分…

GPT分区格式

GPT分区格式 [rootlocalhost ~]# gdisk /dev/sdb -bash: gdisk: 未找到命令 [rootlocalhost ~]# yum -y install gdisk- gdisk命令用于查看磁盘使用情况和磁盘分区(GPT分区格式) - 命令格式:gdisk [选项...] [设备路径] - 常用选项&…

表单(HTML)

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>个人信息</title></head><body><h1>个人信息</h1><form><fieldset><legend>基本信息</legend><label for"…

OpenHarmony城市技术论坛武汉站:探索大模型时代的终端操作系统创新

2023年12月23日下午,OpenHarmony城市技术论坛(以下简称“技术论坛”)——第6期(武汉站)于华中科技大学梧桐语问学中心明德报告厅圆满举办。本次技术论坛聚焦“大模型时代的系统软件”,旨在探索AI大模型在终端操作系统领域的创新趋势和挑战。论坛从“终端操作系统十大技术挑战”…

Vue框架引入Axios

首先已经创建好了 Vue 框架&#xff0c;安装好了 node.js。 没有完成的可按照此博客搭建&#xff1a;搭建Vue项目 之后打开终端&#xff0c;使用命令。 1、命令安装 axios 和 vue-axios npm install axios --save npm install vue-axios --save2、package.json 查看版本 在 p…

代理模式:中间者的故事

代理模式&#xff1a;中间者的故事 介绍需求分析代理模式代码实现代理模式整理和用途第一种用途第二种用途第三种用途第四种用途 总结 介绍 本文引用《大话设计模式》第七章节的内容进行学习分析&#xff0c;仅供学习使用 需求&#xff1a;小明拜托自己好朋友小王给他朋友小美…

2013年第二届数学建模国际赛小美赛A题数学与经济灾难解题全过程文档及程序

2013年第二届数学建模国际赛小美赛 A题 数学与经济灾难 原题再现&#xff1a; 2008年的市场崩盘使世界陷入经济衰退&#xff0c;目前世界经济仍处于低迷状态&#xff0c;其原因是多方面的。其中之一是数学。   当然&#xff0c;并非只有金融界依赖于并非总是可靠的数学模型…