软件定义网络
软件定义网络将网络的控制平面与其数据平面分离,将路由和策略决策转移到一个逻辑上集中、可编程的控制器,该控制器通过开放接口配置简单交换机的转发行为。
用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
Learn & explore
视频即将推出
Definition
软件定义网络是一种网络架构,其中控制平面与数据平面解耦,并实现逻辑上的集中和可编程,以便控制器将转发规则安装到原本简单的包转发设备中。
Scope
本主题涵盖SDN范式:逻辑上集中的控制平面与分布式转发设备的分离,交换机根据控制器安装的流规则转发数据包的匹配-动作抽象,控制器与交换机之间的南向接口(特别是OpenFlow),以及应用程序编程网络行为的北向接口。它讨论了SDN在可编程性和流量工程方面的优势,以及在可伸缩性和弹性方面的挑战。它不包括与之形成对比的传统分布式路由协议。
Core questions
- SDN如何以及为何将控制平面与数据平面分离?
- SDN交换机使用的匹配-动作(流表)抽象是什么?
- 南向接口(例如OpenFlow)和北向接口扮演什么角色?
- 集中式、可编程控制为流量工程和创新带来了哪些好处?
- 集中式控制平面在可伸缩性、延迟和弹性方面面临哪些挑战?
Key concepts
- 控制平面与数据平面分离
- 逻辑上集中的控制器
- 匹配-动作(流表)
- OpenFlow(南向接口)
- 北向API
- 网络可编程性
- 流量工程
- 控制器可伸缩性和弹性
Key theories
- 控制-数据平面分离
- SDN将网络功能分解为可编程的、逻辑上集中的控制器,该控制器决定转发行为,以及仅执行已安装规则的简单交换机,取代了传统网络中每个设备的分布式控制。
- 匹配-动作转发和OpenFlow
- SDN交换机通过将报头字段与流表条目匹配并应用相关动作来转发数据包;OpenFlow协议标准化了控制器如何在不同供应商之间编程这些表,从而实现了与供应商无关的可编程性。
- 可编程网络谱系
- SDN是长期以来致力于使网络可编程以及将控制与转发分离的工作的顶点,它借鉴了主动网络、控制平面分离工作和集中式网络操作系统。
Clinical relevance
SDN重塑了大型网络的构建和运营方式:云提供商和数据中心利用集中控制实现精细的流量工程、租户隔离和新网络功能的快速部署,广域骨干网则利用它来优化利用率。可编程性还通过允许运营商在软件中定义行为,而不是等待新硬件,从而加速了网络研究和创新。
History
软件定义网络源于早期的可编程网络和主动网络研究,以及将控制平面与转发分离的努力。2008年的OpenFlow提案提供了一个实用、可部署的接口来控制交换机流表,从而催化了其在研究领域以及后来的大规模数据中心和广域网络中的快速采用,正如该领域后来的知识史所记载的。
Debates
- 集中控制与分布式鲁棒性
- 集中控制平面简化了全局优化和可编程性,但引发了单点故障、控制器可伸缩性以及咨询控制器延迟的担忧;实际的SDN设计通过复制和分发控制器来恢复鲁棒性。
Key figures
- Nick McKeown
- Scott Shenker
- Jennifer Rexford
- Nick Feamster
Related topics
Seminal works
- mckeown2008
- feamster2014
- kurose2021
Frequently asked questions
- SDN解决了什么问题?
- 传统网络将控制和转发捆绑到每个设备中并单独配置,这使得全网络策略和创新缓慢且容易出错。SDN将控制逻辑集中到具有全局视图的软件中,因此运营商可以编程一致的、全网络行为并更快地部署新功能。
- SDN控制器是单点故障吗?
- 逻辑上控制平面是集中的,但实际上它是作为一组分布式、复制的控制器来实现的,以实现容错和扩展。控制平面是“逻辑上集中”而不是物理上只有一台机器,因此即使单个控制器发生故障,网络也可以继续运行。