拥塞控制算法系列之:Swift-谷歌2020年SIGCOM-包级别端到端TIMELY拥塞控制算法

news2024/11/22 1:39:13

核心要点:

  1. 谷歌 2020 SIGCOM
  2. 基于delay的AIMD
  3. 拥塞拆分EC和FC,时延敏感场景优势
  4. 分别计算EC和FC的wnd(最核心)
  5. 保障吞吐和低延迟。Swift 因利用延迟的简单性和有效性而闻名
  6. 包级别的
  7. 论文:https://dl.acm.org/doi/pdf/10.1145/3387514.3406591
  8. 论文翻译版:参考附件

其他:

  • Swift 是 Google 提出的一种用于数据中心内通信的基于延迟的拥塞控制算法
  • 基于delay的拥塞控制算法(不是基于丢包)
  • Swift 的发展是由存储工作负载、主机网络堆栈和数据中心交换机的趋势推动的
  • 通过AIMD(加性增加乘性减少)控制和在极端拥塞情况下的流量控制来实现端到端的延迟目标
  • 拆分拥塞:Swift 将拥塞分为两个部分:NIC-to-NIC (fabric) 延迟(数据中心内不同节点间)、Endpoint 延迟(主机之间的传输延迟)。EC和FC,fabric congeston和endpoint congestion。
  • Swift 通过分别计算这两部分的拥塞窗口(ecwnd 和 fcwnd)来控制发送速率
  • 传统的研究主要集中在 fabric 拥塞上
  • 包级别的CC,perPacket。(其他算法还有QP级别、IP级别等)
  • 记录数据包在各个时间戳,包括软件、NIC等收发时间戳
  • 时间戳影响点:(参考论文原文图)
    • 端侧Tx delay,影响因子Tx queue
    • 交换机 Forward delay,影响因子 SW queue
    • 端侧Rx delay,影响因子Rx queue
      在这里插入图片描述
      在这里插入图片描述
  • 广域网和数据中心网络延迟不一样,端侧影响也不一样
  • 包含快速恢复机制,拥塞消退时,迅速增加发送速率,以便快速恢复到高效的传输状态。
  • 支持QoS,共享网络环境中,在大规模incast流量发生时,保持关键业务流量的性能。
  • 在拥塞窗口小于1的情况下,启用流控,计算数据包之间的发送间隔(基于RTT)控制速率。保障在高拥塞情况下维持低延迟和减少丢包。
  • 特点:
    • 易于部署和维护:使用简单的延迟目标来控制拥塞
    • 端到端的RTT分解为网络基础设施(fabric)和主机(host)部分,从而分别对不同原因的拥塞做出响应。
    • 能够在每台服务器上维持约100Gbps的吞吐量,同时保持低延迟和接近零的数据包丢失。long RPC场景要吞吐,short RPC要时延都能满足
    • 能够有效地处理大规模的incast流量,并且在多租户环境中保持良好的性能。
    • 延迟作为拥塞信号简单而有效,Swift的设计从TIMELY演变而来,通过简化绝对目标延迟的使用,提高了性能和鲁棒性。
    • 关注主机层面的拥塞,这在处理延迟敏感、IOPS密集型和字节密集型工作负载方面有帮助。
    • Swift算法的未来发展方向,包括如何进一步提高在极短传输中的延迟预测能力。
  • 优势:
    • 低延迟:在网络负载接近100%时仍能保持低延迟。
    • 简单:简单,易部署和维护。无需特殊的交换机配置,无需交换机协调
    • 端到端控制:独立适应网络和主机(包括NIC和主机网络栈)的拥塞,提供了端到端的拥塞控制,而不仅仅是在网络层面。
  • 不足:
    • 特定环境:只能数据中心,无法广域网
    • 对硬件的依赖:主要是时间戳精度
    • 动态调整挑战:快速变化的网络条件时,需要精心设计和调整算法参数。
    • 兼容性:混合使用传统TCP和其他拥塞控制算法的环境中需要适配。
    • 大规模incast流量的处理:虽然Swift算法设计了处理大规模incast流量的机制,但在实际部署中可能需要额外的策略来确保在极端情况下的性能。
    • 高性能:保持高吞吐量的同时,实现低延迟和低丢包率。关键关注点:吞吐、实验、丢包
    • 多租支持:为不同的流量类型提供有效的拥塞控制,避免单租大量流量影响其他租户
  • 典型拥塞场景支持:
    • 多租场景:不会相互干扰。
    • 混合流量场景:混合,包括短期、突发流量和长期的、稳定的流量。适应这种多样性,通过动态调整拥塞窗口和目标延迟来优化性能。
    • 存储和分析工作负载场景:适合于对存储和分析工作负载进行优化,这些工作负载通常需要高IOPS(输入/输出操作每秒)和低延迟的网络性能。
    • 大规模并行计算场景:低延迟和高吞吐
    • 网络拓扑变化场景:适应拓扑变化,如节点添加或移除,以及链路速度的变化。通过动态调整目标延迟。
    • 网络故障和恢复场景:包含快速恢复机制
    • 数据中心网络升级场景:适应速率升级如100G到200G这些变化,调整目标延迟来优化新旧硬件的性能。
    • 虚拟化和容器化环境场景:可在虚拟化和容器化环境中工作
  • 术语:AIMD英文全称:Additive Increase Multiplicative Decrease。TCP/IP模型中,属于运输层,为了解决拥塞控制的一个方法,即:加性增,乘性减,或者叫做“和式增加,积式减少”。加增乘减
  • 论文摘要信息:
    在这里插入图片描述
  • 论文:https://dl.acm.org/doi/pdf/10.1145/3387514.3406591
  • 其他
    • 行业中闪存的需求是100K+ IOPS的delay在100u (u表示us )
    • 行业中NVMe的需求是 1M+ IOPS的delay在 10u,需求来源是如果等太久服务器资源浪费
    • 拥塞控制是数据中心系统性能的关键推动因素(或限制因素)
    • DCTCP在长尾延迟在ms级别,尤其是大规模时候
    • DCTCP 、PFC 、DCQCN 和 HPCC 等协议使用来自交换机的显式反馈ECN来保持网络队列较短和 RPC 完成时间较短。它们可以提供良好的性能,但在大型incase和 IOPS 密集型工作负载下无济于事。原文:

    but they do not help under large incasts and IOPS-intensive workloads.

  • 核心算法(待进一步研究)
    在这里插入图片描述

参考:
https://zhuanlan.zhihu.com/p/566563035
https://baike.baidu.com/item/AIMD/10641459?fr=ge_ala

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

防止linux出现大量 FIN_WAIT1

netstat 查看系统连接情况,出现 FIN_WAIT1: 当连接数多时,经常出现大量FIN_WAIT1,可以修改 /etc/sysctl.conf以下参数: net.ipv4.tcp_fin_timeout 10net.ipv4.tcp_keepalive_time 30net.ipv4.tcp_window_scaling 0net.ipv4.tc…

吴恩达机器学习笔记:第 6 周-11机器学习系统的设计(Machine Learning System Design)11.1-11.2

目录 第 6 周 11、 机器学习系统的设计(Machine Learning System Design)11.1 首先要做什么11.2 误差分析11.3 类偏斜的误差度量 第 6 周 11、 机器学习系统的设计(Machine Learning System Design) 11.1 首先要做什么 在接下来的视频中,我将谈到机器学习系统的设…

springdoc-openapi-用户界面如何将请求设置为HTTPS

一、问题描述 当我们的服务接口需要通过HTTPS访问时,通过swagger可视化页面请求接口的时候,发起的是HTTP请求,导致请求无法到达后端,影响测试。 二、解决方法 1、将服务的地址添加到配置文件中 swagger:server-list: #本地环境…

ubuntu-server部署hive-part3-安装mysql

参照 https://blog.csdn.net/qq_41946216/article/details/134345137 操作系统版本:ubuntu-server-22.04.3 虚拟机:virtualbox7.0 部署mysql 下载上传 下载地址 https://downloads.mysql.com/archives/community/ 以root用户上传,/usr/loc…

【信贷后台管理系统之axios的二次封装(四)】

文章目录 一、axios的二次封装二、配置后端接口地址三、登录接口api联调四、贷款申请接口api编写联调 一、axios的二次封装 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 src下新建utils,新建request.js用来封装axios 控…

Set a Light 3D Studio:探索光影艺术的全新维度mac/win中文版

Set a Light 3D Studio 是一款领先的三维建模和渲染软件,它将设计师、艺术家和摄影师的创意想法转化为生动逼真的三维场景。这款软件以其强大的功能和直观的界面,成为行业内众多专业人士的首 选工具。 set.a.light 3D STUDIO中文版软件获取 在Set a Lig…

unity shader学习练笔日记(一)

