在之前的文章里面的最后一小节,提到过SDN如何forwarding 和 OpenFlow 的具体例子,这一节会重点讲解 SDN 的 control plane 部分。
- 就看了看PPT,没有深入理解,有时间看看这篇博文
先放一张图来看看? 可以看出 SDN 是一个中心化的网络架构(课本里称 logically centralized)这样做相对于传统的分布式架构有什么好处呢?第一,中心化的管理使得整个网络能更好的被控制(大大降低了部分路由器配置错误或是网络拥堵对互联网的影响)第二,从之前的文章里可知它是 table-based forwarding,所以允许对路由器编程,对比分布式的架构,每个路由器都独立的计算 forwarding-table 想要修改所有路由器的算法是很难得(这其实就很好的实现了软硬分离)第三这种 control plane 的实现方式是开源的。
SDN 可以分成三个部分,第一个部分是Data plane switches,这一部分有 快速,简单的商用 switches 在硬件中实现了 generalized data-plane forwarding,由 controller 计算得到的 switch flow table,API for table-based switch control (定义了哪些是可控的哪些不是 eg. OpenFlow) 和 与 controller 通信的协议(eg. OpenFlow) ;第二部分是 SDN controller,相对于网络中的操作系统,它能 维护网络的状态信息,通过 northbound API 与控制网络的应用交互,通过 southbound API 与 network switches 交互,它的实现为分布式系统,用于提高性能,可扩展性,容错性和鲁棒性;第三部分是 netwrok-control apps,它是 control 的核心,通过 lower-level services 和 SND controller 提供的API 实现了 control functions,同时它是 unbundled,可以由第三方提供。
第二部分 SDN controller 的组成如下?
接下来了解一下 OpenFlow protocol?
其中的 controller-to-switch messages ?
switch-to-controller messages ?
control/data plane interaction example?