CN104702600A - 网络数据报文解析方法及装置 - Google Patents
网络数据报文解析方法及装置 Download PDFInfo
- Publication number
- CN104702600A CN104702600A CN201510092218.9A CN201510092218A CN104702600A CN 104702600 A CN104702600 A CN 104702600A CN 201510092218 A CN201510092218 A CN 201510092218A CN 104702600 A CN104702600 A CN 104702600A
- Authority
- CN
- China
- Prior art keywords
- agreement
- current layer
- protocol type
- item
- corresponding agreement
- 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.)
- Granted
Links
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种网络数据报文解析方法及装置,其中,该方法包括:根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行以下解析步骤:根据预设关键信息表项从当前层对应协议的数据包头中获取当前层对应协议的关键信息;根据预设协议信息项从当前层对应协议的数据包头中获取上一层对应协议的协议类型;根据预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置。该方案可以提高网络数据报文解析方法的通用性,同时提高数据报文解析的便捷度。
Description
技术领域
本发明涉及数据报文处理技术领域,特别涉及一种网络数据报文解析方法及装置。
背景技术
随着科学技术的发展,各种各样的网络应用快速普及,网络安全技术变得非常重要。在网络安全应用中,通常都需要对网络数据报文进行解析,即根据数据报文的头部字段信息,分析数据报文的来源、目的、协议等信息。各种不同的网络安全应用,需要处理各种不同类型协议的数据报文,例如,GPRS(General Packet Radio Service,通用分组无线服务技术)类的网络安全应用,需要处理GTP类型的隧道数据包;IPv6(Internet Protocol version 6,互联网通信协议第6版)大学校园网的安全应用,需要处理IPv6数据包,或IPv4-in-IPv6的隧道数据包;PoS线路口的安全应用,需要处理多种类型的PPP(PPP(Point-to-Point Protocol,点到点协议)数据包等等。因此,往往需要根据网络安全应用的不同,选取不同的报文解析方法,报文解析方法的通用性低,且降低了报文解析的便捷度。
发明内容
本发明实施例提供了一种网络数据报文解析方法,以提高网络数据报文解析方法的通用性,提高数据报文解析的便捷度。该方法包括:所述网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头;根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行以下解析步骤:根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
在一个实施例中,所述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表。
在一个实施例中,在对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤之前,还包括:接收用户设置的报文解析配置信息,其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,包括:根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,包括:从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,包括:从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项。
本发明实施例还提供了一种网络数据报文解析装置,以提高网络数据报文解析方法的通用性,提高数据报文解析的便捷度。该装置包括:报文解析模块,用于网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头,根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤;所述报文解析模块,包括:关键信息项获取单元,用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;协议类型获取单元,用于根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;结束位置计算单元,用于根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
在一个实施例中,所述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表。
在一个实施例中,还包括:配置信息接收模块,用于接收用户设置的报文解析配置信息,其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;所述关键信息项获取单元,还用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;所述协议类型获取单元,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;结束位置计算单元,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项。
在本发明实施例中,通过根据开放式系统互联的七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行相同的解析步骤,以获得当前层对应协议的关键信息、当前层的上一层对应协议的协议类型以及当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,最终完成对网络数据报文的头部字段中与开放式系统互联七层结构的每一层对应协议的数据包头的解析。实现了以统一的解析方式对网络数据报文的头部字段中与每一层对应协议的数据包逐层进行解析,与现有技术中不同网络安全应用采用不同的解析方法的方式相比,可以提高网络数据报文解析方法的通用性,同时提高网络数据报文解析的便捷度。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。在附图中:
图1是本发明实施例提供的一种网络数据报文解析方法的流程图;
图2是本发明实施例提供的一种网络数据报文解析方法的流程示意图1;
图3是本发明实施例提供的一种网络数据报文解析方法的流程示意图2;
图4是本发明实施例提供的一种网络数据报文解析装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,提供了一种网络数据报文解析方法,如图1所示,所述网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头;所述网络数据报文解析方法包括:根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行以下解析步骤:
步骤101:根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;
步骤102:根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;
步骤103:根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
由图1所示的流程可知,在本发明实施例中,通过根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行相同的解析步骤,以获得当前层对应协议的关键信息、当前层的上一层对应协议的协议类型以及当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,最终完成对网络数据报文的头部字段中与开放式系统互联七层结构的每一层对应协议的数据包头的解析。实现了以统一的解析方式对网络数据报文的头部字段中与每一层对应协议的数据包逐层进行解析,与现有技术中不同网络安全应用采用不同的解析方法的方式相比,可以提高数据报文解析方法的通用性,同时提高网络数据报文解析的便捷度。
具体实施时,上述网络数据报文解析方法的解析过程如图2所示,根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头进行解析,例如,从开放式系统互联的最低层对应协议的数据包头(即图2中的第一层报文头)开始解析,获得最低层对应协议的关键信息key(1)、最低层对应协议的数据包在网络数据报文的头部字段中的结束位置E(1)以及最低层的上一层对应协议的协议类型S(2),完成最低层对应协议的解析,依次类推,对其他层对应协议进行解析。当上述当前层对应协议是最低层对应协议时,可以通过传输网络数据报文的接口来确定当前层对应协议的协议类型,并确定当前层对应协议的数据包在网络数据报文的头部字段的起始位置为0。
为了满足不同网络安全应用的报文解析需求,在本实施例中,可以实现用户将不同网络安全应用的解析要求转化为不同的配置,实现可配置的网络数据报文解析方法,进而提高数据报文解析的通用性。例如,在对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤之前,上述方法还包括:接收用户设置的报文解析配置信息(报文解析配置信息的具体形式可以如图3中所示的报文解析配置信息表),其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;
配置报文解析配置信息后,根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,包括:根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;例如,使用当前层对应协议的协议类型S(i)和数据包头在所述网络数据报文的头部字段中的起始位置,与报文解析配置信息中的协议类型进行匹配,在报文解析配置信息中查找与当前层对应协议相同的协议类型(例如,协议2),在报文解析配置信息中与找到的协议类型(例如,协议2)对应的预设关键信息表项即是当前层对应协议的预设关键信息表项,从报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项,以便在解析的过程中根据当前层对应协议的预设关键信息表项来从当前层对应协议的数据包头中获取当前层对应协议的关键信息key(i)。
从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,包括:从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;例如,找到与当前层对应协议相同的协议类型(例如,协议2)后,与找到的协议类型对应的上一层对应协议的预设协议信息项就是当前层对应的上一层对应协议的预设协议信息项,从报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项,以便在解析的过程中根据上一层对应协议的预设协议信息项来从当前层对应协议的数据包头中获取上一层对应协议的协议类型S(i+1)。
从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,包括:从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项;例如,找到与当前层对应协议相同的协议类型(例如,协议2)后,在报文解析配置信息中与找到的协议类型(例如,协议2)对应的预设结束位置信息项即是当前层对应协议的预设结束位置信息项,从报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项,以便在解析的过程中根据当前层对应协议的预设结束位置信息项来计算当前层对应协议的数据包头在网络数据报文的头部字段中的结束位置E(i)
具体的,上述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;例如,在网络数据报文中的与每一层对应的协议依次为S(0),S(1),S(2),…S(i),…;第i层协议为当前层对应协议,第i层协议的关键信息项Key(i)有Nk个,关键信息项Key(i)(j)的偏移量和长度分别为:Offset(j),len(j),0<=j<Nk;具体如下表1所示;
表1
关键信息项 | 偏移量 | 长度 |
Key(i)(0) | Offset(0) | Len(0) |
Key(i)(1) | Offset(1) | Len(1) |
… | ||
Key(i)(Nk) | Offset(Nk) | Len(Nk) |
所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;例如,上一层对应协议的协议类型的偏移量和长度分别为:POffset,Plen,每一个上一层对应协议的预设协议信息项通常是包括一项,具体如下表2所示;
表2
上层协议 | 偏移量 | 长度 |
Protocol | POffset | PLen |
所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表,例如,对于结束位置信息项,由两个表组成,一个表为结束位置相关域,结束位置相关域对大多数协议来说,只包含一项,若确实有多项存在,则增加表项的数目,但每一项表征一个字节,当前层对应协议的结束位置相关域为T,其偏移量和长度的位掩码分别为Toffset,Tmask,位置相关域的长度为比特,因为包头的结束位置,通常与包头中的某些比特的标志位相关,具体如下表3所示;另一个表为函数E=f(T)的查找表,某层协议的长度值通常有一定的范围,且范围较小,例如几十个字节,因此,使用查找表来实现f(T)是通用性最强的方法,而该表的项数并不会过多。通过用户配置查找表,可实现任意函数的f(T)。查找表的形式如下表4所示,所示第i层协议的结束位置值Ei=f(T)。
表3
结束位置相关域 | 偏移量 | 比特掩码 |
T | TOffset | TMask |
表4
结束位置相关域T的值 | 结束位置E的值 |
T1 | E1 |
T2 | E2 |
… | … |
Tk | Ek |
以下结合具体示例来详细描述上述报文解析配置信息的配置,例如,以IP层协议为当前层对应协议进行解析为例,IP层可能包括IPv4和IPv6两种协议,关键信息表项、上层协议信息项和结束位置信息项,对IPv4和IPv6都为两个不同的表,例如,解析的目的是获取源IP和目标IP地址。
具体的,对于IPv4协议:
关键信息包括源IP和目标IP,源IP为IP头开始第12个字节到15字节,目标IP为第16字节到19字节,故预设关键信息表项如下表5所示:
表5
关键信息名称 | 偏移量 | 长度 |
源IP地址 | 12 | 4 |
目标IP地址 | 16 | 4 |
上一层对应协议域处于IP包头的第10个字节,上一层对应协议的预设协议信息项如下表6所示:
表6
上层协议 | 偏移量 | 长度 |
协议字符 | 10 | 1 |
IP包头的结束位置与包头中的包头长度域相关,长度域位于第0个字节的3~0比特,因此预设结束位置信息项如下表7所示:
表7
结束位置相关域 | 偏移量 | 长度(比特) |
包头长度 | 0 | 0x0F |
函数E=f(T)的查找表如下表8所示:
表8
结束位置相关域T的值 | 结束位置E的值 |
5 | 20 |
6 | 24 |
7 | 28 |
8 | 32 |
9 | 36 |
10 | 40 |
11 | 44 |
12 | 48 |
13 | 52 |
14 | 56 |
15 | 60 |
对IPv6协议:
源IP为IP头开始第8个字节到23字节,目标IP为第24字节到39字节,故预设关键信息表项如下表9所示:
表9
关键信息名称 | 偏移量 | 长度 |
源IP地址 | 8 | 16 |
目标IP地址 | 24 | 16 |
上一层对应协议域处于IP包头的第6个字节,上一层对应协议的预设协议信息项如下表10所示:
表10
上层协议 | 偏移量 | 长度 |
协议字符 | 6 | 1 |
IPv6的包头固定为40个字节,没有长度相关域,故E=f(T)=40,为常数函数。
基于同一发明构思,本发明实施例中还提供了一种网络数据报文解析装置,如下面的实施例所述。由于网络数据报文解析装置解决问题的原理与网络数据报文解析方法相似,因此网络数据报文解析装置的实施可以参见网络数据报文解析方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图4是本发明实施例的网络数据报文解析装置的一种结构框图,如图4所示,报文解析模块包括:关键信息项获取单元401、协议类型获取单元402以及结束位置计算单元403,下面对该结构进行说明。
报文解析模块,用于网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头,根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤;
所述报文解析模块,包括:
关键信息项获取单元401,用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;
协议类型获取单元402,与关键信息项获取单元401连接,用于根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;
结束位置计算单元403,与协议类型获取单元402连接,用于根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
在一个实施例中,所述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表。
在一个实施例中,还包括:配置信息接收模块,用于接收用户设置的报文解析配置信息,其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;
所述关键信息项获取单元401,还用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;
所述协议类型获取单元402,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;
结束位置计算单元403,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项。
在本发明实施例中,通过根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行相同的解析步骤,以获得当前层对应协议的关键信息、当前层的上一层对应协议的协议类型以及当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,最终完成对网络数据报文的头部字段中与开放式系统互联七层结构的每一层对应协议的数据包头的解析。实现了以统一的解析方式对网络数据报文的头部字段中与每一层对应协议的数据包逐层进行解析,与现有技术中不同网络安全应用采用不同的解析方法的方式相比,可以提高网络数据报文解析方法的通用性,同时网络提高数据报文解析的便捷度。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种网络数据报文解析方法,其特征在于,所述网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头;所述网络数据报文解析方法包括:根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行以下解析步骤:
根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;
根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;
根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
2.如权利要求1所述的方法,其特征在于,所述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;
所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;
所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表。
3.如权利要求1或2所述的方法,其特征在于,在对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤之前,还包括:
接收用户设置的报文解析配置信息,其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;
根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,包括:
根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;
根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,包括:
从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;
根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,包括:
从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项。
4.一种网络数据报文解析装置,其特征在于,包括:
报文解析模块,用于网络数据报文的头部字段包括分别与开放式系统互联七层结构的每一层对应的协议的数据包头,根据开放式系统互联七层结构由低到高的顺序,依次对网络数据报文的头部字段中与每一层对应协议的数据包头执行解析步骤;
所述报文解析模块,包括:
关键信息项获取单元,用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,获取当前层对应协议的预设关键信息表项,根据该预设关键信息表项从所述当前层对应协议的数据包头中获取当前层对应协议的关键信息;
协议类型获取单元,用于根据当前层对应协议的协议类型,获取当前层的上一层对应协议的预设协议信息项,根据该预设协议信息项从所述当前层对应协议的数据包头中获取上一层对应协议的协议类型;
结束位置计算单元,用于根据当前层对应协议的协议类型,获取当前层对应协议的预设结束位置信息项,根据该预设结束位置信息项计算得到当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置,该当前层对应协议的数据包头在所述网络数据报文的头部字段中的结束位置为上一层对应协议的数据包头在所述网络数据报文的头部字段中的起始位置。
5.如权利要求4所述的装置,其特征在于,所述预设关键信息表项包括当前层对应协议的各关键信息项的偏移量和长度;
所述预设协议信息项包括上一层对应协议的协议类型的偏移量和长度;
所述预设结束位置信息项包括当前层对应协议的数据包头的结束位置相关域的偏移量和长度,以及当前层对应协议的数据包头的结束位置值的查找表。
6.如权利要求4或5所述的装置,其特征在于,还包括:
配置信息接收模块,用于接收用户设置的报文解析配置信息,其中,所述报文解析配置信息包括开放式系统互联七层结构的每一层对应协议的协议类型、与每一种协议类型对应的预设关键信息表项、与每一种协议类型对应的上一层对应协议的预设协议信息项,以及与每一种协议类型对应的预设结束位置信息项;
所述关键信息项获取单元,还用于根据当前层对应协议的协议类型和数据包头在所述网络数据报文的头部字段中的起始位置,从所述报文解析配置信息中找到与当前层对应协议相同的协议类型,并从所述报文解析配置信息中获取与找到的协议类型对应的预设关键信息表项;
所述协议类型获取单元,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的上一层对应协议的预设协议信息项;
结束位置计算单元,还用于从所述报文解析配置信息中找到与当前层对应协议相同的协议类型后,从所述报文解析配置信息中获取与找到的协议类型对应的预设结束位置信息项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092218.9A CN104702600B (zh) | 2015-03-02 | 2015-03-02 | 一种可配置的逐层报文解析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510092218.9A CN104702600B (zh) | 2015-03-02 | 2015-03-02 | 一种可配置的逐层报文解析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104702600A true CN104702600A (zh) | 2015-06-10 |
CN104702600B CN104702600B (zh) | 2017-11-24 |
Family
ID=53349369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510092218.9A Active CN104702600B (zh) | 2015-03-02 | 2015-03-02 | 一种可配置的逐层报文解析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104702600B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554002A (zh) * | 2015-12-22 | 2016-05-04 | 曙光信息产业股份有限公司 | 一种隧道报文的解析方法和装置 |
CN105939304A (zh) * | 2015-06-11 | 2016-09-14 | 杭州迪普科技有限公司 | 一种隧道报文解析方法及装置 |
CN108255725A (zh) * | 2018-01-18 | 2018-07-06 | 银联商务股份有限公司 | 测试方法及装置 |
CN109167726A (zh) * | 2018-08-23 | 2019-01-08 | 新华三技术有限公司 | 报文的数据预取方法、装置及网络设备 |
CN109450922A (zh) * | 2018-11-29 | 2019-03-08 | 厦门科灿信息技术有限公司 | 一种通信数据解析方法、装置及相关设备 |
CN111385257A (zh) * | 2018-12-28 | 2020-07-07 | 致茂电子(苏州)有限公司 | 网络封包处理方法及其装置 |
CN111835591A (zh) * | 2020-07-10 | 2020-10-27 | 芯河半导体科技(无锡)有限公司 | 一种以太网报文快速协议识别的方法 |
CN112153753A (zh) * | 2020-09-24 | 2020-12-29 | 维沃移动通信有限公司 | 网络连接方法及装置 |
CN113132309A (zh) * | 2019-12-31 | 2021-07-16 | 中移(成都)信息通信科技有限公司 | 数据包头部信息的获取方法、装置、设备和介质 |
CN113596045A (zh) * | 2021-08-03 | 2021-11-02 | 神州灵云(北京)科技有限公司 | 一种自定义业务分析方法 |
CN114339826A (zh) * | 2021-11-30 | 2022-04-12 | 浙江三维利普维网络有限公司 | 性能数据文件的生成方法、装置、存储介质及电子装置 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
WO2023071714A1 (zh) * | 2021-10-25 | 2023-05-04 | 中移(苏州)软件技术有限公司 | 报文的分段解析方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102480462A (zh) * | 2010-11-23 | 2012-05-30 | 中国电信股份有限公司 | 通用协议适配方法及装置 |
CN102316121B (zh) * | 2011-10-19 | 2013-11-20 | 武汉烽火网络有限责任公司 | 支持动态扩展帧头的过滤匹配预处理方法及装置 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
CN103780624A (zh) * | 2014-01-26 | 2014-05-07 | 北京仿真中心 | 一种面向复杂系统的通用应用层网络通信协议应用方法 |
CN104144156A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 报文处理方法和装置 |
-
2015
- 2015-03-02 CN CN201510092218.9A patent/CN104702600B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102480462A (zh) * | 2010-11-23 | 2012-05-30 | 中国电信股份有限公司 | 通用协议适配方法及装置 |
CN102316121B (zh) * | 2011-10-19 | 2013-11-20 | 武汉烽火网络有限责任公司 | 支持动态扩展帧头的过滤匹配预处理方法及装置 |
CN104144156A (zh) * | 2013-05-10 | 2014-11-12 | 华为技术有限公司 | 报文处理方法和装置 |
CN103780610A (zh) * | 2014-01-16 | 2014-05-07 | 绵阳师范学院 | 基于协议特征的网络数据恢复方法 |
CN103780624A (zh) * | 2014-01-26 | 2014-05-07 | 北京仿真中心 | 一种面向复杂系统的通用应用层网络通信协议应用方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939304A (zh) * | 2015-06-11 | 2016-09-14 | 杭州迪普科技有限公司 | 一种隧道报文解析方法及装置 |
CN105554002A (zh) * | 2015-12-22 | 2016-05-04 | 曙光信息产业股份有限公司 | 一种隧道报文的解析方法和装置 |
CN108255725B (zh) * | 2018-01-18 | 2021-02-19 | 银联商务股份有限公司 | 测试方法及装置 |
CN108255725A (zh) * | 2018-01-18 | 2018-07-06 | 银联商务股份有限公司 | 测试方法及装置 |
CN109167726A (zh) * | 2018-08-23 | 2019-01-08 | 新华三技术有限公司 | 报文的数据预取方法、装置及网络设备 |
CN109167726B (zh) * | 2018-08-23 | 2021-11-05 | 新华三技术有限公司 | 报文的数据预取方法、装置及网络设备 |
CN109450922A (zh) * | 2018-11-29 | 2019-03-08 | 厦门科灿信息技术有限公司 | 一种通信数据解析方法、装置及相关设备 |
CN109450922B (zh) * | 2018-11-29 | 2021-09-21 | 厦门科灿信息技术有限公司 | 一种通信数据解析方法、装置及相关设备 |
CN111385257A (zh) * | 2018-12-28 | 2020-07-07 | 致茂电子(苏州)有限公司 | 网络封包处理方法及其装置 |
CN111385257B (zh) * | 2018-12-28 | 2022-03-15 | 致茂电子(苏州)有限公司 | 网络封包处理方法及其装置 |
CN113132309B (zh) * | 2019-12-31 | 2023-04-14 | 中移(成都)信息通信科技有限公司 | 数据包头部信息的获取方法、装置、设备和介质 |
CN113132309A (zh) * | 2019-12-31 | 2021-07-16 | 中移(成都)信息通信科技有限公司 | 数据包头部信息的获取方法、装置、设备和介质 |
CN111835591A (zh) * | 2020-07-10 | 2020-10-27 | 芯河半导体科技(无锡)有限公司 | 一种以太网报文快速协议识别的方法 |
CN112153753B (zh) * | 2020-09-24 | 2022-09-16 | 维沃移动通信有限公司 | 网络连接方法及装置 |
CN112153753A (zh) * | 2020-09-24 | 2020-12-29 | 维沃移动通信有限公司 | 网络连接方法及装置 |
CN113596045A (zh) * | 2021-08-03 | 2021-11-02 | 神州灵云(北京)科技有限公司 | 一种自定义业务分析方法 |
CN113596045B (zh) * | 2021-08-03 | 2023-08-11 | 神州灵云(北京)科技有限公司 | 一种自定义业务分析方法 |
WO2023071714A1 (zh) * | 2021-10-25 | 2023-05-04 | 中移(苏州)软件技术有限公司 | 报文的分段解析方法、装置、设备和存储介质 |
CN114339826A (zh) * | 2021-11-30 | 2022-04-12 | 浙江三维利普维网络有限公司 | 性能数据文件的生成方法、装置、存储介质及电子装置 |
CN114339826B (zh) * | 2021-11-30 | 2024-01-26 | 浙江三维利普维网络有限公司 | 性能数据文件的生成方法、装置、存储介质及电子装置 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
CN115277880B (zh) * | 2022-06-17 | 2024-04-19 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104702600B (zh) | 2017-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104702600A (zh) | 网络数据报文解析方法及装置 | |
CN104160681B (zh) | 用于使用dns数据识别与ip流相关的应用的方法和装置 | |
KR20130101068A (ko) | IPv6 어드레스의 관리 방법 및 이를 수행하는 게이트웨이 | |
US20130266014A1 (en) | Hashing of network packet flows for efficient searching | |
CA2469169A1 (en) | Method and apparatus for determination of network topology | |
CN104348716A (zh) | 一种报文处理方法及设备 | |
CN109842588B (zh) | 网络数据检测方法及相关设备 | |
CN101355595A (zh) | 定位ip地址的物理所在地的方法和装置 | |
CN104320304A (zh) | 一种易扩展的多方式融合的核心网用户流量应用识别方法 | |
CN107580079B (zh) | 一种报文传输方法和装置 | |
CN107547407B (zh) | 报文传输方法、装置和实现装置 | |
CN107181605B (zh) | 报文检测方法及系统、内容提取装置、流量匹配装置 | |
CN103856580A (zh) | 一种IPv6客户机访问IPv4服务器的方法 | |
CN102932285B (zh) | 报文封装方法、解析方法及装置 | |
EP2429132B1 (en) | Table creating and searching method used by network processor | |
CN102769677B (zh) | 面向真实用户身份信息的IPv6地址设置方法及服务器 | |
CN107070719B (zh) | 一种设备管理方法和装置 | |
US7948916B2 (en) | Method and apparatus for discovering topology information in a network | |
CN114301874A (zh) | 基于IPv4地址地理位置信息的IPv6地址定位方法及电子设备 | |
CN104702709A (zh) | 标识、识别终端类型的方法和装置 | |
CN105515995A (zh) | 报文处理方法、流表生成方法及装置 | |
WO2018108009A1 (zh) | 一种物联网中节点的地址确定方法和装置 | |
WO2020024853A1 (zh) | 一种终端的通信方法和装置 | |
US20120155472A1 (en) | Apparatus and method for classifying packets | |
CN102238084B (zh) | 一种跨域报文的转发方法、装置、路由设备和客户端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100029 Beijing city Chaoyang District Yumin Road No. 3 Applicant after: State Computer Network and Information Safety Management Center Applicant after: BEIJING HENGGUANG INFORMATION TECHNOLOGY CO., LTD. Address before: 100029 Beijing city Chaoyang District Yumin Road No. 3 Applicant before: State Computer Network and Information Safety Management Center Applicant before: Beijing Ever Bright Technology Development Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |