微型复合网络实时数据报交换系统

2018-04-11 02:48宋彦锋
自动化仪表 2018年2期
关键词:网络层物理层应用层

沈 沉,宋彦锋,杨 芳

(许继电气技术中心,河南 许昌 461000)

0 引言

在工业领域,联网设备不多、来自不同供应商且联网接口存在多样性的微型网络较为常用[1-2]。例如,设备A和设备B通过专用通道1直接连接,设备B和设备C通过专用通道2直接连接,而通道1、2可能是以太网、 RS-485网络、CAN总线等相同或不同的物理层[3]。对于这样的情况,三个设备的应用层如果要进行报文交互,就必须作一些特殊、繁琐的处理。

本文设计的微型复合网络实时数据报交换系统,可在包含有限网络节点的网络上,实现各网络节点上应用程序之间透明的、点对点的实时数据通信,而无需关心网络节点间不同的物理层、链路层互联方式[4]。

1 交换系统架构实现

该数据报交换系统通信层次分为应用层、网络层、链路层、物理层,如图1所示。

图1 系统通信层次示意图

物理层是网络节点之间的物理连接,可以是串口、以太网、CAN总线等各种介质。链路层是工作于不同物理层介质的链路控制。本文涉及节点互联的物理层和链路层被封装在网络层的链路层接口中,网络层只看到链路层接口,却看不到物理层和链路层的具体细节。

网络层是实现该数据报交换系统的核心。该层定义了数据报交换模块、数据报管理模块、链路层接口模块等,并且实现了基于服务质量(quality of service,QoS)[5-8]的数据传输层,为不同优先级的数据提供了不同的实时处理性能。

应用层主要完成特定的通信报文处理。网络层向应用层提供了应用程序编程接口(application programming interface,API),使应用层可以直接基于网络层工作,降低了网络通信层次的复杂度,提高了通信的效率和可靠性。

2 交换系统协议简析

2.1 网络层协议的实现

网络层定义并实现了以下协议功能。

①数据报交换协议。该协议是通用协议,可以映射到以太网、RS-485、CAN等数据协议,在协议上支持应用层数据的透明传输。数据报交换协议及其在以太网报文上的映射,如图2所示。

图2 数据报交换协议及其映射示意图

从应用层数据报进入网络层时,会添加由一个报文交换协议类型符标志(0x9000)和一个报文头形成的一个新报文进入链路层。报文头包含数据报目的节点ID、源节点ID、数据报的生存周期(time to live,TTL)、报文端口号、应用数据长度以及数据优先级等信息。当报文从网络层进入应用层时,该报头会被剥离,传递至应用层的仅为应用数据。

②数据报交换模块。该模块主要负责完成数据报的实时转发。模块内部定义了一个目标节点ID表,表中的每一个条目依次对应一个网络节点ID,且每个条目都存储了可以访问到对应网络节点的本地链路层接口的接口编号。当向其他节点转发数据报时,直接以ID为下标遍历访问表,取得对应的链路层接口,然后通过对应接口将报文转发出去,以达到快速交换报文的目的。该处理方式采用了以太网交换机根据MAC地址表进行数据报交换的原理[9]。表的条目数等于通信网络内除了本地节点以外的所有节点数。系统内如果要增加通信节点,则必须更新所有节点的ID表配置数据。

③数据报管理模块。该数据报交换系统定义了八个数据报缓冲区。八个实时任务分别对应其中一个缓冲区,并对其进行管理。不同优先级的数据报进入不同的缓冲区,以实现对不同优先级数据的分流和隔离。每个任务的运行优先级不同,可以被高优先级任务抢占,或者是抢占低优先级的任务。当数据报缓冲区内没有数据报时,实时任务处于挂起状态;当数据报进入对应缓冲区后,会唤醒对应的实时任务进行数据处理。当低优先级的数据报正在被处理时,高优先级的数据报进入缓冲区,则低优先级数据报的处理会被中断,优先处理高优先级的数据报;当高优先级的处理完成以后,低优先级的继续处理。根据以上的功能特点,该数据报管理模块实现了数据报的QoS功能[10-12]。如果数据报是发给本地节点的,调用本地处理接口进行处理;处理完成以后,该数据报的生命期结束。如果数据报是发给其他节点的,处理任务会对报文的TTL减1。如果TTL变成0,则丢弃报文;否则检索目标节点ID表,通过数据报交换模块,将数据报从表项中对应的链路层接口发出(数据报交换模块)。该模块通过TTL的机制,抑制了网络风暴的形成。

