针对数据中心环境优化的通信输送的制作方法

文档序号:6359706阅读:353来源:国知局
专利名称:针对数据中心环境优化的通信输送的制作方法
技术领域
本发明涉及在计算机网络中的拥塞控制,以及更特别地,涉及用于在数据中心环境中控制拥塞的方法和设备。然而,本发明不限于在数据中心环境中使用。
背景技术
数据中心可以包括通过高速交换机互连的几百或几千个服务器。云数据中心宿有多种多样的应用,在同一网络中混合许多需要小的可预测的等待时间的工作流与其它需要大的持续的吞吐量的工作流。近些年,随着企业IT大规模地整合到数据中心枢纽(hub)中以及云计算服务提供者的出现,数据中心已经使计算发生转变。数据中心设计中一贯的主旨(theme)是使用低成本商品组件来构造高可用性的、高性能的计算和存储基础设施。特 别地,低成本的交换机是常见的,其以低于$2000的价格提供多达48个IGbps的端口。若干新近的研究提案设想使用在这样的商品交换机上构造的新颖的体系结构来创建经济的、易于管理的数据中心。这些提案是否现实在很大程度上取决于这些商品交换机能多好地应付实际数据中心应用的通信量。已经发现,诸如web搜索、零售、广告和推荐系统这样的、已驱动许多数据中心建设的软实时应用生成短流和长流的多种多样的混合。这些应用要求来自数据中心网络的如下项针对短流的低等待时间、高突发容忍度和针对长流的高利用率。头两个要求源于这些应用中的许多应用所使用的分割/聚合(partition/aggregate)工作流模式(pattern)。针对最终结果的软实时截止时间转换为针对工作流中的一个个任务的等待时间目标。这些等待时间目标从大约IOms变化到大约100ms,并且在它们的截止时间前未完成的任务被取消,由此不利地影响了最终的结果。因此,针对低等待 时间的应用要求直接地影响到返回的结果的质量并因此影响到了收益。降低网络等待时间允许应用开发者将更多的周期移转给用于改进相关性和最终用户体验的算法。第三个要求(针对大流的高利用率)源于对连续不断地更新这些应用的内部数据结构的需要,因为该数据的新鲜度也影响到结果的质量。因此,针对更新数据的长流的高吞吐量与低等待时间和突发容忍度一样是必需的。在这种环境中,今天的技术发展水平的TCP协议还达不到要求。因此,需要改进的方法和设备用于在诸如数据中心这样的计算机网络中进行有效的分组输送。

发明内容
本发明提供了用于拥塞控制的方法和设备,其通过浅缓冲的(shallow-buffered)交换机实现了高突发容忍度、低等待时间和高吞吐量。为了满足短流和长流的多种多样的混合的要求,交换机缓冲器被维持以小的队列占用,与此同时针对长流维持高的吞吐量。这些目标主要通过基于拥塞的程度对拥塞做出反应而实现。拥塞控制算法在交换机上使用标记方案,该标记方案是只要缓冲器占用超过某个小的固定的门限,就在传送的数据分组中设置标记比特。发送器通过按取决于被标记分组的分率(fraction)的因子(factor)来降低传送数据分组的速率而进行响应。该分率越大,传输速率的减少越大。可以通过调整传输窗口的长度来控制传输速率。发送器从一组被传送分组的每个分组中的单比特的标记信息中导出多比特反馈。按照本发明的第一方面,提供了一种用于控制在第一计算设备和第二计算设备间的网络连接上的拥塞的方法。所述方法包括在网络连接上,将一组数据分组从第一计算设备传送到第二计算设备;识别该组数据分组中的在该网络连接上经历了拥塞的每个数据分组;由第二计算设备将代表该组数据分组中被识别为经历过拥塞的数据分组的数量的比特序列发送到第一计算设备;以及基于发送到第一计算设备的所述比特序列,调整在该网络连接上传送数据分组的速率。按照本发明的第二方面,提供了一种用于控制在第一计算设备和第二计算设备间的网络连接上的拥塞的方法。该方法包括在网络连接上,由第一计算设备将一组数据分组传送到第二计算设备;如果该网络连接上的设备中的队列大小超过预定的单值门限K,则 标记该组被传送的数据分组中的数据分组;在第一计算设备上接收识别该组被传送的数据分组中的被标记数据分组的信息;在第一计算设备上基于该组数据分组中被识别为已标记的数据分组来估计网络连接上的拥塞的量度(measure);以及由第一计算设备基于估计的拥塞的量度来调整在该网络连接上传送数据分组的速率。按照本发明的第三方面,提供了一种用于控制在第一计算设备和第二计算设备间的网络连接上的拥塞的方法。该方法包括在网络连接上,将一组数据分组从第一计算设备传送到第二计算设备;如果该网络连接上的设备中的队列大小超过预定的单值门限K,则标记该组被传送的数据分组中的数据分组;由第二计算设备将代表该组数据分组中被标记的数据分组的数量的比特序列发送到第一计算设备;通过基于所述比特序列确定该组被传送的数据分组中被标记数据分组的分率,来估计网络连接上的拥塞的量度;基于该组被传送的数据分组中被标记数据分组的分率来调整在该网络连接上传送数据分组的速率;以及针对每组被传送的数据分组来更新所估计的该网络连接上的拥塞的量度。


