论文分享: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

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

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

相关文章

git源码安装(无sudo权限)

git源码安装&#xff08;无sudo权限&#xff09; 下载源码解压安装添加到环境变量 下载源码 去https://mirrors.edge.kernel.org/pub/software/scm/git/下载需要的版本。我下载的是2.41.0版本 wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.41.0.tar.gz解…

vue+Element项目中v-for循环+表单验证

如果在Form 表单里有通过v-for动态生成&#xff0c;如何设置验证呢&#xff1f; <el-form ref"ruleFormRef" :model"ruleForm" status-icon :rules"rules" label-width"120px"class"demo-ruleForm" hide-required-aster…

C语言基础-3

1、函数 函数是C语言代码的基本组成部分&#xff0c;它是一个小的模块&#xff0c;整个程序由很多个功能独立的模块&#xff08;函数&#xff09;组成。这就是程序设计的基本分化方法。 main&#xff1a;C语言中所谓的主函数&#xff0c;主函数就是一种特别的函数。特别之处在于…

在EF Core中为数据表按列加密存储

假设有User表 public class User : Entity<int> {public int Id { get; set; }public string UserName { get; set; }public string Name { get; set; }public string IdentificationNumber { get; set; } }其中有身份证号码IdentificationNumber列&#xff0c;需要加密…

CSS 学习网站

&#x1f310; 基础学习 cssreference.io/ CSS 参考书 chokcoco.github.io/CSS-Inspira… CSS 灵感 www.awwwards.com/sites/zero-… UI 设计师的灵感源泉 htmlcheatsheet.com/css/ 交互式在线 CSS 速记表 zh.learnlayout.com/ 学习 CSS 布局 css-tricks.com/ CSS 小花招…

虚拟机(VMware)安装Linux(Ubuntu)安装教程

清华大学开源网站镜像站网址&#xff1a;清华大学开源软件镜像站 | Tsinghua Open Source Mirror 进入之后在搜索框中搜索“ubuntu” 直接点击箭头所指的蓝色字体“ubuntu-20.04.1-desktop-amd64.iso”即可下载

面试:Spring Cloud和Kubernetes的优缺点

Spring Cloud 优点 spring cloud是从应用框架层面解决微服务架构的一部分&#xff0c;如网关、服务发现、负载平衡、配置管理、指标跟踪等&#xff0c;易于Java开发者上手。 缺点 缺乏打包、持续集成、伸缩、高可用和自我修复等&#xff0c;且局限于Java平台。 Kubernetes …

[Ubuntu 22.04] containerd配置HTTP方式拉取私仓Harbor

文章目录 1. 基础环境配置2. Docker安装3. 部署Harbor&#xff0c;HTTP访问4. 部署ContainerD5. 修改docker配置文件&#xff0c;向harbor中推入镜像6. 配置containerd6.1. 拉取镜像验证6.2. 推送镜像验证 1. 基础环境配置 [Ubuntu 22.04] 安装K8S基础环境准备脚本 2. Docker安…

听说 Spring Bean 的创建还有一条捷径?

文章目录 1. resolveBeforeInstantiation1.1 applyBeanPostProcessorsBeforeInstantiation1.2 applyBeanPostProcessorsAfterInitialization1.3 案例 2. 源码实践2.1 切面 Bean2.2 普通 Bean 在 Spring Bean 的创建方法中&#xff0c;有如下一段代码&#xff1a; AbstractAutow…

详解rocketMq通信模块升级构想

本文从开发者的角度深入解析了基于netty的通信模块, 并通过简易扩展实现微服务化通信工具雏形, 适合于想要了解netty通信框架的使用案例, 想了解中间件通信模块设计, 以及微服务通信底层架构的同学。希望此文能给大家带来通信模块架构灵感。 概述 网络通信是很常见的需求&#…

什么是自动化测试?

什么是自动化测&#xff1f; 做测试好几年了&#xff0c;真正学习和实践自动化测试一年&#xff0c;自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念&#xff0c;广义上来讲&#…

vue2企业级项目(三)

vue2企业级项目&#xff08;三&#xff09; 引入mockjs&#xff0c;i18n 1、mockjs 项目下载依赖 npm install --save-dev mock根目录创建mock文件夹&#xff0c;并创建mock/index.js import Mock from "mockjs";// 设置全局延时 没有延时的话有时候会检测不到数据…

k8s安装prometheus

安装 在目标集群上&#xff0c;执行如下命令&#xff1a; kubectl apply -f https://gitee.com/i512team/dhorse/raw/main/conf/kubernetes-prometheus.yml使用 1.在浏览器访问地址&#xff1a;http://master_ip:30000&#xff0c;如下图所示&#xff1a; 2.查看k8s自带的…

yolov5 onnx模型 转为 rknn模型

1、转换为rknn模型环境搭建 onnx模型需要转换为rknn模型才能在rv1126开发板上运行&#xff0c;所以需要先搭建转换环境 模型转换工具 模型转换相关文件下载&#xff1a; 网盘下载链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;teuc 将其移动到虚拟机中&#xf…

android——ktor封装

ktor封装 代码如下&#xff1a; object KtorClient { // private const val BASE_URL "http://***.**.***.62:8002"private const val BASE_URL "https://mock.***.cn"val client HttpClient(CIO) {install(ContentNegotiation) {json(Json {pretty…

洛谷题单 Part 6.7.1 矩阵

应队友要求&#xff0c;开始学线性代数&#xff0c;具体路线是矩阵 → \rightarrow →高斯消元 → \rightarrow →线性基。为多项式做个准备 P3390 【模板】矩阵快速幂 题面 板子&#xff0c;用结构体写的&#xff0c;感觉有点丑&#xff0c;一会儿看看题解有没有写得好看的 …

Java 递归实现迷宫出逃小游戏

Java 递归实现迷宫出逃小游戏 一、规则二、代码实现三、运行结果 一、规则 数字含义 0 - 路; 1 - 墙; 2 - 通路; 3 - 死路 寻路策略 向下 --> 向右 --> 向上 --> 向左 二、代码实现 public class MyClass {public static void main(String[] args){//迷宫地图&…

前端开发Vue3.0 标签setup语法『UI组件库』之『模态框』【业务提升必备】

封装模态框需要定义的参数 title //弹窗标题 show // 是否显示弹窗 width // 弹窗宽度 height // 弹窗高度 borderRadius // 弹窗圆角 headerColor // 弹窗顶部颜色 contentText // 内容文本 contentTextCorder //内容文本颜色 position // 标题的位置 …

OpenCV 算法解析

opencv大坑之BGR opencv对于读进来的图片的通道排列是BGR&#xff0c;而不是主流的RGB&#xff01;谨记&#xff01; #opencv读入的矩阵是BGR&#xff0c;如果想转为RGB&#xff0c;可以这么转 img4 cv2.imread(1.jpg) img4 cv2.cvtColor(img4,cv2.COLOR_BGR2RGB) OpenCV 常见…

自定义 View(六) 自定义评分星星

先看看效果图 1.自定义 View 的基本流程 创建 View Class创建 attr 属性文件&#xff0c;确定属性View Class 绑定 attr 属性onMeasure 测量onDraw 绘制onTouchEvent ( 用户交互需要处理 ) 1.1 创建 View Class package com.example.view_day05_ratingbar;import android.…