【技术实现步骤摘要】
报文解析方法及网络设备
[0001]本公开涉及互联网通信
,尤其涉及一种报文解析方法及网络设备。
技术介绍
[0002]在相关技术中,通过在网络设备内置的可编程逻辑器件上配置形成处理模块,并由该处理模块对报文进行整体解析。报文通常由多层协议进行封装,处理模块会分别解析每层协议的类型,并通过对应于该协议类型的逻辑资源解析对应的报文内容,直至解析完所有层。
[0003]由于每种协议类型所对应的逻辑资源是相互独立的,因而当协议类型增多时,需要为处理模块增配对应的逻辑资源。因此,相关技术中的整体解析方式,使得处理模块所需占用的逻辑资源极多,而各个协议类型对应的逻辑资源的利用率却不高。
技术实现思路
[0004]有鉴于此,本公开提供一种报文解析方法及网络设备,以解决相关技术中的不足。
[0005]具体地,本公开是通过如下技术方案实现的:
[0006]根据本公开的第一方面,提供了一种报文解析方法,所述方法应用于设置有可编程逻辑器件的网络设备,所述可编程逻辑器件上配置形成接口模块、解析计算模块和数据存储模块;所述方法包括:
[0007]所述接口模块接收目标报文,所述目标报文包含依次嵌套的多个协议层的报文头;
[0008]所述数据存储模块对所述接口模块输出的所述目标报文进行缓存,并将所述目标报文的起始存储地址提供至所述解析计算模块;
[0009]所述解析计算模块用于对所述目标报文的至少一层报文头进行解析;其中,所述解析计算模块对任一层报文头进行解析的过程包括:r/>[0010]将所述起始存储地址与所述任一层之前的报文头长度之和发送至所述数据存储模块,使所述数据存储模块根据收到的起始存储地址与报文头长度之和读取所述任一层的报文数据并返回至所述解析计算模块;
[0011]解析所述任一层的报文数据,以确定所述任一层的报文头长度。
[0012]根据本公开的第二方面,提供了一种网络设备,所述网络设备中设置有可编程逻辑器件,所述可编程逻辑器件上配置形成接口模块、解析计算模块和数据存储模块;其中:
[0013]所述接口模块用于接收目标报文,所述目标报文包含依次嵌套的多个协议层的报文头;
[0014]所述数据存储模块用于对所述接口模块输出的所述目标报文进行缓存,并将所述目标报文的起始存储地址提供至所述解析计算模块;
[0015]所述解析计算模块用于对所述目标报文的至少一层报文头进行解析;其中,所述解析计算模块对任一层报文头进行解析的过程包括:
[0016]将所述起始存储地址与所述任一层之前的报文头长度之和发送至所述数据存储模块,使所述数据存储模块根据收到的起始存储地址与报文头长度之和读取所述任一层的报文数据并返回至所述解析计算模块;
[0017]解析所述任一层的报文数据,以确定所述任一层的报文头长度。
[0018]根据本公开的第三方面,提供了一种网络设备,所述网络设备包括,可编程逻辑器件;
[0019]用于存储配置文件的存储器;
[0020]其中,所述可编程逻辑器件通过运行所述配置文件以实现第一方面所述方法的步骤。
[0021]根据本公开的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述方法的步骤。
[0022]本公开的实施例提供的技术方案可以包括以下有益效果:
[0023]在本公开的实施例中,通过抽象出各个协议类型所对应的统一处理逻辑,并将该统一处理逻辑由可编程逻辑器件上配置的多个模块之间进行交互配合实现,可以迭代实现对各层报文数据的依次解析,并且由于处理逻辑一致因而可以重复利用可编程逻辑器件上的同一逻辑资源,因而协议类型的增加不会导致对逻辑资源的占用发生变化,极大地提高了对可编程逻辑器件的逻辑资源的利用率。
附图说明
[0024]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0025]图1是本公开实施例示出的一种可编程逻辑器件的模块示意图;
[0026]图2是本公开实施例示出的一种报文解析方法的流程图;
[0027]图3是本公开实施例示出的一种起始存储地址和报文头长度的示意图;
[0028]图4是本公开实施例示出的一种模块接口交互示意图;
[0029]图5是本公开实施例示出的加入数据预处理模块后的一种可编程逻辑器件的模块示意图;
[0030]图6是本公开实施例示出的解析计算模块子模块流程图;
[0031]图7是本公开实施例示出的子模块流水并行处理的示意图;
[0032]图8是本公开实施例示出的一种网络设备的结构示意图。
具体实施方式
[0033]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0034]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数
形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0035]应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0036]OSI(Open System Interconnection,开放式通信系统互联)模型将网络通信协议划分为七层结构,依次为物理层、数据链路层、网络层、会话层、表示层以及应用层,每一层中包含多种协议类型。报文在发送之前,其报文头需要按照上述的层次关系,按照从高层至低层的顺序进行依次封装,因而最高层协议的报文头被封装在最内层、最低层协议的报文头处于最外层。由于协议之间的这种层次关系,除了最外层的协议头外,任何一个内层协议在前一个协议的报文头被解析之前均是未知的,只有其前一个协议的报文头解析完成后才能得到确认。因此,网络设备在接收到报文后,需要从外向内依次解析各个协议的报文头。
[0037]例如下表1所示,假定需要传输的数据为有效载荷(payload),则报文的封装过程为:首先封装最高层即协议层5的TCP(Transmission Control Protocol,传输控制协议)协议报文头,形成TCP报文数据本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种报文解析方法,其特征在于,所述方法应用于设置有可编程逻辑器件的网络设备,所述可编程逻辑器件上配置形成接口模块、解析计算模块和数据存储模块;所述方法包括:所述接口模块接收目标报文,所述目标报文包含依次嵌套的多个协议层的报文头;所述数据存储模块对所述接口模块输出的所述目标报文进行缓存,并将所述目标报文的起始存储地址提供至所述解析计算模块;所述解析计算模块用于对所述目标报文的至少一层报文头进行解析;其中,所述解析计算模块对任一层报文头进行解析的过程包括:将所述起始存储地址与所述任一层之前的报文头长度之和发送至所述数据存储模块,使所述数据存储模块根据收到的起始存储地址与报文头长度之和读取所述任一层的报文数据并返回至所述解析计算模块;解析所述任一层的报文数据,以确定所述任一层的报文头长度。2.根据权利要求1所述的方法,其特征在于,所述可编程逻辑器件上还配置形成数据预处理模块;所述方法还包括:所述数据预处理模块对所述接口模块输出的所述目标报文进行预处理,以解析确定所述目标报文的外层报文头的长度和协议类型、内层的首层报文头的协议类型;其中,当所述任一层为内层的首层时,所述报文头长度之和为所述外层报文头的长度且由所述数据预处理模块提供至所述解析计算模块。3.根据权利要求1所述的方法,其特征在于,所述解析计算模块对任一层报文头进行解析的过程还包括:在所述任一层采用的协议类型为包含五元组数据的第一类协议的情况下,生成提取标识并发送至所述数据存储模块,以使所述数据存储模块基于所述提取标识对所述任一层的报文五元组数据进行处理并保存;在所述任一层采用的协议类型为不含五元组数据的第二类协议的情况下,生成类型标识并存储。4.根据权利要求3所述的方法,其特征在于,所述第一类协议包括下述一种或多种协议:IPv4、IPv6、TCP协议;所述第二类协议包括下述一种或多种协议:GRE、VXLAN、GTP协议。5.根据权利要求1所述的方法,其特征在于,所述数据存储模块配置有存储地址输出接口和偏移量输入接口,所述解析计算模块配置有存储地址输入接口和偏移量输出接口;所述数据存储模块将所述目标报文的起始存储地址提供至所述解析计算模...
【专利技术属性】
技术研发人员:刘彦静,王明超,唐世光,
申请(专利权)人:杭州迪普信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。