一种航电全双工实时以太网数据包重组方法及系统的制作方法

文档序号:7771992阅读:248来源:国知局
一种航电全双工实时以太网数据包重组方法及系统的制作方法
【专利摘要】本发明公开了一种航电全双工实时以太网数据包重组方法及系统,涉及AFDX技术。本发明公开的方法包括:从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,并将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上;如果数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组。本发明还公开了一种航电全双工实时以太网数据包重组系统。本申请技术方案采用硬件描述语言实现完成对AFDX接收到的需要重组的数据包进行数据重组,以完成AFDX网络数据包的正常接收。
【专利说明】一种航电全双工实时以太网数据包重组方法及系统
【技术领域】
[0001]本发明涉及AFDX技术,特别涉及一种航电全双工实时以太网(AFDX)数据包重组方法及系统。
【背景技术】
[0002]AFDX (Avionics Full Duplex Switched Ethernet,航电全双工实时以太网)是空中客车公司根据ARINC664规范,针对确定的飞行器数据网络(Aircraft Data Networks)而实现的技术。
[0003]目前已被广泛用于互连航空飞行器中的电子系统,如发动机、飞行控制部件、巡航系统等。迄今为止,AFDX已使用在A380,A400M和波音B787项目中。
[0004]基于上述协议的接收数据部分的数据重组使用硬件的实现还没有合适的技术方案,因此亟待提出一个可应用于硬件实现的数据包重组的技术。

【发明内容】

[0005]本发明所要解决的技术问题是,提供一种AFDX数据包重组方法及系统,以实现AFDX网络数据包的重组。
[0006]为了解决上述技术问题,本发明公开了一种航电全双工实时以太网数据包重组方法,该方法包括:
[0007]从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,并将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上;
[0008]如果数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组。
[0009]可选地,上述方法中,所述从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包包括:
[0010]从接收到的需要重组的数据包中查找与当前接收的数据包的重组数据包分组标识信息一致的数据包。
[0011]可选地,上述方法还包括:
[0012]从接收到的需要重组的数据包中未查找到与当前接收的数据包属于同一组的数据包时,创建与当前接收的数据包的重组数据包分组标识信息对应的数据包存储列表,将当前接收的数据包挂载到新创建的数据包存储列表的首位上。
[0013]可选地,上述方法中,每组数据包存储列表中存储有该组需要重组的各数据包的存储地址。
[0014]可选地,上述方法中,每组需要重组的数据包的数据总长度包括:
[0015]该组需要重组的数据包中OFFSET等于O的数据包中所包含的该组重组数据包所有分片的数据包的总长度。[0016]可选地,上述方法中,将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上米取下述任意一种或多种方式组合的方式:
[0017]队尾挂载方式,队头挂载方式、队列中间挂载方式。
[0018]本发明还公开了一种航电全双工实时以太网数据包重组系统,该系统包括:
[0019]查找单元,从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上;
[0020]重组单元,当数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组。
[0021 ] 可选地,上述系统中,从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包包括:
[0022]从接收到的需要重组的数据包中查找与当前接收的数据包的重组数据包分组标识信息一致的数据包。
[0023]可选地,上述系统中,所述查找单元,从接收到的需要重组的数据包中未查找到与当前接收的数据包属于同一组的数据包时,则创建与当前接收的数据包的重组数据包分组标识信息对应的数据包存储列表,将当前接收的数据包挂载到新创建的数据包存储列表的首位上。
[0024]可选地,上述系统中,每组数据包存储列表中存储有该组需要重组的各数据包的存储地址。
[0025]可选地,上述系统中,每组需要重组的数据包的数据总长度包括:
[0026]该组需要重组的数据包中OFFSET等于O的数据包中所包含的该组重组数据包所有分片的数据包的总长度。
[0027]可选地,上述系统中,所述查找单元将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上采取下述任意一种或多种方式组合的方式:
[0028]队尾挂载方式,队头挂载方式、队列中间挂载方式。
[0029]本申请技术方案从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,并将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上;如果数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组,从而实现完成对AFDX接收到的需要重组的数据包进行数据重组,以完成AFDX网络数据包的正常接收。
【专利附图】

【附图说明】
[0030]图1是本发明实施例中AFDX数据包重组流程图;
[0031]图2是本发明实施例中分配的连续的RAM存储空间示意图;
[0032]图3是本发明实施例中重组完成的数据包示意图;
[0033]图4是本发明实施例中重组数据包在重组数据存储单元中的存储方式图。
【具体实施方式】[0034]为使本发明的目的、技术方案和优点更加清楚明白,下文将结合附图对本发明技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
[0035]实施例1
[0036]AFDX通信网络接收到的数据包很多是需要重组的数据包,必须对其重组以完成AFDX数据包的正常接收。因此,本实施例提供一种AFDX数据包重组方法,该方法主要采用硬件描述语言实现完成对AFDX接收到的需要重组的数据包进行数据重组。
[0037]下面介绍AFDX数据包重组的具体过程,该过程如图1所示,包括如下步骤100至500的操作:
[0038]步骤100,划分存储空间,以重组数据包分组标识信息为索引保存重组数据包存储列表。
[0039]首先,介绍需要重组的数据包具有以下几个字段:
[0040]Fragment ID和Offset,源IP地址,目的IP地址,协议。
[0041]其中,当Fragment ID和源IP地址,目的IP地址和协议字段相同时,认为是同一组需要重组的数据包,即Fragment ID、源IP地址、目的IP地址和协议字段构成重组数据包分组标识信息。而Offset则是同一组需要重组的数据包的不同数据包的唯一 ID。
[0042]一个重组数据包分组标识信息可以对应一个重组数据包存储列表。
[0043]具体地,上述步骤中,划分的存储空间可为一个连续的RAM存储空间,存储空间的大小视需要同时需要的最大重组个数而定。
[0044]需要说明的是,所分配的连接的RAM存储空间的设计较为关键,如果设置不好,会导致丢包。本实施例中,分配的连续的RAM存储空间如图2所示。
[0045]步骤200,定义数据包最长重组时间;
[0046]因为网络中存在一些数据包丢失现象,会导致一些数据包一直不能重组完成,此时该数据包需要被丢弃,否则会暂用别的数据包的存储空间,导致一些正常的数据包不能进行重组,因此需要定义数据包最长重组时间,这样,当重组时间超过最长重组时间时,即可结束本次重组操作,以提高系统效率。
[0047]步骤300,系统接收数据包,判断所接收到的数据包是否需要重组,如果是,进入步骤400,否则返回本步骤,继续接收数据包。
[0048]本实施例中,重组完成的数据包如图3所示。
[0049]该步骤中,判断所接收到的数据包是否需要重组的原则是,如果数据包中偏移号(offset)为0,判断其中后续是否有数据包标志位,如果无数据包标志位,则说明不需要重组,如果有数据包标志位,则需要重组。
[0050]步骤400,在步骤100中创建的RAM存储空间中查找之前是否收到与当前接收到的数据包的重组数据包分组标识信息一致的数据包,如果有,则将当前接收到的数据包按照挂接规则,挂载到该重组数据包分组标识信息对应的重组数据包存储列表上,进入步骤500,如果没有,则创建与当前接收的数据包的重组数据包分组标识信息对应的重组数据包存储列表,将当前接收的数据包挂载到新创建的重组数据包存储列表的首位上,进入步骤500。
[0051]其中,重组过程中挂接数据包的过程实现如下:[0052]对于接收的数据包挂接方式有三种,挂接在队尾,挂接在数据队列中间或挂接在队头。由于网络中接收到的数据包offset从小到大的概率要比从大到小的概率大很多,所以本实施例选择了队列从后面挂接的方式,也即每次新接收到一个数据包就从之前接收到的最后一个数据包查起,查找新接收到的数据包应该插入的位置。也即此处的地址索引是从后向前的。
[0053]还要说明的是,重组过程中挂接数据包时,需要进行地址修改。因为涉及向前索引和向后索引的问题,所以当前接收的数据包,根据不同的挂接位置,对于地址修改的方式也是不同的。具体地,地址修改如下:
[0054]a对于挂接在队尾的数据包,只需要修改最后一个数据包的下一个数据包地址为新收到的数据包存储地址,修改新收到的数据包的前一个数据包地址为原来最后一个数据包的存储地址。本实施例即采用此种挂接在队尾的方式。
[0055]b对于挂接在队头的数据包,需要修改队头数据包的前一个地址为新收到数据包的存储地址,修改新收到数据包的存储地址下一数据包地址为之前收到的数据包的offset最小的数据包的存储地址。
[0056]c对于挂接在队列中间的数据包,对于该类数据包,需要修改稿插入队列位置的前一数据包的下一个数据包地址和后一数据包的前一数据包地址为新收到的数据包存储地址。修改新收到的数据包的前一数据包存储地址和后一数据包存储地址,如图4所示。
[0057]另外,对于重组完成的判定,是确定重组数据包所有数据包的数据总长度。
[0058]对于同一组重组数据包,在OFFSET等于O的重组数据包中包含有该组重组数据包所有数据包的总长度,以及本数据包的数据长度,这样,当收集到的所有重组数据包的长度之和等于总长度时认为重组完成,当收集到的数据包总长度超过总长度认为是重组失败,当收集到的数据包总长度小于总长度时,认为重组没有完成。
[0059]步骤500,判断重组数据包的重组是否完成,即判断需要重组的数据包存储列表中挂载的所有数据包的长度之和是否等于该组需要重组的数据包的数据总长度时,如果等于,即完成重组,将重组完成的数据包进行上传,如果不等于,则未完成重组,返回步骤300继续接收数据包,直到重组数据包重组完成。
[0060]本实施例中,上传数据包时,是顺序上传的,即从offset等于O的地址开始上传数据到上一层的应用,所以该处的地址索引是从前向后的。
[0061]另外,在上述流程中,对于重组超时的数据包,需要将该数据进行丢弃。当收到数据包与原有数据包的关键字段相同,且offset相同的数据包时,认为是重复数据包,该类数据包也需要被丢弃。
[0062]实施例2
[0063]本实施提供一种AFDX数据包重组系统,可实现上述实施例1的方法,该系统包括:
[0064]查找单元,从接收的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上;
[0065]重组单元,当数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中所有数据包上传给上层应用以完成重组。[0066]其中,查找单元从接收的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包包括:
[0067]从接收的需要重组的数据包中查找与当前接收的数据包的重组数据包分组标识信息一致的数据包。
[0068]在本实施例中,重组数据包分组标识信息包括有Fragment ID、源IP地址、目的IP地址和协议字段。
[0069]另外,每个数据包存储列表中还可以存储有该组需要重组的各数据包的存储地址。
[0070]每组需要重组的数据包的数据总长度包括:
[0071]该组需要重组的数据包中OFFSET等于O的数据包中所包含的改组重组数据包所有分片的数据包的总长度。
[0072]实际应用中,查找单元可以按照如下任一或几种方式的组合将当前接收的数据包顺序挂载到所查找到的数据包存储列表上:
[0073]队尾挂载方式,队头挂载方式、队列中间挂载方式。
[0074]具体地,本实施例提供的系统的一些具体操作可参见上述实施例1中的相应内容,在此不再赘述。
[0075]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
[0076]以上所述,仅为本发明的较佳实例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种航电全双工实时以太网数据包重组方法,其特征在于,该方法包括: 从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,并将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上; 如果数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组。
2.如权利要求1所述的方法,其特征在于,所述从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包包括: 从接收到的需要重组的数据包中查找与当前接收的数据包的重组数据包分组标识信息一致的数据包。
3.如权利要求2所述的方法,其特征在于,该方法还包括: 从接收到的需要重组的数据包中未查找到与当前接收的数据包属于同一组的数据包时,创建与当前接收的数据包的重组数据包分组标识信息对应的数据包存储列表,将当前接收的数据包挂载到新创建的数据包存储列表的首位上。
4.如权利要求1至3任一项所述的方法,其特征在于,每组需要重组的数据包的数据总长度包括: 该组需要重组的数据包中OFFSET等于O的数据包中所包含的该组重组数据包所有分片的数据包的总长度。
5.一种航电全双工实时以太网数据包重组系统,其特征在于,该系统包括: 查找单元,从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包,将当前接收的数据包顺序挂载到所查找到的该组数据包存储列表上; 重组单元,当数据包存储列表中挂载的所有数据包的长度之和等于该组需要重组的数据包的数据总长度时,将该数据包存储列表中挂载的所有数据包上传给上层应用以完成重组。
6.如权利要求5所述的系统,其特征在于,从接收到的需要重组的数据包中查找与当前接收的数据包属于同一组的数据包包括: 从接收到的需要重组的数据包中查找与当前接收的数据包的重组数据包分组标识信息一致的数据包。
7.如权利要求6所述的系统,其特征在于, 所述查找单元,从接收到的需要重组的数据包中未查找到与当前接收的数据包属于同一组的数据包时,则创建与当前接收的数据包的重组数据包分组标识信息对应的数据包存储列表,将当前接收的数据包挂载到新创建的数据包存储列表的首位上。
8.如权利要求5至7任一项所述的系统,其特征在于,每组需要重组的数据包的数据总长度包括: 该组需要重组的数据包中OFFSET等于O的数据包中所包含的该组重组数据包所有分片的数据包的总长度。
【文档编号】H04L12/861GK103501279SQ201310449663
【公开日】2014年1月8日 申请日期:2013年9月27日 优先权日:2013年9月27日
【发明者】苗家旺, 杨水华, 万波, 胡永峰, 李鹏英, 原中亮, 赵伟华, 汪伟 申请人:北京旋极信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1