思维之海

——在云端,寻找我的星匙。

阅《TIMELY: RTT-based Congestion Control for the Datacenter》

《TIMELY: RTT-based Congestion Control for the Datacenter》发表于 SIGMOD 2015。SIGMOD会议主要包含SIGMOD/PODS两个子部分,它覆盖了数据库、信息系统方面的前沿研究问题。

数据传输中心总是希望达到一种既低延迟,又有高吞吐量(high throughput)的性能效果。这篇论文尝试利用RTT的实时测量(利用NIC硬件)结果——一个时间序列,这样的时间序列显然存在一个差分,从而获得一个RTT在实时时间线上的梯度信息。

TIMELYTransport Informed by MEasurement of LatencY)接收了RTT的梯度信息,并根据RTT梯度来调整传输速率,从而保证了高带宽和低(数据包)延迟的共存。TIMELY成为了第一个使用延迟信息来在数据中心进行拥塞控制的协议,尽管它的RTT信号(由于NIC offload)比以前的基于延迟的方案少了一个数量级(in the presence of infrequent RTT signals and NIC offload)。(Veges表示受到了冒犯QAQ

本篇论文源于高等计算机网络课程的阅读任务,领域为“数据中心拥塞控制 ”。

References

TIMELY: RTT-based Congestion Control for the Datacenter

数据库顶级会议——SIGMOD介绍

SIGMOD是数据库顶级会议,和另外两大数据库会议VLDB、ICDE构成了数据库领域的三个顶级会议。相对而言,SIGMOD比另外两个会议的含金量更高,被录取的难度更大。

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

Timely SIGCOMM 2015

基本概念

RTT (Round-trip Time) 往返时延

TCP对往返时延RTT的定义?

RTT指的是数据传输的往返时延,即,在信道上传输一个来回所需要的时间。

不包含发送数据的耗时,只计算数据在线路上传播的耗时。

注:RTT需要考虑在线路上经过中间节点可能产生的处理和排队时延

NIC 网卡

Nic - 百度百科

网络接口控制器(英语:network interface controller,NIC),又称网络接口控制器网络适配器(network adapter),网卡(network interface card),或局域网接收器(LAN adapter),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。

由上可知,NIC就是俗称的网卡,因此NIC硬件可以监测和计算RTT也就不足为奇了。

OS-bypass

https://blogs.cisco.com/performance/mpi-newbie-what-is-operating-system-bypass

These software stacks live in userspace middleware libraries (such as MPI), and can therefore expose extremely high levels of network I/O performance to HPC applications. Since these libraries communicate directly with NIC hardware, they effectively bring mini specialized “device drivers” up into userspace.

简单来说,OS-bypass 就是指硬件的处理过程绕过操作系统。这样,在一些specific的场景下,可以提高模型的性能(一般来说,由操作系统捕获一个请求,进入内核态,再分发到对应的设备,这样的过程是很慢的)。

类似的还有DMA这种I/O设备,通过在设备上直接进行批量的数据处理,减少了对CPU的访问,从而提升性能。

NIC-offload

网卡 offload 简介

现在,越来越多的网卡设备支持 offload 特性,来提升网络收/发性能。
offload 是将本来该操作系统进行的一些数据包处理(如分片、重组等)放到网卡硬件中去做, 降低系统 CPU 消耗的同时,提高处理的性能。

可以看到,NIC 的 offload 其实就是做了 OS-bypass。

论文简介

Background

数据中心压力很大,在高并发的密集需求处理中,还要保证低响应时间(100 ms)。这就给数据中心提出了高带宽 high bandwidth (Gbps) 和低时延 low latency (msec) 的要求。

at odds:有争议

以前已经存在各种方法:基于丢包率的简单算法,基于抽象的网络流分析的高级算法……这篇论文则寻找了一种较为简单的机制,实现对数据中心的调度,并且是 immediately deployable design。


研究的最大难题是寻找一个合适的拥塞信号(congestion signal)

一个理想的拥塞信号应该拥有以下的性质:

  • It would be fine-grained(细粒度) and timely to quickly inform senders about the extent of congestion.
  • It would be discriminative enough to work in complex environments with multiple traffic classes.
  • It would be easy to deploy.

神奇的是,作者找到了一个已经存在很久了的信号——可以满足上面的所有性质。

  • delay in the form of RTT measurements

RTT is a fine-grained measure of congestion that comes with every acknowledgment. It effectively supports multiple traffic classes by providing an inflated measure for lower-priority transfers that wait behind higher priority ones. Further, it requires no support from network switches.


实际上,以前的研究人员之所以不用delay measurement,是因为数据中心的RTT非常难以精确测量(到microsecond granularity 微秒的尺度)。

最新的NIC硬件方面的突破,使得这样的精确测量成为可能




论文主要工作

  • 校验RTT信号与网络排队之间的强相关性
    • We experimentally demonstrate how multi-bit RTT signals measured with NIC hardware are strongly correlated with network queueing.
  • 设计TIMELY协议
    • We present Transport Informed by MEasurement of LatencY (TIMELY): an RTT-based congestion control scheme.
  • 测试和验证TIMELY的实际效能
    • We evaluate TIMELY with an OS-bypass messaging implementation using hundreds of machines on a Clos network topology.

RTT的特点

  • RTT directly reflects latency.
    • RTT直接测量:end-to-end latency inflated by network queueing
    • ECN这样的从queue occupancy中获得的参数,反映延迟的能力很弱。
  • RTT can be measured accurately in practice.
    • NIC提供了硬件级别的支持
  • RTT is a rapid, multi-bit signal.
    • 提供了更丰富的信息
  • Limitations of RTTs.
    • RTT对双向流量的管控,可能导致ACKs的传播(增加ACK的优先级)
    • The other classic shortcoming of RTTs is that changing network paths have disparate delays. It is less of a problem in datacenters as all paths have small propagation delays.
      • 网络结构的变动会让RTT明显测不准

TIMELY框架

TIMELY分为三个部分:

  • (数据采集)RTT measurement to monitor the network for congestion
  • (数据转换)a computation engine that converts RTT signals into target sending rates
  • (策略制定)a control engine that inserts delays between segments to achieve the target rate

TIMELY拥塞控制

具体细节和实验,暂时就不看了。

展望

我们已经从论文中了解到,RTT这个idea并不算新,作者所做的工作无非是因为现代NIC硬件技术的提升所带来的对RTT精确测量的可能。这却是很像神经网络,感知机在上个世纪中叶就出现了,但是由此变化而来的深度学习却足足等了五六十年才借助计算机算力的大幅提升而成为现实。

所以,这篇论文的创新点其实是不足的。我想之所以成为一篇好论文,主要原因还是因为他们在整个设计和实验上投入的精力。他们确实调研了许多东西,也确实做出了很好的结果。但从我的观点来看,工程 > 科研。

我觉得,需要更加认真地思考RTT在整个拥塞控制中的作用——比如,是否应该只依赖RTT?RTT和其它指标的耦合程度和区别又是什么?我们能不能将整个网络的信息积聚起来,做一些更有意义的统计?而不是说,“嘿,我们找到了一个度量,它的效果还不错”,这样的科研显然是没有什么借鉴价值的。

但是,这样重复利用现有机制的方法,也许还不错。对旧的理论也不必全然抛弃。

当我们认真审视的时候,也许会有不一样的发现。