软件定义光网络故障恢复与资源分配

2018-03-29 11:06:24 浏览数 (1)

前言

传统IP分组交换网使用域内路由协议(Interior Gateway Protocol,IGP)和域间路由协议(Border Gateway Protocol,BGP)实现了完美的互联,构建了全球范围内的大规模Internet。但是,随着移动互联网和物联网的快速发展,新业务层出不穷,业务需求也千变万化,传统分布式的网络已不堪重负。同时,由于控制平面与数据平面集于一身的特征,传统网络也面临网络拥塞、设备复杂、运维困难、新业务部署慢等诸多问题。软件定义网络(Software Defined Networking,SDN)打破了传统网络的垂直集成,通过控制与转发分离的方式实现了控制逻辑集中、开放网络编程接口的特点,为网络注入了新的活力,使得网管可以对网络进行灵活地配置与重配置。

SDN的可编程性和开放性也为光网络的革新提供了新的机会。光网络在经历了时分复用(Time Division Multiplexing,TDM)、波分复用(Wavelength Division Multiplexing,WDM)之后也趋于走向未来的基于正交频分复用(Orthogonal Frequency Division Multiplexing ,OFDM)的灵活的弹性光网络(Elastic Optical Networks,EONs)。然而,EONs继续为网络用户提供大容量传输的同时,也对光网络的灵活管控提出了新的挑战。因此,SDN和EONs的结合(SD-EONs,架构如下图所示)会是未来光控制平面的有力解决方案之一,本文将从软件定义光网络中的故障恢复和资源分配两个方面做简短的介绍。

图(a)SD-EONs网络架构;(b)BV-WSS结构;(c)OF-AG结构;(d)ER结构;(e)光流表

一、故障恢复

任何网络都应该具有故障的容忍能力,当然光网络也不例外,恢复力也是光网络中最渴望的属性之一。在SD-EONs中,恢复力通常可以分为保护策略和恢复策略。保护是一种先验式的策略,而恢复是一种反应式的策略。

保护策略是预先规划的,无论网络故障是否发生,它们总是一直存在着。文献1中提供了一种环网的保护策略,利用流表的优先级来预先下发高优先级的工作流表和低优先级的保护流表。网络正常工作时使用高优先级的流表,一旦网络发生故障立即切换到低优先级的流表来恢复网络的通信。保护策略的好处就是故障恢复的时间非常短,因为整个过程不需要额外的信息交互。缺点就是保护路径再次发生故障时无法恢复通信,此外对于大规模复杂的网络拓扑设计完善的保护算法的难度也非常大。

恢复策略需要设计感知故障的方法,同时也要设计用于故障恢复的算法。文献2中利用探测包的方式动态地监测网络链路状态,一旦节点或链路发生故障,光代理模块会将故障信息反馈给控制器,控制器中的故障恢复应用运行动态的路由算法DAPSP(Dynamic All Pairs Shortest Paths)通过重路由的方式来恢复通信。当然,在软件定义的光网络中,控制器的故障也不容忽视,因为一旦控制器发生故障很可能会导致整个网络的瘫痪。文献3设计了一种主从控制器的方案来加强控制平面的鲁棒性。主从控制器之间周期性的同步网络的状态信息。在正常工作状态下,使用主控制器来管控网络,一旦主控制器发生故障,从控制器立即接管网络的控制与管理。

二、资源分配

EONs利用光正交频分复用(Optical Orthogonal Frequency Division Multiplexing, OOFDM)技术可以根据不同带宽的业务请求按需动态的分配频谱资源,并将频谱资源分成许多细粒度的频隙,同时还可以根据请求的需要把频隙进行拆分与聚合,这样就能够节约频谱资源,从而提高频谱资源的利用率。EONs最明显的特征就是弹性可变,多调制模式类型的转发器能够根据业务类型自主地选择最佳的调制等级。在SD-EONs中设计路由与频谱分配算法应该注意频谱连续性、频谱一致性和频谱冲突性三个约束。频谱连续性:是指为每个业务分配的频谱槽必须是连续的,中间没有间隔;频谱一致性:是指对于一个业务来说,在光路径经过的光链路上,应采用相同序号的光谱资源;频谱冲突性:是指不同业务之间需要一定的保护带宽,用以保证每条业务连接请求所占用的频谱间隙不重叠,确保信号在传输、处理过程中不会相互干扰。文献4设计了一个基于频谱效率与连通度(Spectral Efficiency and Connectivity,SEC)的路由调制等级和光谱分配(Routing, Modulation Level and Spectrum Allocation,RMLSA)的算法SEC-RMLSA来提升SD-EONs的业务承载能力。

光流表

在光设备中,数据的转发应该按照光流表来进行操作。一个简单的光流表由输入端口(In Port)、输出端口(Out Port)、中心频率(Central Frequency,CF)、频谱槽宽度(Slot Width,SW)和调制格式(Modulation Format,MF)组成。在这里介绍一种基于Flow_Mod消息扩展光流表的简单方法。

小提示:

!:大端存储;C:char,字符型;B:一个字节长度,无符号字符型;I:4个字节长度,int型;H:两个字节长度;Q:八个字节长度;x:padding;3x:3个字节的padding;5s:5个字节的字符串。

在光设备中,数据的转发应该按照光流表来进行操作。一个简单的光流表由输入端口(In Port)、输出端口(Out Port)、中心频率(Central Frequency,CF)、频谱槽宽度(Slot Width,SW)和调制格式(Modulation Format,MF)组成。在这里介绍一种基于Flow_Mod消息扩展光流表的简单方法。

步骤1:

目录:ryu/ryu/ofproto/ofproto_v1_3.py

首先,先需要把ofp_action_output中的协议格式重新定义,即将原来末尾的6x填充域重定义为3个HHH的格式,分别用于存储中心频率、频谱槽宽度和调制格式。

步骤2:

目录:ryu/ryu/ofproto/ofproto_v1_3_parser.py

接着,在解析和序列化函数中分别添加中心频率、频谱槽宽度、调制格式3个变量。

步骤3:

目录:在你所开发的应用中。

最后,将拟设计算法输出的3个参数加载到action中的末尾。以及将封装好的Flow_Mod消息发送给光代理。

如图所示的结果,利用Wireshark抓到的Flow_Mod消息。

0 人点赞