CN102510383A - 一种具有网络流量整形的航空电子通信中间件系统 - Google Patents
一种具有网络流量整形的航空电子通信中间件系统 Download PDFInfo
- Publication number
- CN102510383A CN102510383A CN2011103711389A CN201110371138A CN102510383A CN 102510383 A CN102510383 A CN 102510383A CN 2011103711389 A CN2011103711389 A CN 2011103711389A CN 201110371138 A CN201110371138 A CN 201110371138A CN 102510383 A CN102510383 A CN 102510383A
- Authority
- CN
- China
- Prior art keywords
- frame
- packet
- protocol
- function module
- ethernet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种具有网络流量整形的航空电子通信中间件系统,该系统包括配置文件解析功能模块、协议转换功能模块与流量整形功能模块;其中协议转换功能模块由数据帧检测单元、帧结构重填单元以及SN插入单元构成。本发明中间件系统基于NDIS模型的改造,通过对数据帧结构重填与SN插入,实现了航空电子全双工交换式网络协议与TCP/IP协议的互相转换,通过内核态的延时数据包发送,实现了对数据包流的整形。最终获得的航空电子通信中间件能够作为普通以太网与航空电子全双工交换式网络的连接部件,实现航空电子应用通信过程透明的在航空电子全双工交换式网络上运行。
Description
技术领域
本发明属于网络通信领域,涉及到一种应用于航空电子全双工交换式以太网与普通以太网进行信息交互的通信中间件,通过此中间件,具有网络流量整形特征的航空电子全双工交换式网络能够与基于TCP/IP协议的普通以太网实现透明通信。
背景技术
网络流量整形是航空电子全双工交换式以太网确定性机制实施的根本保障技术之一。在数据源通过对待发送的同一逻辑链路(虚拟链路)承载的前后相邻数据帧之间的时间间隔进行限制和约束,降低和平滑虚拟链路上数据帧的突发流量,从而达到数据源端发送消息限流的目的,保证虚拟链路逻辑带宽预分配机制,增强网络通信确定性过程。网络流量整形以每个虚拟链路为基本单元,在每个带宽分配间隔(Bandwidth Allocation Gap,BAG)中,发送的帧的数目不会多于一个。
具有流量整形特征的航空网络,具备有消息传输时间确定性保证的能力,因此它适用于大型飞机航空电子系统的网络组建,能够满足我国航空电子网络系统的综合化互联应用和发展的技术要求。进行航空电子系统组网的关键元素包括端系统(End System,ES)和交换机(Switch)。
中间件处于操作系统与航空电子应用中间。中间件在操作系统、网络之上,航空电子应用之下,为处于自己上层的航空电子应用提供运行与开发环境,帮助系统开发者灵活、高效地开发和集成航电应用。
为了实现基于TCP/IP协议的航空电子应用能够透明地在适用于网络流量整形的航空电子全双工交换式以太网上运行和通信,在通信的双向都需要进行通信协议转换,利用中间件在通信模型中的位置,可以在此基础上在端系统集成处于内核态的通信协议中间件,并配合用户态应用程序,实现将COTS(Commercial-off-the-shelf,译文为商用现成品或技术)技术下已有的航空电子应用通信无缝地接入到航空电子全双工交换式网络中。
发明内容
本发明提供了一个具有网络流量整形的航空电子通信中间件系统。该系统包括配置文件解析功能模块、协议转换功能模块与流量整形功能模块。其中协议转换功能模块由数据帧检测单元、帧结构重填单元以及SN插入单元构成。
所述协议转换功能模块利用检测条件对数据包进行检测,当数据包从普通以太网进入到航空电子网络时,检测条件为数据帧的物理分层、协议类型以及源端口号,当数据包从航空电子网络进入到普通以太网时,检测条件为数据帧的物理分层、MAC头以及VL_ID信息位,对符合检测条件的数据包进行航空电子网络通信协议帧格式与普通以太网TCP/IP协议的互相转换。具体而言,当数据帧由普通以太网进入到航空电子全双工交换式以太网络中时,中间件对数据帧的物理分层、协议类型以及端口号进行检测,当检测到物理分层不小于3,协议类型为UDP(由于航空电子全双工交换式以太网中采用UDP数据包进行通信,因此,本发明通信中间件只对UDP数据包进行处理。)并且源端口与用户配置源端口号一致时,本发明中间件系统对该数据帧完成帧格式从TCP/IP协议到航空电子全双工交换式网络协议的转换;当数据帧由航空电子全双工交换式网络进入到普通以太网时,本发明中间件系统通过对数据帧的物理分层、MAC头以及VL_ID的检测,来确定该数据帧是否为航空电子全双工交换式以太网数据帧且来自于用户设定的需要处理的虚拟链路。如果数据帧是航空电子全双工交换式以太网数据帧并且此数据帧的VL_ID与用户设定的需要处理的虚拟链路的虚拟链路标识符相同,本发明中间件系统则对该数据帧完成帧格式从航空电子全双工交换式网络协议到TCP/IP协议的转换。
所述流量整形功能模块是在数据帧由普通以太网进入到航空电子全双工交换式以太网络中时,针对航空电子全双工交换式以太网虚拟链路调度模型,利用NDIS内核调度延迟功能,实现的流量整形机制,即保证数据帧的帧间间隔不小于规定的时间间隔,从消息生成规律上直接限制接入航空电子全双工交换式以太网的通信带宽,保障了航空电子全双工交换式以太网络的通信确定性。
在本发明中间件系统处理数据帧时需要的数据:数据帧检测条件、帧结构重填区段以及帧间间隔,是在配置文件解析功能模块中进行定义,并对配置文件进行解析,从而将数据传递至协议转换功能模块与流量整形功能模块。
本发明具有网络流量整形的航空电子通信中间件系统的优点在于:
①本发明采用在通信模型中的数据链路层实施协议转换,对基于TCP/IP协议的已有航空应用来说,提供了一种透明的接入到航空电子全双工以太网的接入方式,已有航空电子应用(第三方应用)不会感知在接入航空电子全双工和普通以太网的不同,在网络的升级过程中,最大化保护了已有开发资源,降低了网络接入难度。
②本发明采用系统服务的方式提供中间件协议转换的实现,安装简单,操作方便,不影响正常基于TCP/IP协议通信过程,同时采取基于配制的方式实现网络行为定制,显著增强了网络接入的灵活性和可配置性。
附图说明
图1是本发明中间件系统的功能模块结构框图。
图2为本发明中间件系统的在端系统上的工作层次。
图3为本发明协议转换功能模块中由TCP/IP协议到航空电子全双工交换式网络协议帧格式转换的实现流程。
图4为本发明协议转换功能模块中由航空电子全双工交换式以太网协议到TCP/IP协议帧格式转换的实现流程。
图5为本发明流量整形功能模块的实现流程。
图6为航空电子全双工交换式以太网协议帧格式。
图7为本发明流量整形功能的原理。
图8为本发明进行航空电子全双工交换式网络与普通以太网通信的流程图。
具体实施方式
下面将结合附图对本发明做进一步的详细说明。
本发明基于NDIS(Network Driver Interface Specification,译文为:网络驱动接口规范)模型的改造,通过对数据帧结构重填与SN(Sequence Nubmer,译文为:顺序号)插入,实现了航空电子全双工交换式网络协议与TCP/IP协议的互相转换,通过内核态的延时数据包发送,实现了对数据包流的整形。最终获得的航空电子通信中间件能够作为普通以太网与航空电子全双工交换式网络的连接部件,实现航空电子应用通信过程透明的在航空电子全双工交换式网络上运行。
图1为本发明的功能模块图。中间驱动程序在上端开放出一个Miniport(译文为:微端口)接口103,在其下端开放出一个Protocol(译文为:协议)接口104。其中位于上面的Miniport接口103与上层驱动程序的Protocol接口102进行对接。同样的,下面的Protocol接口104同底层驱动程序的Miniport接口105进行对接。这样在安装了航空电子全双工交换式网络协议中间件的系统中,从上层向外界网络发送的数据包和从外界网络接收的数据包都必须经过中间层驱动程序的处理再继续传递。中间层驱动程序由配置文件解析模块107,协议转换功能模块108和流量整形功能模块109构成,其中协议转换功能模块108又分为数据帧检测单元110、帧结构重填单元111与SN插入单元112。图中所示每个小黑块代表一个数据包,多个数据包形成数据包流120,相邻两个数据包的时间间隔记为Treal,则有第一数据包与第二数据包之间的时间间隔记为Treal1、第二数据包与第三数据包之间的时间间隔记为Treal2、第三数据包与第四数据包之间的时间间隔记为Treal3。利用流量整形功能模块109对数据包流120进行流量整形后,数据包流120中相邻数据包之间的时间间隔发生了改变,用户配置的帧间间隔记为TBAG,则有第一数据包与第二数据包之间的帧间间隔记为TBAG1、第二数据包与第三数据包之间的帧间间隔记为TBAG2、第三数据包与第四数据包之间的帧间间隔记为TBAG3。当数据包流从普通以太网向航空电子全双工以太网发送时,对于检测到协议类型为UDP(即ip_p=17)(ip protocol,译文为:IP帧协议)且源端口号与配置文件解析功能模块107传递来的Usport(Userdefined source port,译文为:用户定义源端口号)参数相等的数据帧,将先经过协议转换功能模块108的处理,即将数据帧的结构进行重新填充以及进行SN的插入。设置检测条件ip_p=17,是由于航空电子全双工交换式以太网中采用UDP数据包进行通信,因此,本发明中间件系统将只对UDP数据包进行处理。经过协议转换功能模块108的处理后,数据帧格式将从TCP/IP协议帧格式转换成航空电子全双工交换式以太网协议帧格式规范。协议转换功能模块108中所需Usport参数以及帧结构重填字段均由配置文件解析功能模块107提供。接下来,流量整形功能模块109将会对从协议转换功能模块108输出的数据包流进行进一步处理。利用实际帧间间隔Treal与用户配置帧间间隔TBAG比较的结果来判别是否对数据包流进行整形,如果Treal<TBAG,则对数据包流整形。例如图示中,计算到Treal1<TBAG,则对数据包进行流量整形处理,当数据包从流量整形功能模块109输出时,时间间隔Treal1已经规整到TBAG1,则TBAG1=TBAG;计算到Treal2<TBAG,则对数据包进行流量整形处理,当数据包从流量整形功能模块109输出时,时间间隔Treal2已经规整到TBAG2,则TBAG2=TBAG;计算到Treal3>TBAG,这样的数据包将不被处理,在从流量整形功能模块109输出时,时间间隔未发生改变,仍满足TBAG3=Treal3。当在普通以太网接收数据包时,配置文件解析功能模块107对配置文件113进行解析,获得AvionicsVL_ID(Avionics Virtual Link Identifier,译文为:航空电子网络协议帧虚拟链路标识符)、TTL(Time to live,译文为:生存时间),DesIP(Destination IP Address,译文为:目的IP地址)与DesMAC(Destination Mac address,译文为:目的MAC地址)参数。AvionicsVL_ID参数被传递至数据帧检测单元110,TTL、DesIP与DesMAC参数被传递至协议转换功能模块108。从Protocol接口104输出的数据包先经过协议转换功能模块108的数据帧检测单元110的处理,数据帧检测单元110检测通过数据帧的MAC头来确认该数据帧是否为航空电子全双工交换式以太网协议帧,若数据帧是航空电子全双工交换式以太网协议帧,进一步检测该数据帧的VL_ID(Virtual Link Identifier,译文为:虚拟链路标识符)信息位511是否与用户配置的AvionicsVL_ID参数一致。若一致,数据帧进入帧结构重填单元111处理。帧结构重填单元111利用TTL,DesIP与DesMAC参数并根据TCP/IP协议帧格式规范对数据帧结构进行重新填充,保证进入到普通以太网的数据包符合TCP/IP协议帧格式规范。
图2为本发明在端系统上的工作层次。在端系统集成处于内核态的中间层驱动程序(AvionicsTransfer.sys),并配合用户态应用程序(RESETPARA.EXE),实现了基于TCP/IP协议的航空电子应用透明地在适用于网络流量整形的航空电子全双工交换式以太网上运行和通信。处于内核态的中间层驱动程序主要实现了对数据帧的协议转换,以及数据流的整形。处于用户态应用程序为用户提供了方便的配置界面,实现了与中间层驱动通信的功能。
在本发明中,上层应用程序与中间层驱动通信是通过NDIS协议驱动程序和传输驱动程序接口进行信息传递的,包括枚举网络适配器,以及向中间层层驱动传递参数。
在本发明中,枚举网络适配器:由于中间层驱动程序实现了枚举网络适配器的例程,因此可以向中间层驱动程序发送一个I/O控制命令,就能获得相应的适配器的名称以及中间层驱动创建的对应设备的符号链接。用户可以指定航空电子通信中间件被绑定的网卡。
参见图2、图6所示,向中间层驱动传递参数:处于用户态的应用程序为用户提供了配置界面,用户在配置文件中按照规定的格式填入配置参数,然后在与本发明中间件系统配合使用的RESETPARAL.EXE(reset parameter.exe,译文为:重置参数应用程序)中执行重置配置文件命令,配置流则通过传输驱动程序接口传递至中间层驱动程序,为中间层驱动程序使用。用户需要在配置文件113中输入的配置信息包括三部分:数据帧检测条件、帧结构重填区段以及帧间间隔。数据帧检测条件参数有:Usport、AvionicsVL_ID;帧结构重填区段参数有:VL_ID606(Virtual LinkIdentifier,译文为:虚拟链路标识符)、User_Defined_ID602(User definedidentifier,译文为:用户定义标识符)、Interface_ID603(Interface identifier,译文为:接口标识符)、Partition_ID608(Partition Identifier,译文为:分区标识)、TTL,DesIP,DesMAC;帧间间隔参数:BAG(Bandwidth Allocation Gap,译文为:带宽分配间隔)。
图3给出了协议转换功能模块中由TCP/IP协议到航空电子全双工交换式网络协议转换的实现流程。普通以太网TCP/IP协议数据包流120从Miniport接口103输出后,进入到协议转换功能模块108。先被数据帧检测单元110拦截,依次对数据包的物理分层(PhisycalPage),协议类型以及源端口号进行检测。当不满足条件PhisycalPage>=3时,数据帧不被处理,直接从协议转换功能模块108输出并传递至网卡。当满足条件PhisycalPage>=3时,数据帧检测单元110进一步检测数据帧的协议类型。当检测到协议类型不为17时,数据帧不再被处理,直接从协议转换功能模块108输出并传递至网卡。当检测到协议类型为17时,进一步检测数据帧的源端口号,当检测到数据帧的源端口号和用户配置的源端口号Usport不一致时,数据帧不再被处理,直接从协议转换功能模块108输出并传递至网卡。当检测到数据帧的源端口号与Usport参数一致时,数据帧进入到下一功能单元帧结构重填单元111的处理。选择条件PhisycalPage>=3,是为了保证数据帧检测单元110能顺利地按照数据包的存储方式(链表结构)寻找到数据包IP头和UDP头首地址,使得在帧结构重填单元111中使用Address->Next(译文为:地址->下一节点)寻址为有效操作。在帧结构重填单元111,先获取数据帧的首地址,即获取到了数据帧MAC头的首地址,再根据用户配置的User_Defined_ID、Interface_ID、VL_ID参数以及航空电子全双工交换式以太网协议的源MAC格式(图6中c)、目的MAC格式(图6中d)对数据帧的MAC进行重新填充。然后使用MacHAddress->Next(Mac HeadAddress->Next,译文为:数据帧MAC头首地址->下一节点)获取IP头首地址,再根据用户配置的User_Defined_ID602、Partition_ID608、VL_ID606参数以及航空电子全双工交换式以太网协议的源IP格式(图6中f)、目的IP格式(图6中g)对数据帧的IP头进行重新填充,并且重新计算头部校验和。最后使用IPHAddress->Next(IP Head Address->Next,译文为:数据帧IP头首地址->下一节点)获取UDP头首地址,将UDP校验和置0。帧结构重填单元111所需的User_Defined_ID、Interface_ID、Partition_ID以及VL_ID参数由配置文件解析功能模块107对用户设定的配置文件113进行解析而获得并传递过来。经过帧结构重填单元111处理后的数据帧进入到SN插入单元112。在SN插入单元112,首先对数据包的分片标识IP_MF(IP-more flagment flag,译文为:IP帧的更多分片标识)进行检测,根据其IP_MF的不同,对数据包进行分类处理。如果检测到IP_MF=0x0000,则该数据包后无分片包对IP_MF=0x0000的数据包,申请一字节长度的内存以及一字节长度的BUFFER(译文为:缓存),然后将申请的内存以及BUFFER进行物理映射,并在内存中存入SN。最后将BUFFER插入数据包存储结构的链表尾。如果检测到IP_MF=0x2000,则该数据包后还存在其他分片包,并且该数据包的数据长度为1472。对于IP_MF=0x2000的数据包,先计算出它是第i个分片包。i=Flag_offset/1480,其中Flag_offset为片段偏移量,i>=0。对于第i个分片包,先将其数据段末尾i+1位进行拷贝,然后从其数据段的起始位开始,逐位右移i位。接着再将从第i-1个分片包数据段末尾拷贝的i位数据按顺序存入第i个分片包数据段的前i位,最后将第i个分片包数据段的末位替换成SN。。然后对数据帧的Interface_ID603进行检测,经过帧结构重填单元111处理后的数据帧包含有Interface_ID603信息,根据Interface_ID603的值能够判断以太网MAC控制器连接到航空电子全双工交换式网络的冗余网络A(Interface_ID=001)还是网络B(Interface_ID=010)。对进入到两种不同网络的数据帧需要分别使用SN进行顺序标识。若检测当前数据帧与上一数据帧的Interface_ID相等时,SN++;若不相等,则将SN置0。SN初始值为0,并且由0至255循环。
图4给出了协议转换功能模块108中由航空电子全双工交换式以太网协议到TCP/IP协议帧格式转换的实现流程。从普通以太网卡接收到的数据包流从Protocol接口104输出后,进入到协议转换功能模块108。先被数据帧检测单元110拦截,首先检测数据帧的物理分层(PhisycalPage),当不满足条件PhisycalPage>=3时,数据帧不被处理,直接从协议转换功能模块108输出并传递至传输层。当满足条件PhisycalPage>=3时进一步检测数据帧MAC头,如果检测到MAC头中MAC目的地址前32bit为“xxxx xx11xxxx xxxx xxxx xxxx xxxxxxxx”形式,与航空电子全双工交换式以太网协议目的MAC格式的固定域605一致,并且MAC源地址的前24bit为“000000100000000000000000”,与航空电子全双工交换式以太网协议源MAC格式的固定域601(如图6所示)一致,则判定该数据帧为航空电子全双工交换式以太网协议帧。如果检测到数据帧的MAC头与航空电子全双工以太网协议MAC格式不匹配,数据帧将不被处理,直接从转换功能模块108输出并传递至传输层。对判定为航空电子全双工交换式以太网协议帧的数据帧继续检测它的VL_ID 606是否与用户配置的需要处理的虚拟链路对应的虚拟链路标识符(AvionicsVL_ID)一致,若一致,则该数据帧进入到下一功能单元帧结构重填单元111的处理,如果不一致,数据帧将不再被处理,直接从转换功能模块108输出并传递至传输层。在帧结构重填单元111,先获取数据帧的首地址,即获取到了数据帧MAC头的首地址,根据用户配置的DesMAC参数对数据帧的目的MAC进行重新填充。然后使用MacHAddress->Next获取IP头首地址,再根据用户配置的DesIP参数对数据帧的目的IP头进行重新填充,并将数据帧的生存时间填写为用户配置的TTL参数,重新计算头部校验和。最后使用IPHAddress->Next获取UDP头首地址,重新计算UDP校验和。经过数据帧检测单元110和帧结构重填单元111处理的数据帧完成了由航空电子全双工交换式以太网协议帧格式到TCP/IP协议帧格式的转换。
图5给出了流量整形功能模块的实现流程。数据包流进入流量整形功能模块109后,判断数据包是否排在数据包缓冲区的首位,若数据包排列不在首位,则进行排队等待,待缓冲区内在此数据包之前无数据包时,数据包从缓冲区输出。若数据包排列在首位,数据包直接从缓冲区输出。系统时间记为Systemtime,记录每个数据包从缓冲区输出时的系统时间,记为Systemtime 1。记录每个数据包从流量整形功能模块109输出时的系统时间,记为Systemtime 2,计算当前数据包与上一数据包输出流量整形功能模块109的实际时间间隔Treal=Systemtime 1(当前数据包)-Systemtime 2(上一数据包),(Treal与系统时间的单位均为100ns)判断实际时间间隔Treal与TBAG(TBAG单位为100ns)的大小。若Treal≥TBAG,则此数据包无需调整,直接从流量整形功能模块109输出,并记录输出时的系统时间Systemtime 2;若Treal<TBAG,则对该数据包作流量整形处理。首先计算流量整形的延时长度θ=Treal-TBAG。TBAG=BAG×10000,BAG为用户配置的帧间间隔参量,范围为0至128,单位为ms;然后利用内核延时NdisStallExecution(译文为:NDIS停止执行)函数循环实现延时。设置NdisStallExecution函数延时长度为10μs, 为确保延时精度,每次循环结束后读取当前系统时间Systemtime now,再检测当前帧间间隔T′real是否达到TBAG。当前帧间间隔T′real由当前系统时间Systemtime now与上一数据包从流量整形功能模块输出的系统时间Systemtime 2作差得到,即T′real=Systemtime now-Systemtime 2。如果未达到TBAG,则继续循环。如果达到了TBAG,则跳出延时循环。数据包结束延时循环后,记录当前的系统时间Systemtime 2,并从流量整形功能模块109输出。经过流量整形后的数据包流符合BAG标准。图6给出了航空电子全双工交换式以太网通信协议的数据帧格式:图6(a)和图6(b)分别对应了最小最大帧情况下得航空电子全双工交换式以太网通信协议帧结构、图6(c)和图6(d)分别对应了航空电子全双工交换式以太网数据帧中的源MAC地址与目的MAC地址的格式、图6(e)是航空电子全双工交换式以太网数据帧IPv4数据帧结构、图6(f)和图6(g)分别对应了航空电子全双工交换式以太网数据帧中的源IP地址与目的IP地址的格式。航空电子全双工交换式以太网数据帧格式是本发明协议转换功能模块实施根据。固定域601为“000000100000000000000000”,固定域604为“00000”,固定域605为“xxxx xx11xxxx xxxx xxxx xxxx xxxx xxxx”,其中“x”代表0或1。航空电子全双工交换式以太网协议源IP格式的首字节607为“00001010”,目的IP格式的前两字节610为“1110000011100000”。在本发明的具体实施过程中,当数据帧由普通以太网向航空电子全双工交换式以太网传递,在经过航空电子通信中间件进行帧结构重新填充时,所需的一些参数是基于用户可配置方式的,这些参数包括VL_ID(虚拟链路标识符)606、User_Defined_ID(用户定义标识符)602、Interface_ID(接口标识符)603、Partition_ID(分区标识)608。用户在配置过程中应该保证这些配置的参数与航空电子全双工交换式以太网数据帧的格式相兼容。VL_ID 606是一个单端的16-bit域,取值范围是1至65535。User_Defined_ID602是一个单独的16-bit域,系统集成者应该合理的使用它,用以为每个在网络上IP可寻址的主机给定一个独一无二的并且有含义的IP地址,User_Defined_ID602的取值范围是0至65535。由于航空电子全双工交换式以太网数据帧格式中MAC源地址的最后一字节由Interface_ID603与固定域604“00000”构成,配置文件113中将两者作为一个整体来由用户填写而配置,因此在配置文件113中Interface_ID603项只能在0、32、64、96、128、160或者224七个数据中选择一个进行填写;另外在航空电子全双工交换式以太网帧格式中,IP源地址的Partition_ID 609是由3bit空余域609与另外5bit构成,由于系统分区不会超过32,因此空余域609一般不用并设为“000”,所以协议规定下,Partition_ID 608的值的范围是0到31。
图7给出了中间驱动程序中流量整形功能模块的原理:图7(a)在TCP/IP协议下无规整的数据包流、图7(b)在航空电子全双工交换式以太网协议下经过BAG整形后的数据包流。本发明中间件系统的流量整形功能模块实现了对TCP/IP协议下无规整的数据包流到符合用户设定BAG规范的数据包流的调整。即当一组数据包(即数据包1、数据包2、数据包3、数据包4)从普通以太网向航空电子全双工交换式以太网传递时,在经过本发明中间件系统后,数据帧的帧间间隔将变为不小于BAG。在航空电子全双工交换式以太网通信协议中,规定了流量整形功能能够在1ms到128ms的范围内控制BAG的值,这些值应该满足如下的公式:BAG=2K(单位ms),(K的取值范围是0到7),在本发明的具体实施过程中,用户在配置文件113中输入的BAG值应当符合BAG的范围要求,在普通以太网中使用UDP数据包发送工具时,数据包的间隔可为任意值,无须特别设定。用户可以将数据包流的发送间隔Treal/10000(单位为ms)设置成为小于BAG数值的值,来观察航空电子通信中间件的数据流规整功能。在普通以太网中UDP数据包发送间隔小于BAG的情况下,数据包流会经过流量整形,在航空电子全双工交换式网络中使用端系统测试工具抓包的结果应该是经过整形后的数据包之间的间隔不小于BAG。在普通以太网中UDP数据包发送间隔不小于BAG的情况下,本发明中间件系统对这样的数据包流不予处理。
图8为使用本发明中间件系统进行航空电子全双工交换式网络与普通以太网进行通信的执行步骤。其具体步骤为:
步骤一:将netsf.inf(译文为:内核驱动安装信息文件)、netsf_m.inf(译文为:微端口安装信息文件)以及AvionicsTransfer.sys(译文为:航空电子通信安装文件,即本发明中间件安装文件)放置在同一子文件夹下,在本地连接属性中点击安装服务,选择netsf.inf进行安装。执行netsf.inf安装后,在本地属性的“此连接使用以下选项”一栏中新增了AvionicsTransfer driver(译文为航空电子通信驱动,即本发明中间件驱动)项;
步骤二:运行RESETPARA.exe,进入到Debug(译文为:调试)路径下,执行enum(译文为:枚举)命令,读取网络适配器的物理地址,选择需要绑定的普通以太网卡DEVICE(译文为:设备)号;
步骤三:在RESETPARA(reset parameter,译文为:重置参数)文件夹的Debug文件夹下,填写并保存配置文件113UDefinedPare.txt(User DefinedParameters.txt,译文为:用户定义参数文件)。按照文件中预设格式填写。首行为待绑定网卡的DEVICE号。还需配置的信息包括VL_ID606,取值范围由1至65535;User_Defined_ID602,取值范围由0至65535;Interface_ID603,取0,32,64,96,128,160,224七个值之一;需要处理的端口号Usport,取值范围由0至65535;Partition_ID608,取值范围由0至31;BAG,取值范围为0至128;
步骤四:执行配置文件命令。在RESETPARA.exe窗口中,进入到Debug路径下,执行命令resetpara/set UDefinedPare.txt(reset parameters/setUDefinedPare.txt,译文为重置参数/对用户定义参数文件操作)。则配置文件113被传递至中间层驱动的配置文件解析模块107中。配置文件113经由配置文件解析模块107解析后,获得用户配置参数,并将参数分别传递至协议转换功能模块108与流量整形功能模块109;
步骤五:启动数据包发送程序,由安装了航空电子网络通信中间件的普通以太网卡向航空电子全双工交换式以太网板卡发送数据包,数据包从数据链路层输出后首先进入到本发明中间件系统的数据帧检测单元110,数据帧检测单元110对数据帧进行检测,不符合检测条件的数据包直接从数据帧检测单元110输出并传递至网卡。符合检测条件的数据包进入到帧结构重填单元111;
步骤六:本发明中间件系统根据配置文件解析模块107传递来的用户设定帧结构重填字段对进入到帧结构重填单元111的数据帧的帧结构进行重新填写,使数据帧符合航空电子全双工交换式以太网协议帧格式的规定。经过帧结构重填单元111处理后的数据帧进入到SN插入单元212;
步骤七:SN插入单元212对数据帧进行SN标识。完成SN标识后,数据帧从协议转换功能模块108输出,进入到流量整形功能模块109;
步骤八:流量整形功能模块109计算数据帧实际帧间间隔Treal,并将数据帧实际帧间间隔Treal与用户设置帧间间隔TBAG比较,如果Treal≥TBAG,则将数据包直接输出并传递至网卡;如果Treal<TBAG,则对数据包进行流量整形;
步骤九:对数据包进行流量整形。经过流量整形后的数据包从本发明中间件系统输出;
步骤十:经过本发明中间件系统处理后的数据包抵达以太网卡,向外界发送;
步骤十一:在安装有航空电子全双工交换式以太网板卡的接收机上使用端系统测试工具接收数据包,查看数据包的正确性。
数据结果
1.仿真环境
拓扑结构:仿真系统由一台普通以太网卡终端与一台航空电子交换式全双工以太网卡终端组成,两个网络通过网线互连进行消息发送。其中在普通以太网卡上安装AvionicsTransfer(译文为:航空电子通信,即本发明中间件)服务。
2.配置文件
3.仿真数据
3.1协议转换功能测试。
数据包发送端口号记为40端口、68端口,其中在配置文件中设置端口号(Usport)为40。利用数据包发送工具发送数据包,分别选择发送端口为40,68。数据包类型分别设为UDP,TCP。在接收端利用航空电子网络端系统测试工具接收数据包。
结果如下:
端口号 | 类型 | 接收包是否正确 | SN |
40 | UDP | 正确 | 正确 |
40 | TCP | 错误 | 无 |
68 | UDP | 错误 | 无 |
68 | TCP | 错误 | 无 |
由测试结果可知,本发明中间件系统能够准确地检测用户配置信息,并根据检测结果对数据包成功完成协议转换,且SN插入准确无误。
3.2流量规整功能测试。
在配置文件中设置端口号为40,BAG的值为128。使用UDP数据包发送软件自动发包,选择使用端口40进行发送,时间间隔分别设置为30ms,以及200ms。在接收端利用航空电子网络端系统测试工具接收数据包,统计其第10到第70个数据包的时间间隔信息。结果如下:
1.BAG=128,Treal=30ms
个数 | 与上一数据包时间间隔 |
58个 | 129ms |
1个 | 225ms |
1个 | 157ms |
2.BAG=128,Treal=200ms
个数 | 与上一数据包时间间隔 |
49个 | 200ms |
3个 | 220ms |
2个 | 155ms |
2个 | 214ms |
2个 | 243ms |
1个 | 187ms |
1个 | 179ms |
由测试结果可知,本系统中间件系统能够准确地计算数据帧的时间间隔并判别是否进行流量整形,并能根据用户配置的BAG值,将帧间间隔调整至符合用户设定的标准。
Claims (6)
1.一种具有网络流量整形的航空电子通信中间件系统,该系统用于普通以太网与航空电子网络之间进行数据流转换传输,其特征在于:该系统包括配置文件解析功能模块(107)、协议转换功能模块(108)与流量整形功能模块(109);其中协议转换功能模块(108)由数据帧检测单元(110)、帧结构重填单元(111)以及SN插入单元构成(112);
所述配置文件解析功能模块(107)用于配置数据帧检测条件、帧结构重填区段以及帧间间隔,并对配置文件进行解析,从而将数据传递至协议转换功能模块(108)与流量整形功能模块(109);
所述协议转换功能模块(108)利用检测条件对数据包进行检测,当数据包从普通以太网进入到航空电子网络时,检测条件为数据帧的物理分层、协议类型以及源端口号,当数据包从航空电子网络进入到普通以太网时,检测条件为数据帧的物理分层、MAC头以及VL_ID信息位,对符合检测条件的数据包进行航空电子网络通信协议帧格式与普通以太网TCP/IP协议的互相转换;
所述流量整形功能模块(109)是在数据帧由普通以太网进入到航空电子全双工交换式以太网络中时,针对航空电子全双工交换式以太网虚拟链路调度模型,利用NDIS内核调度延迟功能,实现的流量整形机制,即保证数据帧的帧间间隔不小于规定的时间间隔,从消息生成规律上直接限制接入航空电子全双工交换式以太网的通信带宽,保障了航空电子全双工交换式以太网络的通信确定性。
2.根据权利要求1所述的具有网络流量整形的航空电子通信中间件系统,其特征在于:中间驱动程序在上端开放出一个Miniport接口(103),在其下端开放出一个Protocol接口(104);其中位于上面的Miniport接口(103)与上层驱动程序的Protocol接口(102)进行对接;Protocol接口(104)同底层驱动程序的Miniport接口(105)进行对接;这样在安装了航空电子全双工交换式网络协议中间件的系统中,从上层向外界网络发送的数据包和从外界网络接收的数据包都必须经过中间层驱动程序的处理再继续传递。
3.根据权利要求1所述的具有网络流量整形的航空电子通信中间件系统,其特征在于:利用流量整形功能模块(109)对数据包流进行流量整形后,数据包流中相邻数据包之间的时间间隔发生了改变,用户配置的帧间间隔记为TBAG,则有第一数据包与第二数据包之间的帧间间隔记为TBAG1、第二数据包与第三数据包之间的帧间间隔记为TBAG2、第三数据包与第四数据包之间的帧间间隔记为TBAG3;当数据包流从普通以太网向航空电子全双工以太网发送时,对于检测到协议类型为UDP且源端口号与配置文件解析功能模块(107)传递来的Usport参数相等的数据帧,将先经过协议转换功能模块(108)的处理,即将数据帧的结构进行重新填充以及进行SN的插入;设置检测条件ip_p=17,是由于航空电子全双工交换式以太网中采用UDP数据包进行通信,经过协议转换功能模块(108)的处理后,数据帧格式将从TCP/IP协议帧格式转换成航空电子全双工交换式以太网协议帧格式规范;协议转换功能模块(108)中所需Usport参数以及帧结构重填字段均由配置文件解析功能模块(107)提供;接下来,流量整形功能模块(109)将会对从协议转换功能模块(108)输出的数据包流进行进一步处理;利用实际帧间间隔Treal与用户配置帧间间隔TBAG比较的结果来判别是否对数据包流进行整形,如果Treal<TBAG,则对数据包流整形;例如图示中,计算到Treal1<TBAG,则对数据包进行流量整形处理,当数据包从流量整形功能模块(109)输出时,时间间隔Treal1已经规整到TBAG1,则TBAG1=TBAG;计算到Treal2<TBAG,则对数据包进行流量整形处理,当数据包从流量整形功能模块(109)输出时,时间间隔Treal2已经规整到TBAG2,则TBAG2=TBAG;计算到Treal3>TBAG,这样的数据包将不被处理,在从流量整形功能模块(109)输出时,时间间隔未发生改变,仍满足TBAG3=Treal3;当在普通以太网接收数据包时,配置文件解析功能模块(107)对配置文件(113)进行解析,获得AvionicsVL_ID、TTL,DesIP与DesMAC参数;AvionicsVL_ID参数被传递至数据帧检测单元(110),TTL、DesIP与DesMAC参数被传递至协议转换功能模块(108);从Protocol接口(104)输出的数据包先经过协议转换功能模块(108)的数据帧检测单元(110)的处理,数据帧检测单元(110)检测通过数据帧的MAC头来确认该数据帧是否为航空电子全双工交换式以太网协议帧,若数据帧是航空电子全双工交换式以太网协议帧,进一步检测该数据帧的VL_ID信息位(511)是否与用户配置的AvionicsVL_ID参数一致;若一致,数据帧进入帧结构重填单元(111)处理;帧结构重填单元(111)利用TTL,DesIP与DesMAC参数并根据TCP/IP协议帧格式规范对数据帧结构进行重新填充,保证进入到普通以太网的数据包符合TCP/IP协议帧格式规范。
4.根据权利要求1所述的具有网络流量整形的航空电子通信中间件系统,其特征在于:用户需要在配置文件(113)中输入的配置信息包括三部分:数据帧检测条件、帧结构重填区段以及帧间间隔;数据帧检测条件参数有:Usport、AvionicsVL_ID;帧结构重填区段参数有:VL_ID(606)、User_Defined_ID(602)、Interface_ID603、Partition_ID(608)、TTL,DesIP,DesMAC;帧间间隔参数:BAG。
5.根据权利要求1所述的具有网络流量整形的航空电子通信中间件系统,其特征在于:协议转换功能模块(108)中由航空电子全双工交换式以太网协议到TCP/IP协议帧格式转换;从普通以太网卡接收到的数据包流从Protocol接口(104)输出后,进入到协议转换功能模块(108);先被数据帧检测单元(110)拦截,首先检测数据帧的物理分层,当不满足条件PhisycalPage>=3时,数据帧不被处理,直接从协议转换功能模块(108)输出并传递至传输层;当满足条件PhisycalPage>=3时进一步检测数据帧MAC头,如果检测到MAC头中MAC目的地址前32bit为“xxxx xx11xxxx xxxx xxxx xxxx xxxx xxxx”形式,与航空电子全双工交换式以太网协议目的MAC格式的固定域(605)一致,并且MAC源地址的前24bit为“000000100000000000000000”,与航空电子全双工交换式以太网协议源MAC格式的固定域(601)一致,则判定该数据帧为航空电子全双工交换式以太网协议帧;如果检测到数据帧的MAC头与航空电子全双工以太网协议MAC格式不匹配,数据帧将不被处理,直接从转换功能模块(108)输出并传递至传输层;对判定为航空电子全双工交换式以太网协议帧的数据帧继续检测它的VL_ID(606)是否与用户配置的需要处理的虚拟链路对应的虚拟链路标识符(AvionicsVL_ID)一致,若一致,则该数据帧进入到下一功能单元帧结构重填单元(111)的处理,如果不一致,数据帧将不再被处理,直接从转换功能模块(108)输出并传递至传输层;在帧结构重填单元(111),先获取数据帧的首地址,即获取到了数据帧MAC头的首地址,根据用户配置的DesMAC参数对数据帧的目的MAC进行重新填充;然后使用MacHAddress->Next获取IP头首地址,再根据用户配置的DesIP参数对数据帧的目的IP头进行重新填充,并将数据帧的生存时间填写为用户配置的TTL参数,重新计算头部校验和;最后使用IPHAddress->Next获取UDP头首地址,重新计算UDP校验和;经过数据帧检测单元(110)和帧结构重填单元(111)处理的数据帧完成了由航空电子全双工交换式以太网协议帧格式到TCP/IP协议帧格式的转换。
6.根据权利要求1所述的具有网络流量整形的航空电子通信中间件系统,其特征在于:使用所述中间件系统进行航空电子全双工交换式网络与普通以太网进行通信的执行步骤;
步骤一:将netsf.inf、netsf_m.inf以及AvionicsTransfer.sys放置在同一子文件夹下,在本地连接属性中点击安装服务,选择netsf.inf进行安装;执行netsf.inf安装后,在本地属性的“此连接使用以下选项”一栏中新增了AvionicsTransferdriver项;
步骤二:运行RESETPARA.exe,进入到Debug路径下,执行enum命令,读取网络适配器的物理地址,选择需要绑定的普通以太网卡DEVICE号;
步骤三:在RESETPARA文件夹的Debug文件夹下,填写并保存配置文件(113)UDefinedPare.txt;按照文件中预设格式填写;首行为待绑定网卡的DEVICE号;还需配置的信息包括VL_ID(606),取值范围由1至65535;User_Defined_ID(602),取值范围由0至65535;Interface_ID(603),取0,32,64,96,128,160,224七个值之一;需要处理的端口号Usport,取值范围由0至65535;Partition_ID(608),取值范围由0至31;BAG,取值范围为0至128;
步骤四:执行配置文件命令;在RESETPARA.exe窗口中,进入到Debug路径下,执行命令resetpara/set UDefinedPare.txt;则配置文件113被传递至中间层驱动的配置文件解析模块(107)中;配置文件(113)经由配置文件解析模块(107)解析后,获得用户配置参数,并将参数分别传递至协议转换功能模块(108)与流量整形功能模块(109);
步骤五:启动数据包发送程序,由安装了航空电子网络通信中间件的普通以太网卡向航空电子全双工交换式以太网板卡发送数据包,数据包从数据链路层输出后首先进入到本发明中间件系统的数据帧检测单元(110),数据帧检测单元(110)对数据帧进行检测,不符合检测条件的数据包直接从数据帧检测单元(110)输出并传递至网卡;符合检测条件的数据包进入到帧结构重填单元(111);
步骤六:本发明中间件系统根据配置文件解析模块(107)传递来的用户设定帧结构重填字段对进入到帧结构重填单元(111)的数据帧的帧结构进行重新填写,使数据帧符合航空电子全双工交换式以太网协议帧格式的规定;经过帧结构重填单元(111)处理后的数据帧进入到SN插入单元(212);
步骤七:SN插入单元(212)对数据帧进行SN标识;完成SN标识后,数据帧从协议转换功能模块(108)输出,进入到流量整形功能模块(109);
步骤八:流量整形功能模块(109)计算数据帧实际帧间间隔Treal,并将数据帧实际帧间间隔Treal与用户设置帧间间隔TBAG比较,如果Treal≥TBAG,则将数据包直接输出并传递至网卡;如果Treal<TBAG,则对数据包进行流量整形;
步骤九:对数据包进行流量整形;经过流量整形后的数据包从本发明中间件系统输出;
步骤十:经过本发明中间件系统处理后的数据包抵达以太网卡,向外界发送;
步骤十一:在安装有航空电子全双工交换式以太网板卡的接收机上使用端系统测试工具接收数据包,查看数据包的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371138.9A CN102510383B (zh) | 2011-11-21 | 2011-11-21 | 一种具有网络流量整形的航空电子通信中间件系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110371138.9A CN102510383B (zh) | 2011-11-21 | 2011-11-21 | 一种具有网络流量整形的航空电子通信中间件系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102510383A true CN102510383A (zh) | 2012-06-20 |
CN102510383B CN102510383B (zh) | 2014-04-09 |
Family
ID=46222436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110371138.9A Active CN102510383B (zh) | 2011-11-21 | 2011-11-21 | 一种具有网络流量整形的航空电子通信中间件系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102510383B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023784A (zh) * | 2012-12-20 | 2013-04-03 | 中电科航空电子有限公司 | 航空数据总线与以太网之间安全通信的系统及方法 |
CN106209496A (zh) * | 2016-06-23 | 2016-12-07 | 珠海格力电器股份有限公司 | 一种通信异常检测装置及方法 |
CN108123846A (zh) * | 2017-12-06 | 2018-06-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种以太网数据整形功能测试平台 |
CN111641623A (zh) * | 2020-05-22 | 2020-09-08 | 中国航空无线电电子研究所 | 一种基于WinPcap的AFDX协议栈构建方法 |
CN117376455A (zh) * | 2023-11-15 | 2024-01-09 | 中航通飞华南飞机工业有限公司 | 一种航空电子全双工以太网总线数据采集解析方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483603A (zh) * | 2009-02-04 | 2009-07-15 | 北京华力创通科技股份有限公司 | 对设备的数据流量进行控制的方法和装置 |
CN101547148A (zh) * | 2009-04-30 | 2009-09-30 | 北京航空航天大学 | 一种航空电子通信网络的终端系统 |
US20100195531A1 (en) * | 2006-06-23 | 2010-08-05 | Airbus France | Method of routing virtual links in a frame-switching network with guaranteed determinism |
-
2011
- 2011-11-21 CN CN201110371138.9A patent/CN102510383B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100195531A1 (en) * | 2006-06-23 | 2010-08-05 | Airbus France | Method of routing virtual links in a frame-switching network with guaranteed determinism |
CN101483603A (zh) * | 2009-02-04 | 2009-07-15 | 北京华力创通科技股份有限公司 | 对设备的数据流量进行控制的方法和装置 |
CN101547148A (zh) * | 2009-04-30 | 2009-09-30 | 北京航空航天大学 | 一种航空电子通信网络的终端系统 |
Non-Patent Citations (2)
Title |
---|
任向隆等: "航空电子全双工交换式以太网终端系统研究", 《计算机测量与控制》, no. 05, 25 May 2009 (2009-05-25) * |
陈昕等: "AFDX端系统关键技术的研究与实现", 《计算机工程》, no. 05, 5 March 2009 (2009-03-05) * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023784A (zh) * | 2012-12-20 | 2013-04-03 | 中电科航空电子有限公司 | 航空数据总线与以太网之间安全通信的系统及方法 |
CN103023784B (zh) * | 2012-12-20 | 2016-05-11 | 中电科航空电子有限公司 | 航空数据总线与以太网之间安全通信的系统及方法 |
CN106209496A (zh) * | 2016-06-23 | 2016-12-07 | 珠海格力电器股份有限公司 | 一种通信异常检测装置及方法 |
CN108123846A (zh) * | 2017-12-06 | 2018-06-05 | 中国航空工业集团公司西安航空计算技术研究所 | 一种以太网数据整形功能测试平台 |
CN108123846B (zh) * | 2017-12-06 | 2021-05-07 | 中国航空工业集团公司西安航空计算技术研究所 | 一种以太网数据整形功能测试平台 |
CN111641623A (zh) * | 2020-05-22 | 2020-09-08 | 中国航空无线电电子研究所 | 一种基于WinPcap的AFDX协议栈构建方法 |
CN117376455A (zh) * | 2023-11-15 | 2024-01-09 | 中航通飞华南飞机工业有限公司 | 一种航空电子全双工以太网总线数据采集解析方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102510383B (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100369423C (zh) | 网络仿真测试系统及方法 | |
EP1482712B1 (en) | Virtual network addresses | |
CN104168164B (zh) | Afdx网络中的数据获取的分布方法 | |
CN102510383B (zh) | 一种具有网络流量整形的航空电子通信中间件系统 | |
CN1874313B (zh) | 处理数据包的方法和网络设备 | |
US6438128B1 (en) | Alternate use of data packet fields to convey information | |
CN101834751B (zh) | 航空全双工交换以太网监测处理系统及方法 | |
CN102209000B (zh) | 一种带分层错误注入和错误分析的afdx网络终端系统模拟器 | |
CN106612141A (zh) | 一种光纤通道协议通用仿真测试卡及其数据交互方法 | |
US20140269754A1 (en) | Computer system and method for communicating data between computers | |
CN103916252A (zh) | 一种基于fpga的高带宽以太网ip核 | |
CN103259700A (zh) | 航空电子全双工开关式以太网网络 | |
CN103078769B (zh) | 一种实现实物设备无缝接入网络模拟器的系统及方法 | |
EP2490380B1 (en) | Cell processing method, source line card, and network card in switching network | |
CN104144156A (zh) | 报文处理方法和装置 | |
CN103200190A (zh) | 一种面向QualNet网络半实物仿真的实物接入方法 | |
CN203151539U (zh) | 一种afdx端系统虚拟链路层ip核 | |
CN105119749A (zh) | 一种家庭网关本地批量升级的方法和系统 | |
CN105871643B (zh) | 基于路由协议的网络运行仿真方法 | |
CN104866399B (zh) | Um-bus总线通道故障检测控制器及检测方法 | |
CN104202398A (zh) | 远程控制的方法、装置及系统 | |
CN104410581A (zh) | Afdx网络的配置信息设计及信息提取 | |
CN110290187A (zh) | 数据信息的传输方法及装置、存储介质、电子装置 | |
CN102045256B (zh) | 一种基于cots的带宽预分配保证网络功能演示系统 | |
CN105681223B (zh) | 一种sdn的数据包转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |