当前位置: 首页 > news >正文

论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks

1 原论文的题目(中英文)、题目中包含了哪些关键词?这些关键词的相关知识分别是什么?

题目:PowerTCP: Pushing the Performance Limits of Datacenter Networks

      PowerTCP:逼近数据中心的网络性能极限

2 论文的背景:作者、工作单位、发表刊物、索引情况

作者:Vamsi Addanki 、Oliver Michel 、Stefan Schmid

单位:TU Berlin 、University of Vienna、Princeton University

发表刊物:19th USENIX Symposium on Networked Systems Design and Implementation(NSDI2022 计算机网络CCF A类)

3 问题的提出:论文论述的技术/科学是什么问题?为什么会存在这样问题?这种技术/科学问题存在的背景是什么?

本文研究的是数据中心网络的拥塞控制算法

背景知识:

数据中心中存在三种形式的流:查询流、短流、长流。其中查询流和短流对延迟敏感,长流需要较高的吞吐量。

数据中心对网络的要求:低延迟、高带宽。

常规的TCP协议的拥塞控制机制(慢开始、拥塞避免、快重传、快恢复)不再适用于数据中心网络环境。

4 问题的相关研究:其他相关研究是如何解决类似的问题的?

现有的对数据中心网络拥塞控制的研究主要分为两类:基于网络状态的拥塞控制算法和基于网络变化的拥塞控制算法。

4.1 基于网络状态的拥塞控制算法

根据交换机中 Queue Length 或者RTT来发现拥塞,并且依据这些信息决定该如何调整拥塞窗口的大小(cwnd)。(voltage based)

以DCTCP(Data Center TCP)为例。在交换机处设置阈值 K,数据包达到交换机时,若队列占用值大于K,则标记该数据包。接受端收到带有标记的数据包后返回的ack报文同样带有标记,发送根据收到的ack中带标记的数据包占总发送数据包的比例来调节拥塞窗口大小(cwnd)。

实例:DCTP、DCQCN、HPCC

优点:控制更加准确

缺点:反应较慢(针对突发的网络冲突应对不足)

4.2 基于网络变化的拥塞控制算法

根据交换机中网络变化,比如检测RTT的变化(RTT的梯度),并且依据这些信息决定该如何调整拥塞窗口的大小(cwnd)。(current based)

实例:TIMELY

优点:反应更快

缺点:控制不太精准

4.3 两种拥塞控制算法的问题

由于当前的网络拥塞控制算法(Congestion Control,简称CC)实现原理的限制,当前CC在反应速度和控制精度上往往只能选一个。 

(a) 当队列长度增长速度发生变化时,基于网络状态的拥塞控制算法的反应是一样的。

(b) 针对于队列长度不同的设备,基于网络变化的拥塞控制算法的反应是一样的。

(c) 因此,基于网络状态的拥塞控制算法无法区分case2和case3这两种情形;基于网络变化的拥塞控制算法无法区分case1和case3这两种情形。

5 基本思想:本文解决该问题的基本思想、过程是什么?

实现网络拥塞控制需要如下两个关键点:

  • 如何发现拥塞
  • 如何控制拥塞

5.1 如何发现拥塞

本文使用的是带内网络遥测(In- band network telemetry ,简称INT)

带内网络遥测原理:

In-band:监测网络设备的状态时无需单独构造一个数据包,可以将检测信息附加到正常数据包(如TCP、UDP)的包头。(个人理解)

简单的来说,INT可分为两部分:INT Header和INT Metadata

  • INT Header:由INT的发送端添加进正常数据包,指明了要收集那些信息以及INT最终的接受端是谁。
  • INT Metadata:记录网络状态,由数据包传输过程中每个网络设备添加(交换机或路由),将需要检测的数据添加进来。 

本文的所使用的网络监测方法简介

要监测的信息:

  • Queue Length (qlen)
  • Timestamp (ts)
  • So far transmitted bytes (txBytes)
  • Bandwidth (b)

监测流程:

表示正常数据包

表示INT Header

表示确认收到的ACK 

Sender :-->网络设备--->--->Receiver

Sender :<-----网络设备<----<-----Receiver

5.2 如何控制拥塞

