引言
光突发交换(Optical Burst Switching,OBS)网络是基于现有的技术条件,结合光线路交换和光分组交换的优点,有效实现IP over WDM的解决方案。OBS网络包括核心节点和边缘节点。核心节点的主要功能是根据突发控制包(BCP:Burst Contro1 Packet)提供的信息进行路由和信道资源调度、设置光交换矩阵,为突发数据包BDP (Burst Data Packet)预留全光通道。
考虑到JIT协议调度算法的简单性,调度处理速度很快,调度算法在独立模块中实现并没有必要,反而会由于模块的增加带来额外的延时,而需要消耗更多的处理时间。本文提出了一种面向JIT协议的核心节点控制器的结构,将网络层路由功能和OBS层信道调度功能整合到同一个模块中处理,一方面,模块的整合可以缩短BCP的处理时间;另一方面,该结构中,转发是在调度之后再执行,使得路由选择可以在最优的输出端口没有可用信道的情况下,选择其它可行的输出端口,再进行信道的调度,从而减少丢包的概率。
1 控制器的设计与实现
实现中选用了显式建立、估算拆除的JIT(Just—In—Time)信令协议,该协议只有SETUP消息,没有REALEASE消息。核心节点收到并完成SETUP消息的处理后,立即为其预留资源,并根据SETUP消息中包含的偏置时间和数据包长度估算出释放资源的时间。
1.1 系统组成
图l为OBS核心控制器系统框图,分为接收模块、帧解析模块、交叉矩阵、发送模块、路由和调度模块。在各功能模块之间都设置了缓存结构,使得各个模块可以独立的工作,从而在各模块之间实现流水线式的工作方式。各模块的主要功能如下:
接收模块接收控制信道上的数据,恢复成以太帧后,写入到接收缓存中。
帧解析模块从接收缓存中读取以太帧,解析出相应协议域信息,进行相应处理。如果不是BCP包,直接进行转发操作;如果是BCP包,把调度相关信息发送给路由和调度模块,并根据路由和调度模块返回的消息进行转发或丢弃。
路由和调度模块负责实现网络层的路由选择功能和OBS层的信道调度功能,其中包含一个转发路由表和一个信道资源库,转发路由表保存本节点的路由表信息,用于路由查询;信道资源库记录本节点各输出端口的数据信道资源占用情况,并负责控制光开关矩阵。
交叉矩阵将输入缓存中的分组交换到输出缓存中。发送模块更新BCP包的偏置时间,再将其组成以太帧发送到控制信道上。
1.2 主要模块的设计与实现
1.2.1 帧解析模块
帧解析模块负责解析帧的类型及帧的内容,并作部分网络层协议及OBS层协议的处理,同时控制路由和调度模块的工作。其主要工作可分为如下几个部分:l、从接收缓存中读取收到的数据包,并记录接收到的时间,用于更新BCP包的偏置时间;2、网络层协议的处理,包括类型信息、包长、目的网络地址的获取及TTL的更新等;3、OBS层协议的处理,包括偏置时问的计算及更新,对路由和调度模块的控制等;4、对处理好的数据包,本地包上传到本节点的网管模块,需要继续转发的,则发送到输出缓存中。
帧解析模块的状态转移图如图2所示。上电后首先进入Idle状态,在Idle状态下检查接收缓存是否有新的数据包,有的话则进入ReadMAC状态,读取MAC头信息,判断MAC帧类型,非IP数据包则将其丢弃,否则进入ReadIP状态,这个状态下读取IP数据包的长度,以及类型,TTL等信息,如果是不是BCP包,进入Route状态,进行路由选择,如果是本地包,则上传到网管模块中,否则进入Update状态;如果是BCP包,则进入Route&Schedule状态,启动路由和调度模块的工作。如果调度不成功,则要将该BCP包丢弃,如果成功,也进入Update状态;在Update状态下,对TTL进行更新,如果调度出来的波长号发生改变,也要更新相应信息。之后,就进入Forward状态,将已更新好的数据包发送到输出缓存中,进行下一帧的处理。
1.2.2 路由和调度模块
图3所示为路由表和信道资源库的结构示意图。路由表包含多条路由表项,每条表项包括目的网络地址及输出端口号两部分信息。查找路由的过程为:从首条表项开始,将目的网络地址依次与各表项中网络地址进行匹配,匹配成功即输出端口号。Ptr用来指向当前的匹配表项,如需二次查找,只需从Ptr指向的表项开始继续查找。
信道资源库包含所有端口的信道分配信息,每个端口作为一组,包含一个控制单元CU及一组定时器,每个定时器对应于一个信道。信道空闲时定时器也处于空闲状态,每次为BCP成功分配信道以后,就需要打开光开关控制信号,同时肩动相应定时器,时间设置为偏置时间+预留时间,定时结束,关闭光开关控制信号。控制单元可根据各定时器的工作状态确定各信道的使用状态,进行信道分配。
图3路由表和信道资源库的结构示意图路由和调度功能的实现过程如下:首先检测各帧解析模块的调度请求信号,如果有效,读取目的网络地址,同时启动路由和调度过程,先到路由表查找到第一个与目的网络地址匹配的路由表项,得到输出端口;再到信道资源库里检查该端口是否有空闲的数据信道,有的话预留该信道,设置光开关矩阵,启动相应定时器,调度成功,返回给帧解析模块输出端口和数据信道的信息;如果不存在空闲信道,则需要继续到路由表中查找匹配表项,找到后再次到信道资源库中搜索空闲信道,如此继续;如果搜索完路由表中所有表项后仍无法找到空闲信道,则返回调度失败信号给帧解析模块。
2 实验测试
我们对本设计进行了硬件化实现。图4为用QuartusII工具得到的电路时序仿真图。图中1、2、3、4、5为状态指示信号,依次对应帧接收完成信号、读取状态信号,协议处理状态信号,路由和调度状态信号,转发状态信号;6,7为输出信号,分别对应调度完成信号和光开关设置信号。
图2 BCP包接收处理过程的工作时序(参见结尾)由图4可见,在一个OBS包的处理过程中,依次经历了帧数据的读取、协议处理、路由和调度、转发等多个状态,其中从BCP包接收完成到发出光开关设置信号仅用了lOOns,相比于现有的实现方案,有了很大的提高。完全可以满足现有OBS网络对核心节点开关速度的要求。
3 总结
测试结果表明:接收完BCP包到发出光开关设置信号的最短时间为lOOns。显著缩短了控制包在核心节点的处理时间。