System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,更具体地,涉及一种报文解析系统和报文解析方法。
技术介绍
1、从报文的报文头中提取关键字识别报文类型和报文头长度等信息的过程称为报文解析。任何一种网络设备,比如网卡、交换机、路由器等,均需要解析报文头信息才能决定报文的后续处理方式。为了满足各种网络需求,如今的网络协议多种多样,千变万化。基于固定报文格式的传统报文解析方法(也即基于固定解析器的报文解析方法)具有实现简单、时延低和所需硬件资源少等特点。但固定解析器通常支持当前已有的协议,其扩展性受到很大的限制,对于目前越来越多的网络协议,采用固定解析器难以实现。当前的可编程解析器可以很好的支持各种新协议、用户自定义协议等,但是效率较低,需要更多的硬件开销、延时和更大的功耗。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种报文解析系统和报文解析方法,以将固定解析器和可编程解析器相结合,通过固定解析器解析其能够解析的报文协议,通过可编程解析器解析固定解析器不能解析的报文协议,使得报文解析系统能够满足低延时需求和灵活性需求,同时还降低了系统资源需求。
2、第一方面,本专利技术实施例提供一种报文解析系统,所述报文解析系统包括:
3、固定解析器,被配置接收并解析原始报文,响应于所述原始报文未解析完成,将报文解析信息发送至可编程解析器,所述报文解析信息包括已解析结果和所述原始报文的报文头;
4、可编程解析器,被配置为根据接收到的所述已解析结果和所述报文头进行报文解析,获取报文解析结果
5、进一步地,所述可编程解析器进一步被配置为根据所述已解析结果从所述报文头中移除已解析协议头,以对所述报文头中的未解析协议头进行解析。
6、进一步地,所述报文解析系统还包括:
7、缓存器,被配置为缓存所述固定解析器或所述可编程解析器发送的报文解析结果。
8、进一步地,所述固定解析器被配置为响应于报文解析完成,生成并向所述缓存器发送报文解析结果。
9、进一步地,所述可编程解析器包括:
10、解析分配单元,被配置为接收所述固定解析器发送的至少一个报文解析信息,为各所述报文解析信息分配对应的解析单元;
11、头缓存单元,被配置为缓存各所述报文解析信息中的报文头信息;
12、至少一个解析单元,被配置为根据接收到的报文解析信息解析对应的报文头中的未解析协议头。
13、进一步地,所述可编程解析器还包括:
14、寻址单元,被配置为接收所述解析单元解析获取的字段信息,并根据所述字段信息执行匹配操作,获取对应的指针,所述指针用于指向下一解析状态对应的协议类型和/或所述字段信息对应的动作信息;
15、动作存储单元,被配置为存储与所述寻址单元关联的协议类型或动作,根据所述寻址单元确定的指针获取下一解析状态对应的协议类型和/或对应的动作信息。
16、进一步地,所述解析单元还被配置为根据所述动作存储单元返回的协议类型和/或对应的动作信息对从所述头缓存单元获取下一未解析协议头进行解析。
17、进一步地,所述可编程解析器还包括:
18、处理单元,被配置为根据所述动作信息执行对应的动作,所述动作包括域段提取、算术和/或逻辑运算。
19、进一步地,所述解析单元还被配置为响应于所述原始报文解析完成,生成报文解析结果和解析完成反馈消息,并将所述解析完成反馈消息发送至所述解析分配单元;
20、所述解析分配单元还被配置为根据所述解析完成反馈消息将对应的所述解析单元的状态更新为空闲状态。
21、进一步地,所述固定解析器包括:
22、头识别模块,被配置为接收所述原始报文,对所述原始报文进行头部识别,获取头部信息,所述头部信息包括头部类型和域段位置信息;
23、域段提取模块,被配置为接收所述原始报文和所述头部信息,根据所述头部信息中的域段位置信息从所述原始报文中提取域段信息;
24、域段缓存模块,被配置为缓存所述域段信息。
25、第二方面,本专利技术实施例提供一种报文解析方法,所述报文解析方法包括:
26、通过固定解析器接收并解析原始报文;
27、响应于所述固定解析器未完成所述原始报文的解析,将对应的报文解析信息发送至可编程解析器,所述报文解析信息包括已解析结果和所述原始报文的报文头;
28、通过可编程解析器根据接收到的所述已解析结果和所述报文头进行报文解析,获取报文解析结果。
29、第三方面,本专利技术实施例提供一种报文解析装置,所述报文解析装置包括:
30、第一解析单元,被配置为通过固定解析器接收并解析原始报文;
31、第二解析单元,被配置为响应于所述固定解析器未完成所述原始报文的解析,将对应的报文解析信息发送至可编程解析器,所述报文解析信息包括已解析结果和所述原始报文的报文头;
32、第三解析单元,被配置为通过可编程解析器根据接收到的所述已解析结果和所述报文头进行报文解析,获取报文解析结果。
33、第四方面,本专利技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
34、第五方面,本专利技术实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上所述的方法。
35、本专利技术实施例的报文解析系统包括固定解析器和可编程解析器,固定解析器被配置接收并解析原始报文,响应于所述报文未解析完成,将包括已解析结果和报文头的报文解析信息发送至可编程解析器,可编程解析器被配置为根据接收到的已解析结果和报文头继续进行报文解析,获取报文解析结果。由此,本专利技术实施例可以将固定解析器和可编程解析器相结合,通过固定解析器解析其能够解析的报文协议,通过可编程解析器解析固定解析器不能解析的报文协议,使得报文解析系统能够满足低延时需求和灵活性需求,同时还降低了系统资源需求。
本文档来自技高网...【技术保护点】
1.一种报文解析系统,其特征在于,所述报文解析系统包括:
2.根据权利要求1所述的报文解析系统,其特征在于,所述可编程解析器进一步被配置为根据所述已解析结果从所述报文头中移除已解析协议头,以对所述报文头中的未解析协议头进行解析。
3.根据权利要求1所述的报文解析系统,其特征在于,所述报文解析系统还包括:
4.根据权利要求3所述的报文解析系统,其特征在于,所述固定解析器被配置为响应于报文解析完成,生成并向所述缓存器发送报文解析结果。
5.根据权利要求1所述的报文解析系统,其特征在于,所述可编程解析器包括:
6.根据权利要求5所述的报文解析系统,其特征在于,所述可编程解析器还包括:
7.根据权利要求6所述的报文解析系统,其特征在于,所述解析单元还被配置为根据所述动作存储单元返回的协议类型和/或对应的动作信息对从所述头缓存单元获取下一未解析协议头进行解析。
8.根据权利要求6所述的报文解析系统,其特征在于,所述可编程解析器还包括:
9.根据权利要求5所述的报文解析系统,其特征在于,所述解析单
10.根据权利要求1所述的报文解析系统,其特征在于,所述固定解析器包括:
11.一种报文解析方法,其特征在于,所述报文解析方法包括:
12.一种报文解析装置,其特征在于,所述报文解析装置包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求11所述的方法。
14.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求11所述的方法。
...【技术特征摘要】
1.一种报文解析系统,其特征在于,所述报文解析系统包括:
2.根据权利要求1所述的报文解析系统,其特征在于,所述可编程解析器进一步被配置为根据所述已解析结果从所述报文头中移除已解析协议头,以对所述报文头中的未解析协议头进行解析。
3.根据权利要求1所述的报文解析系统,其特征在于,所述报文解析系统还包括:
4.根据权利要求3所述的报文解析系统,其特征在于,所述固定解析器被配置为响应于报文解析完成,生成并向所述缓存器发送报文解析结果。
5.根据权利要求1所述的报文解析系统,其特征在于,所述可编程解析器包括:
6.根据权利要求5所述的报文解析系统,其特征在于,所述可编程解析器还包括:
7.根据权利要求6所述的报文解析系统,其特征在于,所述解析单元还被配置为根据所述动作存储单元返回的协议类型和/或对应的动作信息对从所述头缓存单元获取下一未解析协议...
【专利技术属性】
技术研发人员:蒋红丽,
申请(专利权)人:平头哥上海半导体技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。