基于动态调控的通信策略

时间:2022-08-19 02:33:17

导语:基于动态调控的通信策略一文来源于网友上传,不代表本站观点,若需要原创文章可咨询客服老师,欢迎参考。

基于动态调控的通信策略

1AC板间通信总体结构及功能

AC在多板架构中对外展现的是一个完整系统,而内部是基于ATCA架构,包含两种类型的板卡:主控板和业务板。主控板的功能是对各个业务板的业务下发、状态控制以及设备维护;业务板的功能是对接入点和用户的业务进行处理并将其状态上传。要将AC的多板架构对外展现出一致性,就需要板间通信的协同。AC的多板构架及模块组成如图1所示。在AC板间通信中,使用Linux操作系统[1]的套接字作为板间通信的基础,有以下好处:(1)有一个已经实现的协议栈,可以支持各种应用层协议,能够对板间通信提供稳定的支撑。(2)统一的平台使板间通信方法更具有通用性,可以在多个类型的板卡(如X86,mips,powerPC等)硬件架构上使用。(3)使板间通信有了清晰的网络层次结构,实现于传输层及以上、应用层之下。可为应用层提供服务;而在传输层以下,直接使用协议栈的接口。当需要增加新的底层通信通道时,可以加入新增的底层实现方式,并调用即可。实现了层次架构的可扩展性。本文中的板间通信方法是分层次的,保证了数据信令层和管理维护层的分开传输,既可以将多个板卡之间的数据进行收发处理,又对各个板卡进行监控维护。板间通信模块的分层结构如图2所示管理维护层为各个板卡的状态提供有力支撑。主控板在启动时,会对业务板进行动态的发现,确定板卡是否存在,并获取其基本信息。在建立关联之后对板卡状态进行维护管理,通过心跳检测功能确定板卡状态。若板卡异常,则会立即通知应用。数据信令层为各个板卡提供数据传输通道。主控板在管理维护层发现板卡成功之后,就会开启板卡的数据信令层通道,等待业务板进行连接,之后板卡之间就通过此通道进行数据业务的发送,附带有保活机制。

2AC板间通信设计原理

基于以上功能需求,对AC板间通信的设计在管理维护层和数据信令层的方法是分而治之的[2]。两个平面既有交集又相互独立,这是维护板卡AC和底层支撑的关键。在实现方式上,管理维护层由于要实现板卡发现和心跳维护,因而使用UDP广播发现;数据信令层需要考虑可靠的数据传输以及消息的确认,则使用TCP方式来实现[3]。

2.1管理维护层设计原理

主控板对业务板的管理是通过管理维护层来实现的。主控板上维持着业务板的状态机,运行在主控板上的管理维护层还需同其他模块进行交互。图3所示为管理维护层的状态机的状态迁移图。各状态分析如下:发现状态:每个板卡从ATCA机框的接口可以获取各自的板卡槽位号。业务板在刚启动时通过广播来发现主控板,主控板会对广播进行单播响应。若主控板未响应,则业务板会重发发现请求消息。加入状态:在业务板收到发现响应消息,即发现了主控板后,会发送加入请求消息到主控板,主控板则对请求作出回应。配置状态:业务板进入加入状态初期,还不能正常运行,因为板卡上没有信息,也没有接入点和用户的上下文,此时要发送配置消息来请求配置。数据检查状态:主控板配置业务板完成后,业务板检查自己的状态是否正确,如果正确,则进入运行状态。运行状态:在此状态下业务板可以正常转发数据,可以接收主控板的配置消息(添加或删除某个接入点或用户的上下文),还要定期向主控板发送心跳消息,让主控板知道业务板仍在正常工作。如果心跳检测失败,则通知上层应用,通过指令令其重启。重置状态:当主控板几次没有对心跳消息作出回应时,进入此状态。一段时间后,业务板将重启,进入最初始的状态。通过管理维护层的几个状态的转换,主控板就可以动态地将业务板关联起来,并实时地维护板卡状态,对有问题的板卡,马上对应用及数据信令层进行上报。另外,在进入加入状态之后,管理维护层会为数据信令层提供节点号(板号)到IP地址或端口的映射。由于该映射是动态记录的,在板卡发生变化时就会产生新的映射关系。

2.2数据信令层设计原理

数据信令层依靠管理维护层对各个板卡实现的关联,用TCP[4]为应用建立一条可靠的数据通路,使应用可以使用这个专用通道进行数据的传输,并通过消息的方式通知应用收取消息,或者从应用的消息队列中取出消息发送到对应业务板上。图4所示为数据信令层的状态机的状态迁移图。各状态分析如下:初始化状态:为各个板卡进行初始化配置,创建选择、消息队列和信号量。判断管理维护层进入加入状态之后,跳转到下一个状态。选择/连接状态:主控板此时会进入选择状态,对每一个业务板进行通道建立及I/O(输入/输出)复用;业务板此时会通过之前从管理维护层中获取的主控板IP等信息,对板卡进行连接状态连接;由于数据信令层的可靠性一定程度承载在管理维护层之上,因此会很快建立起连接,并将连接保持。接收/发送状态:此状态是从应用收取消息,发送到指定板卡以及从对板收到消息,交付给指定的应用的一个状态。在接收到管理维护层的命令或者TCP的保活异常时都会进入重置状态。重置状态:进入此状态,则说明板卡出现了不可恢复的问题,会马上重新进入初始化状态。基于以上两个层次的协同合作,就可以为AC提供稳定的板间通信方法。

3板间通信运行结果

根据设计原理用C语言编程[5]实现,使用一台在网络中的ATCA平台业务管理系统中的3块单板,其中一块单板作为主控板,另两块作为业务板,这3台主机同时运行板间通信模块。主控板的工作设置为向业务板进行消息广播,同时接收业务板发送过来的消息。业务板的工作设置为向主控板发送消息,并接收主控板发送过来的消息。各个板卡的板号由ATCA接口提供。在应用的使用过程中,并不会感知到板间通信管理维护层的存在,而只是认为有板间通信数据信令层在工作。实际上,在应用发送消息之前,管理维护层已经使主控板对各个板卡进行了关联。

4结束语

本文设计的板间通信是适用于最新构架的AC的一种动态调控的板间通信策略。管理维护层可以动态获取ATCA机框上板卡信息,并使之关联,为业务面提供支持;业务面可以借助管理维护层的信息,使各个板卡实现数据的可靠传输,大大增强了AC在大流量多用户情况下的运行稳定性。

本文作者:杜勇余勋玲熊桂兰工作单位:光纤通信技术和网络国家重点实验室