当前位置: 首页 > 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;以存放一些临时用的数据&…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

LeetCode - 199. 二叉树的右视图

题目 199. 二叉树的右视图 - 力扣&#xff08;LeetCode&#xff09; 思路 右视图是指从树的右侧看&#xff0c;对于每一层&#xff0c;只能看到该层最右边的节点。实现思路是&#xff1a; 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...