考虑控制器故障的软件定义机载网络选举算法
Software defined airborne network election algorithm considering controller failure
收稿日期: 2018-06-22
Received: 2018-06-22
作者简介 About authors
吕娜(1970—),女,教授,博士,从事航空数据链的研究.orcid.org/0000-0003-0042-9600.E-mail:
针对机载网络环境下控制器发生不可恢复故障的问题,提出分布式的控制节点选举(DCNE)算法. 为了保证故障恢复后控制节点的性能,综合考虑邻居节点密度、平均流请求量和控制器处理能力,计算选举权值. 通过邻居节点信息的建立和维护实现选举消息的更新,提出依据节点状态传递和处理选举消息的算法. 从故障恢复后的控制域性能角度对DCNE算法进行仿真验证. 结果表明,与现有算法对比,DCNE算法在最大时延和流部署开销指标上具有更好的性能,能够较好地适用于机载网络环境.
关键词:
A distributed control node election (DCNE) algorithm was proposed aiming at the problem of unrecoverable failure of the controller in the airborne network environment. The election weight was calculated by considering the neighbor node density, the average flow request amount and the controller processing capability in order to ensure the performance of the control node after the fault recovery. Then the election message was updated through the establishment and maintenance of the neighbor node information. A method of transmitting and processing election messages according to the node status was proposed. The proposed algorithm was simulated and verified from the perspective of control domain performance after fault recovery. The experimental results show that the DCNE method has better performance in terms of maximum delay and flow deployment overhead compared with the existing methods. The DCNE method can be better applied to airborne networks.
Keywords:
本文引用格式
吕娜, 刘创, 陈柯帆, 曹芳波.
LV Na, LIU Chuang, CHEN Ke-fan, CAO Fang-bo.
与传统的分布式网络架构相比,SDN网络的控制与管理是由逻辑集中的控制平面负责. 这种方式虽然可以大大提升网络自动化管理和控制能力,但导致了网络对控制平面的依赖性. 在航空环境中,网络环境更加复杂多变,高对抗战场环境不仅使得节点故障概率更高,同时受节点移动性和链路不可靠性等因素影响,控制器之间难以像地面有线网络一样稳定、可靠地交互信息,这给控制平面的设计提出了较大挑战. 其中,控制器故障将直接导致网络节点无法处理网络数据流并上传自身状态信息,对网络性能的影响最大.
近年来,为了提高控制平面的健壮性,研究人员从控制器部署和交换机迁移2个方面,研究控制器故障恢复问题. 一类研究是在网络前期规划阶段,通过部署备份控制器的方式来增强控制平面的可靠性[7-9]. 其中,Ros等[7]提出针对控制器故障恢复的FTCP布局方法. 该方法通过部署冗余的控制器,实现控制器故障后的快速恢复. 备份控制器的确定方法仅仅针对网络拓扑固定的地面静态网络. 在机载网络环境下,由于控制器的故障检测具有时延限制,原有的备份控制器往往因为节点移动,难以满足网络需求. 另一类研究是在控制器布局确定之后,通过迁移故障域的交换机对网络进行弹性管控[10-11]. Openflow1.4协议中增加了当控制器发生故障或超载情况下域内交换机向外迁移的机制. Hock等[10]将距离和时延作为迁移的首要衡量因素,对迁移机制进行设计. 这类迁移的方法虽然可以在网络运行过程中对网络进行动态调整,但没有考虑控制器的恢复. 在机载网络环境下仅对故障域内节点进行迁移,不仅效率低、迁移代价大,而且增加了相邻控制器的负担,极易造成整个控制平面的失衡.
针对上述问题,本文将机载网络环境下的控制器故障恢复问题优化为控制节点的选举问题,提出分布式的控制节点选举(distributed controller node election,DCNE)算法. 为了保证故障恢复后的网络性能,综合考虑邻居节点密度、平均流请求量和控制器处理能力,计算选举权值. 为了实现DCNE算法在机载网络环境下的有效应用,考虑网络的拓扑动态变化、新节点加入等特征,提出依据节点状态传递和处理选举消息的选举算法.
1. 问题描述
1.1. 场景及网络控制架构描述
图 1
图 1 控制器架构及控制器故障示意图
Fig.1 Controller architecture and controller failure diagram
航空集群每个平台均应部署一个控制器,但在相同时间一个域内仅有一个控制器保持工作. 这不仅为控制器故障恢复提供了物理硬件基础,而且有利于网络根据拓扑、流量的变化灵活选取节点作为控制器,实现对网络的弹性管控. SDN在机载网络中实际应用时,集中式网络控制(即SDN方式)和分布式网络控制(即传统网络传输方式)是共存的. 在集中式网络控制不可用的情况下,分布式网络控制方式能够使节点不依赖与控制器的信息交互,通过邻居节点间协商的方式,独立完成自身信息传输过程.
1.2. 问题描述
在上述场景及网络控制架构下,集中式网络控制下机载网络的局部拓扑示意图如图1(b)所示. 控制器C1发生不可逆的故障,导致域A1内的节点与控制器失连. 要研究的问题如下:在控制器发生故障导致集中式网络控制方式(即SDN方式)不可用的情形下,故障域内的节点如何基于传统的分布式网络控制方式,通过域内节点间的协商完成选择新的控制节点的选举.
考虑到本文首次采用集中式网络控制和分布式网络控制,描述航空集群环境下的SDN传输方式和传统机载网络传输方式. 为了避免概念上的疑义,针对本文研究问题,作出以下说明.
1)控制器为co-located部署方式,即控制器和交换机部署于网络同一节点,作为控制器使用时称为控制节点,否则称为传输节点.
2)在控制器选举过程中,相邻控制域内的节点可能参与到选举过程中,如进行选举消息的转发、网络连通性保证等. 为了对不同节点进行区分,用失控节点来表示与控制器失连的传输节点. 由于机载网络的特殊环境,传输节点可能由于移动性或者控制链路中断而导致集中式网络控制方式不可用,成为失控节点. 失控节点的判定在4.1节进行描述.
3)控制节点的选举是在集中式网络控制不可用的失控节点之间开展的. 基于分布式的网络控制方式,每个节点通过周期性地发送Hello消息和Ack-hello消息,可以获取邻居节点状态信息.
为了形式化描述本文算法,对于网络中任一失控的节点
2. 选举标准
2.1. 相关定义
在集中式网络控制方式下的机载网络中,控制节点的位置不仅会影响到新流建立的时延,而且会直接影响到网络的配置、管理效率及可靠性等方面. 与利用全局网络状态信息(如全网拓扑、每个节点策略配置需求等)进行控制器部署位置决策不同的是,在控制器故障的情况下,每个节点基于分布式网络控制方式仅具有自身及邻居节点局部有限的状态信息. 为了保证控制节点位置的合理性和故障恢复后的网络控制性能,定义如下控制节点的评判参数.
1)邻居节点数量. 定义失控节点
2)本地流请求总量. 考虑到网络中每个节点流表配置需求的不同,使用网络无故障时节点
在控制器故障恢复后,必定会重新配置所属控制域内的节点流表,每个节点的
节点
3)控制器容量. 参考文献[14]中控制器容量的测试方法,用平均流吞吐量
2.2. 节点权值
综合考虑上述控制节点的评判参数,定义
式中:
因为各参数的计量单位不同,不能互相计算比较,需要进行规范化处理. 采取熵法来评估各参数的相对重要程度,综合得到每个节点进行选举的权值. 熵法计算的原则如下:在某一参数上取值相差越大,则它的相对重要程度越大,该标准所占的权重越大. 使用该方法来求解各参数的权重系数,根据节点
1)用
2)每个参数的熵求解方法为
当
3)根据式(4)可得,每个参数的权重求解方法为
3. DCNE算法描述
领导者选举算法作为分布式系统中一种比较经典的算法,被广泛应用在路由协调、总体控制、传感器协调、网关选举等无线网络环境[15]. 领导者选举算法的核心思想是在一个由多节点构成的组群中,有效地选举出唯一的节点,作为整个组群的领导者,协调其余节点的正常工作.
在借鉴领导者选举算法相关研究成果的基础上,考虑到航空集群的特殊环境和控制节点位置对机载网络性能的影响,为了实现控制节点的选举,设计分布式的控制节点选举DCNE算法. 该算法的实现主要包括以下3个阶段:邻居状态的建立和维护、Election消息的传递和Controller信息的发布. 下面从这3个阶段依次对该算法进行描述.
3.1. 邻居状态的建立和维护
在该阶段首先进行节点失控的判定:采用超时机制的故障检测方法[16],规定在集中式网络控制方式下,若一个传输节点连续3次请求没有收到控制节点的响应,则认为该节点处于失控状态.
在该状态下,失控节点基于分布式的网络控制方式,通过节点间周期性地发送hellow消息和Ack-hellow消息进行邻居节点间状态感知. 为了实现选举权值的计算,除必须的1跳路由维护信息外,hellow和Ack-hellow消息还应当包括该节点的邻居节点总数、多跳业务量和控制器容量等节点权值计算参数信息.
节点在检测到与控制节点失连后,不会立即发送Election消息. 这是因为受机载网络节点的高移动性和链路的不稳定性因素影响,在控制器可用的情形下可能出现部分传输节点失控的情形,在这种情形下进行控制节点的选举没有必要,会影响到网络业务的正常传输. 在控制器故障情形下,如果每个节点在检测到与控制节点失连后,都启动一轮选举进程,会导致选举算法的复杂度大大增加,网络负担加重. 针对上述情况,为了保证选举时失控节点的规模,避免多个失控节点同时发起选举,根据初始控制域内传输节点的分布及每个节点的流表配置需求,规定当失控节点的本地流请求总量
3.2. Election消息的传递
控制节点的选举是通过Election消息在网络中传递开展的,通过这种方式网络中失控节点的信息被收集计算并通知下一节点,最终在停止条件触发下Election消息停止传递,选出权值最大的节点作为控制节点. Election消息除包含发起节点ID号和NW值,控制节点的ID号、NW值和容量C外,还应该包含一个接受分组(receive array,RA).
RA是记录每个节点Election消息接收状态的,数组中每个元素对应Election消息访问到的节点号,元素值对应节点状态和节点的平均流请求量
Election消息基于RA中的节点状态进行传递,图2给出Election消息流程图,具体流程描述如下.
图 2
1)满足Election消息发送条件,根据该节点状态信息初始化Election消息.
2)发送Election消息到NW值最大的邻居节点.
3)若该节点NW值大于Election消息中的控制节点NW值,则更新Election消息;否则,Election消息RA元素个数加1.
4)若RA分组中每个元素的平均流请求量
5)若存在相邻的UNRECEIVED节点,则将该节点接收状态标记为TRANSFER,并将Election消息转发到该节点上. 若有多于一个的UNRECEIVED节点,则选择具有较大NW值的节点进行转发;否则,转到6).
6)若相邻TRANSFER节点不等于1,则将本节点访问状态标记为RECEIVED,并将Election消息转发到该节点上. 若存在多个TRANSFER节点,则选择具有较大NW值的节点进行转发;否则,转到8).
7)邻居节点在接收到Election消息后,返回3)进行比较.
8)将该节点状态标记为RECEIVED,选举结束.
图 3
3.3. Controller消息的发布
在Election消息结束传递后,会停留在某一节点. 此时,节点发送Controller消息进行控制节点的通知. Controller消息中除包含控制节点的ID号和NW值外,还包含接收数组RA. 为了避免Controller消息的重复发送,节点会在数组RA中将要发送的节点状态设置为RECEIVED.
图 4
3.4. 特殊网络情形分析
1)新节点的加入. 在机载网络环境下,由于节点的移动性和链路的中断,可能在Election消息传递过程中,继续有新的失控节点加入到控制器的选举中. 新节点的加入不仅影响到节点NW值,而且影响到Election消息在网络中进行传递. 为了避免新节点的加入干扰正常的选举进程,本文算法规定节点收到Election消息后,将不会因为新节点的加入而更改节点NW值和节点状态,直到选举结束后,再根据控制节点容量情况决定新节点是否可以加入到控制域中.
2)失控节点间的拆分与合并. 在一些极端情况下,控制器的故障可能直接导致控制域内节点间的不连通,造成失控节点间的拆分,成为多个失控节点组. 当失控节点组规模满足Election消息发送条件时,节点组会分别选举出对应的控制节点. 在该情况下,随着节点的移动或链路的恢复,当2个节点组连通时,失控节点组会进行合并. 为了避免控制节点过多影响控制平面性能,若合并后的失控节点总业务量不超过具有最大NW值的控制节点容量,则选取最大NW值的节点作为整个失控节点组的控制节点. 失控节点组拆分与合并场景下的控制器选举示意图如图5所示.
图 5
4. 仿真分析
4.1. 仿真实验及参数说明
由于目前将SDN技术思想应用于机载网络环境还处于理论分析阶段,尚不存在面向机载网络的SDN/IP的混合网络传输方法和实际应用的具体数据作为参考. 为了验证DCNE算法在机载网络环境下的适用性和有效性,基于MATLAB仿真软件搭建基本的控制器故障场景,从故障恢复后的控制域性能角度,对比分析不同算法的计算结果. 在场景参数设置方面,在不影响算法验证正确性的基础上,为了简化实验,假设每个节点的平均流请求量为0~2 packet/ms的随机值,节点所搭载控制器能够处理的最大容量为20~30 packet/ms的随机值. 表1给出仿真场景的相关参数设置. 在实际工程应用时,可以添加负载统计模块,对节点发出的PACKET_IN进行周期性统计,形成节点的平均流请求量.
表 1 单个控制器故障仿真场景参数设置
Tab.1
参数 | 参数值 |
场景区域/km | |
失控节点个数 | 10~30 |
传输距离/km | 80 |
节点移动模型 | 随机路点 |
节点移动速度/(m·s-1) | 340 |
平均流请求量/(packet·ms-1) | 0~2.0 |
4.2. 对比实验说明
考虑到目前还没有类似的分布式算法被用于SDN的控制器故障恢复问题. 为了验证DCNE算法的有效性,采用控制路径的最大时延指标和流策略部署开销指标这2种性能尺度,对选举结果进行评判,并与文献[17]的控制器弹性恢复机制(resilient SDN controller scheme,ReON)对比,验证DCNE算法的有效性. 参考控制器部署问题[18](controller placement problem,CPP)中的求解思路,通过穷举算法(brute force,BF)进行遍历搜索的方式,计算故障域内最优的控制器部署位置作为参考. 对比的故障恢复算法描述如表2所示. 其中,最大时延指标
表 2 不同故障恢复算法的描述
Tab.2
对比算法 | 主要描述 |
BF | 常用于网络前期规划阶段CPP问题求解中,依据选取的性能尺度和搜索算法来确定最优情况下控制器的位置,可以作为最优解评估选举结果的有效性. |
ReON | 基于网络功能虚拟化技术,将网络各节点本地模块计算的网络时延和损失率信息发送给控制器进行排序,得到最优的备份控制节点. |
式中:c表示故障恢复后的控制节点,V为该控制域内的传输节点集合,N为传输节点总数,
4.3. 实验结果分析
为了模拟单个控制域的网络传输情况,验证不同网络状况下选举算法的有效性. 在场景范围内,随机生成节点数量为18的初始节点布局,其中包括1个控制节点数量(根据文献[12]算法确定初始位置)和2个邻域的传输节点(位置随机). 从初始布局开始(即时间轴上的0时刻),每隔20 s计算此时的最大时延指标及流部署开销指标,作为故障前的性能对比. 假设该时刻下控制节点发生故障,计算不同算法的控制节点恢复结果,记录不同算法的网络性能,实验总共持续120 s.
图 6
图 7
图 7 不同时刻下流部署开销指标变化示意图
Fig.7 Flow deployment overhead indicators at different faults
图8、9给出不同节点数量W下最大时延指标和流部署开销指标的变化趋势. 考虑到新节点加入和控制节点处理能力限制对故障恢复性能的影响,在实验中,失控节点数量分别为15、25和35. 每种节点数量下,网络总的流请求数量不变. 考虑到相邻控制域的传输节点可能因为节点移动或者链路中断成为失控节点,参与到故障控制域内的控制器的选举中,因此设置故障恢复后的控制域最大可管理节点数量分别为10、20和30. 为了排除节点初始分布位置不同对算法验证的影响,实验中每种节点数量下的计算结果是通过以下方式获得:在场景区域内随机生成20个不同的拓扑结构(网络拓扑均为连通的)分别进行实验,取每个拓扑结构下的算法计算结果的均值作为最终结果.
图 8
图 8 不同节点数量下的最大时延指标示意图
Fig.8 Maximum delay indicator under different number of nodes
图 9
图 9 不同节点数量下的流部署开销指标示意图
Fig.9 Flow deployment overhead indicator under different number of nodes
从图8、9可以看出,当节点数量超过20时,利用本文算法得到的最大时延指标和流部署开销指标均优于BF和ReON算法. 这是由于BF和ReON算法在计算过程中仅考虑原控制域内节点,没有考虑到控制器故障后域内部分节点的迁移和新失控节点的加入. 本文的选举算法在Election消息的传递和计算过程中,综合考虑了节点邻居密度和本地区域的流配置需求,导致Election消息偏向于节点密度高和流部署需求高的位置传递,因此性能更优. 结合该实验可以看出,与集中式基于全局考虑控制器故障恢复的方案相比,采用分布式的方式通过合理的参数以及选举流程的设计DCNE算法,能够保证故障恢复后的控制器位置性能,适用于机载网络环境.
5. 结 语
本文针对机载网络环境下的控制器故障恢复问题,提出分布式的控制节点选举算法. 与现有的控制器故障解决方案相比,DCNE算法将控制器的恢复问题交由本地节点间协商解决,基于本地节点获取的局部有限的邻居节点信息,合理计算选举权值,能够有效保证控制器故障恢复后的网络性能,增强了控制平面的健壮性,适用于航空集群的网络环境. 本文首次将分布式的领导人选举算法应用到机载网络环境下的控制器故障恢复问题中,是一种新的尝试,为解决相似网络场景下的该类问题提供了新思路.
参考文献
Are we ready for SDN? Implementation challenges for software-defined networks
[J].DOI:10.1109/MCOM.2013.6553676 [本文引用: 1]
Implementation experience in multi-domain SDN: challenges, consolidation and future directions
[J].
Design considerations for next-generation airborne tactical networks
[J].DOI:10.1109/MCOM.2014.6815904 [本文引用: 1]
软件定义航空集群机载战术网络
[J].
A software defined airborne tactical network for aeronautic
[J].
一种软件定义网络中的控制器热备份及选举算法
[J].DOI:10.3969/j.issn.0372-2112.2016.04.023
Controller hot backup and election algorithm in software-defined networks
[J].DOI:10.3969/j.issn.0372-2112.2016.04.023
一种考虑软件定义网络控制节点故障的控制器部署和交换机迁移方法
[J].
A controller deployment and switch migration approach considering the failure of control nodes in a software-defined network
[J].
一种面向航空集群的集中控制式网络部署方法
[J].
A centralized control network deployment method for aerospace clusters
[J].
On the capacitated controller placement problem in software defined networks
[J].DOI:10.1109/LCOMM.2014.2332341 [本文引用: 1]
Leader election on tree-based centrality in ad hoc networks
[J].
/
〈 |
|
〉 |
