CN108614863B - 一种浮动数据帧帧头查找方法及系统 - Google Patents
一种浮动数据帧帧头查找方法及系统 Download PDFInfo
- Publication number
- CN108614863B CN108614863B CN201810294371.3A CN201810294371A CN108614863B CN 108614863 B CN108614863 B CN 108614863B CN 201810294371 A CN201810294371 A CN 201810294371A CN 108614863 B CN108614863 B CN 108614863B
- Authority
- CN
- China
- Prior art keywords
- frame header
- data
- frame
- thread
- searching
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种浮动数据帧帧头查找方法及系统,能够针对浮动帧进行高效的帧头查找。本发明的技术方案为:数据接收方针对预先约定的设定类型的帧头进行帧头偏移方式的存储;每种类型的帧头具有设定数量的帧头偏移方式。数据接收方进行数据流的接收,并存入数据缓存区。启动设定数量的线程,每个线程获取数据缓存区中数据;其中线程数量与帧头偏移方式的数量相同。每个线程对应选取一种偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer‑Moore算法进行对应偏移方式的帧头查找。
Description
技术领域
本发明涉及信息与通信工程技术领域,具体涉及一种浮动数据帧帧头查找方法及系统。
背景技术
不失一般性,以航天航空测控系统、空地通信系统为例,地面测试设备负责对应答机进行全方位、多场景的地面测试验证,其中遥测数据帧解帧是地面测试设备软件的重要功能。遥测数据帧通常由帧头和帧内容两部分组成,出于多方面的考虑,遥测数据帧帧头内容和每帧帧长并不固定,因此将这类数据帧称之为浮动数据帧。在地面测试设备软件中,软件的遥测数据帧帧头查找是影响遥测数据帧解析的重要因素。现有的遥测数据帧帧头查找方法平均响应时间过长,主要表现在:
(1)地面测试设备软件中常规的遥测数据帧帧头查找方法是采用固定数据流中帧头位置的方式,在遥测数据帧帧头查找操作中,软件在数据流中找到首个遥测数据帧帧头后按照固定数据帧长度进行数据截取。该方法实现方式简单,但要求遥测数据帧长度固定,缺乏灵活性。
(2)基于比特数据比较的遥测数据帧帧头查找方法,将软件接收到的遥测数据流以比特为最小单位存储,之后通过各类查找方法进行遥测帧帧头查找。但这类查找方式对数据帧帧头的持续搜索的过程中会占用较多的运算资源,导致产生较大延时。
目前,国内外对浮动数据帧帧头查找的研究主要集中在两个方面:
(1)对于浮动数据帧帧头查找算法的研究,对于浮动数据帧帧头查找采用包括字典树算法、有限状态机算法及其衍生算法在内的帧头查找算法,以此提高浮动数据帧帧头查找效率并降低空间占用率的效果。
(2)对于浮动数据帧帧头并行查找的研究,通过并行查找的方式来提高浮动数据帧帧头查找的速度。
在地面测试设备软件浮动数据帧帧头查找方面,浮动数据帧帧头查找算法是近年来研究的热点。以Boyer-Moore算法为例,Boyer-Moore算法实现主要有两个方法,坏字符算法和好后缀算法:
坏字符算法是通过检索坏字符进行最大距离跳跃。首先,子串左端与遥测帧数据流对齐,从右侧最后一个字符开始比较。如果比较出现坏字符,则需要检索匹配浮动数据帧中是否有该坏字符,有就可以确定下次移动的位置,使坏字符进行准确对齐。在匹配过程中浮动数据帧数据流比较位置内容为‘b’而浮动数据帧帧头比较位置内容为‘a’则说明匹配失败需要进行移位。查询坏字符‘b’在浮动数据帧帧头‘a’前出现的位置作为搜索词上次出现的位置。
好后缀算法是通过检索好后缀来确定最大移动距离。同理,先将子串左端与浮动数据帧数据流对齐,从右侧最后一个字符开始比较。如果比较出现好后缀,则需要检索匹配浮动数据帧中是否有该好后缀,有则可以确定下次移动位置,使好后缀位置对齐。在匹配过程中浮动数据帧数据流比较位置内容为‘b’而浮动数据帧帧头比较位置内容为‘a’则说明匹配失败需要进行移位。查询浮动数据帧帧头‘a’后的后缀与浮动数据帧数据流‘b’前缀最大匹配出现的位置作为搜索词上次出现的位置。目前国内外对浮动数据数据帧帧头查找技术也提出了许多研究。
在2014年第6期《无线电工程》第33页至35页,郭凯丰和王萌发表的论文“基于等帧长信号的帧头检测方法研究”中,提出一种基于累计滤波的算法,将截获序列按照帧长进行分组,整合对齐后进行积累,可以查找出帧头部分。在2011年,金凌在上海交通大学硕士论文“面向比特流的未知帧头识别技术研究”中提出在无先验知识的情况下,运用多模式匹配处理比特流的方法寻找特征序列,然后通过特征序列确定帧头的位置。在2013年第43期《中国科学技术大学学报》554页至560页由王和洲和薛开平等发表的“基于频繁统计和关联规则的未知链路协议比特流切割算法”中,提出通过分析协议帧的结构以及数据流中各帧之间的关联特性,从而提取出标志着帧头的特征序列。
上述浮动数据帧帧头查找的方法在帧头查找算法的基础上实现的方法多是效率上的优化,但其考虑的方向集中于对比特流特征进行分析。一般仅考虑固定数据帧长度的单一因素,或是需要占用大量运算资源,或是通过在接收一定数据流后对已接收的数据进行模式识别的判断。
发明内容
有鉴于此,本发明提供了一种浮动数据帧帧头查找方法及系统,能够针对浮动帧进行高效的帧头查找。
本发明的技术方案为:
一种浮动数据帧帧头查找方法,包括如下步骤:
数据接收方针对预先约定的设定类型的帧头进行帧头偏移方式的存储;每种类型的帧头具有设定数量的帧头偏移方式。
数据接收方进行数据流的接收,并存入数据缓存区。
启动设定数量的线程,每个线程获取数据缓存区中数据;其中线程数量与帧头偏移方式的数量相同。
每个线程对应选取一种偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法进行对应偏移方式的帧头查找。
进一步地,每种类型的帧头以字节为单位进行存储,其具有8种帧头偏移方式。
8种帧头偏移方式为:帧头的开始比特分别为字节的第n比特,n取值为1、2、3……8。
进一步地,每个线程获取数据缓存区中数据,具体为:每个线程获取数据缓存区中L+lmax nbyte数据;
其中lmax nbyte为数据帧帧头长度最大值。
本发明另一方面的实施例还提供了一种浮动数据帧帧头查找系统,该系统包括:数据流接收模块、数据缓存模块、帧头预处理模块、线程并行启动模块、帧头查找模块以及数据提取模块。
数据流接收模块,配置用于接收数据流,并将数据流存入数据缓存模块。
帧头预处理模块,配置用于针对预先约定的设定类型的待提取帧头进行帧头偏移方式的预处理与存储;每种类型的待提取帧头具有设定数量的帧头偏移方式。
线程并行启动模块,配置用于建立设定数量的线程并针对设定数量的线程进行并行启动;其中线程数量与待提取帧头的帧头偏移方式的数量相同。
帧头查找模块,配置用于采用每个线程获取数据缓存区中数据;每个线程对应选取一种帧头偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法依据对应帧头偏移方式进行待提取帧头的查找。
数据提取模块,配置用于对查找到的待提取帧头进行提取并存入数据缓存模块。
有益效果:
(1)本发明实施例中,在针对浮动数据帧帧头进行查找时,首先通过对待提取的浮动数据帧的帧头进行预处理,在字节存储形式下将待提取帧头转化为多种偏移方式的存储,并以所存储的多种偏移方式的待提取帧头作为帧头查找过程中的目标,从而保证了非固定位置浮动数据帧帧头的查找。同时本发明采用多线程并行启动的形式进行帧头查找,保证了浮动数据帧帧头查找的查找时间可与固定位置浮动数据帧帧头相同,即实现了对浮动数据帧帧头的高效查找。
(2)本发明实施例可以运行在多核硬件平台的情况下,通过启动多线程并行查找,在开启并行线程数达到8时,非固定位置浮动数据帧帧头查找效率可与固定位置浮动数据帧帧头相同。
附图说明
图1为本发明实施例提供的浮动数据帧帧头查找方法流程图。
图2为本发明实施例提供的浮动数据帧帧头查找系统组成框图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
请参考图1,图1示出了本发明实施例提供的一种浮动数据帧帧头查找方法的流程图。
如图1所示,该方法包括如下步骤:
S1、数据接收方针对预先约定的设定类型的帧头进行帧头偏移方式的存储;每种类型的帧头具有设定数量的帧头偏移方式;每种类型的帧头以字节为单位进行存储,其具有8种帧头偏移方式。
8种帧头偏移方式为:帧头的开始比特分别为字节的第n比特,n取值为1、2、3……8。
S2、数据接收方进行数据流的接收,并存入数据缓存区。
S3、启动设定数量的线程,每个线程获取数据缓存区中数据;其中线程数量与帧头偏移方式的数量相同。每个线程获取数据缓存区中数据,具体为:每个线程获取数据缓存区中L+lmax nbyte数据;
其中lmax nbyte为数据帧帧头长度最大值。
S4、每个线程对应选取一种偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法进行对应偏移方式的帧头查找。
本发明实施例中,采用Boyer-Moore算法进行对应偏移方式的帧头查找时,首先获得帧头在存在比特位偏移量前提下每字节对应有效位宽。本发明中的浮动帧帧头查找方法只对有效位宽进行比较。因为有效位宽比较是位操作,所以对于查找时间复杂度没有影响。
本发明中,由于数据流造成的比特级偏移,会导致数据按照字节存储时,首个有效比特在字节中有8种偏移方式,因此存在8种可能的存储形态。数据流以字节形式存储时会有8种存储形式,所以浮动帧帧头查找方法需要对这8种形式分别进行查找即可。
为了确定已接收浮动帧内容中浮动帧帧头的位置需要运行8次浮动帧帧头查找方法。因为这8次运算互相独立彼此间没有任何竞态条件,所以本发明中每个线程对应一种偏移方式的帧头查找,多个线程并行运行,此时不会出现时间复杂度恶化的情况,保证了浮动数据帧帧头查找的查找时间可与固定位置浮动数据帧帧头相同,即实现了对浮动数据帧帧头的高效查找。
请参考图2,图2示出了本发明实施例提供的浮动数据帧帧头查找系统。
如图2所示,一种浮动数据帧帧头查找系统,该系统用于实现上述帧头查找方法的任一种实施例,其包括:数据流接收模块、数据缓存模块、帧头预处理模块、线程并行启动模块、帧头查找模块以及数据提取模块。
数据流接收模块,配置用于接收数据流,并将数据流存入数据缓存模块。
帧头预处理模块,配置用于针对预先约定的设定类型的待提取帧头进行帧头偏移方式的预处理与存储;每种类型的待提取帧头具有设定数量的帧头偏移方式。
线程并行启动模块,配置用于建立设定数量的线程并针对设定数量的线程进行并行启动;其中线程数量与待提取帧头的帧头偏移方式的数量相同。
帧头查找模块,配置用于采用每个线程获取数据缓存区中数据;每个线程对应选取一种帧头偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法依据对应帧头偏移方式进行待提取帧头的查找。
数据提取模块,配置用于对查找到的待提取帧头进行提取并存入数据缓存模块。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种浮动数据帧帧头查找方法,其特征在于,该方法包括如下步骤:
数据接收方针对预先约定的设定类型的帧头进行帧头偏移方式的存储;每种类型的帧头具有设定数量的帧头偏移方式;
所述数据接收方进行数据流的接收,并存入数据缓存区;
启动设定数量的线程,每个线程获取数据缓存区中数据;其中线程数量与帧头偏移方式的数量相同;
每个线程对应选取一种偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法进行对应偏移方式的帧头查找。
2.如权利要求1所述的方法,其特征在于,所述每种类型的帧头以字节为单位进行存储,其具有8种帧头偏移方式;
所述8种帧头偏移方式为:帧头的开始比特分别为字节的第n比特,n取值为1、2、3……8。
3.如权利要求1所述的方法,其特征在于,所述每个线程获取数据缓存区中数据,具体为:所述每个线程获取数据缓存区中L+lmax nbyte数据;
其中lmax nbyte为数据帧帧头长度最大值。
4.一种浮动数据帧帧头查找系统,其特征在于,所述系统用于实施如权利要求1~3任一所述的帧头查找方法,该系统包括:数据流接收模块、数据缓存模块、帧头预处理模块、线程并行启动模块、帧头查找模块以及数据提取模块;
所述数据流接收模块,配置用于接收数据流,并将所述数据流存入所述数据缓存模块;
所述帧头预处理模块,配置用于针对预先约定的设定类型的待提取帧头进行帧头偏移方式的预处理与存储;所述每种类型的待提取帧头具有设定数量的帧头偏移方式;
所述线程并行启动模块,配置用于建立设定数量的线程并针对所述设定数量的线程进行并行启动;其中线程数量与待提取帧头的帧头偏移方式的数量相同;
所述帧头查找模块,配置用于采用每个线程获取数据缓存区中数据;每个线程对应选取一种帧头偏移方式,在每个线程中,对所获取的数据采用字符串匹配的Boyer-Moore算法依据对应帧头偏移方式进行待提取帧头的查找;
所述数据提取模块,配置用于对查找到的待提取帧头进行提取并存入所述数据缓存模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294371.3A CN108614863B (zh) | 2018-04-04 | 2018-04-04 | 一种浮动数据帧帧头查找方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810294371.3A CN108614863B (zh) | 2018-04-04 | 2018-04-04 | 一种浮动数据帧帧头查找方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108614863A CN108614863A (zh) | 2018-10-02 |
CN108614863B true CN108614863B (zh) | 2022-04-19 |
Family
ID=63659483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810294371.3A Active CN108614863B (zh) | 2018-04-04 | 2018-04-04 | 一种浮动数据帧帧头查找方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108614863B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114401078B (zh) * | 2022-01-14 | 2023-10-31 | 上海工程技术大学 | 一种图像数据帧帧头检测方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101605012A (zh) * | 2009-07-02 | 2009-12-16 | 中兴通讯股份有限公司南京分公司 | 一种实现同步数字体系帧头定位的方法及装置 |
CN101729135A (zh) * | 2008-10-29 | 2010-06-09 | 上海华为技术有限公司 | 无线网状网的传输方法、通信设备及通信系统 |
WO2013097221A1 (zh) * | 2011-12-31 | 2013-07-04 | 中国科学院微电子研究所 | 分布式测试系统的中心机与测试终端之间进行通讯的方法 |
CN103312577A (zh) * | 2012-03-09 | 2013-09-18 | 中兴通讯股份有限公司 | 一种处理mac数据的方法及装置 |
CN105141583A (zh) * | 2015-07-28 | 2015-12-09 | 中国电子科技集团公司第三十六研究所 | 一种字符串匹配方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103997387B (zh) * | 2013-02-18 | 2018-08-24 | 中兴通讯股份有限公司 | 数据的映射、复用、解复用和解映射方法及装置 |
-
2018
- 2018-04-04 CN CN201810294371.3A patent/CN108614863B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101729135A (zh) * | 2008-10-29 | 2010-06-09 | 上海华为技术有限公司 | 无线网状网的传输方法、通信设备及通信系统 |
CN101605012A (zh) * | 2009-07-02 | 2009-12-16 | 中兴通讯股份有限公司南京分公司 | 一种实现同步数字体系帧头定位的方法及装置 |
WO2013097221A1 (zh) * | 2011-12-31 | 2013-07-04 | 中国科学院微电子研究所 | 分布式测试系统的中心机与测试终端之间进行通讯的方法 |
CN103312577A (zh) * | 2012-03-09 | 2013-09-18 | 中兴通讯股份有限公司 | 一种处理mac数据的方法及装置 |
CN105141583A (zh) * | 2015-07-28 | 2015-12-09 | 中国电子科技集团公司第三十六研究所 | 一种字符串匹配方法和系统 |
Non-Patent Citations (3)
Title |
---|
一种高效的串行通信协议的制定及实现;宋兵跃等;《微型机与应用》;20100410(第07期);64-66 * |
面向比特流的协议帧头结构分析研究;王杨德;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20130715;I138-740 * |
面向比特流的链路层未知帧分析技术综述;曹成宏等;《小型微型计算机系统》;20180215(第02期);107-113 * |
Also Published As
Publication number | Publication date |
---|---|
CN108614863A (zh) | 2018-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102510323B (zh) | 一种串口数据的帧识别方法 | |
JP4456554B2 (ja) | データ圧縮方法及び圧縮データ送信方法 | |
CN101359325B (zh) | 一种快速内容分析的多关键词匹配方法 | |
CN102567530B (zh) | 一种文章类型网页智能抽取系统及其方法 | |
US9258013B1 (en) | Data compression with Huffman code on multicore processors | |
CN110888849A (zh) | 一种在线日志解析方法、系统及其电子终端设备 | |
CN112541074A (zh) | 日志解析方法、装置、服务器和存储介质 | |
CN101916285B (zh) | 一种互联网网页内容解析方法及装置 | |
US8135029B1 (en) | Method and apparatus for a high-speed frame tagger | |
CN111506599A (zh) | 基于规则匹配和深度学习的工控设备识别方法及系统 | |
CN108614863B (zh) | 一种浮动数据帧帧头查找方法及系统 | |
CN109977668B (zh) | 恶意代码的查询方法及系统 | |
CN109150962B (zh) | 一种通过关键字快速识别http请求头的方法 | |
CN111897644B (zh) | 一种基于多维度的网络数据融合匹配方法 | |
CN111104398A (zh) | 针对智能船舶近似重复记录的检测方法、消除方法 | |
CN111008625A (zh) | 一种地址校正方法、装置、设备及存储介质 | |
CN115858773A (zh) | 适用于长文档的关键词挖掘方法、装置及介质 | |
US20160196303A1 (en) | String search device, string search method, and string search program | |
KR20180070247A (ko) | 네트워크 침입 탐지 규칙을 생성하는 방법 및 장치 | |
CN102073682A (zh) | 一种基于编码方式的文档数据恢复系统及其快速恢复方法 | |
US20220261550A1 (en) | Apparatus for detecting moment described by sentence query in video and method using the same | |
CN112887280B (zh) | 一种基于自动机的网络协议元数据提取系统及方法 | |
CN114417060A (zh) | 应用于实时流布控系统的特征向量检索方法及布控系统 | |
CN108460280B (zh) | 一种网络攻击字符匹配方法及装置 | |
KR100818628B1 (ko) | 특허 번역 사전 구축 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |