1. 引言
SDN(Software Defined Network)起源于 2006 年斯坦福大学的 Clean Slate 研究课题
[1]
,
是一种将数据转发功能与控制逻辑解耦的新型网络架构,具有集中式控制、可编程性、开
放性以及灵活的网络管理等特点
[2]
。经典 SDN 网络架构依赖拥有全局视图的单一控制器,
在中小型网络中,可以胜任网络的管理。但在大规模网络环境中,随着转发设备和终端的
增多,单一控制器有限的资源和处理能力难以及时处理大量流请求,因此依赖单一控制器
的 SDN 网络架构存在可扩展性问题。
为了解决这一问题,业界提出通过部署多个控制器来分担网络中的各种处理请求,以
减少单个控制器的负载,从而提高整个控制平面的处理能力。对于一个给定的网络拓扑,
部署多个控制器往往需要考虑 3 个方面:网络中需要多少个控制器、这些控制器应该放在
哪里以及网络中交换机的归属问题。
Heller 等人
[3]
首次提出控制器放置问题(Controller Placement Problem, CPP),并将控制
器位置问题作为设施位置问题来解决,试图最小化平均传播延迟和最坏情况传播延迟。他
们表明,最优安置的控制器延迟明显优于随机安置的控制器,但该算法未考虑控制器负
载;Zhang 等人
[4]
以网络可靠性、控制器的负载均衡和响应时间为度量,使用自适应细菌觅
食优化算法来解决控制器放置问题,但未考虑控制器时延问题;文献[5,6]都考虑在控制器
负载不超过其容量的情况下,用不同的算法最小化控制器到节点的延迟或者控制器到控制
器的延迟,但这些算法仅考虑了传播时延;文献[7]主要考虑控制器负载,提出一种近似比
为 2 的多控制器负载均衡算法;文献[8,9]利用博弈论处理交换机迁移,通过重新分配交换
机而不是添加或删除控制器来实现控制器的负载平衡,以达到最大化整个网络效用即最大
化每个控制器的资源利用率,但并未考虑到时延问题;Wang 等人
[10]
考虑端到端的传播时
延以及控制器排队时延,提出聚簇网络划分算法来减少端到端的传播时延,并放置多控制
器来减少排队时延,但未考虑控制器负载问题;文献[11]尝试使用改进的 NSGA-II(非支配
排序遗传算法)来解决最小化延迟和容量管理的问题,但仅考虑了传播时延;文献[12]使用
修改后的 ap 聚类算法对网络进行分区,自动计算聚类数量并识别出最佳的控制器部署位
置,但该算法仅考虑了控制器之间的传播时延;文献[13]提出多种优化模型用于控制器部
署及故障处理,但仅考虑了交换机到控制器的传播时延。
综上所述,大多数研究只考虑了传播时延,然而网络中除数据包发送和传输所需的时
延外,每次交换机转发都需要时间,且距离控制器的跳数越多,所需转发时间就越多。此
外,控制器和交换机所需的排队时延又与网络流量有一定的关系,网络流量越大,排队时