您的位置:首页 > 业界新闻

构建一个防崩溃的互联网,转自译言网

2013-03-12 11:39 609 查看


构建一个防崩溃的互联网

译者:sciurid

作者2009年6月29日 Bennett Daviss

原文地址:http://www.yeeyan.org/articles/view/93175/48733/dz

2001年7月18日,一列从巴尔的摩市中心地下穿过的货运列车出轨,导致20000升氢氯酸泄露。这些化学品导致的火灾破坏了美国8个主要的互联网提供商的光缆。随后,负责美国互联网基础设施的关键部分运营的Verizon通讯公司与两座运营建筑和其他运营商网络之间的连接中断。在此后的几个小时内,美国全国的互联网通讯慢的像爬一样。一名维修承包商告诉记者,“那条隧道就好像光缆世界中的I-95高速公路(美国东海岸主要的高速公路)一样,是一个千载难逢的脆弱点。”

八年以来发生的事情证明并非如此。一系列灾难性的故障似乎说明除了意外事故、地震以及轮船错误的抛锚地点以外,互联网比人们想象的更加脆弱。在世界上的数十个甚至是数以百计的地点,网络似乎是被一条线挂着那样的脆弱。

如今,一次严重的故障有造成比2001年更大的破坏的潜力。现在很多互联网的基础设施已经有数十年的历史了。它们非常需要升级换代,当然我们很清楚不能把网络的各个部分拆开然后用碎片重建它们,而且政府和运营企业也不太可能仅仅为了确保能对付临时的问题而花费巨大来铺设新的额外连接。那么,如何使网络更加有弹性(自我恢复能力)呢?

Nick McKeown,来自加利福尼亚州斯坦福大学的计算机科学家,认为他找到了答案。他相信一个更好的网络,关键在于一个平淡无奇称为路由器的黑匣子。

路由器是互联网交通的控制器。数以百万计的路由器正在工作,连接起组成互联网的上千个网络。它们可以为网络服务商转发大量的通讯流,也可以仅仅提供少数计算机之间的连接。它们检查数据包的地址,将它们送往正确的目的地,并且规定他们沿着怎样的物理路径到达。当连接中断时,它们在帮助数据改道绕过断点上起到决定性的作用。

但是,目前路由器并不是一个解决方案,而是一个问题。首先,寻找一个绕过阻塞的路径可能会很慢,经常耗时很多分钟。在这段时间里,网络传输拥挤成为如此严重的堵塞使得很多数据直接就被丢弃了。

虽然有大量的潜在解决方案,另一个严重的症结是没有地方去测试它们。任何对路由器软件的更新都应该在一个大型的网络上进行测试——在一个和互联网一样复杂但是物理上完全隔绝的网络上。目前这样的东西还不存在。

即使你能够测试它们,McKeown说,实际安装这些路由器软件也是相当困难的。每一个路由器都已经按照10到15年以前制定的国际标准进行了预编程,这些国际标准主要是由路由器制造商们自己制定的。它们包含有专有的电路,并且软件控制数据包路由的方式是按照固定的模式操作的,能够改变的方法极少。

现在,McKneown,以及他在斯坦福的同事Guru Parulkar,正在开发能够一举解决所有这些问题的方法:一个可以在路由器运行中就修改它的控制软件的方式,以及提供一个安全地进行测试的完美环境。

更流畅的网上冲浪

这个被命名为OpenFlow的系统已经在斯坦福大学的校园网上运行,并且第一个商业化的产品将在今年内上市。OpenFlow并不能解决由于连接瓶颈或者反常的意外故障,但是如果像McKneown所希望的那样,应用这个技术将使得互联网可以适应不断变化的负载,动态调整路由以适应网络通讯高峰以及为每一位网上冲浪者一个更流畅的体验,不管是发生了地震、恐怖袭击还是轮船抛锚(损坏光缆)等等。“我们正在试图使网络能够持续地进化和改进。”McKneown说。

任何能让互联网更加有弹性的方法都是一件好事情,不仅是为了数以百万计普通人——他们通过上网来预订度假产品或者使用twitter联络朋友。网络中断的经济影响也是非常大的:现在每年的网上电子商务总值已经有7万亿美元,大约占全球GDP的12%。苏黎世的瑞士联邦技术学院的研究人员在2005年的一项研究中计算出如果切断所有的互联网连接,每周瑞士将损失超过3十亿美元,大约占该国GDP的1%。而且预计在2010年电子商务总值将占全球GDP的18%,网络故障所造成的影响将持续增长。

