开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第3天,点击查看活动详情
本文献由斯坦福大学教授Nick McKeown等人撰写并于2008年在ACM SIGCOMM上发表
文章背景
在我们的生活场景中,网络设施已经成为生活中关键基础设施的一部分。对于网络工作者来说,他们的工作让网络走进了千家万户,但坏处是他们对网络的创新的门槛越来越高。网络世界对于创新门槛的提高,是因为大量已经安装的设备和确定的协议,以及在真实生活中很难开展真实流量的实验。人们普遍认为网络设施已经僵化,很难改变。
另一方面,一些网络社区正在研发可编程网络,例如GENI,一个研究新型网络架构和分布式系统的机构。可编程网络倡导可编程交换机和可编程路由器,这样能够同时处理多个相互隔离的不同实验的包。虚拟化可编程网络可以降低新想法付诸实践的门槛,但是计划庞大,代价高昂,需要很长时间来完成。
说服知名的商用网络生产商也是不太可能的。典型的商用交换机和路由器不会提供开放的软件平台,也就更不用说虚拟化他们的硬件和软件。而且不同厂商生产的内部构建也不相同,所以没有标准的平台共研究者实现他们的想法。
现有开放软件平台已经开放,当时这些平台不能满足我们对于转发速率和端口密度的要求。现存的具备线速处理专用硬件的平台也不适用于大学的配线间。
要解决的问题
- 当前网络基础设施僵化,网络研究所产生的新想法在当时没有办法适用和测试。
- 虚拟化可编程网络计划庞大,代价昂贵,部署他们要花费很多年。
作者的主要观点
商业解决方案过于刻板,封闭,不是性能不足就是成本太高。相较于克服性能和成本方面的限制,作者选择在一般性上做妥协来寻求一定程度上的灵活性。
作者提出了一种openflow交换机,满足以下四种特性以解决以上所存在的问题:
- 适用于高性能和低成本的实现
- 能够支持广泛的研究
- 保证实验性流量和生产性流量相互隔离
- 符合生产厂商的封闭要求
关键技术分析
本文的关键技术贡献在于对于硬件进行局部的调整,引入了远程控制器,使流表可以被远程控制,其符合openflow的协议规范,使得相应的开发人员只需要在控制服务器端开发和运行程序即可实现对于流量的控制和测试。并且文章通过如上设置,可以把商用流量和实验流量相互隔离,实现在不影响正常网络使用的情况下完成实验。
具体实现细节如下:
本文设计的openflow交换机至少包括流表、将交换机和远程控制器相连的安全通道以及openflow协议这三个部分。
流表,包含每个流的行为,即告诉交换机要如何处理这个流。Openflow提供一个开放的协议,也正是为了对不同交换机和路由器中的流表编程。Openflow中的数据通路也是由一个流表以及该流表关联的行为组成。
连接交换机和远程控制器的安全通道用来在两者之间传输命令和数据包。
Openflow协议,即为交换机和远程控制器之间通信的开放标准,通过此协议,交换机流表中的流表项可以在外部被定义,由此可以避免研究者对交换机编程。
文章所用交换机分为两种,openflow专用交换机和openflow通用交换机。
Openflow专用交换机的示意图如下图所示,在该场景下,包的转发完全由控制器决定。这种控制器不支持标准的二层三层网络处理。
Openflow通用交换机工作原理如下图所示,为了赢得管理员的信任,该交换机隔离实验流量,即商用流量依然使用路由器标准的二三层来完成。本文采用两种方法实现隔离,一种是转发流量包到减缓及的常规处理通道,另一种是为商用流量和实验流量分别划分id。
实验方法
文章用Amy在商用网络下测试自己设计的新协议的例子,对于Amy流量控制分析进行阐述。在该网络中,除了Amy的普通用户的流量应当通过常规协议转发,而Amy仅能控制自己的流量或者管理员分配其权限的流量。
论文工作优点和局限
文章的优点在于充分考虑了当时时代和客观条件的限制,不改动原来网络运行逻辑以及不影响网络设备供应商利益的情况下,提供一种方法,可以为广大的网络协议创新者提供实验方法,为网络协议创新极大程度的降低了门槛,使得更多人可以参与到网络创新中,打破了当时人们认为网络架构会一成不变的僵局。
另一方面,本文也有他的局限性。局限性在于本文提出的办法没办法对于性能进行完全的测试,让网络测试的指标中有局限性。其次,该文章仅在理论层面进行阐述,文章中没有提到通过大量实验证明该想法科学可行。
未来发展方向
Openflow逐渐出现在其他大学的互联网中,增加支持实验的网络数量。不同的大学之间可以通过隧道或网络覆盖完成互联,以促成更大的网络实验平台。
与当前其他方法比较的优点
打破僵局,在不改变大的网络硬件体系且不触及当时的网络设备供应商的利益的前提下,为网络协议创新人员提供实验方法。
对于SDN的意义
可以说,openflow本身并没有划时代意义的技术创新,但是该思想为网络带来了可编程的特性,而在这之后Nick的团队在此基础上进一步提出了SDN。Openflow位于SDN架构中的控制层,是SDN的大脑。Openflow也被认为是最早的SDN标准之一。