在图中
图I是图示分割/聚合工作流模式的示意 图2是图示在连接到聚合器的交换机上的incast (入播)拥塞的框 图3是依照本发明的实施例的、包括向接收器传送数据分组的发送器的计算机网络的框 图4图示了依照本发明的实施例的拥塞控制算法;
图5图示了由依照本发明的实施例的交换机进行的数据分组的标记;
图6是图示依照本发明的实施例的拥塞控制算法的操作的流程 图7是在延迟确认的情形下控制ACK分组中的拥塞比特的设置的状态 图8是使用依照本发明的实施例的拥塞控制算法和常规的TCP的、在交换机上作为时间的函数的即时队列长度的标绘 图9是图示依照本发明的实施例的拥塞控制算法的操作和常规TCP的操作的例子的表;和图10是一般性地图示在其中可以实施本发明的计算机系统的例子的框图。
具体实施例方式图I中所示的分割/聚合工作流模式是在数据中心中执行的许多大型web应用的基础。所述分割/聚合工作流模式包括最高级别聚合器100、连接到最高级别聚合器100的较低级别聚合器110和连接到各自的较低级别聚合器110的工作者(worker) 120。聚合器100和110、以及工作者120可各自被实施为 服务器。工作流模式可以利用任意数量的级别。由最高级别聚合器100接收请求。来自应用的较高层的请求被分成片断,并被分派给较低级别中的工作者。工作者的响应被聚合以产生结果。Web搜索、社交网络内容组成和广告选择可以是基于这种工作流模式的。对于诸如这些的交互式的软实时应用来说,等待时间是关键的度量(metric ),总的可允许的等待时间例如由顾客影响研究来确定。在减去典型的因特网和再现延迟后,应用的后端部分典型地被分配在230-300 ms之间。许多应用具有多层分割/聚合工作流模式,在一层上的滞后延迟了其它层的启动。此外,对请求的响应可能要求迭代地调用该工作流模式,使某个聚合器对下面的工作者做出一系列请求以便准备响应。例如,在web搜索中,可以发送查询到许多聚合器和工作者,它们中的每个负责索引的不同部分。基于答复,聚合器可以提炼查询并发送所提炼的查询来改进结果的相关性。分割/聚合工作流的滞后实例因此会合起来危及查询的总的等待时间。为了防止总的等待时间被违反,工作者节点典型地被分派严格的截止时间,通常大约为10-100 ms。图I中显示了用于完成工作的截止时间的例子。当节点错过它的截止时间时,计算在没有那个响应的情况下继续进行,降低了结果的质量。本发明是基于对在数据中心中观察到的性能损害的理解。数据中心可以包括服务器的多个机架(rack)。每个机架可以包括连接到交换机的多个服务器,例如44个服务器。交换机可以是浅缓冲的、共享存储器的交换机,每一个交换机具有在以IGbps操作的48个端口间和以IOGbps操作的两个端口间共享的4MB的缓冲器。交换机是共享存储器的交换机,其通过使用所有交换机端口可用的逻辑上公用的分组缓冲器来利用统计复用增益。到达接口的分组被存储在由所有接口共享的高速的、有多端口的存储器中。来自于共享池中的存储器被存储器管理单元(MMU)动态地分配给分组。MMU试图给予每个接口跟它所需要的一样多的存储器,与此同时通过动态地调整任何一个接口可以得到的存储器的最大量来防止不公平。如果对于某个外出的接口,分组必须被排队,但是该接口已经达到它的最大的存储器分配或者共享的存储器池已耗尽,则该分组被丢弃。大的、有多端口的存储器是昂贵的,所以大部分的低成本交换机是浅缓冲的,其中分组缓冲器是最稀缺的资源。如果许多数据流在短的时间段内会聚于交换机的同一接口上,则分组可能耗尽交换机存储器或用于该接口的最大被允许的缓冲器,导致某些流的分组丢失。即使流较小,这也可能发生。导致分组丢失的通信量模式自然是由使用分割/聚合工作流模式而引发的,因为针对数据的请求使工作者的响应同步并且在连接到聚合器的交换机端口的队列上引起了 incast。图2中所示的网络200的示了 incast拥塞。客户机210经由交换机230向N个服务器220发送请求。网络200可以在图I中图示的分割/聚合工作流模型上操作,其中客户机210对应于聚合器100而服务器220对应于较低级别的聚合器110。服务器们220可以同时发送响应,导致在交换机230上发生incast拥塞。类似incast的问题使性能降级,以及更重要的是使用户体验降级。经历incast拥塞的响应很可能错过聚合器截止时间并且不被计入最后的结果。长时间的TCP流导致瓶颈队列的长度增长直到分组被丢弃。当长流和短流经过同一队列时,发生两种损害。首先,在短流上的分组丢失可导致如上所述的incast问题。其次,有队列聚集(buildup)损害。即便在没有分组丢失时,短流也经历了增加的等待时间,因为在队列中它们处在大流的分组之后。每个工作者都在既操控队列通信量又操控后台通信量,所以这个通信量模式频繁地发生。因此,一个问题是由其它流(后台通信量)导致的队列的占用,当长流和短流刚好重合时发生丢失。因为等待时间是由排 队导致的,所以解决方案是降低队列的大小。假定在数据中心中有长流和短流的混合,则常见的是,在一个端口上的短流受到在许多其它端口的任意一个上的活动的影响。出人意料的是,在该通信量模式中短流的丢失率取决于经过其它端口的长流的数量。解释是在不同端口上的活动通过共享的存储器池被耦联。长的TCP流在它们的各自的接口上构造队列。因为缓冲器空间是共享资源,所以队列构造降低了可用来吸收来自分割/聚合通信量的通信量突发的缓冲器空间的量。这种损害称作“缓冲器压力”。其结果是分组丢失和超时,如在incast中一样,但没有要求同步的流。称为DCTCP算法的拥塞控制算法解决了以上所述的性能损害。DCTCP算法的目标是通过商品(commodity)浅缓冲交换机实现高突发容忍度、低等待时间和高吞吐量。为此目的,DCTCP被设计成以小的队列占用来操作而没有吞吐量的损失。图3中显示了在DCTCP算法的操作中牵涉到的网络组件的简化框图。发送器300在包括交换机320和322的网络连接312上将数据分组302传送到接收器310。交换机320包括缓冲器330,而交换机322包括缓冲器332。缓冲器330和332的每一个可以具有等待传输的数据分组的队列。交换机320和322可以分别在一个或多个接口 334和336上接收另外的数据流。当缓冲器332中的队列大小超过门限时,数据分组306可以由交换机322进行标记,正如以下描述的。标记数据分组306的示例性实现是设置显式拥塞通知码点CE,如在 IETF RFC 3168 “The Addition of Explicit Congestion Notification(ECN) to IP”中定义的。接收器310可以通过向发送器300发送ACK分组304来确认数据分组302。每个ACK分组可以让ECN-Echo (ECN回送)标志被设置来指示相应的接收到的分组经历了拥塞。如图3中所示,发送器300可以包括希望向接收器310传送数据分组的应用340和用于按如下所述控制数据分组的传输速率的传输速率控制器342。为了控制拥塞,接收器310包括ECN回送器(ECN-Echoer),以控制ACK分组中的ECN-Echo标志的设置,正如以下所述的。除了或者替换ECN回送器350,接收器310可以包括如下所述的拥塞推断器352和拥塞标记器354。在数据中心的语境中,发送器300和接收器310可以是服务器,使得发送器300是第一计算设备,而接收器310是第二计算设备。应当理解,图3仅图示了多个连接中的一个连接以及数据中心环境中的多个服务器中的两个服务器。DCTCP算法通过基于拥塞的程度对拥塞做出反应而实现高突发容忍度、低等待时间和高吞吐量的目标。该算法在交换机上使用标记方案,该标记方案是只要缓冲器占用超过固定的小门限就置位数据分组的经历了拥塞(CE)的码点。发送器通过以取决于被标记分组的分率的因子来降低数据传输速率而做出反应。被标记分组的分率越大,传输速率减少得越大。在一些实施例中,传输速率的减少可以和被标记分组的分率成比例。该算法从一组数据分组中的每个数据分组的被标记或未标记的状态中所包含的单比特导出多比特反馈。该组数据分组可以是在传输窗口期间传送的数据分组,该窗口也被称为拥塞窗口 cwnd。因为DCTCP算法要求网络仅提供单比特反馈,所以可以利用在现代TCP栈和交换机中已经可用的许多功能性。在缺乏大规模统计复用时,特别强烈地需要基于拥塞的程度做出反应。标准TCP在它接收到ECN通知时,将它的窗口大小降低到二分之一,即TCP-ECN针对每个拥塞窗口的单个被标记的分组做出反应。实际上,TCP是对拥塞的出现,而不是对它的程度做出反应。将窗口减半导致了到链路的输入速率和可用容量间的大的失配。在其中仅有较少数量的流共享缓冲器的高速数据中心环境中,这导致了缓冲器下溢以及吞吐量的损失。DCTCP算法具有三个主要的部分,如图4所概括的。第一部分400是在交换机320、 322上标记数据分组。该算法采用主动队列管理方案,如图5所示。标记门限K是唯一的参数。如由标记特性500所指示的,如果分组到达后的队列占用大于门限K,则例如用CE码点来标记到达的分组。否则,不标记到达的分组。DCTCP标记方案由最小化队列聚集的需要来推动。当感测到队列过冲(overshoot)时,DCTCP算法积极地标记分组,因此允许发送器被尽可能快地通知队列过冲。DCTCP算法的第二部分410是在接收器310上的ECN-Echo。DCTCP接收器与常规TCP接收器的区别在于将CE码点中的信息传达回发送器的方式。TCP接收器在一系列ACK分组中置位ECN-Echo标志,直到它接收到来自发送器的已经接收到拥塞通知的确认。如在RFC3168中所描述的,TCP接收器的显式目标是在每个往返时间(RTT)通知TCP发送器至多一个拥塞信号。然而,DCTCP接收器将被标记分组的准确序列精确地传达回发送器。实现这一点的一种方式是确认每个分组,当且仅当该分组具有被标记的CE码点时,置位ECN-Echo
O然而,因为各种各样的原因,延迟的确认是很重要的,所述原因包括降低发送器上的负荷。延迟的确认对每m个连续接收的分组使用一个累积的ACK分组。为了使用延迟的确认,DCTCP接收器使用图7中所示的两状态状态机来确定是否发送具有恰当的ECN-Echo比特的ACK分组。所述状态对应于上一个接收到的分组是否用CE码点进行了标记。因此,常规的延迟的ACK通过以下方式修改,即每次当接收到的分组的标记比特改变状态时发送ACK分组。因为发送器知道每个ACK分组覆盖多少被传送的分组,所以它可以准确地重新构建由接收器接收的被标记的分组。DCTCP算法的第三部分420是发送器300上的控制器。发送器维持对被标记分组的分率的被称为O的连续的(running)估计,其如下地针对每个数据窗口(粗略地为一个RTT)更新一次
a — (I . g) X a+ g X F(I)
其中,F是在上一个数据窗口中被标记的分组的分率,以及g是相对于先前的估计 给予新样本的权重,其值在0-1的范围内。
可能要注意到β是实数,其值为O到I之间。假定当队列长度大于K时,发送器对于每个分组均接收到标记,而当队列长度小于K时发送器没有接收到任何标记,等式(I)意味着a是对队列大于K的概率的估计。因此, 值接近于O指示低的拥塞水平,而α值接近于I指示高的拥塞水平。如上所述,就其对接收到具有被置位的ECN-Echo标记的ACK分组的反应而论,DCTCP发送器不同于TCP发送器。TCP的其他特征——诸如缓慢启动、拥塞避免中的加性增大以及分组丢失的恢复一保持不变。虽然TCP响应于被标记的ACK分组来将它的窗口大小缩减一半,但DCTCP算法却如下地使用a来减小它的窗口 cwnd
权利要求
1.一种用于控制在第一计算设备和第二计算设备间的网络连接上的拥塞的方法,包括: 在所述网络连接上,将一组数据分组从第一计算设备传送到第二计算设备; 识别该组数据分组中的在该网络连接上经历了拥塞的每个数据分组; 由第二计算设备将代表该组数据分组中被识别为经历过拥塞的数据分组的数量的比特序列发送到第一计算设备;和 基于发送到第一计算设备的所述比特序列,调整在所述网络连接上传送数据分组的速率。
2.权利要求I中定义的方法,其中发送包括每当在接收到被识别为没有经历拥塞的分组之后第二计算接收到被识别为经历过拥塞的分组时发送分组。
3.权利要求I中定义的方法,其中识别该组数据分组中的经历了拥塞的每个数据分组包括第二计算设备估计在第二计算设备前的最后一跳网络设备上的队列长度,以及当一段时间内所述队列长度大于门限值时将数据分组识别为经历过拥塞。
4.权利要求3中定义的方法,其中估计队列长度包括确定一段时间内到第二计算设备的链路的利用率,以及当所确定的利用率高于门限达一段时间时将数据分组识别为经历过拥塞。
5.权利要求I中定义的方法,其中识别包括如果网络连接上设备中的队列大小超过预定的单值门限K,则标记被传送的数据分组,并且通知第一计算设备每个被标记的数据分组。
6.权利要求5中定义的方法,还包括通过基于所述比特序列确定在该组被传送的数据分组中被识别为经历过拥塞的数据分组的分率来估计所述网络连接上拥塞的量度,以及其中调整包括基于在该组被传送的数据分组中被标记的数据分组的分率来调整传送分组的速率。
7.权利要求6中定义的方法,其中调整包括与在该组被传送的数据分组中被标记的数据分组的分率成比例地来调整传送分组的速率。
8.权利要求6中定义的方法,其中估计包括每一个往返时间更新该拥塞的量度一次。
9.权利要求6中定义的方法,其中调整包括将数据分组传输窗口的长度按(1-α/2 )的因子来降低,其中是被标记数据分组的分率的经平滑的估计。
10.权利要求6中定义的方法,其中调整包括第二计算设备通过调整接收器通告的窗口的大小来控制它接收的数据的量。
11.权利要求6中定义的方法,其中估计包括针对每个数据分组传输窗口来更新在数据分组传输窗口中被标记分组的估计的分率。
12.权利要求6中定义的方法,其中估计包括按照下式来更新估计的拥塞的量度oti^s = (1- ) 其中α是对被标记数据分组的分家的经平滑的估计,F是在上一组数据分组中的被标记数据分组的分率,以及g是相对于估计时的过去的样本而赋予新样本的权重。
13.权利要求5中定义的方法,还包括把门限K确定为支持网络连接的完全利用所要求的缓冲器空间的量加上容纳第一计算设备发送的最大突发大小所要求的缓冲器空间的量。
14.权利要求13定义的方法,其中支持网络连接的完全利用所要求的缓冲器空间的量被确定为C · RTT/7,其中C是以分组/秒计的网络连接的容量,RTT是以秒计的往返时间,以及门限K是以分组计。
15.—种非瞬时性的计算机可读存储介质,其是用计算机可读指令编码的,当所述计算机可读指令被计算设备执行时,完成如权利要求I定义的方法。
全文摘要
用于计算机网络中拥塞控制的方法和设备通过浅缓冲的交换机来实现高突发容忍度、低等待时间和高吞吐量。一种用于控制拥塞的方法包括在网络连接上,将一组数据分组从第一计算设备传送到第二计算设备;识别该组数据分组中的在该网络连接上经历了拥塞的每个数据分组;由第二计算设备将代表该组数据分组中被识别为经历过拥塞的数据分组的数量的比特序列发送到第一计算设备;以及基于发送到第一计算设备的所述比特序列,调整在所述网络连接上传送数据分组的速率。
文档编号G06F15/16GK102763385SQ201180011082
公开日2012年10月31日 申请日期2011年2月21日 优先权日2010年2月26日
发明者A.G.格林伯格, B.普拉巴卡, D.A.马尔茨, J.D.帕赫耶, M.A.阿塔, M.斯里哈兰, P.K.帕特尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1