几乎所有的拥塞控制都是通过控制发送端的拥塞窗口的大小(cwnd

具体拥塞窗口该选多大是根据拥塞控制算法算出的。

本文就提出了PowerTCP算法,是一种同时基于网络状态和网络变化的拥塞控制算法。

6 配图:找出全文中最具概括性的一幅配图(架构图/流程图/思路图...),简单解释这张图。这幅图是如何概括全文的?

网络拥塞程度

 \underbrace{\Gamma(t)}_{power}=\underbrace{(q(t)+b\cdot\tau)}_{voltage}\cdot\underbrace{\lambda(t-t^f)}_{current}

\Gamma(t) :反应当前网络的拥塞程度

q(t): 当前队列长度

b: 带宽×基本往返时间(不包括排队延迟),飞行中的数据量。

\lambda(t-t^f):队列长度变化率

计算拥塞窗口的公式

w_i\leftarrow \gamma(w_i(t-\theta(t)))+(1-\gamma)\cdot w_i(t)

e=b^2\cdot\tau; f(t)=\Gamma(t-\theta(t)+t^f))

 w_i(t):拥塞窗口大小

 \gamma:经验参数,建议取0.9

 \theta(t)=\frac{q(t)}{b}+\tau:基本往返时间(Base RTT) +排队延迟

 \beta:增量,经验参数

计算拥塞窗口的算法

7 实验:采用了什么硬件配置和软件环境?每项测试是在和哪些同类研究做对比?分别测试了哪些指标(例如,延迟/吞吐量/资源利用率...)?

环境:

 搭建了一个基于Fat Tree拓扑的数据中心网络,其中有2个核心交换机和256台服务器,它们被组织成4个pod。每个pod由两个ToR交换机和两个汇聚交换机组成。所有交换机到交换机链路的容量均为100Gbps,服务器到交换机链路的容量均为25Gbps。

测量指标: 吞吐量、队列长度、尾延迟、短流的99th-percentile flow completion times (FCT),不同大小的流的 99th-percentile FCT。

8 二次利用:论文是否提供源代码?

无;

其他开源项目:DCTCP、HPCC、TIMELY

相关文章:

论文分享:PowerTCP: Pushing the Performance Limits of Datacenter Networks

1 原论文的题目&#xff08;中英文&#xff09;、题目中包含了哪些关键词&#xff1f;这些关键词的相关知识分别是什么&#xff1f; 题目&#xff1a;PowerTCP: Pushing the Performance Limits of Datacenter Networks PowerTCP&#xff1a;逼近数据中心的网络性能极限 2 论…...

浏览器的同源策略 - 跨域问题

1.什么是跨域 跨域问题的实质是浏览器的同源策略造成的。浏览器同源策略是浏览器为 JavaScript 施加的限制。简单点说就是非同源会出现如下等限制&#xff1a; 无法访问其他源下的网页的 Cookies&#xff0c;Storage等&#xff1b;无法访问其他源下的DOM对象和 JS 对象;无法使…...

go 查询采购单设备事项[小示例]V2-两种模式{严格,包含模式}

第一版&#xff1a; https://mp.csdn.net/mp_blog/creation/editor/131979385 第二版&#xff1a; 优化内容&#xff1a; 检索数据的两种方式&#xff1a; 1.严格模式--找寻名称是一模一样的内容&#xff0c;在上一个版本实现了 2.包含模式&#xff0c;也就是我输入检索关…...

c++11 标准模板(STL)(std::basic_filebuf)(八)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_filebuf : public std::basic_streambuf<CharT, Traits> std::basic_filebuf 是关联字符序列为文件的 std::basic_streambuf 。输入序…...

行为型模式之解释器模式

解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式&#xff08;Interpreter Pattern&#xff09;是一种行为设计模式&#xff0c;它用于对语言的文法进行解释和解析&#xff0c;以实现特定的操作。 在解释器模式中&#xff0c;存在以下几个角色&#xff1a; 抽…...

阿里云域名备案

最好的爱情&#xff0c;不是因为我们彼此需要在一起&#xff0c;而是因为我们彼此想要在一起。 阿里云的域名如何备案&#xff0c;域名备案和ICP备案一样吗&#xff1f;&#xff1f; 截至我所掌握的知识&#xff08;2021年9月&#xff09;&#xff0c;阿里云的域名备案和ICP备案…...

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…...

文档管理NAS储存安全吗?

关键词&#xff1a;私有化、知识管理系统、文档管理、群晖NAS、协同编辑 随着企业不断发展扩大&#xff0c;企业的知识文档也逐渐增多&#xff0c;很多企业方便管理及考虑数据安全问题会将文件数据储存至NAS。 但将企业文档数据放在NAS上就足够安全的吗&#xff1f; 天翎文档管…...

