第一代网络前身是阿帕网(ARPANET),由美国国防部创建,用于军事活动中。最初,该项目就是为了创建一个自治的、无中心的系统,无论网络遭受任何局部的损失都不会影响其他部分的正常通讯。但是随着网络规模的持续扩大,新业务层出不穷,传统的网络架构不堪重负。
传统网络是采用专用硬件设备搭建的,主要存在以下几个问题:(1)市场上网络设备厂商众多,不同厂商的网络设备都有各自不同的部署方式及配置命令,不具备通用性,这使得网络的统一配置以及后续的管理维护变得十分困难;(2)传统网络架构是完全分布式的网络架构,也就是设备与设备之间相互交流信息,一旦其中出现问题需要逐个设备进行通知,维护复杂;(3)传统网络设备的转发策略是厂商固定的,设备在买来的时候里面的协议已经是写好的,难以根据业务需求进行更改,不具备可编程性。
为了解决传统网络面临的这些问题,SDN就此诞生。2006年,SDN出现在美国GENI项目资助的斯坦福大学Clean Slate课题中;2009年SDN入选麻省理工科技评论杂志“十大突破性技术”,从此开始获得产业界的关注;2011年,随着非盈利性组织ONF(开放网络基金会)的正式成立,标志着SDN正式得到产业界的认可,开启了高速发展的道路。
目前业界对SDN的认识是,SDN,Software Defined Network,即软件定义网络。SDN是一种网络架构,将网络的控制平面与转发平面分离,并通过开放和可编程接口直接对控制平面进行编程。SDN的核心理念就是希望通过应用程序来控制转发行为,完全通过软件来定义整个网络。简单说,SDN中的控制器就好比网络中的大脑,操控着网络中所有的设备,是完全由软件实现的,转发平面只需听从控制器的指令完成转发即可。
SDN控制转发分离示意图
SDN架构分为应用层、控制层和基础设施层,我们可以用道路交通来做一个类比。(1)应用层:包括各种不同的业务和应用,负责各种网络资源的编排,相当于整个交通中的用户,哪里不满意就改哪里;(2)控制层:也就是SDN的控制软件,负责处理各种数据转发资源,维护网络拓扑、状态信息,进行网络全局管理,这就相当于道路中的调度中心,上面说要优化交通情况,调度中心就来负责告诉交警这辆车该怎么走、往哪里走等;(3)基础设施层:包含了各种网络设备,负责数据的处理、转发和状态收集,相当于在路面指挥的交警,在收到调度中心的要求之后,交警负责指挥方向、放行车辆等等。
简单地说,有了SDN,用户只需要提要求,让调度中心去统一负责安排底下的交警指挥交通。意思就是,应用层只需通过简单的配置就可以实现对网络的部署,由于控制层对底层基础设施进行统一管理,实现了集中控制。当接收到上层的指令之后,控制层负责接管底层基础设施,无需像复杂的传统网络那样一个个地配置所有网络节点上的设备。
由此可见,SDN相对于传统网络有以下几点优势:(1)SDN要求转发与控制分离,使得硬件设备通用化,可以避免厂商锁定,降低成本;(2)SDN是集中控制,降低了网络维护难度,并能够缩短网络部署周期;(3)SDN可以让管理员直接控制转发行为,网络协议无需运行在设备上,不用通过各种网络协议。