1. 概述
软件定义网络(SDN)是一种新兴技术,它使通信网络具备更强的可编程性。本文将探讨该技术的核心概念和原理,包括其定义、优势、架构组成、OpenFlow协议以及与网络功能虚拟化(NFV)的关系等内容。最后将进行总结。
2. SDN 的定义
开放网络基金会(ONF) 是一个致力于推动SDN技术发展、标准化和商业化的非营利组织。ONF对SDN的定义最为权威,如下所示:
“SDN是一种新兴的网络架构,其控制功能从转发功能中分离,并且可以直接编程。”
根据该定义,SDN具备两个核心特征:一是控制平面与数据平面的解耦,二是控制平面具备可编程性。下图展示了SDN的基本概念:
3. SDN 的优势
基于上述特性,SDN通过编程方式提供了对网络更强的控制能力。这种能力为通信网络带来了诸多潜在优势,如下表所示:
特性 | SDN | 传统网络 |
---|---|---|
控制方式 | 控制与数据平面分离,支持可编程性 | 每个问题需新协议,控制复杂 |
配置方式 | 自动化配置,集中验证 | 易出错的手动配置 |
性能 | 动态全局控制,跨层信息共享 | 信息有限,配置相对静态 |
创新能力 | 软件实现简单,易于测试与升级 | 硬件实现困难,测试环境有限,标准化周期长 |
4. SDN 参考架构
ONF为SDN提出了一个标准的参考架构,如下图所示:
该架构由三层组成,每一层承担不同的功能:
基础设施层(Infrastructure Layer):包含处于数据平面的交换设备(如交换机、路由器)。这些设备负责收集、存储并上报网络状态给控制器,并根据控制器下发的规则处理数据包。
控制层(Control Layer):作为应用层与基础设施层之间的桥梁,它通过两个接口进行通信:
- 南向接口(Southbound Interface):用于控制器访问交换设备提供的功能。
- 北向接口(Northbound Interface):为上层应用提供服务接入点。
应用层(Application Layer):包含满足用户需求的应用程序。这些应用通过控制层提供的可编程平台,访问和控制基础设施层的交换设备。
5. OpenFlow 协议
OpenFlow 是SDN中数据平面与控制平面之间最常用的接口协议,最早由斯坦福大学的研究人员于2008年提出。通过OpenFlow,现有硬件可以用于设计新协议并分析其性能。目前已有多款基于OpenFlow的控制器被开发出来,如下表所示:
名称 | 平台 | 组织 | 特点 |
---|---|---|---|
NOX/POX | C++/Python | 斯坦福大学 | 第一个OpenFlow控制器 |
Beacon | Java | 斯坦福大学 | 支持事件驱动和线程操作,带Web GUI |
McNettle | Haskell | 耶鲁大学 | 提供高级声明式语言,支持多核优化 |
OpenDayLight控制器 | Java | Linux基金会 | 提供REST API和Web GUI |
6. SDN 与 NFV 的关系
网络功能虚拟化(NFV)是SDN的互补概念。NFV强调将网络功能从专用硬件中解耦,而SDN则强调控制平面与数据平面的分离。在构建NFV基础设施时,使用SDN可以带来管理与编排虚拟网络功能(VNF)上的显著优势。因此,许多厂商正在开发融合SDN与NFV的技术平台。
7. 总结
本文简要介绍了软件定义网络(SDN)的核心概念与原理。我们了解到,SDN不仅改变了网络设备之间的交互方式,还为现有及未来的网络设计和运维提供了更大的灵活性。作为一种创新的网络架构,SDN通过分离控制与数据平面,提升了网络的可编程性与用户体验。