ETB在列车网络控制系统中的应用研究
朱红岗 张哲瑞
摘要:针对列车网络控制系统中以太列车骨干网络的传输及网络协议特性,文章给出了ETB构成及编组拓扑,从底层初始化、列车拓扑发现协议初始化、协议管理和软件初始化4个方面介绍,模拟了ETB网络的具体流程,实现了ETB网络节点的自动编组。
关键词:以太列车骨干网络;列车拓扑发现协议;自动编组
以太列车骨干网络是将工业以太网的带宽高、速率快、实时性好等特点引入了列车网络中,以适应未来列车网络系统发展的方向。以太列车骨干网络(Ethernet Train Backbone,ETB)与工业以太网的不同之处在于网络拓扑结构、禁止使用生成树、快速生成树协议和网络初始化协议。株洲时代电气针对ETB的初始化协议提出了一种分布式比较算法,使用了链路层的LLDP协议来建立所有节点的信息,最后形成一个连接向量表。本文研究了ETB的编组形式及协议组成,模拟了ETB网络的数据流,实现了列车ETB网络节点自动编组。
1.ETB网络拓扑
ETB网络拓扑结构采用线性结构,每个ETBN有两个参考方向,从Tc2车指向Tc1车为方向1,从Tc1车指向Tc2车为方向2。车辆的物理连线使ETBN的方向1与车辆的方向1相同,这样保证了多个节点情况下,每个节点的方向1应是相同的,列车通信方向也一致。列车的首节点地址是01,其余节点按总线方向2从02开始按递增顺序依次编号,最后命名的节点为尾节点。列车上的终端设备,可以直接连接到以太列车骨干网节点(ETB Node,ETBN)上。以太列车骨干网拓扑结构如图1所示。
以太列车骨干网主要包括4个部分:底层初始化、运行TTDP协议、协议管理、软件初始化。底层初始化使得底层能够顺利实现收发数据的工作,运行TTDP协议完成ETB网络的编组和通信,在编组成功后分配IP地址,协议管理和软件初始化完成对应用层数据的传输控制,实现列车网络的顺畅运行。
2.底层初始化
底层初始化软件主要完成4个方面的功能。
2.1线程的初始化
负责程序所有底层线程的初始化,接口API函数对各种数据结构进行填充,如port:端口号,interface:ETB网口的标识号等。
线程初始化包括:实现线程的链表结构的初始化;开启所有线程;初始化路由表;初始化客户端;取得相应的端口的IP等信息;连接vns server。
线程初始化组件的数据结构包括:路由器ID号、区域ID号、更新频率、OSPF协议的hello帧的间隔时、路由更新时间、ARP ttl时间、nat超时时间、线程指针函数、路由表、ARP协议地址映射、ARP队列、客户端命令、路由更新协议、nat协议表结构、nat保持线程、nat表唤醒条件、ARP线程、OSPF协议的hello线程、OSPF协议的更新线程、OSPF超时处理线程、迪克斯加算法处理线程、路由更新广播线程、路由广播更新协议唤醒条件、路由器状态线程、上次路由器状态保持结构、本地ip过滤列表、日志文件等。
2.2内存的初始化
内存初始化接口函数为mem init(),主要完成内存初始化。
2.3内存栈的管理的初始化
内存栈初始化接口函数为mems init(),主要实现内存栈初始化。
2.4对数据包进行管理
数据包管理完成所有的数据包函数的初始化。
3.TTDP协议初始化
TTDP协议完成对ETB的网络节点进行编组。TTDP协议包含HELLO帧和TOPOLOGY帧。每个ETB节点会不停地检测ETB上的其他节点,在方向1和方向2上通过多播方式周期性发送这两个数据帧。HELLO帧用于检测相邻ETBN的情况,根据帧的源MAC地址来查找自己的转发表,确定ETBN的左右节点并记录,更新左右节点表,即连接向量域(Connectivity Vector),如果ETB上只有一个ETBN,则一段时间后自动宣布进入稳态。TOPOLOGY帧用于检测网络上所有可能出现的节点的编号情况,根据拓扑对总表进行一次更新,即ETBN向量域(ETBN Vector),对整个列车进行编组。
列车网络的安全性能和级别较高,考虑到冗余控制策略,实现带冗余的TTDP协议包发送流程,主要分为以下3个线程:
线程1:发送TTDP HELLO帧,构建相邻节点广播包,并且将该包通过mac层发送至相邻节点,测试节点之间的物理连接,并且建立ETBN向量表,用来描述方向1或方向2上所有节点的连接关系。
线程2:接收和发送TTDP TOPOLOGY帧,接收全局广播包,判断是否本節点发出,若是,则丢弃该数据包;若否,更新本节点mac表,同时将相邻节点广播包发送至全局网络,向其他ETBN通告本节点的拓扑发现信息,同时建立连接表Connectivity Table,并更新自己的连接表。
线程3:发送冗余判别广播包,热备端ETBN不断地发送心跳包到其余ETBN,若收到其余ETBN心跳包应答信息,热备端保持;若未收到应答信息,则执行冗余切换,由备份ETBN接管热备端的所有运行工作。
4.协议管理
协议管理,完成编组车辆间的网络通信协议管理,分为5部分:
(1)端口初始化:获取网13IP地址,对IP地址和MAC地址进行定位。
(2)ARP数据处理:打包并发送ARP格式的hello帧,管3~ARP的队列。
(3)OSPF hello数据处理:基于OSPF协议而开发的Hello包并定时发出,用于发现相邻ETBN、建立连接关系、选举DR和BDR、确保双向通信。
(4)OSPF lsa数据处理:打包并发送OSPF~lsa帧格式数据并定时发出。OSPF lsa数据主要类型有:路由链路信息:链路Router-id,接口地址,接口网络,接口类型。网络链路信息DR通告。汇总链路ABR通告。(d)通告外部路由。
(5)OSPF lsa timeout数据处理:打包并发送OSPF的lsa timeout帧格式并定时发出,用于探测lsa数据帧是否超时。
5.软件初始化
软件初始化,完成编组车辆间的数据交互。在端口正常状态下,判断网络协议类型:
(1)是否是ARP数据包,判断为ARP应答,则更新队列,返回目的地址不可达。判断为ARP请求,请求IP与网口地址一致则进行ARP应答,不一致则丢弃该报文。
(2)判断是否是IP数据包,若是则进入IP数据处理线程;若以上两种数据包都不是,则丢弃该报文。
其中,IP数据处理线程分为以下3部分:
(1)是否为OSPF广播包,若目的地址与网口地址匹配,进行OSPF迪克斯加算法处理;若不匹配,查看路由下一跳是否存在,若存在下一跳,TTL减1,进行校验和,发送数据包,若不存在下一跳,返回目的地址不可达。
(2)是否为TCP或者UDP报文,若为TCP包,进行TCP数据处理;若为UDP包,返回目的地址不可达。
(3)是否为ICMP报文,若为ICMP包,执行应答请求,创建应答数据,否则,返回目的地址不可达。
6.结语
本文介绍了列车网络控制系统中以太列车骨干网络ETB的构成和编组拓扑,从底层初始化、列车拓扑发现协议TTDP初始化、协议管理和软件初始化4个方面详细说明了模拟ETB网络的具体流程,实现了ETB网络中列车节点的自动编组,后续工作将研究列车网络控制系统中的以太编组网络。