控制器是SDN的核心,控制器通过SDN的南向协议的API可以对数据层面的网元设备下发指令,完成控制平面与数据平面的控制传输。
在SDN架构中,控制平面是逻辑集中的,通过某种协议将控制信息下发至底层的数据平面去执行。
控制器的基本架构应该包括核心功能层和网络功能层两方面的内容。核心功能层主要完成对组件管理和事件机制等相关操作,主要提供控制器的最基本功能:完成协议匹配功能和支持上层应用开发功能,网路功能层主要是完成对交换机主机信息、网络拓扑和虚拟网络的管理,同时制定简单的路由转发策略。
目前控制器的主要编程语言是C++、java、pathon。基于C++的控制器在处理性能上较好;基于java的控制器有较为丰富的API便于应用业务的拓展;基于pathon的控制器在网络编程方向有较好的灵活性,易于开发,但效率低