文章目录

  • 设计背景
  • HPCC模型
    • 总体模型介绍
    • 模型设计
    • 设计难点
      • 延迟反馈容忍
      • 过度反应
  • 总结

这一篇论文是2019年sigcomm的论文,讨论了一种高精度拥塞控制算法HPCC(High Precision Congestion Control)。

设计背景

DCQCN是我们RDMA网络中的默认的流控机制。它利用ECN来发现拥塞风险并迅速做出反应。它还允许主机开始以线路速率进行积极的传输,并在短暂的拥塞后迅速提高它们的速率(FastRecover)。 关于DCQCN更具体的细节可以看看我的上一篇博客
然而在实践中,我们可以发现DCQ一直在配置中存在着两队矛盾:吞吐量vs 稳定性;带宽 vs 延时。论文在测试平台中进行了仿真,详细论述了这两对矛盾:
吞吐量vs 稳定性
在一个DCQCN配置中,很难在不影响网络稳定性的情况下实现高吞吐量。在图(a)我们可以看到,在30%的网络负载之下,更小的(Ti)和更大的(Td)通过让发送发更加积极地检测利用宽带,减少了每条流的平均完成时间。但是也正如图b所示显然这样做也会造成更多了PFC PAUSE帧的出现。

带宽 vs 延时

为了始终保持较低的延迟,网络需要在缓冲区中稳定地维持较小的队列(这意味着ECN标记阈值较低),而如果ECN标记阈值较低,则发送方将过于保守以至于无法提高流量。

HPCC模型

这里对论文提出的模型进行介绍。HPCC是一种用于大型高速网络的新型流控机制,它主要致力于实现以下三个目标:

  • 超低延迟
  • 高带宽
  • 高稳定性

HPCC利用网络内遥测技术(INT)来获取精确的链路负载信息,并精确地控制流量。通过处理INT信息,HPCC可以快速利用空闲带宽,同时避免拥塞,并可以保持接近于零的网络内队列,实现超低延迟。

总体模型介绍

如图所示,发送方发送的每个数据包将由接收方确认。在从发送器到接收器的数据包传播过程中,沿路径的每个交换机利用其INT功能来插入一些数据,这些数据报告了包括时间戳(ts),队列长度(qLen),发送字节数(tx字节)和链路带宽容量(B)的信息。当接收方获取数据包时,它会将记录的所有元数据复制到ACK消息中发送回发送方。每次收到带有网络负载信息的ACK时,发送方决定如何调整其流速。

模型设计

调整流速的具体过程在这里进行介绍:
首先要知道,飞行包的大小直接对应了整个链路利用率。当飞行包的大小小于带宽乘RTT,也就是带宽延时积(BDP)的时候,说明信息量不能填满这样的“管道”,则链路未被充分利用,即还没有发生拥塞。

  • I<B×TI < B × TI<B×T

同理当当飞行包的大小大于带宽乘RTT的时候,总吞吐量将超过链路带宽,发生拥塞。

  • I>=B×TI >= B × TI>=B×T

所以,论文使用总的飞行包的大小来检测是否发生拥塞,并且目标是控制 I 略小于B * T。飞行包大小由队列和管道中的数据包组成,有公式:

  • totalinflightbytes=qlen+txRate×Ttotal\ in\ flight\ bytes = qlen + txRate × Ttotal in flight bytes=qlen+txRate×T

这里设计一个参数 ηηη,它是一个非常接近1的数,一般把它取值为95%。对于每一个链接 jjj,发送方都会通过参数 KjK_{j}Kj​ 来对发送窗口进行调整:

  • Kj=Ijη∗Bj∗T=UjηK_{j}=\frac{I_{j}}{η * B_{j} * T}=\frac{U_{j}}{η }Kj​=η∗Bj​∗TIj​​=ηUj​​

UjU_{j}Uj​ 进一步进行讨论,有:

  • Uj=IjBj∗T=qlen+txRate∗TBj∗T=qlenBj∗T+txRateBjU_{j}=\frac{I_{j}}{B_{j} * T}=\frac{qlen + txRate * T}{B_{j} * T } =\frac{qlen}{B_{j} * T} +\frac{txRate }{B_{j} }Uj​=Bj​∗TIj​​=Bj​∗Tqlen+txRate∗T​=Bj​∗Tqlen​+Bj​txRate​

然后再通过公式:

  • Wi=Wimaxj(Kj)+WAI=Wimaxj(Uj)/η+WAIW_{i}=\frac{W_{i}}{max_{j}(K_{j})}+W_{AI} =\frac{W_{i}}{max_{j}(U_{j})/η}+W_{AI}Wi​=maxj​(Kj​)Wi​​+WAI​=maxj​(Uj​)/ηWi​​+WAI​

最终达到调整发送窗口WWW,使得 III略小于B∗TB * TB∗T的最终目的。这里的WAIW_{AI}WAI​是一个为了确定公平性而存在的一个很小的值。WAIW_{AI}WAI​越大,总的吞吐量越大,这个公平性也会越好。但是整体队列长度也会增加。

设计难点

延迟反馈容忍

延迟反馈容忍问题是说由于阻塞的出现导致携带阻塞标记的报文无法及时到达发送端,从而让整个反馈过程没有办法及时进行。具体情况如下图所示:

论文中使用窗口(W)(W)(W)解决了这个问题,让一次发送的报文限制在一个范围,也就是窗口范围之内,这样的话不管是否发生拥塞反馈都可以及时进行。具体情况如下图所示:

过度反应