④数据报流入接口。节点的链路层接口可以通过调用数据报流入接口,将收到的数据报传递到数据报管理模块对应优先级的缓冲区中,激活对应的管理任务后返回。管理任务被激活后,完成对数据报的处理。数据报的流入和处理是异步进行的。

⑤链路层接口。抽象的接口(包括初始化、数据报发送函数入口),可适应基于不同链路层、物理层的网络接口的互联,例如以太网、RS-422/485串口网络、CAN总线等。接口对网络层隐藏了具体互联网络物理层、链路层的实施细节,以实现不同网络节点的网络层间的透明通信。初始化接口完成接口的初始化工作;数据报发送接口用于将数据报发送到接口连接的网络上。在网络层中定义了一个链路层接口表,每个表项对应节点和外部网络连接的一个接口。节点初始化时,向节点的链路层接口表注册所有和外部互联的接口。所有注册的接口按注册顺序编号。

2.2 应用层API协议的实现

应用层完成特定的通信报文处理。网络层提供了应用层API,使应用层可以直接基于网络层工作,降低了网络通信层次的复杂度,提高了通信的效率和可靠性。网络层主要提供了以下两种应用层API。

①基于回调模式的应用层API。在每个网络节点中,定义一个数据报处理函数表。每个表项包含一个端口号、一个数据报处理函数以及一个函数参数。通过向应用层提供回调函数注册接口,使应用层可以向数据报处理函数表注册处理函数,以实现数据报的直接、快速处理。当收到发送给本地节点的数据报时,数据报管理模块会在函数表中查找对应端口数据报的处理函数。如果找到,即直接调用处理函数来完成对数据进行处理;否则丢弃。

②基于句柄模式的应用层API。其包括创建句柄、发送数据和接收数据三个接口。可以根据数据报的端口号、数据报缓冲区大小来创建本地的处理句柄。发送接口可以通过创建的句柄向目标节点发送指定优先级的数据报,发出的数据报的端口和句柄的端口号一致。接收接口可以收到别的网络节点发到本地的句柄对应端口的数据报。句柄模式的应用层API是基于回调模式的应用层API实现的。创建句柄时,在数据报处理函数表中注册了指定端口的处理函数。当注册的处理函数被调用时,会将收到的数据报加入句柄内部的缓冲区中;在通知应用层数据准备好后,返回函数。句柄模式的应用层的发送和接收接口具备阻塞功能,调用时可以设定阻塞时间。如果阻塞期间接口响应了请求,则返回结果;否则,返回超时。阻塞时间可以设置为0,此时数据收发接口工作在非阻塞模式。

通过以上两种应用层API进行通信,不同网络节点的应用层能够建立透明的点对点会话。会话的两端使用相同的数据报端口,不分别处理源端口和目的端口,简化了端口处理,提高处理性能。会话隐藏了不同的物理层、链路层、网络层影响实现细节,使应用程序不再受复杂的网络关系的影响。

3 交换系统的应用示例

以一个3节点最小网络为例,说明本交换系统的特点和使用方法,如图3所示。节点之间可以通过以太网、串口网络或者CAN总线连接。不同的网络需要在链路层接口作抽象处理,因此交换系统的上层接口无需关心具体的物理连接方式。

图3 最小系统示例图

(1)整个网络需要静态分配网络节点ID。交换网络具备三个节点,其节点连接如图4所示。对每个节点静态地分配一个节点ID。每个节点ID在网络中必须是唯一的。

图4 节点连接示意图

