啊…其实最近一直都有在看接收端驱动的论文,应该有那么五六篇吧。最近有时间的话我就把我之前看过的文章都记录一下吧。反正也没人看

文章目录

  • 背景与设计动机
    • 两种设计模式
    • RTT作为拥塞信号的价值
  • 模型设计与现实
    • TIMELY总体框架
    • RTT Measurement Engine
    • Rate Computation Engine
  • 总结

这是一篇2015年sigcomm的论文,也是第一个在数据中心使用的基于延迟的拥塞控制协议。所以尽管性能上很难媲美近些年发表的拥塞控制,但是其中的思想非常值得一读。

背景与设计动机

两种设计模式

现阶段数据中心传输有两个需求目标:

  • 高带宽(Gbps级别)
  • 低延迟(毫秒级别)

那么,如何同时满足数据中心的这两个一定程度上甚至是矛盾的的需求呢?一个普遍的想法是基于拥塞信号来进行后续处理。对于此,主要有两种不同的方法:第一是基于ECN对拥塞信号进行诠释,第二是基于延迟对拥塞信号进行诠释。由此,延生出了两种不同风格的拥塞控制协议:

  • 基于ECN的拥塞控制
  • 基于延时的拥塞控制

前者主要包括了TCP、DCTCP, D2TCP,L2DCT等协议,后者主要包括了TCP Vegas, FAST TCP, TIMELY等协议。

基于ECN的拥塞控制这里不再多做赘述。论文认为,基于ECN的拥塞控制需要退一步,寻找一种更为简单可以立刻部署的设计。而从RTT测量得出的网络排队延迟是一种出色的拥塞信号,无需任何交换机支持。

RTT作为拥塞信号的价值

RTT之所以有价值,是因为它们直接衡量我们关心的数量: 网络排队导致的端到端延迟。
而从队列占用率得出的信号(例如ECN)无法直接告知该指标,数据包上的ECN标记仅表示与数据包相对应的队列度量值超过阈值。具有不同优先级的多个队列共享同一输出链路,但是ECN标记仅提供有关占用率超过阈值的队列的信息。低优先级的流量可能会经历较大的排队延迟,而不必建立大型队列。在这种情况下,排队延迟反映了网络中的拥塞状态,而低优先级流量的队列占用率却没有反映该问题。此外,ECN标记描述了单个开关的行为。在利用率很高的网络中,拥塞发生在多个交换机上,ECN信号在它们之间无法分辨。

模型设计与现实

TIMELY总体框架

TIMELY为速率控制提供了一个框架,下图显示了它的三个组成部分:

  • RTT Measurement Engine:测量RTT,监视网络的拥塞情况;
  • Rate Computation Engine:将RTT信号转换为目标发送速率的计算引擎;
  • Pacing Engine:在各段(64KB each)之间插入延迟以达到目标速率。

接下来我会进行具体分析。

RTT Measurement Engine

该组件实现了对RTT的测量。
我们根据下图定义RTT。下显示了一条消息的时间轴:由多个数据包组成的段作为单个突发发送,然后由接收器作为一个单元进行确认。


延迟主要由四个组件组成:

  • 发送时延
  • 传播时延
  • 处理时延
  • 排队时延

论文将RTT定义为传播时延+排队时延。所以RTT有如下等式,RTT等于总延时减去发送延时和处理延时。具体计算公式如下:

RTT=tcompletion−tsend−seg.sizeNIClinerateRTT= t_{completion}-t_{send}-\frac{seg.size}{NIC line rate}RTT=tcompletion​−tsend​−NIClinerateseg.size​

根据定义,这里tprocess=seg.sizeNIClineratet_{process}=\frac{seg.size}{NIC line rate}tprocess​=NIClinerateseg.size​ 也就段大小/满带宽下的发送速率。

Rate Computation Engine

该组件实现了该组件实现了我们的基于RTT的拥塞控制算法。
对于计算输出速率的引擎,它必须要满足两个需求:即必须提供低延迟(对于短流)和高吞吐量(对于长流)的网络利用率。 TIMELY的拥塞控制器通过对延迟梯度或排队随时间变化的微分做出反应,从而实现了低延迟,而不是试图保持排队。由于RTT增加而导致的正延迟梯度表示队列增加,而负梯度表示队列减少。 通过使用梯度,我们可以对队列增长做出反应,而无需等待队列的形成一种有助于我们实现低延迟的策略。

这里可以看到具体的伪代码。首先对new_rtt做一次判断,如果它小于阈值Tlow或者大于阈值Thigh,那就直接对发送速率进行增减,具体公式在图中,而不去判断延时梯度。

如果new_rtt落在了中间区域,那么首先就要对延时梯度进行计算。延时梯度等于最新的rtt减去上一个rtt再除以20 µs(微秒),它是一个无量纲的数字。如果梯度小于或等于零,网络可以有更高的速率,发送速率增加一个恒定的值来探测更多的带宽。如果梯度为正,则发送速率超过网络容量,并执行乘法速率递减。计算得到这个发送速率之后,在pacing engine中,使用调度器来处理流。它根据当前段的大小、流率和最后一次传输的时间计算当前段的发送时间,然后将该段放入优先队列中。


优点是基于梯度的拥塞控制可以在队列成型之前就对队列增长做出反应,避免了ECN中可能出现的很多问题。

总结

该论文中基于梯度的拥塞控制算法我认为是非常值得学习的。但是依然也存在一些问题:

  • 没有对丢失的报文的处理。(需要依靠PFC来避免丢包)
  • 参数太多难以设计
  • 虽然硬件上已经避免了内核中可能的影响因素,但是一些不可避免的抖动会在反馈信号中引入延迟和噪声,影响拥塞检测的准确性。

sigcomm2015 TIMELY: RTT-based Congestion Control for the Datacenter 论文阅读笔记相关推荐

  1. 《Sentiment Analysis of Chinese Microblog Based on Stacked Bidirectional LSTM》论文阅读笔记

    文章名:<Sentiment Analysis of Chinese Microblog Based on Stacked Bidirectional LSTM> 作者:JUNHAO ZH ...

  2. 毫米波目标检测论文 阅读笔记 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar

    毫米波目标检测论文 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar Jie Ba ...

  3. Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores 论文阅读笔记

    Staring into the Abyss: An Evaluation of Concurrency Control with One Thousand Cores 论文阅读笔记 Concurre ...

  4. 论文阅读笔记(5):Oracle Based Active Set Algorithm for Scalable Elastic Net Subspace Clustering

    论文阅读笔记(5):Oracle Based Active Set Algorithm for Scalable Elastic Net Subspace Clustering,基于Oracle的可伸 ...

  5. 一周一论文(翻译)——[SIGMOD 2015] TIMELY RTT-based Congestion Control for the Datacenter

    本文主要解决的问题是在,基于优先级的拥塞控制PFC是一种粗粒度的机制,它主要是通过检测优先级队列的长度是否超过阈值,然后再发送PFC拥塞信号帧来进行流量控制.这种做法会带来不公平性以及行头阻塞等问题. ...

  6. Sigcomm‘2020 Annulus: A Dual Congestion Control Loop for Datacenter and WAN Traffic Aggregates论文阅读笔记

    文章目录 Introduction Background Annulus Near-Source Control Loop ideal Introduction Annulus这篇文章是麻省理工发表于 ...

  7. Cross-Attention Fusion Based Spatial-Temporal MGCN for Traffic Flow Prediction阅读笔记

    论文:基于交叉注意融合的时空多图卷积网络交通流预测,Cross-Attention Fusion Based Spatial-Temporal Multi-Graph Convolutional Ne ...

  8. 【论文阅读笔记】基于分类器预测置信度的集成选择| Ensemble Selection based on Classifier Prediction Confidence

    基于分类器预测置信度的集成选择 | Ensemble Selection based on Classifier Prediction Confidence [摘要] 集成选择是集成学习中研究最多的课 ...

  9. Face Swapping under Large Pose Variations: a 3D Model Based Approach论文阅读笔记

    题目:Face Swapping under Large Pose Variations: a 3D Model Based Approach 翻译:大姿态变化下的人脸交换:一种基于三维模型的方法 摘 ...

最新文章

  1. 调用bat文件执行java文件
  2. LeetCode实战:最大子序和
  3. 360全景html插件,jquery实现360度全景展示特效插件
  4. CSP:CSP认证考试:202012-1(期末预测之安全指数)满分答案,Java版
  5. 为什么用户体验设计师需要像建筑师一样思考?
  6. 加强自己的电脑安全决招
  7. [二叉树]二叉搜索树转换为双向链表(剑指Offer26)
  8. apk 反编译_安卓apk反编译、重新打包、签名全过程
  9. Myeclipse10如何进行代码提示和自动补全
  10. rdpwrap 在 GitHub上 被禁了,谁能提供 autoupdate-v07.09.2019.zip ? 给分
  11. VS Code 创建HTML页面教程
  12. 推荐一些程序猿学习的网站
  13. Snort IPS入侵防御系统模式
  14. 关于PG与Linux的HUGEPAGE/HUGETLBFS
  15. 生物信息百Jia软件(十三):clustalw
  16. 某电商类网站服装商品展示页面局部(1+X Web前端开发初级 例题)
  17. python tkinter手册_tkinter 中文文档
  18. Unix 开机时如何自启动oracle
  19. 【Pycharm】Pycharm专业版 社区版 教育版区别
  20. Erasure Code - EC纠删码原理

热门文章

  1. 多传感器融合算法,雷视融合算法
  2. python培训新闻
  3. 微信小程序——平台的搭建
  4. tornado模板引擎原理
  5. kivy 028 读取excel 文件
  6. 刚刚看完了爆款文案,醍醐灌顶,深有启发。
  7. [数仓]埋点数据接入
  8. vue两张图片合成一张(海报二维码合成工具)
  9. 苹果五升级系统无服务器,苹果5如何升级ios7【方法步骤】
  10. 石大师一键装机具体操作教程