用windeployqt.exe打包Qt代码

首先找到我们编译Qt代码的对应Qt版本的dll目录&#xff0c;该目录下有windeployqt.exe&#xff1a; D:\DevTools\Qt\5.9\msvc2017_64\bin 在这个目录下打开cmd程序。 然后把要打包的exe放到一个单独的目录下&#xff0c;比如&#xff1a; 然后在cmd中调用&#xff1a; winde…...

【Python机器学习】实验04(2) 机器学习应用实践--手动调参

文章目录 机器学习应用实践1.1 准备数据此处进行的调整为&#xff1a;要所有数据进行拆分 1.2 定义假设函数Sigmoid 函数 1.3 定义代价函数1.4 定义梯度下降算法gradient descent(梯度下降) 此处进行的调整为&#xff1a;采用train_x, train_y进行训练 1.5 绘制决策边界1.6 计算…...

【爬虫案例】用Python爬取iPhone14的电商平台评论

用python爬取某电商网站的iPhone14评论数据&#xff0c; 爬取目标&#xff1a; 核心代码如下&#xff1a; 爬取到的5分好评&#xff1a; 爬取到的3分中评&#xff1a; 爬取到的1分差评&#xff1a; 所以说&#xff0c;用python开发爬虫真的很方面&#xff01; 您好&…...

01)docker学习 centos7离线安装docker

docker学习 centos7离线安装docker 在实操前可以先看下docker教程,https://www.runoob.com/docker/docker-tutorial.html , 不过教程上都是在线安装方式,很方便,离线安装肯定比如在线麻烦点。 一、什么是Docker 在学习docker时,在网上看到一篇博文讲得很好,自己总结一下…...

前端 - 实习两个星期总结

文章目录 吐槽总结新人建议项目学习到的 今天已经是菜鸟实习的第二个星期了&#xff0c;怎么说呢&#xff0c;反正就是进的一个不大不小的厂&#xff0c;做着不难不易的事&#xff0c;菜鸟现在主要做的就是适配&#xff01;现在就来总结一下&#xff0c;不过这之前&#xff0c;…...

MySQL——主从复制

1.理解MySQL主从复制原理。 2.完成MySQL主从复制。 1.理解MySQL主从复制原理。 1&#xff09;、MySQL支持的复制类型 &#xff08;1&#xff09;、基于语句&#xff08; statement &#xff09;的复制 在主服务器上执行SQL 语句&#xff0c;在从服务器上执行同样的语句。 My…...

报表下载工具

1.需求说明 我有一堆文件的Url地址&#xff0c; 现在需要按照企业&#xff0c;项目和报表类型分类下载到对应的文件夹中 2.相关实体类 企业文件夹定义 package com.vz.utils.report;import lombok.Data; import java.util.ArrayList; import java.util.List; import java.uti…...

树及其遍历

文章目录 树树定义专业术语树分类 二叉树分类存储连续存储&#xff08;完全二叉树&#xff09;链式存储一般树的存储森林的存储 线索二叉树哈夫曼树构造步骤 遍历先序遍历中序遍历后续遍历 链式二叉树遍历具体代码已知两种遍历序列求原始二叉树已知先序和中序求后序已知中序和后…...

Qt报错解决办法

anaconda环境安装qt报错解决办法 报错&#xff1a;thresholdGap: 20 pointsShape: 164142 qt.qpa.plugin: Could not find the Qt platform plugin “wayland” in “/home/tianhailong/anaconda3/envs/edge_algorithm/lib/python3.8/site-packages/cv2/qt/plugins” This app…...

Python(四十七)列表对象的创建

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…...

#systemverilog# 说说Systemverilog中《automatic》那些事儿

前面我们学习了有关systemverilog语言中有关《static》的一些知识,同static 关系比较好的哥们,那就是 《automatic》。今天,我们了解认识一下。 在systemveriog中,存在三种并发执行语句,分别是fork..join,fork...join_any和fork..join_none,其中只有fork...join_none不…...

C/C++ 动态内存分配与它的指针变量

一、什么是内存的动态分配 全局变量分配在内存中的静态存储区。局部变量&#xff08;包括形参&#xff09;分配在内存中的动态存储区&#xff0c;这个存储区是一个称为栈的区域。除此之外&#xff0c;C语言还允许建立内存动态分配区域&#xff0c;以存放一些临时用的数据&…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...