2001年7月18日,一列货运列车在通过巴尔的摩市中心霍华德大街的地下隧道时出轨,导致2万升盐酸泄露,引起了火灾。这次火灾破坏了美国8大互联网供应商名下的光缆。随后,美国互联网关键设施的运营商Verizon通讯公司与其两座运营大楼之间的连接中断,与其他几家运营商的网络之间的连接也告瘫痪。在此后的很多个小时里,美国全国的互联网通讯慢得像蜗牛一样。一名维修承包商说,“那条隧道就好像是光缆世界中的1-95高速公路(美国东海岸主要的高速公路)一样,是一个终生难遇的弱点。”
可是,八年来互联网领域发生的林林总总反复证明,互联网比人们想象的要脆弱得多。在全世界几十个或几百个地方,这个网络的脆弱都显而易见,看起来它就像是命悬一线。
今天,这样严重的故障能够造成的破坏要比2001年的时候大得多。互联网的基础设施大多已经有数十年的历史了,亟需升级换代。不过,很明显,我们不能毁掉整个网络,从头另来,建设一个全新的网络。政府和电信公司都不可能为了应对临时出现的问题而付出铺设额外的连接所需要的巨额成本。既然如此,我们怎样才能保证网络的自我恢复能力呢?
OpenFlow有望让互联网适应不断变化的负载
斯坦福大学的计算机科学家麦考恩(Nick McKeown)认为他找到了解决问题的方法。他相信,要建设一个更好的网络,关键在于一个平淡无奇的黑盒子——路由器。
路由器是互联网流量的控制器。数百万个路由器在发挥着作用,连接起组成互联网的成千上万个网络。它们可以为网络服务商引导巨大的访问流量,也可以仅仅提供少数计算机之间的连接。它们根据数据包检查访问者的地址,引导他们到达正确的访问目的地,并且规定他们可以沿着怎样的物理路径到达那里。当连接中断时,它们在帮助数据改道绕过断点上起到了至关重要的作用。
但是眼下,路由器还不是解决问题的方法,它还是问题的组成部分。一方面,发现一条绕过阻塞的路径可能要花上不少时间。在这段时间里,网络传输拥挤造成网络堵塞严重,很多数据直接就被丢弃了。
虽然这些问题的解决方案有很多,但是我们没有办法对这些方案进行测试。路由器软件的任何更新都应该首先在一个大型网络上进行完全的测试。这个大型网络必须有着与互联网同等程度的复杂性,同时又独立于互联网之外。目前还没有这样的大型网络。
即使你能够对这些方法进行测试,麦考恩说,你也很难把新的路由器软件安装到计算机上。因为每一个路由器大都已经由路由器制造商们按照10到15年以前制定的国际标准进行了预编程。它们都有专用的电路和按固定模式操作的控制数据包路由方式的软件,几乎不能够做任何改变。
现在,麦考恩正与他在斯坦福的同事Guru Parulkar一起,研发能够一举解决所有这些问题的方法。他们试图开发出一个系统,这个系统可以在非工作状态下改变控制路由器的软件,同时提供为安全地进行测试提供一个理想的环境。
他们的这个系统被命名为OpenFlow,已经在斯坦福大学的校园网上运行了,第一个商业产品将在今年上市。OpenFlow并不能像麦考恩所希望的那样解决或避免光缆的瓶颈问题,但是它将能够让互联网适应不断变化的负载,根据网络流量高峰的变化动态地调整路径,给每一位上网浏览者带来更流畅的感受,而不受地震、恐怖袭击还是光缆损毁的影响。“我们正在尝试让网络能够不断改进和提高。”麦考恩说。
如果有什么事情或方法能让互联网更有自我恢复的能力,那么这就是一件好事情,好消息。这对于数百万通过上网来预订度假产品或者使用twitter联络朋友的普通人来说是如此,对于经济来说更是如此。网络故障对经济的影响可以非常巨大:现在每年的网上电子商务总值已经超过7万亿美元,大约占全球GDP的12%。瑞士联邦技术学院的研究人员在2005年的一项研究中计算出,如果切断所有的互联网连接,瑞士整个国家每周的损失将超过30亿美元,大约占其GDP的1%。有人预计,到2010年,电子商务总值将占全球GDP的18%,网络故障所造成的影响将持续增长。
除此以外,基础设施中的关键部分,如电力和自来水设施,现在大都依赖于互联网进行信息交换和远程诊断。世界范围内的银行和证券交易所也都通过互联网和他们自己的网络实现金融信息的交流。交通系统,如德国的铁路系统,也依赖互联网来连接售票和咨询系统。
事实上,随着互联网的访问流量日益增长,网络中断并没有引发更多的问题,这一点看起来非常的不可思议。这主要是因为互联网依赖的是一些高度连接的节点,但是这些节点中大部分只有一些连接。这就意味着某一地区的网络中断对其他地方的网络影响有限,而且调整访问流量维持网络继续工作也不需要大费周章。
新网络与“全球网络创新环境”项目的启动
路由器在这个过程中所起作用十分关键。一般来说,路由器对所接收到的数据包的地址进行检查,然后根据预定的规则将它发送出去。比如说,两组通向同一个地址的数据通常会通过同一条路径传输出去。如果这条路径因为某种原因不能畅通,那么路由器将会检查和询问它的邻接路由器,查找还可以通行的路径,然后计算出重新引导数据的最佳路径。
为了完成这个任务,路由器运行着一种复杂的运算算法,但是可能需要很长时间才能完成。由于测试和更新软件的过程中存在的问题,技术改进只能以极度缓慢的速度进行。西雅图华盛顿大学的汤姆-安德逊(Tom Anderson)说,任何改动都必须非常小心。“你必须确保你所做的事情不会带来新的问题。”
到了二月份,这个问题便凸现出来。捷克共和国的一个路由器的软件升级出现了一个小错,随后,这个小错蔓延了整个互联网,导致整个网络缓慢运行超过一小时。这种引发混乱的错误决不是第一次出现,不过,由于没有大规模的测试或“虚拟的网络”进行实验,这样的错误难以避免。
2005年,美国自然科学基金会(NSF)请求一组研究人员解决这个问题。他们的解决方案非常大胆:建造一个大型的同现有互联网一样复杂的新网络,在这个新网络上对新的概念进行测试和完善,使其臻于完善,进入实际应用。如果这个设想看起来还不够积极的话,他们还要求把这个网络上的流量进行分割。他们的想法是分割出来的每一个部分都能在由同样的路由器、切换器和电缆组成的基础设施上工作,但是各个部分之间都能保持独立。这样的话,研究人员就可以同时对多个不同的技术方案进行实验了。
NSF非常欣赏这个创意,它支付了1000万美元作为这个被称为“全球
网络创新环境”(GENI)项目的启动资金。新的全国性网络需要很多年时间才能完成,耗资将超过一亿美元。不过现在,麦考恩和他的同事们已经提出了一个计划,不仅会让GENI更快和更经济地进行部署,还允许这个项目可以大规模地使用现有的路由器、切换器和光缆。
OpenFlow是一切的关键。在制造商的合作下,一个小型的OpenFlow程序可以添加到几乎所有的路由器中。并在其中像一个遥控器一样控制着运算法和硬件的运作。通过为路由器的路由表,也就是指定处理流量的具体规则,创建一个界面,允许某一个程序控制路由器定向访问的方式,做出新的路由决定并且执行这个决定。
结果,OpenFlow赋予软件工程师和开发人员为数据包创建路径的能力。他们先在普通电脑上编写运算法则,然后通过安全的连接把运算法则传输给路由器。通过控制流量表,OpenFlow将一个网络分割成为任意数量的,相互独立的部分。这样,研究人员就可以在上面测试或者完善他们的想法了。有了这样一个可以用作实验的“多元的”虚拟网络,开启互联网的进化之路终于成为可能。
为了加快这个进程,麦考恩和他的团队决定将他们的系统作为开源软件,即他们软件的用户可以自由发布这个软件。这无疑将鼓励新思想的出现,有助于这些新思想更快速地进入应用。他说。“你将会从分享和建造的优势中受益,推动改革创新的速度”,麦考恩说。“这在网络中从未出现过。”
在斯坦福大学的校园网络上的OpenFlow已经为互联网提供了测试的环境,其研发小组还计划在不久的将来在另外六所美国大学的网络上安装这个系统。他们的目标是允许学生在虚拟网络上实验和尝试新的想法。在已经有一些制造商合作的情况下,研发小组希望能在年内看到与OpenFlow兼容的商用路由器、互联网切换器和无线AP(无线接入点或网络桥接器)上市。
这个想法深深打动了GENI的项目主任艾略特(Chip Elliott),他现在已经是OpenFlow的主要资助者了。他说,将网络开放来进行试验和创新,这实在是一种非常好的方式。其他的选择执行起来都要更加昂贵,更费时日。“我真正赞赏的是他们把这一切完全建立在快速的、经济和商用硬件上。”
然而,这个项目的成功将取决于是否让主要制造商相信,OpenFlow的长期利好是值得他们进行短期投资的。为了说服他们,去年斯坦福大学的研发小组在斯坦福大学网络上安装了一个运行“赶尽杀绝(shoot-em-up)”游戏的计算机作为“虚拟服务器”。多亏了使用OpenFlow编写的路由软件,使用笔记本电脑的玩家发现即使他们在整个校园的无线接人点之间移动,游戏仍然是流畅地进行。“没有一个人掉线”,麦考恩说。然后,在游戏进行的过程中,研究人员将虚拟服务器从斯坦福大学挪到了日本的一台机器上。游戏仍然继续,没有任何的中断。“你感觉不到它已经被移动了。这是你在目前的网络上无法做到的事情。”
除了此类的平稳的重新路由以外,OpenFlow还可以为网络操作者提供一些重要的好处。它可以让他们修改路由规则,使得特定类别的数据通过特定的路径传输,例如,让email的优先级高于音乐下载,或者在一条路径损坏的时候通过大量的替代路径进行扩散。“它允许你为网络增加新的容量、新的特性,而不需要对那个专有的盒子的内部进行编程,”麦考恩说。“它本质上是一种软件定义的网络。”
另外一个OpenFlow可以帮助处理的关键问题是网络安全。在最近捷克发生路由器故障之后,一个专家组仔细检查了路由器和切换器上的工作程序。他们发现,每一个路由器制造商的每一版路由软件都有脆弱点,可以使黑客入侵路由器。换句话说,互联网的基本结构正面临风险。
麦考恩承认,开始的时候,OpenFlow实际上降低了网络的安全性,因为它提供了一个可供攻击的路由器。但是随着工程师们开发新的、更加安全的路由器编码,在不减慢或者中断通讯的情况下在现有的系统上进行测试,这种状况将会迅速改变。这样的话,当一个更新可以安装的时候,补丁可以仅仅通过根据新的说明进行编程完成,而不需要将路由器离线然后重新手工编程。
OpenFlow最重要的优点之一就是它能够改变数据包通过网络传输的方式。目前,电子邮件在两太特定计算机之间的传输总是使用同一路径。如果路径上的任何一条连接失败了,都会出现故障。所以很多研究团队正在探索“多路径”路由,韩国大田韩国先进科学技术研究所的Gyu MyQung Lee就是这种研究团队中的一员。这些方法包括将一条消息分割成为多个数据包并且通过不同的路径把它们送达目的地,并在那里重新组合起来。Lee相信,将网络通讯更加均匀摊分,可以增加互联网的可靠性,降低拥塞。多个多路径方案,都有一定的竞争力,通过OpenFlow,他们可以在同一网络上进行测试并将他们的优点量化。
这样的测试也许不会太遥远。今年春天,又有纽约市的哥伦比亚太学和亚特兰大的乔治亚理工学院开始向学生教授OpenrlFlow。与此同时,电子产品生产商NEC也宣布他们将开始制造可以使用OpenFlow的路由器。麦考恩预计,在五年内,一个由编写开源软件来重新定义互联网工作方式的开发者组成的社区,将兴旺起来。他预计,互联网数据中心将成为这个运动的前卫,因为他们有着海量的路由器并且习惯于编写自己的软件。“如果同样是在这五年内,这个网络本身变成了由软件来定义的,”麦考恩说,“那样也不错。”