(2)网络中的各个节点通过硬件接口依次连接。接口编号是节点自身的通信接口的编号。通信接口物理层可以是以太网口、CAN节点或者串口。两个直连的通信接口物理层必须相同,没有直连的通信接口物理层可以不同。

①节点1的接口1和节点2的接口0直连,这两个通信接口必须一致。

②节点2的接口3和节点3的接口1直连,这两个通信接口必须一致。

③其他没有直连的通信接口可以不同。

(3)每个节点维护一个目标节点ID表。该表用来维护目标节点和本节点链路接口编号的映射。比如图4中:节点2的接口3直连到节点3的接口1,节点1的数据可以通过节点2传递到节点3的接口1。因此,节点3的目标节点ID表中目的节点1和目的节点2映射的链路接口编号都为1。其他节点的目标节点ID表同理。

(4)每个节点还需要维护一个应用回调注册表,以接收或者丢弃数据报的选择。每个节点的应用回调注册表可以有多个条目。

(5)节点应用层利用本交换系统发送数据时,需要明确以下关键参数。

①目标节点ID:交换系统需要根据目标节点ID找到链路接口编号,然后通过相应链路接口发送数据。

②数据报文端口号:接收端需要根据该端口号选择应用回调函数。在应用的角度,该端口号具备应用数据类型的含义。

③数据报优先级:接收端根据数据报的优先级作相应的处理,实现QoS功能,优先处理优先级高的数据报,保证数据实时性。

4 结束语

本文提出了数据包优先级的概念,并基于该概念实现了微型复合网络实时交换系统的QoS功能,保证了本网络交换系统在多种类型数据报共网时,能在规定的时间内处理各类数据报。交换系统提供的接口对网络层隐藏了具体互联网络的物理层、链路层的实施细节,以实现不同网络节点的网络层间的透明通信。该系统适用于有限节点的网络互连、对报文实时性要求高的微型网络系统。系统中物理层的各个设备可以通过各种以太网、交换机、现场总线等连接。

参考文献:

[1] 张学辉.基于以太网和现场总线的工业控制网络实训系统设计[J].自动化仪表,2017,38(3):41-43.

[2] 杨晓华,侯巍,王树新,等.基于CAN总线的分布式控制网络设计[J].低压电器,2006,38(1):40-42.

[3] 沈航,徐红泉,蔡慧,等.工业以太网和现场总线[J].工业仪表与自动化装置,2015,38(1):6-9.

[4] 曹健,刘琼,王远.基于数据流转发的实时数据交换系统设计[J].计算机应用,2016,36(3):596-600.

[5] 王瑾瑶.以太网协议模型的演进分析[J].机械管理开发,2013,133(3):106-107.

[6] 刘正蓝,朱淼良,姜明,等.QoS协议及体系结构研究综述[J].浙江大学学报(工业版),2003,37(3):288-294.

[7] 钟川,黄陶明.分层QoS关键技术分析[J].现代计算机,2009(1):111.

[8] 林闯,王元卓,任丰原.新一代网络QoS研究[J].计算机学报,2008,31(9):1525-1535.

[9] 李研,周明辉,李瑞超,等.一种考虑QoS数据可信性的服务选择方法[J].软件学报,2008,19(10):2620-2627.

[10]王延年,郑晓庆.基于数据优先级的Ad hoc网络MAC协议研究[J].郑州大学学报(工业版),2011,32(2):93-96.

[11]王春霞.基于数据和能量优先等级改进WSN中S-MAC协议的研究[J].河南科技,2015,33(4):569-573.

[12]杨玺,刘少强,樊晓平,等.实时监测的混合式无线传感器网络多路径路由研究[J].计算机应用研究,2008,25(4):1237-1239.

猜你喜欢
网络层物理层应用层
基于K-ML-MPWFRFT的物理层安全传输技术
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
论物联网安全威胁及其应对策略
基于分级保护的OA系统应用层访问控制研究
一种应用于5G基于LDPC码的物理层包编码
物联网技术在信息机房制冷系统中的应用
卫星通信物理层安全技术探析
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair