发明名称 一种基于定长协议数据包长度异常的处理方法
摘要 本发明涉及一种基于定长协议数据包长度异常的处理方法;首先将输入的数据流同步后,通过有序的写调度,将数据包依次写入一组双端口RAM中,实现将长包截短的处理;然后通过有序的读调度,将数据包从双端口RAM中读出,实现将短包补长的处理。根据不同的应用场合,通过增加双端口RAM的块数或提高读取双端口RAM中数据的速度,可以有效提高抵抗短包错误的性能。本发明采用的一种基于定长协议数据包长度异常的处理方法,可以适应不同长度错误情况下的数据包定长处理,最大程度地保留了长度异常的数据包中的有效数据,而不是简单的丢弃;本方法简单实用,易于在FPGA或ASIC上实现。
申请公布号 CN103220168B 申请公布日期 2015.11.25
申请号 CN201310108509.3 申请日期 2013.03.29
申请人 西安空间无线电技术研究所 发明人 周渊;王琦;贾依菲;赵俊艺;宋宝相
分类号 H04L12/24(2006.01)I;H04L1/00(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种基于定长协议数据包长度异常的处理方法,其特征在于步骤如下:1)对输入的数据流进行同步处理,并对每一个数据包的字节长度进行计数和检查;2)将步骤1)中进行同步处理和长度检查后的数据包按顺序依次写入N个双端口RAM中,在写入数据的过程中将长数据包截短至长度L;之后再将N个双端口RAM中的数据包按顺序依次读出;同时设置一个写计数器,记录写入每个双端口RAM中数据包的字节数;每写一次双端口RAM后重置该写计数器;所述写计数器的值小于或等于L;所述的双端口RAM的储存深度不小于L,且每块双端口RAM一次只存储一个数据包;3)根据步骤2)中所述的写计数器的值,决定是否需要对从第i块双端口RAM中读取的数据包进行补长处理;当写计数器的值等于L时,则直接从该写计数器对应的双端口RAM中读出L个字节的数据包;当写计数器的值小于L时,将储存在第i块双端口RAM中的数据全部读出,数据不足L的部分填充固定值,直至将读出的数据包补长至L;所述的固定值区别于从第i块双端口RAM中读出的真实数据;所述步骤1)中对输入的数据流进行同步处理,并对数据包的字节长度计数和检查的具体过程为:根据数据协议,对数据包进行同步处理,采用1比特的同步信号卡住接收的数据包,标识该数据包的起始位置;采用计数器统计数据包的字节长度,从1开始计数;当接收的数据包长度超过2L时,停止计数,计数器的值定格在2L;当接收的数据包长度小于或等于2L时,则计数器正常计数。
地址 710100 陕西省西安市长安区西街150号