1、简单顶点/片元着色器 Shader "Unity Shaders Study/Day One/Simple Shader" {Properties{//声明一个Color类型的属性_Color ("Color Tint", Color) (1.0, 1.0, 1.0, 1.0)}SubShader{Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag//在CG代码…

【Go】十八、管道

文章目录 1、管道2、管道的定义3、管道的关闭4、管道的遍历5、管道 协程6、只读、只写管道7、管道的阻塞8、select 1、管道 channel本质是一个队列,先进先出自身线程安全,多协程访问时,不用加锁,channel本身就是线程安全的一个s…

OpenCV 笔记(28):图像降噪算法——中值滤波、高斯滤波

1. 图像噪声 图像降噪(Image Denoising)是指从图像中去除噪声的过程,目的是提高图像质量,增强图像的视觉效果。 图像噪声是指图像中不希望出现的随机亮度或颜色变化,通常会降低图像的清晰度和可辨识度,以及会降低图像的质量并使图…

DFS:深搜+回溯+剪枝解决排列、子集问题

创作不易&#xff0c;感谢三连支持&#xff01;&#xff01; 一、全排列I . - 力扣&#xff08;LeetCode&#xff09; class Solution { public://全局变量vector<vector<int>> ret;vector<int> path;bool check[6];vector<vector<int>> perm…

【NLP】LLM 和 RAG

在这里&#xff0c;我描述了我在过去几年中关于 RAG 系统如何发展的主要经验。分享 Naive RAG、Advanced RAG 和 Modular RAG 框架之间的区别。总结了高云帆等人发表的一篇出色的RAG 技术调查论文的关键见解。 什么是 RAG 框架&#xff1f; OpenAI的GPT系列、Meta的LLama系列…

InterliJ IDEA基本设置

安装好idea后&#xff0c;将软件打开&#xff0c;可以进行基础设置 1.打开软件&#xff0c;先安装插件-汉化包&#xff08;不推荐&#xff0c;最好使用英文版&#xff09;&#xff0c;本次我们使用汉化版本完成基本设置&#xff0c;后期希望大家适应英文版的开发环境。&#x…

Databend 开源周报第 138 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 支持多表插入 …

一次MySQL事务的旅程:Buffer Pool, Binlog, Redo Log揭秘

MySQL中的各种Buffer和Log以及表空间 MySQL中一次事务涉及了各种Buffer,Log和表空间&#xff0c;主要涉及&#xff1a;Buffer Pool, Binlog, Undo Log, Redo Log以及表空间。 我们来探讨下。 Buffer Pool Buffer Pool主要存放在内存中&#xff0c;它是一个缓存区域&#xf…

论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection

文章目录 RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection问题笛卡尔坐标结构图Meta-Kernel Convolution RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection 论文&#xff1a;https://arxiv.org/pdf/2103.10039.pdf 代码&…

Python 与机器学习,在服务器使用过程中,常用的 Linux 命令包括哪些?

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 本博客旨在分享在实际开发过程中&#xff0c;开发者需要了解并熟练运用的 Linux 操作系统常用命令。Linux 作为一种操作系统&#xff0c;与 Windows 或 MacOS 并驾齐驱&#xff0c;尤其在服务器和开发环…

【Node.js从基础到高级运用】二十一、使用child_process模块创建子进程

引言 在Node.js中&#xff0c;child_process模块是一个提供了创建和管理子进程的能力的核心模块。通过使用child_process模块&#xff0c;Node.js可以执行系统命令、运行其他脚本或应用程序&#xff0c;实现与Node.js进程的并行处理。 child_process模块提供了几种创建子进程的…

环信IM集成教程——Web端UIKit快速集成与消息发送

写在前面&#xff1a; 千呼万唤始出来&#xff0c;环信Web端终于出UIKit了&#xff01;&#x1f389;&#x1f389;&#x1f389; 文档地址&#xff1a;https://doc.easemob.com/uikit/chatuikit/web/chatuikit_overview.html 环信单群聊 UIKit 是基于环信即时通讯云 IM SDK 开…

Docker:探索容器化技术,重塑云计算时代应用交付与管理

一&#xff0c;引言 在云计算时代&#xff0c;随着开发者逐步将应用迁移至云端以减轻硬件管理负担&#xff0c;软件配置与环境一致性问题日益凸显。Docker的横空出世&#xff0c;恰好为软件开发者带来了全新的解决方案&#xff0c;它革新了软件的打包、分发和管理方式&#xff…

聚观早报 | 蔚来推出油车置换补贴;iPhone 16 Pro细节曝光

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 4月02日消息 蔚来推出油车置换补贴 iPhone 16 Pro细节曝光 小米SU7创始版第二轮追加开售 OpenAI将在日本设立办事…