理论篇
第1章 为什么是SDN
TCP/IP互联网(the Internet)从实验室诞生至今,以短短半个世纪的时间发展成为全球性信息基础设施,取得了巨大的成功。
可以说,互联网*大的意义在于它在真实的物理空间以外,构建了一个虚拟的数字空间(cyberspace),这是以往任何技术发明都无法做到的。这个空间既不是物理世界的缩影,也不是物理世界的模拟,而是人类凭空创造的。不知不觉中,人类的生产、生活越来越多地被移植到这个空间里。
今天的互联网越来越成为一个“真实”的虚拟空间,这里的活动成为人类活动的一部分。寄生于互联网的社交网成为现实人类社会的扩展和延伸,因此互联网大大拓展了人类的生存环境。
随着物联网的深度介入,互联网数字空间和现实物理空间将产生更多、更复杂的信息和能量的交换,虚拟空间和真实空间将互联互通,甚至可能逐渐融合。从这个角度看,加深对互联网的认识和把握,不断创新互联网技术,需要我们坚持不懈的努力。
起源于21世纪初的未来互联网研究热潮产生了很多成果。SDN是其中的佼佼者。SDN从理念到体系结构,从实现到应用都颇有新意,得到学术界和工业界广泛认同,是众多未来互联网研究和实践中*为成功和成熟的技术。
相对于未来互联网,尤其是产生于“从头开始”(clean slate)计划的SDN,TCP/IP网络可以说是传统网络。传统网络到底有什么特点,有什么问题?SDN又有什么特点,有什么意义呢?本章将探讨这些问题。
1.1 TCP/IP的特点
1969年10月,Leonard Kleinrock等在洛杉矶加州大学和斯坦福研究所之间做了一个实验,利用IMP,通过一条50Kbit/s通信电路,在两台不同型号和操作系统的计算机之间实施远程登录。这个实验本身不算成功,原本打算键入“LOGIN”,结果只输入“LO”两个字符系统就发生崩溃。正是这次不成功的实验,标志着互联网的诞生。其中起到关键作用的IMP就是路由器的雏形。
50多年以来,互联网的发展远远超出了人们当初的想象,已有超过50%的世界人口成为互联网用户。作为全球*重要的网络基础设施,互联网极大地促进了人类文明的进步,根本性地改变了人类生活的面貌。
互联网技术的核心是TCP/IP体系结构及相关协议,要解决的基本问题是网间互联,要实现的基本目标是节点通信,*终目标是端到端(进程)通信。TCP/IP体系结构具有以下基本特点。
(1) 两级结构
网间互联所谓的“网”是指一个广播域,大致对应于局域网。在一个广播域内,节点之间能够通过广播彼此找到对方,无须中间节点的介入,进而可以实现直接的节点通信。广播是简单有效的方式,问题在于大量节点参与广播将导致广播风暴,无法保障正常通信。因此,大规模组网(大致对应于广域网)大多以网间互联的方式来实现。这就是,有限规模的局域网内部以广播作为基本通信手段,以总线或者交换机作为组网设备。局域网之间则以路由作为基本通信手段,以路由器作为组网设备。局域网通过路由器组织起来的网络叫作网际网(internet)。全球互联网(the Internet)就是*大的网际网。
互联网两级结构如图1.1所示。对应于TCP/IP五层结构,链路层解决局域网内部通信问题,网络层解决网间互联问题,传输层解决进程通信问题。网间互联和进程通信是互联网的核心问题,因此用TCP/IP来命名与此相关的所有工作就容易理解了。
图1.1 互联网两级结构
图1.1展示了互联网两级组网的基本思路。这是由三个广播域构成的*简单的网际网,分别是广播域A、广播域B,以及广播域C。图中双箭头实线表示对等协议之间的通信,路由器之间的实线是折线,表示路由器之间常常通过长途链路连接(个别情况下,交换机之间、交换机与节点之间也可能通过长途链路连接)。双箭头虚线表示协议之间的调用和回调关系,是分组在网元和协议层次之间的传递路径,也是一次进程通信的全过程。
可见,在网间互联的过程中,路由器和IP扮演着非常重要的角色。
这里的网元指参与网络组网的通信设备,节点特指网络通信的端点,如服务器及各种终端。
(2) 分布式组网
20世纪60年代初,兰德公司工程师Baran设想组建一个具有高抗毁性的通信网络,即使部分被摧毁,整个网络依然能够保持通信。这一设想导致了互联网的诞生。
1964年,Baran发表了有关该通信网络的论文[1]。他的第一个思想是,网络不应该建成集中式,不应该有控制所有交换和路由的超级节点。在这个网络中,所有节点都有权对流量进行路由转发,而且每个节点都与其他若干节点相连。如果其中某个节点被破坏,流量可以通过其他路径传输。Baran 证明每个节点只需要三到四个冗余连接,就能让网络的稳固性接近理论极值。
这种分布式组网的概念是互联网体系结构的基石,表现为网间互联的路由器以分布式自组织的方式构建网际网。各路由器自主配置和管理,各自通过距离矢量算法或者链路状态算法交换路由信息,分别计算和维护路由表,独立进行数据的存储转发。
分布式自组织的特性除了冗余度带来的高抗毁性外,还赋予互联网体系结构很大的弹性优势。第一,局域网的伸缩,是局域网内部的事情,可以完全自主地完成。局域网扩展的时候即使地址不够,也能够通过NAT或者代理机制来实现。第二,局域网的接入,需要做的仅仅是增加和配置一台新的路由器。第三,局域网的退出,需要做的仅仅是断开路由器。第四,更高层次的互联,例如跨AS之间的互联,通过AS之间的协商和边界路由器的配置来实现,也是自主、灵活且开销不大的事情。总之,收与放都不需要集中控制,简单方便。互联网的发展之所以如此迅速,这种弹性是根本的原因[1]。
(3) 分组交换
Baran的第二个思想是分组交换(packet switch),即把消息分割为一定尺寸的小数据块(分组),每个分组各自通过网络节点,经由不同的可能路径传输,到达终点时再重新组合成完整消息。
分组交换的好处是进一步增强了网络的抗毁性。分组可以通过不同路径到达终点,即使其中部分路径断掉,通信依然可以保持。分组交换的另一个好处是具有很好的业务适应性。在同一个分组交换网络中,采用同样的路由和传输机制可以同时承载不同性能需求的业务,例如从64Kbit/s的话音通信到33Mbit/s的8K电视,以至于更高性能规格的虚拟现实应用等。
分组交换的第三个好处是具有很好的业务适应性。一方面,分组交换网络同时支持各种大小流量模式,也支持突发流量模式,适用于各种应用场景;另一方面,分组交换网络支持无特定性能需求的应用,如电子邮件、文件传输、Web浏览等,当总带宽足够的时候,可以多给这类应用带宽,当总带宽不够的时候,则少给这类应用带宽。
(4) 单平面结构
所有的通信网络都有两个基本功能,即控制和转发。二者可以结合,也可以分离。TCP/IP采用结合的方式,控制与转发在同一个层面展开,有先后关系无上下关系。这形成了TCP/IP的单平面结构。
具体讲,TCP/IP的单平面结构表现在以下方面。
① 无信令网和时钟网。
不像传统的电信网络,TCP/IP网络对控制和同步的要求不高,不需要独立的信令网和时钟网的支持。在确实需要控制或者同步的场合,TCP/IP采取增加协议的方式在带内(inband)实现有关功能。所谓带内实现,是指网络对有关功能不设置专用设备和通道,有关信息与业务数据共享传输信道,不提供专用通道。
TCP/IP针对广播域控制定义了802.1Q协议,针对快速帧转发控制定义了MPLS协议,针对安全控制定义了IPSec协议,针对组播控制定义了IGMP,针对可靠传输控制定义了TCP,针对服务质量控制定义了DiffServ等QoS协议。
针对时钟同步问题,TCP/IP定义了NTP。
上述协议模式都服从单平面结构,协议都在带内实现。
② 网管带内实现。
TCP/IP的主要管理功能也在带内实现,包括SNMP、NetCONF、NetFlow、Radius、用户与计费管理等。网管软件,如HP OpenView、IBM NetView、Cisco Works、SunNet Manager等只不过是网络上的一个典型应用,运行这些系统的网管工作站也仅仅是网络上的一台终端节点。
③ 交换机/路由器独立运行。
前面谈到,TCP/IP网络是一个分布式系统,其中的交换机/路由器都独立工作,不受第三方系统的控制,彼此的关系是平等的。这也是单平面结构的重要体现。
后面会谈到,单平面的优势是系统结构简单、组网容易,但同时会带来资源调度和管控能力不足的问题。
(5) 简洁化设计
上述特点,形成了TCP/IP技术简洁明快的风格。除此之外,在设计上,TCP/IP提出端到端可靠性的理念,就是网络本身尽快将数据传到端节点,而将校验、排
展开