当前位置: 首页 > 专利查询>李泽龙专利>正文

用于通信设备持续极速收包解包的单缓冲区断包拼接算法制造技术

技术编号:41136006 阅读:19 留言:0更新日期:2024-04-30 18:07
本发明专利技术公开了用于通信设备持续极速收包解包的单缓冲区断包拼接算法,给出了适用于“任何包头含包起始标识符字段的协议报文”的通用解包算法及断包拼接方法。本发明专利技术仅用单线程、单个接收缓冲区,不开辟任何辅助空间,通过KMP字符串匹配算法在待解包区域查找各包起始标识符降低包起点定位过程的时间开销,通过划分出可能断包区缩小对剩余部分是否够一包长的解包前越界检查的范围,通过在此可能断包区的越界检查快速识别断包,通过搬运长度为N的断包至缓冲区首址buf开始存放并在下轮收包时以buf+N为缓存起点实现快速拼接断包。本发明专利技术满足了通信业对解包的低时间和空间复杂度、通用性等需求,克服了粘包、断包等引起的通信解包技术难题。

【技术实现步骤摘要】

本专利技术公开了用于通信设备持续极速收包解包的单缓冲区断包拼接算法,适用于通过网络套接字进行持续收包解包的互联网领域、大数据领域及网络通信系统研发领域,也适用于所有需要接收并解析以太网报文的有线或无线通信,也适用于需要持续对被测设备进行数据报文采集解析并综合各数据指标分析被测设备各项功性能指标的的测控领域,也适用于需要与上位机交互并随时接收解析上位机发送的使用了任意应用层交互协议格式命令包的嵌入式工控领域和电子信息领域,以及需要进行实时地持续接收并进行音视帧解码或视频帧解码的流媒体领域,具体涉及一种用于通信设备持续极速收包解包的单缓冲区断包拼接算法。


技术介绍

1、收包解包是所有通信领域最常见的需求之一,包即协议包或叫报文,本质上是由负载数据加上协议包头和包尾所构成的该协议的基本传输单元即pdu,此添加包头包尾构成基本传输单元的过程叫做组包或成包,接收方接收到指定长度数据流后从缓冲区中还原出各包边界并根据需求选择拆解使用包括负载数据在内各字段的过程叫做解包。绝大部分协议包头含有用作起始标识作用的起始标识符字段,一些常用协议的包头还会有指示负载数据长度或总包本文档来自技高网...

【技术保护点】

1.用于通信设备持续极速收包解包的单缓冲区断包拼接算法,应用于进行持续收包解包的通信设备中,其特征在于,包括:

2.如权利要求1所述的用于通信设备持续极速收包解包的单缓冲区断包拼接算法,其特征在于,所述下一轮收包解包的过程具体包括:通信设备以流形式接收传输的各协议包后,根据传输方所使用的协议格式从缓存的数据流中还原出各包的边界,所述各包的边界包括各包在缓冲区中的起点和终点位置,并根据需求进行至少包括以包起始标识符字段为该包起点位置向右拆解使用包头各字段,拆解并保存负载数据字段,以及当包尾含校验字段时以此检查该包是否被正确接收在内的一个或多个过程;所述断包为通信设备所指定的接收...

【技术特征摘要】

1.用于通信设备持续极速收包解包的单缓冲区断包拼接算法,应用于进行持续收包解包的通信设备中,其特征在于,包括:

2.如权利要求1所述的用于通信设备持续极速收包解包的单缓冲区断包拼接算法,其特征在于,所述下一轮收包解包的过程具体包括:通信设备以流形式接收传输的各协议包后,根据传输方所使用的协议格式从缓存的数据流中还原出各包的边界,所述各包的边界包括各包在缓冲区中的起点和终点位置,并根据需求进行至少包括以包起始标识符字段为该包起点位置向右拆解使用包头各字段,拆解并保存负载数据字段,以及当包尾含校验字段时以此检查该包是否被正确接收在内的一个或多个过程;所述断包为通信设备所指定的接收数据量不恰好等于按序传输的各协议包中的其中一包或多包长度之和所导致的缓存在指定的接收缓冲区的末尾部分的一个因未被完整接收而格式缺失的协议包,该包未被接收的缺失部分在通信设备下轮收包过程中接收足够长的数据流时缓存于此次指定的接收缓存首地址开始的起始部分区域中。

3.如权利要求1所述的用于通信设备持续极速收包解包的单缓冲区断包拼接算法,其特征在于,所述持续极速收包解包的单缓冲区断包拼接算法是适用于osi七层网络模型框架结构中任何一层协议的报文的通用通信解包算法,任何包头含有包起始标识作用的字段的协议报文均可使用所述算法持续收包解包及识别和处理断包,其中,适用于所述算法的协议报文至少包括应用层的snmp、tftp或http协议报文,传输层的tcp或udp报文,网络层的ip数据报,数据链路层的ppp协议包,以及其它包头含有用作起始标识符字段的公有或私有协议报文。

4.如权利要求1所述的用于通信设备持续极速收包解包的单缓冲区断包拼接算法,其特征在于,所述算法持续收包解包以及断包拼接的过程中仅使用单个存储空间连续的接收缓冲区,无需辅助空间以实现极低的空间复杂度。

5.如权利要求1所述的用于通信设备持续极速收包解包的单缓冲区断包拼接算法,其特征在于,所述算法完成任何一轮收包解包以及断包拼接的过程均只左到右遍历了一次接收缓冲区,以实现算法较低的时间复杂度,同时保证对其他允许包头字段与负载部分重复的协议报文在匹配查找包起始标识符的过程中不会先遇到与包头字段重复的负载字段而误把负载部分当作包起始位置而导致错误解包。

6.如权利要求5所述的用于通信设备持续极速收...

【专利技术属性】
技术研发人员:李泽龙任慧
申请(专利权)人:李泽龙
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1