第二个问题就是过度反应的问题。如果HPCC针对每一个报文都去改变一次窗口大小,那在一个RTT之中的窗口会不断的振荡,会让传输的状态变得不够稳定。基于此,论文引入了窗口WciW_{ci}Wci​,以每一个RTT为基础更新窗口状态。只有当接收到WciW_{ci}Wci​发送到第一个数组包的ACK的时候,发送方才会以Wci=WiW_{ci} = W_{i}Wci​=Wi​来进行更新窗口。具体公式更新如下:

  • Wi=Wicmaxj(Kj)+WAIW_{i}=\frac{W_{i}^{c}}{max_{j}(K_{j})}+W_{AI}Wi​=maxj​(Kj​)Wic​​+WAI​

总结

相较于DCQCN,HPCC的效率已经高很多了。但是不太能理解为什么降速的时候可以直接降低到目标速率而在加速的时候采用了分段式增加速度的策略,明显这么做会降低效率,而且我也不认为直接提高速率会带来什么不好的影响或者是有非常难以实现的地方(应该是有的不然不用多此一举)。

我才发现MarkDown编辑器编辑公式是直接套用的Latex公式编辑器…真是用起来才发现已经忘得差不多了…

Sigcomm2019 High Precision Congestion Control(HPCC)论文阅读笔记相关推荐

  1. 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 ...

  2. 论文阅读笔记——VulDeePecker: A Deep Learning-Based System for Vulnerability Detection

    本论文相关内容 论文下载地址--Engineering Village 论文中文翻译--VulDeePecker: A Deep Learning-Based System for Vulnerabi ...

  3. [论文阅读笔记15]Recognizing Complex Entity Mentions:A Review and Future Directions

    一,题目 Recognizing Complex Entity Mentions:A Review and Future Directions 识别复杂实体mentions:回顾与未来方向 Dai X ...

  4. [论文阅读笔记36]CASREL代码运行记录

    <[论文阅读笔记33]CASREL:基于标注与bert的实体与关系抽取>https://blog.csdn.net/ld326/article/details/116465089 总的来说 ...

  5. Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记

    Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization论文阅读笔记 目录 Arbitrary Style ...

  6. Capture, Learning, and Synthesisof 3D Speaking styles论文阅读笔记 VOCA

    Capture, Learning, and Synthesisof 3D Speaking Styles论文阅读笔记 摘要 制作了一个4D面部(3D mesh 序列 + 同步语音)数据集:29分钟, ...

  7. CenterNet:Objects as Points论文阅读笔记

    CenterNet论文阅读笔记 (一)Title (二)Summary (三)Research Objective (四)Problem Statement (五)Method 5.1 Loss Fu ...

  8. 论文阅读笔记——DLT-Net: Joint Detection of Drivable Areas, Lane Lines, and Traffic Objects)

    论文阅读笔记--DLT-Net: Joint Detection of Drivable Areas, Lane Lines, and Traffic Objects 论文简介 1 引言 2 DLT- ...

  9. 解决参考图像分割中的随机性问题:MMNet: Multi-Mask Network for Referring Image Segmentation 论文阅读笔记

    解决参考图像分割中的随机性问题:MMNet: Multi-Mask Network for Referring Image Segmentation 论文阅读笔记 一.Abstract 二.引言 三. ...

  10. 全卷积(FCN)论文阅读笔记:Fully Convolutional Networks for Semantic Segmentation

    论文阅读笔记:Fully Convolutional Networks forSemantic Segmentation 这是CVPR 2015拿到best paper候选的论文. 论文下载地址:Fu ...

最新文章

  1. 宁波Uber优步司机奖励政策(1月18日~1月24日)
  2. springmvc 返回xml数据
  3. Unknown custom element: xxx
  4. 《文明之光 第二册》一一10.1 罗卡尔角的夕阳—— 葡、西的殖民时代(1)
  5. 一个 IT 青年北漂四年的感悟
  6. 【机器人】标记不友好评论,AI工作效果是人类的4.4倍
  7. SQL Server的聚集索引和非聚集索引
  8. 4.4 Spark SQL实现用户ip地址热度分析
  9. Sentinel卫星数据
  10. 【必看】线性代数保研知识点总结|2021计算机软工保研|夏令营预推免面试
  11. 无人驾驶虚拟仿真(十五)--障碍物检测与识别1
  12. Typec接口颜色代表什么?
  13. 计算机打印机删除文件,怎么取消打印机文档|打印机任务无法删除解决方法
  14. 宗教信仰与孟加拉国女性社交网络的更大规模、亲属​​密度和地理分布有关
  15. 蔡颖-《APS走向实践》书解读之三:供应、计划排程、供应链优化
  16. Python中计算两个数据点之间的欧式距离,一个点到数据集中其他点的距离之和
  17. 怎么通过网络快速赚钱,无非是这4种方式!
  18. 14个适合后台管理系统开发的前端框架,建议收藏!
  19. 解决hadoop损失文件删除后出现DEPRECATED: Use of this script to execute hdfs command is deprecated.
  20. linux中sed怎么反选,awk的批量replace功能

热门文章

  1. ROS编译ORB-SLAM2或其各种变种的算法遇到的编译问题
  2. JSP之java.lang.ClassNotFoundException
  3. HTTPS 自签名证书 实现边下边播 方案
  4. ★另人无比怀念的90年代动画片★ ‖最终整理篇‖
  5. pdo操作oracle,PDO基础操作
  6. 图片识别word c#
  7. [游戏技术] Hunter Mode 猎人模式v1.8(重制版)
  8. 求职简历中一些常见的问题
  9. 揭秘:顶级产品经理是如何写产品需求文档(PRD)的
  10. 零代码上线小布对话技能:技能平台的实践与思考