除此以外,基础设施中的关键部分呢,例如电力和自来水供应,现在大都依赖于互联网进行信息交换和远程诊断。世界范围内的银行和证券交易也都使用互联网和他们自己的网络进行财务数据的交换。交通系统也是,例如德国的铁路系统,依赖于互联网来连接售票和咨询系统。

实际上,在互联网的通讯压力持续增加的情况下,网络中断并没有引发更多的问题这个事实看起来非常的不可思议。这主要是由于互联网是“尺度无关”的网络,换一种说法就是说虽然它依赖于一些高度连接的节点,但是其中大部分的连接数量都很少。这就意味着在一个地区的中断对其他地方的影响很有限,而且调整通讯使得网络能够继续工作并不需要做太多的事情。

路由器在这个过程中起关键的作用。通常路由器检查它接收到的数据包的地址,然后根据存储在一张表格中的预定义的规则将它发送出去。两组通向同一个地址的数据一般会通过同一条路径传输。如果这条路径因为各种原因而不能使用了,路由器将会检查和询问它的邻接路由器,查找还可以使用的路径,然后计算出重新定向数据的最佳方式。

路由器运行一个复杂的算法以完成此事,但是可能需要很长时间(很多分钟)才能完成。由于测试和更新软件的过程中存在的问题,技术改进只能以极度缓慢的速度在进行。在位于西雅图的华盛顿大学的Tom Anderson说,任何的改动都必须非常的小心仔细。“你必须确保不会因为你所做的事情而制造出新问题来。”

2月份的时候这个问题凸显了出来,当时在捷克共和国的一个路由器的软件升级中的小错误蔓延到了整个互联网,导致整个互联网的网络交通在一个小时的时间里内慢的像爬一样。这绝对不会是第一次导致了灾难性后果的类似错误,因为没有什么大尺度的实验环境或者“虚拟网络”用来进行测试。

2005年,美国自然科学基金会(NSF)请求一组研究人员为这一问题寻找一个解决方案。他们的解决方案非常大胆:建造一个巨大的和国际互联网有着一样的复杂度的新的国家网络,使得新的想法可以在应用到实际的互联网之前能够先进行测试和完善。如果这个设想看起来还不是足够的野心勃勃的话,他们还要求把这个网络上的通讯分割开来。他们的想法是每一个分割的部分都使用由同样的路由器、切换器和电缆组成的基础设施,但是仍然保持互相之间的独立。这样的话上千研究人员就可以同时对多个不同的技术方案进行实验了。

NSF对这个想法是如此的认同,因此支付了1000万美元作为这个被称为“全球网络创新环境”(GENI)的项目的启动资金。新的全国范围内的网络将耗费数年时间和超过一亿美元才能建成。即便如此,现在McKeown和他的同事们已经提出了一个计划,不仅会让GENI更加快速和经济地进行部署,并且这个计划可以在很大程度上能够使用现有的路由器、切换器和电缆。

关键就是OpenFlow。在制造商的合作下,一个小型的OpenFlow程序可以添加到几乎所有的路由器中,并且像一个路由器内部的专用程序和硬 件的遥控器一样运作。通过对路由器的路由表——也就是指定处理通讯的规则的部件——创建一个接口,这个程序可以允许某些程序控制路由器定向通讯数据的方 式,做出新的路由决定并且执行他们。

这个程序的结果就是OpenFlow赋予软件工程师和开发人员使用在普通电脑上编写程序并且通过安全连 接传输给路由器的方式,创建他们自己的数据包传输路由。通过控制路由表,将一个网络分割成为任意数量的,相互独立的分片就变得简单直接了,这样研究人员就 可以在上面测试或者完善他们的想法。这样的一个可以用作实验的“多元的”虚拟网络的出现,终于可以使的启动互联网的进化变得可能。

为了加快进度,McKeown和他的小组决定将他们的系统作为开源项目,即他们的软件是自由发布的。这将会刺激新的想法并且帮助系统得到更快的部署,他说。“你将会从分享和建造的优势中受益,引起快速的创新”,Mckeown说。“这在网络中从未出现过。”

