阅读文章《The Road to SDN: An Intellectual History of Programmable Networks》,并根据所阅读的文章,回答如下两个问题:编程
1.过去20年中可编程网络的发展能够分为几个阶段?每一个阶段的贡献是什么?服务器
2.网络虚拟化与SDN的关系?网络
做业博客连接:http://edu.cnblogs.com/campus/fzu/fzusdn2019/homework/10094异步
答:在过去20年中可编程网络的发展能够分为如下三个阶段:
测试
在20世纪90年代中期,因为网络协议标准化过程的缓慢,一些网络研究人员采用了一种开放网络控制的替代方法,大体是基于对独立PC从新编程相对容易的类比。具体地说,传统网络在任何意义上都不是“可编程”的,主动网络表明了一种激进的网络控制方法,经过设想一个编程接口(或网络API)来公开各个网络节点上的资源(例如,处理、存储和数据包队列),并支持构建应用于子集的定制功能,主动网络研究计划探索了传统互联网协议栈经过IP或异步传输模式(ATM)提供服务的根本替代方案。云计算
因为传统路由器和交换机体现了控制和数据平面之间的紧密集成,这种耦合使得各类网络管理任务,如调试配置问题和预测或控制路由行为,变得很是具备挑战性。为了应对这些挑战,各类分离数据和控制平面的努力开始出现。领先的设备供应商直接在硬件上实现包转发逻辑,独立于控制平面软件。此外,互联网服务提供商(ISP)正在努力管理其网络不断扩大的规模和范围,以及对更高可靠性和新服务(如虚拟专用网络)的需求。这些趋势催生出了两项创新技术:一是控制和数据平面之间的开放接口;二是网络的逻辑集中控制。加密
在OpenFlow出现以前,SDN的基本思想面临着彻底可编程网络和实用主义之间的紧张关系。但OpenFlow在这两个目标之间取得了平衡,它启用了比早期路由控制器更多的功能,并经过在商品交换机中愈来愈多地使用商用硅芯片组来构建现有的交换机硬件。尽管依赖现有的交换机硬件在必定程度上限制了灵活性,但OpenFlow几乎能够当即部署,这使得SDN的移动既实用又大胆。在OpenFlow API的建立以后,紧接着是NOX这样的控制器平台的设计,它支持建立许多新的控制应用程序。操作系统
答:网络虚拟化表示从底层物理设备分离的网络的抽象,网络虚拟化容许多个虚拟网络在共享基础设施上运行,而且每一个虚拟网络能够具备比底层物理网络更简单(更抽象)的拓扑。例如,虚拟局域网(VLAN)提供了一个跨越多个物理子网的单一LAN的假象,多个VLAN能够在相同的交换机和路由器集合上运行。网络虚拟化(从逻辑网络的角度对物理网络进行抽象)显然不须要SDN。一样,SDN(逻辑集中控制平面与底层数据平面的分离)并不意味着网络虚拟化。尽管网络虚拟化在概念上独立于SDN,但近年来这两种技术之间的关系变得更加密切。而SDN和网络虚拟化主要有三种关系:设计
云计算使网络虚拟化变得突出,由于云提供商须要一种方式,容许多个客户(或“租户”)共享同一网络基础设施。Nicira的网络虚拟化平台(Network Virtualization Platform,NVP)提供了这种抽象,而不须要底层网络硬件的任何支持,解决方案是使用覆盖网络为每一个租户提供链接其全部虚拟机的单个交换机的抽象。然而,与先前在覆盖网络上的工做相比,每一个覆盖节点其实是物理网络的一个扩展——一个软件交换机(如Open vSwitch),它封装了发送到其余服务器上运行的虚拟机的流量。逻辑集中式控制器在这些虚拟交换机中安装规则,以控制如何封装数据包,并在虚拟机移动到新位置时更新这些规则。调试
将SDN控制应用程序与底层数据平面分离的能力,使得在将SDN控制应用程序部署到操做网络以前,能够在虚拟环境中测试和评估SDN控制应用程序。Mininet使用基于进程的虚拟化在同一物理(或虚拟)机上运行多个虚拟OpenFlow交换机、终端主机和SDN控制器,每一个控制器都做为单个进程。使用基于进程的虚拟化容许Mininet模拟一个网络,在一台机器上有数百个主机和交换机。在这样的环境中,研究人员或网络运营商能够开发控制逻辑,并在生产数据平面的全面仿真上轻松地对其进行测试。一旦对控制平面进行了评估、测试和调试,就能够将其部署到实际的生产网络上。
在传统网络中,虚拟化路由器或交换机是很复杂的,由于每一个虚拟组件都须要运行本身的Controlplane软件实例,相比下虚拟化一个SDN交换机要简单得多。FlowVisor系统使校园可以支持在承载生产流量的相同物理设备上进行联网研究的试验台,其主要思想是将业务流空间划分为“片”,其中每一个片有一个网络资源共享,由不一样的SDN控制器管理。FlowVisor做为Hypervisor运行,向每一个SDN控制器和底层交换机传递OpenFlow。