王玉宝 苏 明 王琪龙 李龙飞
(燕山大学信息科学与工程学院 河北省信息传输与信号处理重点实验室 秦皇岛066004)
通信网络经过多年的发展,多协议标签交换(multiprotocol label switching,MPLS)技术已经成为业界成熟并广泛使用的通用网络技术[1]。MPLS 将数据转发功能从数据层面分离出来,用一定长度的标签来表示IP 地址。但是随着光交换技术的发展,波分复用技术日益成熟,光纤骨干网络上带宽逐步提高,网络的效率得以提升,MPLS 的结构却无法满足扩大带宽容量的要求。为了解决这一矛盾,国际互联网工程任务组(Internet Engineering Task Force,IETF)在MPLS 基础上提出了通用多协议标签交换技术(generalized multiprotocol label switching,GMPLS)[2],对MPLS 协议进行了扩展。GMPLS 可以支持光纤、波长等多个粒度,使资源利用率大大提高。
软件定义网络(software defined networking,SDN)是一种新型网络架构[3],相对于传统分布式网络,SDN 具有数据与控制平面分离、软件可编程的特点。SDN 由于其自身数控分离的特点,可使通信网络更加灵活、智能、开放,还可以简化网络配置[4]、节省运维成本,对GMPLS 技术在控制平面提供了良好的支持。
随着业务量的飞速增长,单一的波长交换使网络端口数目与日俱增,网络复杂度越来越高。为降低端口数,文献[5]提出了波带交换(waveband switching,WBS)技术,即业务在波长粒度传输有公共路径时将其进行捆绑,但波带交换面临诸多因素限制,比如带宽的限制、波长利用率有待提高、捆绑波长必须为连续波长、灵活度较低。为缓解这一系列问题,可应用光码分复用技术(optical code division multiplex,OCDM),其优点在于不受带宽和波长连续性限制、灵活度高,缺点是消耗端口数过多和结构复杂度提升[6-7]。基于此,文献[8]提出了面向OCDM 的三层多粒度光交叉连接(multi-granularity optical cross-connect,MG-OXC)结构,并且应用码群路由(code group routing entity,CGRE)技术来优化光交叉连接(optical cross-connect,OXC)结构,仿真结果表明CGRE 的端口数、丢包率优于WBS。
本文为进一步优化端口数目,在文献[8]的基础上增加波带交换模块,对业务进行混合捆绑,构成包含光纤、波带、波长、光码的四层多粒度光交叉连接结构体系,达到增加网络灵活度、降低端口数以及提高波长资源利用率的目的。由于结构复杂度无法避免的提升,四层MG-OXC 对控制系统提出了挑战,为了更好地应对未来网络需求,本文将四层多粒度结构与SDN 相结合,便于网络的灵活控制。
本文结构如下。第1 节介绍了包含波带交换、码群路由体的四层多粒度光交叉连接结构,提出混合捆绑算法并进行举例说明,第2 节介绍了基于SDN 的网络架构,第3 节在波长利用率、端口数、丢包率3 方面对结构性能进行仿真分析,第4 节总结全文。
业务流量传输到光网络的标签边缘路由器(label edge router,LER),LER 给业务流量附加标签,由标签交换路由器(label-switched router,LSR)根据标签传输业务包。将光网络中的标签路由器应用至四层MG-OXC,使其具有四种粒度的交换和上下路能力,具体结构如图1 所示。该结构包括光纤交换模块、波带交换模块、波长交换模块、光码分复用交换模块及控制模块在内的5 个模块,对应了光纤、波带、波长和光码4 个粒度层级;应用了空分复用技术、波分复用技术和码分复用技术。
图1 四层多粒度光交叉连接结构
波带交换根据源节点和目的节点的不同,可以按相同的源和目的地组合、同源或同目的地组合、公共路径组合。
如图2 的光网络示例,LSR1 收到目的地为LSR5 的两个请求,控制模块为其分配的路径公共部分为LSR1→LSR2→LSR6→LSR5,按照波带捆绑策略可将3 条波长捆绑成一条波带,于是一个波带端口就可以完成数据传输。
图2 波带交换示例
虽然波带交换技术在一定程度上提升了波长路由网络的性能,但该技术仍有不足:其一是波带交换技术只是降低了端口数,却没有提升波长资源的利用率;其二,受波长连续性限制,只有连续波长才能进行捆绑;其三,波带交换技术一般都会采用固定粗细的波带,例如每条波带可以捆绑3 条波长。故引入光码分复用交换模块和CGRE 结构,结构上将多个波长管道级联,功能上将多个路径的光码捆绑为虚拟光码管道,其中虚拟光码管道依附于波长存在。相对于波带交换技术,CGRE 虚拟管道的大小可以随着捆绑光码数的多少灵活变化,即光码的捆绑数量没有固定数额限制。由于波长管道的级联,光码可以被自由捆绑至任一有空闲资源的波长,波长资源利用率得到最大化,同时光码可在节点上进行自由地上下路。CGRE 结构如图3 所示,已经捆绑的光码1 和2 可以在级联通道中解绑后按不同波长路径传输,解绑后的光码2 可以和光码3 在级联通道中再次进行捆绑传输。
图3 CGRE 结构
光码的捆绑策略与波带的捆绑策略类似,具有公共路径的光码即可捆绑成CGRE 虚拟管道。在光码捆绑过程中,多个具有公共路径的业务每一跳只需要捆绑一次,则可完成光网络信息的传输任务,无需对每个数据包都进行光码捆绑,简化操作。
如图4 所示,假设LSR1 收到目的节点分别为LSR6、LSR5 的请求,OC1 的最短路径为LSR1 →LSR2→LSR6,OC2 的路径为LSR1→LSR2→LSR6→LSR5。控制模块读取两个数据包基础信息确认资源大小后,由于OC1 和OC2 有公共路径LSR1 →LSR2→LSR6,所以它们在LSR1 经过图3 的结构后捆绑为CGRE 虚拟管道。光码虚拟管道依附于波长存在,OC1 到达LSR6 后解绑下路,OC2 则继续按既定路线到达LSR5。
图4 CGRE 光码捆绑示例
1.4.1 混合捆绑算法
混合捆绑算法包括波带交换和码群路由两部分,波带交换技术可以有效降低光网络的端口数,码群路由体技术致力于提升波长利用率。现将两种技术集合应用至四层多粒度光交换结构中,以提升网络的工作效率,算法过程如图5 所示。主要包括4个方面。
图5 混合算法流程
(1) 分配路径。当LSR 收到请求后,路径计算单元(path computation element,PCE)根据Dijkstra算法为请求包分配最短路径。
(2) 捆绑光码。控制模块根据已分配好的路径,判断至下一跳的路径是否与其他请求存在公共路径。若有公共路径,多个业务的光码通过CGRE结构捆绑为光码虚拟管道。
(3) 选择波长。控制模块在选定路径中筛选有空闲资源的波长,优先选择连续的波长进行光码负载,直到业务负载完毕。
(4) 组成波带。将固定数目的连续波长捆绑成波带,降低端口数。
1.4.2 实例研究
下面用一个实例来描述算法流程,实例的结构如图6 所示。LSR1~LSR7 为标签交换路由器,路径上的数字代表两节点之间的距离,假设整个网络中有3 个请求,请求1 源为LSR1 终点为LSR7,请求2 源为LSR2 终点为LSR6,请求3 源为LSR5 终点为LSR7。
图6 实例结构示意
PCE 根据Dijkstra 算法为3 个请求分配最短路径,结果如图7 所示,即3 个请求的最短路径有公共路径为LSR5→LSR6,请求1 和请求3 有公共路径LSR6→LSR7。所以在LSR5 对3 组请求的光码进行捆绑,组成一个CGRE 虚拟管道,当3 个请求的光码到达LSR6 时,请求2 已经到达目的节点,故请求2的光码下路,请求1 和请求3 的光码则在LSR6 继续捆绑为CGRE 虚拟管道,直至到达目的节点。捆绑的过程如图8 所示。
图7 Dijkstra 算法分配路径结果
图8 CGRE 光码捆绑过程
捆绑的CGRE 虚拟管道根据控制模块分配的路径,筛选有空闲资源的波长进行承载,并且优先选择连续的波长,最后将固定数目的波长捆绑为波带,图9为分配过程。其中图9(a)为所分配路径的某一条光纤通道,假设光纤通道上波长总数为6,波长1、2、3、4、6 有空闲资源,但是只有波长1~3、5 和6连续,优先选择空闲资源足够多的连续波长进行CGRE 虚拟管道负载,所以选择波长1~3 依次对光码进行负载,占满一条波长之后再占用相邻的波长,光码在波长上负载完成后如图9(b)所示。根据已经设定的固定捆绑波长数,若此时设定为3,则可将波长1~3、4~6 分别捆绑为波带进行传输。
图9 光码通过码群路由后的波长选择及波带捆绑
在节点LSR5 的操作完成后传输至LSR6,请求1 到达目的节点,请求1 下路,此时请求2 和请求3仍有公共路径LSR6→LSR7,重复以上步骤,直至到达目的节点。
传统网络架构的数据层面和控制层面在物理层面紧密耦合,在同一个网络设备中,控制协议生成转发表指导设备的转发行为。随着数据流量的急速增长,网络设备不堪重负。将数据层面和控制层面分离,把网络设备的控制功能集中到SDN 控制层中,从而使网络硬件设备可以专注于数据转发。比如为了缓解节点计算压力,IETF 建立了路径计算单元(PCE)网络实体[9],将网络中的路径计算任务全部交由PCE 集中处理,实现了网络结构的数控分离。
与传统网络相比,SDN 具有3 个特性,即转发和控制分离、设备和资源的虚拟化、硬件和软件的可编程。这使得SDN 具有以下优点:第一,硬件设备只关注转发和存储能力,可以使用成本较低的商用架构实现;第二,用软件实现网络的智能性,由软件配置完成网络设备的种类及功能,网络灵活度大幅提升;第三,业务响应速度提升,相比传统网络可以更加灵活地设定网络参数并进行实时配置,同时SDN 应用层可使用户业务的开展更加灵活,大大缩短业务开通的时间[10]。
SDN 的典型架构共分3 层,如图10 所示。上层为应用层,含有多种不同的业务和应用,用户可根据需求灵活定制。中间为控制层,通过北向接口(north-bound interface,NBI)与应用层相连,NBI 拥有可灵活编程的应用程序接口(application programming interface,API)向应用层提供对网络资源的控制,NBI 协议通常包括RESTful、Netconf、CLI 等传统网络管理接口协议,通过南向接口(south-bound interface,SBI)与数据转发层相连。SBI 控制协议包括OpenFlow、Netconf、PCEP、边 界 网 关 协 议(border gateway protocol,BGP)等,控制器将这些接口协议作为转控分离协议。控制层的东西向接口用于SDN和其他网络的互通,尤其是与传统网络进行互通。同时,控制层负责处理数据平面资源的编排,维护网络拓扑、状态信息等,具有弹性部署、安全可靠、动态可配置以及虚拟化的特点[11]。底层为数据转发层,负责基于流表的数据处理、转发和状态收集。
图10 SDN 三层结构
网络用户数的倍增使网络规模快速增加,对PCE服务器的要求也与日俱增。基于码群路由结构的四层多粒度光交换连接体系在资源路径分配方面需要强大的计算支持,随着现代云计算能力的增加和网络功能虚拟化(network function virtualization,NFV)技术逐步成熟[12],将负责路径计算的PCE服务器功能虚拟化为SDN 控制器的一个软件模块,取消备用PCE 结构以降低冗余项,提升网络控制的灵活度、减少维护成本、降低硬件规模。
如图11 的光网络所示,基于GMPLS 的四层多粒度光交叉连接结构体系作为SDN 体系中的数据转发层的一部分,SDN 控制平面提供系统的集中管理。其中SDN 控制平面由OpenDayLight 提供,状态PCE 为控制平面的一个软件模块,并且通过PCEP协议与光交换网络的GMPLS 进行通信,为光网络中的请求分配最短路径。GMPLS 控制业务在光网络中各个粒度的转发,直至请求完成。
图11 光网络示意图
本节基于Python3.8 环境,对波长利用率、端口数、丢包率进行了数学建模仿真,仿真过程及结果见下文。
基于波分复用的波带交换技术在波长端口数量方面有效改善了OXC 的性能,但其在波长利用率方面却有待提升。为了进一步提升OXC 的性能,应用码分复用技术,增加光码粒度层级,提升波长利用率。
在WBS 和OCDM 两种条件下,假设每条波长可承载15 个单位的数据量,每条波长可以解复用为5 个光码,每个光码可承载3 个单位的数据量,令数据量为15、25、35、45、55 的业务分别持续请求100次,两种条件下的波长利用率如图12 所示,OCDM的波长利用率明显优于WBS,所以引入基于OCDM的光码粒度对光交换网络是有利的。
图12 波长利用率
3.2.1 四层和三层MG-OXC 端口数比较
现将基于OCDM 的三层MG-OXC(光纤粒度、波长粒度、光码粒度)提升至四层,增加了波带粒度,在结构上必然会比三层复杂。但面对日益加剧的业务流量,增加波带粒度可以在一定程度上缓解端口数增加的压力。以下将四层和三层MG-OXC进行对比分析。
假设输入有x条光纤,每条光纤含有的波带数为B,每条波带含有的波长数为W,每条波长含有的光码数为C。
光纤交换模块:输入x条光纤,假设其中有αx(α∈[0,1]) 条光纤信号被解复用为波带信号,即需要αx个端口处理这些信号,剩余x′条光纤信号直接进行上下路操作,所以需要2(x +αx +x′) 个端口。
波带交换模块:信号通过光纤交换模块后,传输到波带交换模块的波带信号有y=αx·B条,假设其中有βy(β∈[0,1]) 条波带信号需要进行解复用操作,则需要βy个端口将这些信号处理为波长,剩余y′条波带信号直接进行上下路操作,所以需要2(y+βy+y′) 个端口。
波长交换模块:信号通过波带交换模块后,传输到波长交换模块的波带信号有z=βy·W条,假设其中有γz(γ∈[0,1]) 条波长信号需要进行解复用操作,则需要γz个端口将这些信号处理为光码,剩余z′条波长信号直接进行上下路操作,所以需要2(z+γz+z′) 个端口。
光码分复用模块:信号通过波长交换模块后,传输到光码分复用模块的光码信号有o=γz·C个,则需要o个端口处理信号,假设o′个光码信号要进行上下路操作,所以需要2(o+o′) 个端口。
经以上分析,含有光纤粒度、波带粒度、波长粒度、光码粒度的四层MG-OXC 的端口数为N1=2(x+αx+x′)+2(y+βy+y′)+2(z+γz+z′)+2(o+o′)。由于三层MG-OXC 不含波带粒度,光纤粒度信号直接解复用为波长信号,令z=BW·αx,则其端口数为N2=2(x +αx +x′)+2(z +γz +z′)+2(o+o′)。
假设x=1,B=20,W=5,C=10 没有任何信号进行上下路,α=β=γ=φ=1,x′=y′=z′=o′=0。则四层MG-OXC 结构端口数为2484,三层MG-OXC 结构端口数为2404。由于四层MG-OXC结构多一层粒度,所以在完全没有信号上下路的情况下端口数必然大于三层MG-OXC 结构。
但是在实际情况当中,数据信息是庞大且复杂的,大量的数据信号需要在节点上进行多个粒度的灵活上下路,上一粒度层级信号的上下路会对下一粒度层级的端口需求数产生影响。在本节中两种结构的区别在于波带交换模块,四层MG-OXC 结构中波带会影响后面的波长、光码粒度,所以不能认为两种结构的上层级粒度信号上下路对下层级粒度影响相同,即不能用两种OXC 结构完全没有信号上下路的情况下判断端口优劣。
所以本文分析了输入光纤数在10、15、20、25、30 情况下,B=20,W=5,C=10,α、β、γ、φ为0~1间随机浮点值,然后分别计算20 万次和40 万次,令Q为N1<N2的次数与计算总数的百分比,观察Q的值,结果如图13 所示。Q的值在68%~69%之间,即N1<N2的次数在概率上高于N1>N2的次数,也就是四层MG-OXC 结构在一些动态使用情况下需要的端口数要比三层MG-OXC 结构更少,这说明增加波带粒度可以在一定程度上优化三层MGOXC 结构。
图13 端口数比值
3.2.2 基于CGRE 的四层MG-OXC 端口数分析
仅应用OCDM 所需光码的端口数是非常多的,在上一节的假设中,一条光纤将有1000 个光码需要处理。应用CGRE 后,多个任务的光码可以进行捆绑处理,从而降低端口数,接下来对此结论进行分析验证。
沿用上一节中每条光纤中波带、波长和光码的假设。由于CGRE 的虚拟管道大小可以灵活变动,即在一条CGRE 虚拟管道中捆绑的光码数量是不固定的,所以假设每次捆绑的光码数为n,输入光纤数为x。由于OCDM 和CGRE 仅在光码交换模块具有区别,可以假设两种结构中上层级粒度信号的上下路对下层级粒度影响相同。为计算方便,假设节点的各个粒度层面没有信号上下路。
在此设定下,基于OCDM 的四层MG-OXC 结构将需要2(2x +2y +2z +o) 个端口;而基于CGRE 的四层OXC 结构的端口数由于光码的捆绑,端口数为2(2x+wy +2z +)。n >1 时,经过CGRE 光码捆绑后需要的端口数必然小于未捆绑的,即小于OCDM 的端口数。令x为10,n为0、2、4、6、8、10,端口数需求结果如图14 所示。CGRE 的端口数比OCDM 的端口数少,并且随着CGRE 捆绑光码数的增加,网络消耗端口数目会大幅下降,表明相对于基于OCDM 的四层MG-OXC 结构,CGRE 结构性能有明显的优化。但基于CGRE 的OXC 结构具体捆绑的光码数量需根据实际情况而确定。在某一条波长中捆绑的光码数过多时,多址干扰也会增大,多址干扰的增加会影响网络丢包率的上升,不能为了端口数的降低而舍弃对网络质量的要求,要合理规划光码捆绑数量。
图14 基于CGRE 的端口数分析
在基于WBS 和OCDM 的四层MG-OXC 的体系中,光码误码对整个体系业务传输的影响是十分巨大的。传输过程中单重合码错误会导致整个码序列出错,从而发生丢包。但是将光码进行合理捆绑可以缓解这种情况,接下来将OCDM 和CGRE 的丢包率进行对比分析。
光码捆绑的数目越多,多址干扰也随之增加[13]。假设标签中单重合码错误会致使整个码序列出错,在光码捆绑数达到最大值时,分析光码捆绑条件下对丢包率的影响。
假设在一个波长上光码路径数(可进行光码捆绑)为k,资源利用率为ρ,则n条路径可以捆绑的概率为B,B服从二项分布:
假设现有N个请求的下一跳路径相同,在光码捆绑数最大化的条件下基于CGRE 的四层MG-OXC结构的丢包率PLP为
其中BER为单重合码的误码率,标签长度用L表示。
假设N个请求在基于OCDM 的四层MG-OXC结构中得到了均衡分配,则丢包率PLP为
下面分析光码捆绑数极大时的丢包率情况,现假设参数为ρ=0.7,k=10,BER=0.15,标签长度L=8。当光码捆绑数n为3、4、5、6 时,丢包率与同时发送的请求数N的关系如图15 所示。
图15 丢包率
捆绑的数目n=5 时丢包率接近OCDM,n >5时丢包率会超过OCDM,n <5 时丢包率比OCDM要小,由此发现光码捆绑数目越多丢包率越高。虽然OCDM 和CGRE 的丢包率都随着发送请求的用户请求数N的增加而增加,但将光码进行合理的捆绑,CGRE 的丢包率会小于OCDM 的丢包率,并且由上一节可知基于CGRE 的端口数目也会显著下降,表明CGRE 可以很好地提升网络性能。
本文在基于波带交换的基础上增加光码粒度,构成包含光纤、波带、波长、光码的四粒度光交叉连接结构。介绍了波带交换技术的原理及策略,发现使用波带交换对于网络端口数的降低具有显著效果。为进一步提升四层MG-OXC 结构性能,引入CGRE 结构体,应用SDN 在控制平面对系统集中管理,构成基于CGRE 的四层MG-OXC 混合捆绑体系,在此基础上提出了混合捆绑算法。
为确定系统性能,本文在波长利用率、端口需求数、丢包率3 方面进行仿真模拟。在基于WBS 和OCDM 的波长利用率对比中可以看出OCDM 具有更高的波长利用率。在基于OCDM 的三层MGOXC 基础上增加WBS 构建四层MG-OXC 结构,通过对比端口数目消耗,发现增加WBS 可以在一定程度上缓解OCDM 端口数消耗过多的不足;而在均含有WBS 的四层MG-OXC 的端口数对比中,CGRE 明显比OCDM 所需要的端口数少,说明CGRE 可以进一步优化四层MG-OXC 的结构性能。但通过CGRE和OCDM 的丢包率对比,发现合理的光码捆绑可以降低丢包率,而过多的光码捆绑数却导致丢包率上升。由此可知,基于WBS 和CGRE 的混合捆绑可以提高波长利用率、平衡端口数压力,并且合理的光码捆绑可以降低网络丢包率,证实混合捆绑算法对网络性能的提升有促进作用。
但是在实际操作中光码捆绑数目的合理阈值还无法确定,有待后续研究。