Data Center TCP (DCTCP)学习笔记

Data Center TCP 'DCTCP'学习笔记

  • 研究背景
  • 主要贡献
  • 方案内容
  • 方案效果
  • 思考
  • 参考文献

微软研究院与Standford U合作开发,发表在2010年 ACM SIGCOMM


研究背景

① 企业IT大规模集成到数据中心;
② 云计算服务提供商(例如Amazon,Microsoft和Google)的出现。


主要贡献

????作者提出了一种用于数据中心网络的类似TCP的协议(DCTCP),扩展TCP的拥塞控制算法。在交换机中使用显式拥塞通知(ECN)来检测并响应网络拥塞,这由交换机的ECN标记序列表示。
????指出数据中心设计的新目标:使用低成本组件构建高可用性、高性能的计算和存储基础架构。专注于软实时应用产生短流(short flows)和长流(long flows)的各种组合,保障短流的低延迟,高突发容忍性和长流的高利用率。


方案内容

DCTCP算法包含三个主要组成部分:
????交换机上的简单标记:一种简单的主动队列管理方案。只有一个参数,标记阈值K。如果到达队列的队列占用大于K,则使用CE代码点标记到达的数据包。否则,它不会被标记。该方案可以适用于已有的方案RED标记方案。
????接收方的ECN-Echo:DCTCP接收方和TCP接收方之间的唯一区别是CE代码点中的信息传递回发送方的方式。DCTCP接收方尝试将标记的数据包的确切顺序传达回发送者。
????;发送方的控制器:发送方维护数据包标记部分的估计值,该值针对每个数据窗口(大约一个RTT)更新一次。DCTCP发送方和TCP发送方之间的唯一区别在于,它们各自对接收到带有ECN-Echo标志设置的ACK的反应。DCTCP使用:

在这里插入图片描述


方案效果

????① 提供比TCP相同或更好的吞吐量,同时使用少90%的路由器缓冲区空间;
????② 为短流量提供高突发容限和低延迟;
????③ 前端流量的10倍增长不会导致超时,从而在很大程度上消除了内播的问题。


思考

(????)? 为什么提出DCTCP
????通过实验观测:在数据中心中99.91%的流量都是TCP流量。这些流量包括突发查询流量(2KB到20KB, query traffic),延迟敏感短流(100KB到1MB,delay sensitive short flows),吞吐量敏感的长流(1MB到100MB,throughput-sensitive large flows)。
????查询流量在存储网络中常遭受内播损害。但实验也表现出与内播无关的新问题。对查询和延迟敏感的短消息会因长时间流而消耗交换机中的部分或全部可用缓冲区而导致较长的延迟。
????设计DCTCP的目的:满足短流和长流的多样化组合要求;保证交换缓冲区低占用率较;保证长流的高吞吐量。

(????)? 什么是分区/聚合设计模式
????分区/聚合设计模式(Partition/Aggregate design pattern)是许多大规模Web应用程序的基础。来自应用程序较高层的请求被分解为多个部分,并提供给较低层的工作人员。这些工人的反应汇总起来就产生了结果。
????举一个例子,客户向老板提出一个任务,并嘱咐他需要在明早九点之前完成,如下图所示。

???对老板来说,他肯定不会自己去做这个任务,所以他把任务分配给了手下的管理员。同时,为了保证在明早九点之前把任务完整交给客户,他需要把截止时间提前到今晚十二点。
???当管理员接收到来自老板的命令后,他们又把任务下发给手下的员工。同样的,为了保证在今晚十二点之前成功完成任务。他们需要员工能在今晚六点之前完成。
???对员工来讲,他们是任务的直接完成者。他们要做的就是在六点之前做完任务。

在这里插入图片描述????从这个例子中,我们可以发现分区/聚合设计模式具有一些特点:常用于软实时应用程序;可接受的延迟由包括客户影响研究在内的因素决定;内层的延迟会延误其他层的启动;为了防止违反所有SLA,为工作节点分配了紧迫的 期限(10-100ms)。

(????)? 什么是Incast问题
????Incast是一种多对一的通信模式。
????在这种模式下,多个发送者同时向单个接受者发送数据块,而且任何一个发送者都将不发送随后的数据块直到所有的发送者都完成了当前的数据块传送,同时发送足够多的数据,很容易造成接收方以太网交换机的缓冲过载,使得接收方无法正常接收数据。如下图所示。
图2 TCP Incast的模型
????Incast问题与以太网交换机的有限缓冲区大小,TCP丢失恢复机制和数据中心应用的业务模式都有关系。当来自多个服务器的并发流耗尽交换机的缓冲区时,将导致分组丢失或 TCP超时,TCP超时使得网络上微秒级的往返延时变成几百毫秒级的延迟,因此接收方应用层所能够感知的吞吐量要比链路容量低几个数量级,即TCP吞吐量崩溃了。这种Incast问题在数据中心的多个应用和业务中都可能产生,典型例子有基于集群的存储系统,Web搜索,MapReduce批处理工作等。


参考文献

[1] Mohammad Alizadeh, Albert G. Greenberg, David A. Maltz. Data center TCP (DCTCP)[C]// Acm Sigcomm Conference. ACM, 2010.