家里的网速卡了,你可以把路由器的插头拔掉,歇一会,再插上,这样网速就会好一些。 但是成千上万的人的手机连接着的大型数据中心,可不能这么干。它就相当于一个巨型的路由器,一旦流量堵住了,后果不堪设想:数据丢失、请求时间超时、工作无法完成。 网速和流量管理,不可调和 所以,数据中心保证网络速度是一等一的大事。但是,另一个方面,数据中心也需要“流量管理”,即进行流量的管控,保证用户之间平等合理的带宽分配。 比如一个终端用户在下载一个高清晰度的视频,但同时另外一个用户要下载一个相对较小的文本文件,那么数据中心就需要保证前者不会过多挤占后者的流量,保证两者都有合理的最小数据传输速率。 然而终端用户使用流量的情况一直都在发生变化,那么“流量管理”的方式也要发生改变。这就要求数据中心的“可适应性”,即数据中心的路由器都是可以进行编程的。 但是,网速和可编程是路由器不可调和的两面。MIT的电气工程与计算机科学教授Hari Balakrishnan说道: “其实可编程的路由器之前就可以实现了,不过没有厂商愿意应用,因为这会让速度降低10-100倍。” 所以为了保证速度,数据中心使用的是固定的流量管理算法,这种算法与路由器的硬件构造一一对应,这就意味着如果要使用新的算法,那么也得使用新的路由器硬件。所以,流量管理的算法更新成本很大。 全新路由器芯片 如今,MIT CSAIL实验室的研究人员们试图改变这一现状,他们提出一种新的路由器构想,在保证网速的情况下,为数据中心提供更具适应性的流量管理。 本周,他们发表了两篇论文,详细介绍了兼顾路由器“网速和可编程”的关键方法:一种全新构造的路由器芯片。这两篇论文的第一作者都是Anirudh Sivaraman,他是MIT的一位电子工程硕士生。 传统的流量管理算法是十分复杂的,试图对每一种网络流量分门别类,然后根据不同的情况确定优先级。Sivaraman使用简单的电路元件来执行基本的操作,通过不同的组和,来实现复杂的算法运行,而且这些元件在芯片上也不会占用很多空间。 比如,芯片中的一个元件让工程师追踪运行总和,同时另一个元件安排数据包调度。这可以让工程师们快速改变电路元件处理数据的方式,从而实时应对不同的网络状况。 这两篇论文里,提供了7种不同的元件组合类型,它们的复杂程度依次递增。有些流量管理只需要最简单的算法,相应地使用最简单的元件组合就行。但是就算是其中最复杂的元件组合,也只是占一个路由器芯片4%的空间。 研究人员建立了一个编译器来测试这7种元件组合类型,如果某一种算法不能编译,或者需要更多的元件数量,那么他们就会增加更多的复杂元件进去。这就像是一个调色盘,组合、添加,然后得到你想要的算法。 |