OpenFlow已经在斯坦福大学的校园网络上提供了测试环境,并且小组计划在不久的将来在其他的六所美国大学的网络上安装。他们的目标是允许学生在虚拟网络实验和测试新的想法。在已经有一些制造商合作的情况下,小组希望能在年内看到与OpenFlow兼容的商用路由器、互联网切换器和无线局域网连接点上市。

这个想法如此深刻地影响了GENI的项目主任Chip Elliott,且GENI现在已经是OpenFlow的主要资助者。他说,这实在是将网络开放来进行试验和创新的好办法。其他的替代方案要昂贵的多而且需要更长的时间来部署。“我真正赞赏的是他们将这个系统完全基于快速的、经济的商用硬件上。”

然而,成功取决于说服主要的制造商OpenFlow的长期利益是值得进行短期的投资的。为了帮助说服他们,去年斯坦福大学的小组在斯坦福大学网络上安装了一个运行有shoot-'em-up游戏的计算机作为“虚拟服务器”。归功于使用OpenFlow编写的软件,使用笔记本电脑的玩家发现即使他们在整个校园的无线接入点之间移动,游戏仍然是准确无误的。“没有一个人掉线”,Mckeown说。然后,在游戏仍然在进行的时候,研究人员将虚拟服务器从斯坦福大学挪到了日本的一台机器上。游戏仍然在继续,没有任何的中断。“你分辨不出来它已经被移动了。这是你在目前的网络上都做不到的事情。”

除了此类的平滑重路由以外,OpenFlow还可以为网络操作者提供其他的重要的好处。它可以让他们修改路由规则,使得特定的数据通过特定的路径传输,例如,让email的优先级高于音乐下载,或者在一条路径损坏的时候通过大量的替代路径进行扩散。“它允许你为网络增加新的容量、新的特性,而不需要对那个专有的盒子的内部进行编程,”McKeown说。“本质上它是一种软件定义的网络。”

另外一个OpenFlow可以帮助处理的问题是网络安全。在最近发生在捷克共和国的路由器故障后,一个专家组仔细检查了路由器和切换器上工作的程序。他们发现在每一个路由器制造商的每一版路由软件中都有脆弱点,可以使黑客入侵路由器。换句话说,互联网的基本结构正处于风险之中。

McKeown承认,最开始,OpenFlow可以实际降低了网络的安全性,因为它提供了一个可供攻击的路由器。但是随着工程师们开发新的、更加安全的路由器版本,并且在不需要减慢或者中断通讯的情况下在现有的网络上进行测试,这个状况将会迅速改变。这样的话,当一个更新已经准备好可以安装时,补丁可以仅仅通过根据新的说明进行编程完成,而不需要将路由器离线然后重新手工重编程。

OpenFlow最重要的优点之一来源于改变数据包通过网络传输的方式。现在,email在两个特定的计算机之间传输总是使用同一条路径。如果路径上的任何一条连接失败了,故障就出现了。所以很多研究团队正在探索“多路径”路由,其中一组是在韩国大田的韩国先进科学技术研究所的Gyu Myoung。这些方法包括将一条消息分割成为多个数据包并且将每一个通过不同的路径送达目的地,并在那里重新组合起来。Lee和其他人相信,将网络通讯更加均匀分散开,可以增加互联网的可靠性以及降低拥塞。有若干个竞争的多路径方案,通过OpenFlow他们可以在同一个网络上进行测试并将他们的优点量化。

这样的测试将不会太遥远。今年春季,另外两个大学,纽约市的哥伦比亚大学和亚特兰大的乔治亚理工学院开始教授OpenFlow。同时,电气制造商NEC也宣布他们将开始制造可以使用OpenFlow的路由器。McKeown预计,在五年内,我们可以看到一个由编写开源软件来重新定义互联网工作方式的开发者组成的兴旺的社区。他预计互联网数据中心将成为这个运动的前卫,因为他们有着海量的路由器并且习惯于编写自己的软件。“如果在五年内这个网络自己变成了软件定义的,”McKneown说,“嗯,那样也很好。”

Bennett Daviss是在新罕布什尔州的一名科学作家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: