软件定义网络利用封闭式流程实现网络配置。举例来说,与原先利用设备建立网络连接不同,现在用户可以借助这项技术对网络进行编程、从而构建新的连接方式。
软件定义网络将控制平台(旨在指挥网络传输走向)与数据平台(旨在将数据包发送至特定目的地)区分开来,从而达到网络可编程化转变的目的。要实现这样的效果,交换机本身必须具备可编程特性,软件定义网络控制器也需要采用业界标准控制协议——例如OpenFlow。
总体而言,网络虚拟化与网络功能虚拟化负责在物理网络基础上建立虚拟通道并添加虚拟功能,而软件定义网络则用于调整物理网络——因此后者对于网络体系的配置及管理来说属于真正的全新外部手段。举例来说,我们可以将颇具规模的“大型传输流”由1G端口迁移至10G端口,或者将大量“小型传输流”汇聚在同一个1G端口处。软件定义网络依靠网络交换机作为实现载体,而不像前两者那样借助x86服务器的参与。
这三类技术方案的设计目的都是为了实现网络环境的移动性与敏捷性。我们需要对网络体系进行编程的途径,而实现该目的的手段共有三种,也就是网络虚拟化、网络功能虚拟化以及软件定义网络。
网络虚拟化与网络功能虚拟化能够直接作用于现有网络,因为它们的运行基础是服务器以及与之相交互的“经过处理”的流量;软件定义网络则要求采用全新的网络结构,其中数据与控制平台必须加以划分。