著录项信息
专利名称 | 一种微型复合网络数据交换系统 |
申请号 | CN201410527343.3 | 申请日期 | 2014-10-09 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2015-02-18 | 公开/公告号 | CN104363185A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/865 | IPC分类号 | H;0;4;L;1;2;/;8;6;5查看分类表>
|
申请人 | 许继电气股份有限公司;许昌许继软件技术有限公司 | 申请人地址 | 河南省许昌市许继大道1298号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 许继电气股份有限公司,许昌许继软件技术有限公司 | 当前权利人 | 许继电气股份有限公司,许昌许继软件技术有限公司 |
发明人 | 沈沉;宋彦锋;徐云松;任红旭;王西邓;汤洋;李英明;包伟;顾峰;马仪成 |
代理机构 | 郑州睿信知识产权代理有限公司 | 代理人 | 胡泳棋 |
摘要
本发明涉及一种微型复合网络数据交换系统,属于网络通讯技术领域。本发明的微型复合网络数据交换系统,包括应用层、网络层、链路层和物理层,网络层包括数据包交换协议模块、数据包交换模块、数据包管理模块、数据包流入接口和链路层接口,链路层接口中封装有物理层和链路层。本发明通过将节点互联的物理层和链路层封装在网络层的链路层接口中,使网络层只看到链路层接口,看不到下两层的具体细节,网络层提供应用层API,使应用层可以直接基于网络层工作,从而实现多样性的网络接口接入、应用层透明点对点通讯、报文的实时性能和QoS保证、网络可扩展等功能。
一种微型复合网络数据交换系统\n技术领域\n[0001] 本发明涉及一种微型复合网络数据交换系统,属于网络通讯技术领域。\n背景技术\n[0002] 一般的网络应用,例如以太网、现场总线网络等,设备采用标准的总线接口和通讯协议通过总线互联在一起,专用通讯设备例如交换机、总线控制芯片等来完成物理层、链路层以及报文交换等功能。这种场景下联网的设备需要足够多,才有价值去部署一个这样的总线型通讯网络。\n[0003] 在工业领域,经常会遇见联网设备不是很多,可能来自不同的供应商,并且联网接口存在多样性的微型网络应用。例如图1所示,设备A和设备B通过专用的通道1直接连接,设备B又和设备C通过另外一条专用的通道2直接连接,其中通道1、2可能是以太网、485网络,CAN总线等等相同或者不同的物理层。对于这样的情况,三个设备上的应用层如果需要进行报文交互,就需要做一些特殊的繁琐的处理。\n发明内容\n[0004] 本发明的目的是提供一种微型复合网络数据交换系统,以实现在包含有限的网络节点的网络上,网络节点上的应用程序之间能够进行透明的点对点实时数据通讯。\n[0005] 本发明的技术方案是:一种微型复合网络数据交换系统,包括应用层、网络层、链路层和物理层,所述的网络层包括数据报交换协议模块、数据报交换模块、数据报管理模块、数据报流入接口、链路层接口和应用层通讯接口,所述的链路层接口中封装有物理层和链路层,所述的应用层通讯接口工作在网络层上,提供了两种应用层API。\n[0006] 所述的数据报交换模块设置有一个目标节点ID表,表中的每一个条目顺序对应一个网络节点ID,表里面的每个条目内存储了可以访问到对应网络节点的本地链路层接口的接口编号;检索表时直接以ID为下标对表进行访问,以达到快速的目的,表的条目数等于通讯网络内除了本地节点以外的所有节点数,系统内如果需要增加通讯节点,需要把新增的节点信息添加到所有节点的ID表配置数据。\n[0007] 所述的数据报管理模块设置有若干数据报缓冲区,各个缓冲区对应不同的数据报优先级,不同优先级的数据报进入不同的缓冲区,以实现对不同优先级的数据进行分流和隔离。\n[0008] 所述的数据报管理模块还设置有与数据报缓冲区相对应的实时任务,每个任务的运行优先级不同,低优先级任务可以被高优先级任务抢占;每个任务分别管理一个数据报缓冲区;任务的运行优先级分别和缓冲区内数据报的优先级对应。\n[0009] 所述的数据报缓冲区和实时任务配合工作,当数据报缓冲区内没有数据报时,实时任务处于挂起状态;当数据报进入对应缓冲区后,会唤醒对应的实时任务进行数据处理;\n如果低优先级的数据报正在被处理时,高优先级的数据报进入缓冲区,则低优先级数据报的处理会被中断,优先处理高优先级的数据报,当高优先级的处理完成以后,低优先级的继续处理;该数据报交换模块根据该特征,实现了数据报的QoS功能。\n[0010] 所述的数据报流入接口用于供链路层接口在收到的数据报传递到数据报管理模块对应优先级的缓冲区中时进行调用。\n[0011] 所述的链路层接口包括初始化接口和数据报发送接口,所述的初始化接口用来完成接口的初始化工作,数据报发送接口用来把数据报发送到接口连接的网络上。\n[0012] 所述的应用层通讯接口所提供两种应用层API分别为基于回调模式的应用层API和基于句柄模式的应用层API。\n[0013] 所述的基于回调模式的应用层API在每个网络节点中定义了一个数据报处理函数表,每个表项包含一个端口号,一个数据报处理函数以及一个函数参数;向应用层提供注册接口,使应用层可以向数据报处理函数表中注册处理函数,以实现数据报的直接、快速处理;当收到发送给本地节点的数据报时,数据报管理模块会在函数表中查找对应端口数据报的处理函数;如果找到则直接调用处理函数来完成对数据进行处理,否则丢弃;处理完以后该数据报的生命周期结束。\n[0014] 所述的基于句柄模式的应用层API,包括创建句柄、发送数据和接收数据接口函数,其特征在于:可以根据数据报的端口号、数据报缓冲区大小来创建本地的处理句柄;发送接口可以通过创建的句柄,来向目标节点发送指定优先级的数据报,发出的数据报的端口和句柄的端口号一致;接收接口可以收到别的网络节点发到本地的句柄对应端口的数据报。\n[0015] 本发明的有益效果是:本发明的微型复合网络数据交换系统,包括应用层、网络层、链路层和物理层,网络层包括数据报交换协议模块、数据报交换模块、数据报管理模块、数据报流入接口和链路层接口,链路层接口中封装有物理层和链路层。本发明通过将节点互联的物理层和链路层封装在网络层的链路层接口中,使网络层只看到链路层接口,看不到下两层的具体细节,网络层提供应用层API,使应用层可以直接基于网络层工作,从而实现多样性的网络接口接入、应用层透明点对点通讯、报文的实时性能和QoS保证、网络可扩展等功能。\n附图说明\n[0016] 图1是本发明的一种最小系统示例图;\n[0017] 图2是本发明中数据报交换模块结构及模块间数据流图;\n[0018] 图3是数据报交换系统的协议格式及其在以太网上的映射示意图;\n[0019] 图4是网络节点内部数据报交换系统的数据处理过程示意图;\n[0020] 图5是微型复合网络实时数据报交换系统的示意图。\n具体实施方式\n[0021] 下面结合附图对本发明的具体实施方式作进一步的说明。\n[0022] 为了说明本发明的微型复合网络实时数据报交换系统,首先先建立一个网络系统,如图5所示,该网络系统由5个网络节点组成。为了描述方便,5个网络节点以以太网点对点连接的方式串行连接在一起,实时数据报交换系统和TCP/IP等其他的网络协议栈一起,共享以太网的物理层和链路层。该数据报交换系统如图2所示,主要分为四层,应用层、网络层、链路层和物理层,物理层是网络节点之间的物理连接,可以是串口、以太网、CAN总线等各种介质,链路层是工作于不同物理层介质之上链路控制。为实现网络节点上的应用程序之间能够进行透明的点对点实时数据通讯,而不用关心网络节点间不同的物理层、链路层互联方式,本发明将节点互联的物理层和链路层封装在网络层的链路层接口中,网络层只看到链路层接口,看不见下两层的具体细节。网络层是实现该数据报交换系统的核心,实现了基于QoS(quality of service)数据传输,为不同优先级的数据提供了不同的实时处理性能,包括数据报交换协议模块、数据报交换模块、数据报管理模块、数据报流入接口和链路层接口。\n[0023] 数据报交换协议模块包含了交换协议的报文头,报文头包含了数据报的源节点ID、目的节点ID、数据报的生存周期TTL、数据报的端口号、应用数据长度以及数据优先级。\n数据从应用层进入数据报交换网络时要添加该报文头,离开交换网络进入应用层时要剥离该报文头。报文交换协议定义了数据报在网络内传播的属性,源节点ID定义了数据报的发起者;目的ID定义了数据报的接收者;数据报的生存周期TTL定义了数据报在网络内传播时最大通过的节点数,每穿越一个网络节点后TTL要递减一,当递减到零时数据报不再传播;\n数据的优先级定义了数据报在网络内的QoS特征。\n[0024] 数据报交换模块主要负责完成数据报的实时转发功能。模块内部定义了一个目标节点ID表,表中的每一个条目顺序对应一个网络节点ID;表里面的每个条目内存储了可以访问到对应网络节点的本地链路层接口的接口编号;当数据报需要转发给其他节点时,直接以ID为下标对表访问表,取得对应的链路层接口,然后通过对应接口把报文转发出去,以达到快速报文交换的目的;该处理采用了以太网交换机根据MAC地址表进行数据报交换的原理。表的条目数等于通讯网络内除了本地节点以外的所有节点数;系统内如果要增加通讯节点,更新所有节点的ID表配置数据。\n[0025] 数据报管理模块,定义了八个数据报缓冲区,八个实时任务分别对一个缓冲区进行管理,不同优先级的数据报进入不同的缓冲区,以实现对不同优先级的数据进行分流和隔离;每个任务的运行优先级不同,可以被高优先级任务抢占,或者是抢占低优先级的任务;当数据报缓冲区内没有数据报时,实时任务处于挂起状态;当数据报进入对应缓冲区后,会唤醒对应的实时任务进行数据处理;如果低优先级的数据报正在被处理时,高优先级的数据报进入缓冲区,则低优先级数据报的处理会被中断,优先处理高优先级的数据报,当高优先级的处理完成以后,低优先级的继续处理;该数据报交换模块根据该特征,实现了数据报的QoS功能。如果数据报是发给本地节点,对调用本地处理接口进行处理,处理完以后该数据报的生命期结束;如果数据报是发给其他节点的,对应会把报文里的TTL减一,如果TTL变成零,则丢弃报文,否则检索目标节点ID表,把数据报从表项中对应的链路层接口发出;通过TTL的机制,抑制了网内风暴的形成。\n[0026] 数据报流入接口,节点的链路层接口可以通过调用该接口,把收到的数据报传递到数据报管理模块对应优先级的缓冲区中,然后激活对应的管理任务,然后返回;管理任务被激活后完成对数据报的处理;数据报的流入和处理是异步进行的。\n[0027] 链路层接口抽象了的接口包括初始化、数据报发送函数入口,以适应基于不同链路层、物理层的网络接口的互联,例如以太网、RS422/485串口网络、CAN总线等;接口对网络层隐藏了具体互联网络的物理层、链路层的实施细节,以实现不同网络节点的网络层间的透明通讯;初始化接口完成接口的初始化工作;数据报发送接口用来把数据报发送到接口连接的网络上。网络层中定义了一个链路层接口表,每个表项对应节点和外部网络连接的一个接口;节点初始化时要向节点的链路层接口表注册所有和外部互联的接口;所有注册的接口按注册顺序编号。\n[0028] 应用层主要由应用层完成特定的通讯报文处理,网络层提供了应用层API,使应用层可以直接基于网络层工作,降低了网络通讯层次的复杂度,提高了通讯的效率和可靠性。\n不同网络节点的应用层能够通过使用这些API,建立透明的点对点会话,会话的两端使用相同的数据报端口,不对源端口和目的端口分别处理,这样简化了端口处理,提高处理性能。\n会话隐藏了不同的物理层、链路层、网络层的实现细节,应用程序不再关心复杂的网络关系。网络层还设置有应用层通讯接口,该通讯接口工作在网络层上,提供了两种应用层API,分别为基于回调模式的应用层API和基于句柄模式的应用层API。\n[0029] 基于回调模式的应用层API在每个网络节点中定义了一个数据报处理函数表,每个表项包含一个端口号,一个数据报处理函数以及一个函数参数;向应用层提供注册接口,使应用层可以向数据报处理函数表中注册处理函数,以实现数据报的直接、快速处理;当收到发送给本地节点的数据报时,数据报管理模块会在函数表中查找对应端口数据报的处理函数;如果找到则直接调用处理函数来完成对数据进行处理,否则丢弃;处理完以后该数据报的生命周期结束。\n[0030] 基于句柄模式的应用层API,包括创建句柄、发送数据和接收数据接口函数,其特征在于:可以根据数据报的端口号、数据报缓冲区大小来创建本地的处理句柄;发送接口可以通过创建的句柄,来向目标节点发送指定优先级的数据报,发出的数据报的端口和句柄的端口号一致;接收接口可以收到别的网络节点发到本地的句柄对应端口的数据报。\n[0031] 上述微型复合网络数据交换系统的工作过程及原理如下:\n[0032] 数据报交换协议模块以枚举的方式定义了通讯系统内所有参与通讯的节点的ID;\n整个网络系统维护一个静态的网络节点ID分配表,如表1的网络节点ID分配表,固定配置了每个网络节点的ID,当网络系统的节点出现变化(节点增加,减少等)的时候,需要对该表的配置作出相应的更改。\n[0033] 表1\n[0034]\n[0035] 每个网络节点另外一个必须存在的列表就是目标节点ID表,它的结构如表2所示,描述了每个网络节点的链路链接关系,例如图5中的网络节点2的目标节点ID表,该节点通过编号为1的网口与网络节点1、2进行数据交互,通过编号为2的链路接口与网络节点4、5进行数据交互,从图上可以看到这个映射关系和节点的链路接口连接是一致的,这个表格需要随着各个节点网口连接的改变而改变。需要注意的是,由于为了达到快速处理的目的,检索该表时直接以ID为下标对表进行访问,所以本节点号也必须在表中体现,不过其对应的链路接口值为空(因为不可能存在以本节点为目的节点的转发需求)。\n[0036] 表2\n[0037]\n[0038] 网络节点的应用如果有处理数据报交换协议格式的报文的要求,需要由该应用将其数据处理的回调函数及参数注册到应用回调注册表(结构如表3所示)条目里,这个注册过程需要通过数据报交换系统模块提供的注册函数接口完成。以图5所示的节点3的应用回调注册表为例,可以看到这个节点的应用层分别注册了四个回调函数,handle01、handle02、handle32和handle13,其中handle01需要处理来自节点1且数据报端口为1的数据,handle02需要处理来自节点1且数据报端口为2的数据,handle32需要处理来自节点4且数据报端口为2的数据,handle13需要处理来自节点2并且数据报端口为3的数据。节点3的维护数据报交换系统的任务,在接收到各个节点(目标节点ID表上存在的节点)发过来的复合数据报交换协议格式的数据报后,首先判断是否需要本节点处理的数据报,不是传给本节点的数据报的话就查询节点连接映射表决定是否转发,否则就需要轮询应用回调注册表,来检查是否有满足节点号和数据报端口映射关系的数据报,如果有就调用表中对应的回调函数处理数据,如果没有则视为无效数据报,扔掉。\n[0039] 表3\n[0040]\n[0041] 为了更直观的认识本发明的微型复合网络实时数据报系统对数据的处理方式,下面按照图5的网络系统描述一个数据报的传送交换过程,比如节点1需要发送数据报端口为\n1的数据报给节点3:\n[0042] 首先节点1的应用调用数据报交换系统的数据报发送API,这个API函数接口首先会遍历节点1的目标节点ID表,确定目的节点3的条目是否存在,如果不存在应用数据会被认为无效而放弃发送。如果确认条目存在,就按照数据报交换系统的数据报格式将应用的信息和数据报封装起来:目的mac和源mac都为全0xff;数据报交换系统的协议类型符标志为0x9000;数据报交换协议头部结构里面的目的节点ID设置为2,源节点ID设置为1,生存时间设置为5(网络总节点数),数据报端口为1,应用数据设置为应用数据字节数;数据报最后数据就是应用数据。数据报封装完成之后,将数据从目标节点ID表节点3的条目里映射的网卡编号对应的网口发送出去。到目前为止,节点1的发送过程完成。\n[0043] 从图5节点1的网口连接关系可知,节点1向网卡编号1的网口发送的数据报数据通过硬件链路被传送到节点2的网卡编号为0的网口,节点2的数据报交换系统处理模块首先会分析数据复合数据报交换协议类型(0x9000),然后根据目标节点ID表确认是否接收节点\n0的数据,从图5中可以看到,映射表中存在节点0的条目,所以数据被数据报交换系统处理模块接收并判断该数据报是否需要本节点应用层程序处理(根据该数据报的源节点和数据报端口是否与应用回调注册表条的条目匹配来确定),由与图5中节点2的应用回调注册表和刚接收到的数据报的信息不匹配,所以数据报不需要本节点处理;之后就根据目标节点ID表判断,有该数据报的目的节点3的条目存在,所以根据条目里面节点3映射的网络端口号,数据报从本节点的网络端口3转发出去。到目前为止,节点2完成了数据的转发工作。\n[0044] 如图5所示,数据报从节点2的网络端口3发送出来之后被传送到节点3的网络端口\n1,数据报在节点3的数据报交换系统处理模块处理的前期过程和节点2基本相似,不同之处是,在判断应用回调注册列表的时候,发现节点1(ID为0)发送的数据报端口为1的数据报需要再本节点处理,处理回调函数为名为handle01,参数arg01,那么该数据报被传给应用层进行相应处理。\n[0045] 以上简述了本发明的数据报交换系统中单一类型的数据报发送、转发与处理的过程。当网络上需要传输多种类型数据报(复合数据报)的时候,数据报交换系统处理模块会根据数据报端口的优先级(优先级需要在数据报交换系统初始化的时候设置好)将数据报传送给不同的数据缓冲队列,保证优先级高的数据报先处理。这一处理方式实现了网络系统的QoS功能,保证本网络交换系统在处理多种类型的数据报共网的时候,各类数据报的处理都能在规定的时间内完成。
法律信息
- 2021-09-17
未缴年费专利权终止
IPC(主分类): H04L 12/865
专利号: ZL 201410527343.3
申请日: 2014.10.09
授权公告日: 2017.12.15
- 2017-12-15
- 2015-03-25
实质审查的生效
IPC(主分类): H04L 12/865
专利申请号: 201410527343.3
申请日: 2014.10.09
- 2015-02-18
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-06-12
|
2013-02-23
| | |
2
| |
2007-10-17
|
2007-03-26
| | |
3
| |
2009-10-14
|
2008-04-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |