CN102413141B - 网络消息解析方法及通信设备 - Google Patents
网络消息解析方法及通信设备 Download PDFInfo
- Publication number
- CN102413141B CN102413141B CN201110389258.1A CN201110389258A CN102413141B CN 102413141 B CN102413141 B CN 102413141B CN 201110389258 A CN201110389258 A CN 201110389258A CN 102413141 B CN102413141 B CN 102413141B
- Authority
- CN
- China
- Prior art keywords
- section
- decision
- care data
- indication information
- character
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/07—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
- H04L51/18—Commands or executable codes
-
- 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
-
- 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/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Abstract
本发明实施例提供网络消息解析方法及通信设备,网络消息解析方法包括:接收网络消息,所述网络消息包括一个或多个区段;识别出所述网络消息的应用协议类型为第一应用协议;从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果;其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。使用本发明实施例提供的技术方案,能够实现无损升级。
Description
技术领域
本发明实施例涉及通信技术领域,特别涉及一种网络消息解析方法及通信设备。
背景技术
现在固网宽带业务快速发展,给运营商带来机遇的同时也带来挑战,随着P2P、网络游戏、Web TV、VoIP等应用的普及,带来了带宽管理、内容计费、信息安全处理等一系列问题。
深度包检测(Deep Packet Inspection,DPI)技术被认为是应对网络中多个业务运行所带来的管理问题的有效方法,即利用DPI技术能够对网络中运行的多种业务的网络消息进行快速的解析,可以识别出网络消息所归属的应用协议。
但是,现在仅解析出网络消息所归属的应用协议是不够的,还需要解析出网络消息中携带的关心数据,比如,对于超文本传输协议(Hyper TextTransfer Protocol,HTTP)的网络消息,现有技术提供一种解析HTTP协议的网络消息的方法,具体的,网络服务器接收服务器与客户端间传输的HTTP协议的网络消息,网络服务器中的数据解析模块根据HTTP协议的格式,预先设置好实现的逻辑,收到HTTP协议的网络消息后按照预先设置的逻辑进行处理,以如下网络消息为例对现有技术的解析方法进行描述:
“GET/root.html HTTP/1.1\r\n”
″User-Agent:Mozilla/5.0\r\n“
“Host:d.wikimedia.org\r\n”
″Accept-Encoding:gzip,deflate\r\n“
″Keep-Alive:115\r\n“
″Connection:keep-alive\r\n“
″Content-Length:10\r\n\r\n“
″0123456789″
网络服务器中的解析模块针对HTTP协议的网络消息进行解析时,预先设置好的逻辑是利用逐字符扫描方法,匹配出该网络消息中的请求方法类型以及Host头域值,如上述实例,匹配出的请求方法类型为“GET”,将该请求方法所请求的信息URL(具体是“/root.html”)和Host头域值“d.wikimedia.org”输出到网络服务器中的策略匹配模块,其中,“/root.html”和“d.wikimedia.org”为该网络消息中携带的关心数据,该策略匹配模块匹配出数据流所使用的既定策略,将既定策略输出到网络服务器中的策略执行模块,以便网络服务器中的策略执行模块对数据流执行该既定策略,比如计费策略等。
现有技术的缺点是:
由于各种协议格式不同,处理时提取的关心数据也不同,需要对每种协议都进行预先分析和处理,而对于网络服务器接收的服务器和客户端间传递的网络消息有多种协议进行切换的情况,比如,利用HTTP协议作为实时流传输协议(Real Time Streaming Protocol,RTSP)的管道(Tunnel),一段时间后RTSP协议的网络消息又切换为实时传送协议(Real-time Transport Protocol,RTP)协议的网络消息,现有技术需要针对上述情况重新设置实现的逻辑,需要修改软硬件来支持上述协议切换,无法做到无损升级,即不需要中断业务即可实现升级,影响网络服务器的可靠运行。
发明内容
本发明实施例提供一种网络消息解析方法及通信设备,由于采用的是配置文件,所以在对下一个消息的处理方式有变化时,只需要修改应用协议对应的区段描述信息,不需要重新设置实现的逻辑,从而实现无损升级。
有鉴于此,本发明实施例提供:
一种网络消息解析方法,包括:
接收网络消息,所述网络消息包括一个或多个区段;
识别出所述网络消息的应用协议类型为第一应用协议;
从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;
以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果;
其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
一种通信设备,其包括:
通信模块,用于接收网络消息,所述网络消息包括一个或多个区段;
识别模块,用于识别出所述网络消息的应用协议类型为第一应用协议;
解析模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果;
其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
一种解析系统,包括:编译引擎和处理引擎,
所述编译引擎,用于将配置文件编译成所述处理引擎能识别的协议解析辅助数据;其中,不同的应用协议类型对应不同的配置文件;
所述处理引擎,用于接收网络消息,所述网络消息包括一个或多个区段;
识别出所述网络消息的应用协议类型为第一应用协议;从所述第一应用协议对应的协议解析辅助数据中一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果;其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
本发明实施例利用区段描述信息,获取该区段描述信息所描述的当前区段中的关心数据,并依据关心数据执行该区段描述信息中的决策方法,决策出下一个消息的处理方式,这样,如果对下一个消息的处理方式有变化,则可以通过修改区段描述信息中所描述的决策方法来实现,不需要重新设置实现的逻辑,从而能够做到无损升级,且灵活性也得以提高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的协议承载示意图;
图1b是本发明实施例提供的协议切换示意图;
图1c是本发明实施例提供的应用层协议示意图;
图1d是本发明实施例提供的配置文件的结构示意图;
图2是本发明实施例提供的区段划分示意图;
图3是本发明实施例提供的网络消息所采用的区段分布示意图;
图4是本发明一实施例提供的网络消息解析方法流程图;
图5是本发明另一实施例提供的网络消息解析方法流程图;
图6是本发明实施例提供的网络消息结构图;
图7是本发明实施例提供的区段中快速扫描示意图;
图8是本发明实施例提供的快速扫描方法流程图;
图9是本发明实施例提供的网络消息处理流程图;
图10a是本发明实施例提供的一种通信设备结构图;
图10b是本发明实施例提供的另一种通信设备结构图;
图11是本发明实施例提供的通信设备中扫描子模块的结构图;
图12是本发明实施例提供的解析系统结构图;
图13是本发明实施例提供的解析系统中编译引擎和处理引擎的结构图;
图14是本发明实施例提供的计算机系统结构图。
具体实施方式
为了方便理解,首先对本发明实施例涉及的一些概念做如下介绍:
如图1a所示,协议承载是指第一应用层的消息中承载第二应用层的消息,所述第二应用层的消息是所述第一应用层消息的消息体,且所述第一应用层是所述第二应用层的上一应用层。具体的,网络数据的协议栈是层级关系,下一应用层消息是由上一应用层消息来封装携带的,例如网络数据首先出现的是协议A消息的头部,然后是协议A消息的消息体,该消息体是协议B消息,该协议B消息内部同样分为头部和消息体,协议B的消息体是协议C消息。这样协议A消息承载协议B消息,协议B消息承载协议C消息。
如图1b所示,协议切换是数据流中采用同一应用层中不同应用协议的网络消息间的协议切换,换言之,协议切换涉及的消息是同一应用层的消息;比如,在同一条数据流中,首先出现的协议A消息,该协议A消息起到一定作用,例如作为隧道、协商能力等。协议A消息完全处理完毕后,切换为协议B消息,然后切换为协议C消息,然后切换为协议D消息,其中,协议A与协议B与协议C与协议D是同一应用层中的不同应用协议,比如,HTTP协议切换成RTSP协议,然后再切换成RTP协议。
如图1c所示,本发明实施例中的应用层协议的是指TCP/IP层次中的应用层协议,TCP/IP层次中的应用层协议包括三个层次,分别相当于开放式系统互联(Open System Interconnect,OSI)模型的会话层、表示层和应用层。
本发明实施例中,预先配置了各应用协议对应的配置文件,不同应用协议对应的配置文件结构是基本相同的,在配置文件中,设计人员按照协议结构及解析详细程度需求将一定协议格式的网络消息描述或划分成为一个或多个区段,并对每个区段的特点和处理方法进行描述,应当理解的是,有些协议的网络消息是无法划分的,比如二进制协议,如域名系统(Domain NameSystem,DNS),没有明显的分隔符,那么这类协议就只能使用一个区段来表示。但是当前网络上大部分网络流量采用的协议都是可以划分的。
为了使本发明实施例提供的技术方案更加清楚明白,如下对配置文件进行介绍:
每个应用协议对应的配置文件包括:一个或多个区段描述信息,其中区段描述信息用于描述区段的特点和处理方法,区段描述信息的最小信息集合是区段名称、区段类型;如果配置文件中包括多个区段描述信息,应当理解的是,有的区段描述信息可以包括区段名称、区段类型、关心数据指示信息和决策方法,有的区段描述信息可能仅仅包括区段名称、区段类型,有的区段描述信息可能包括区段名称、区段类型、下一个区段信息;有的区段描述信息可能包括区段名称、区段类型、关心数据指示信息、决策方法和分割符(数据分割符、区段分隔符中的一项或多项);
需要说明的是,本发明实施例侧重于介绍当应用协议对应的配置文件中至少包括一个或多个区段描述信息,而其中至少有一个区段描述信息包括区段名称、区段类型、关心数据指示信息和决策方法时,如何解析出网络消息中的关心数据。
请参见图1d,为本发明实施例的配置文件的一种结构示意图,如图1d所示,应用协议对应的配置文件包括:
1.对应协议的协议全局配置信息,如协议名称、是否大小写敏感等等,实际应用中,是否大小写敏感可有可无。
2.描述每个为此协议划分的区段,区段中包含区段名称、区段类型、关心数据指示信息和决策方法,区段类型表示该区段的扫描方式,例如快速扫描方式、正则表达式匹配方式、按一定长度直接跳转方式等等。
3.每个区段中需要描述本区段的关心数据指示信息,以便解析时利用该关心数据指示信息获得相应的关心数据,并将该关心数据输出到策略匹配模块做既定策略的匹配,或者将该关心数据作为决策的依据。
4.每个区段可以描述决策条件、决策方法、决策结果。其中,决策条件包括一个或者多个关心数据;如果未提供,则表示不需要决策直接跳转到下一个区段。如果当前已经是最后一个区段,或者决策结果是不需要进一步处理,本区段扫描结束后整个协议数据处理完毕。
应当理解的是,在一种实现方式下,不同应用协议对应的配置文件可以存储在计算机媒质中,其内容可以在系统启动时或正常运行时重新进行加载,编译成计算机可以直接读取的协议解析辅助数据(如结构体、链表、数组等等),保存到计算机内存中供协议解析处理时读取。配置文件的格式可以采用任何能描述以上信息的格式,例如XML等等。
本发明实施例中引入“区段”的概念,图2示意出了某个应用协议的网络消息的区段划分示意图,其中,几个矩形框表示区段,带有各种底纹的矩形表示不同的关心数据。从图2可以看出,区段1的关心数据比较详细,具体到每个字符可能都是需要的,其中,区段1通常为某个应用协议的首行,比如HTTP协议的首行,具体为“GET www.abc.com HTTP/1.1”,则关心数据包括:请求的方法“GET”、URL“www.abc.com”以及版本号“1.1”。因此,对于该首行可以采用正则表达式扫描方法。从图2可以看出,区段2中的关心数据比较少,其中,区段2通常为某个应用协议的消息的头域部分(也称为头域区段),图中示出了其仅包含两个关心数据,其余的数据都是可以忽略的,该区段可以采用快速扫描方式,后续实施例将对快速扫描方式进行详细介绍;从图2可以看出,区段3没有关心数据,其中,区段3通常为网络消息的消息体,不包括任何关心数据,不需要解析,可以整体跳过。
基于前述某个应用协议的网络消息的区段划分方式,确定该应用协议对应的配置文件中的区段描述信息,其包括:区段描述信息一,区段描述信息二和区段描述信息三,其中,区段描述信息一所描述的区段为网络消息的首行,区段描述信息二所描述的区段为网络消息的头域部分,区段描述信息三所描述的区段为网络消息的消息体。其中:
其中,区段描述信息一包括:区段名称、区段类型和关心数据指示信息,该区段类型表示该区段采用正则表达式扫描方式,该区段描述信息一还可以包括:区段分割符,该区段分割符用于网络服务器从网络消息中分割出首行,比如,该区段分隔符可以为“\r\n”;
其中,区段描述信息二包括:区段名称、区段类型、关心数据指示信息和决策方法,该区段类型表示该区段采用快速扫描方式,该区段描述信息二还可以包括:数据分割符和区段分割符。其中,数据分割符是用于分割头域部分中的数据的,区段分割符用于网络服务器从网络消息中分割出头域部分,其中,该区段分割符可以是“\r\n\r\n”。
其中,区段描述信息三包括:区段名称和区段类型,该区段类型表示该区段采用的扫描方式为跳过预定长度的字符,该预定长度为网络消息的消息体的长度。其中,区段描述信息一中的区段分割符与区段描述信息二中的区段分割符可以相同,也可以不同,不影响本发明的实现。
其中,上述区段描述信息一,区段描述信息二和区段描述信息三所描述的网络消息为第一设备向第二设备发送的网络消息;可选的,该应用协议对应的配置文件中的区段描述信息还可以包括区段描述信息四、区段描述信息五和区段描述信息六等,此时,该区段描述信息四、区段描述信息五和区段描述信息六所描述的网络消息为第二设备向第一设备发送的网络消息,其中,区段描述信息四的定义与区段描述信息一的相似,区段描述信息五的定义与区段描述信息二的相似,区段描述信息六的定义与区段描述信息三的相似,在此不再赘述。
其中,区段描述信息一中的关心数据指示信息可以包括:统一资源定位符(Uniform/Universal Resource Locator,URL)和版本号指示信息等;
其中,区段描述信息二中的关心数据指示信息可以包括:用于指示下一个区段的协议类型信息的第一指示信息、用于指示下一个区段的长度信息的第二指示信息、以及用于指示下一个区段的编解码信息的第三指示信息中至少一个。
需要说明的是,区段描述信息一也可以有决策方法,也可以没有决策方法,不影响本发明的实现。
其中,区段描述信息二中的决策方法表示依据不同的决策条件执行不同的原子方法,所述原子方法包括:如下的一项或多项:
1.设置下一个区段:明确下一个区段是什么,例如会话初始协议(SessionInitiation Protocol,SIP)消息首行区段后是SIP请求头域区段,或者是SIP响应头域区段,如果是SIP请求区段,则该区段按照请求区段处理,
如果是SIP响应区段,则该区段按照响应区段处理。
2.当下一个区段是直接跳过特定长度的类型时,设置下一个区段为直接跳过特定长度的区段,其中,特定长度是该原子方法所需要的参数,例如实时流传输协议(Real Time Streaming Protocol,RTSP)消息的Content-Length头域指明其消息体部分的长度。
确定一个完整的消息结束:相当于是完成一个完整的协议处理循环,其实质动作是设置下一个区段是当前协议类型的第一个区段,重新循环。例如:一个HTTP消息处理完之后,在同一条流继续发送另外一个HTTP消息。
3.更改下一个消息的协议类型(具体可以理解成更改下一个消息的首个区段的协议类型):当前数据流的协议类型发生变化,需要切换到另外一种类型的协议,下一个消息就是采用变化后的协议。例如,RTSP消息体区段结束后,下一个消息为RTP协议的消息。
4.设置下一个区段开始前需要进行的解码算法:表明要在下一个区段中提取信息之前,需要对其实施某种解码算法以获得真正的信息。例如,一些简单邮件传输协议(Simple Mail Transfer Protocol,SMTP)消息体是经过base64编码的,在处理之前需要进行解码。再如,一些HTTP协议的消息体是经过gzip压缩处理的,在处理之前需要进行解压缩。
其中,原子方法还可以带有参数的,所述参数用于传递决策的一些结果供执行原子方法使用。
其中,区段与区段是有一定顺序关系的,但是区段之后却不一定是固定区段,也不一定是当前协议格式的数据,可以切换成另外一种协议。甚至是在处理完数条消息后才进行协议切换,前后协议并不是承载关系。
如图3所示,网络消息出现的顺序是从上至下,在一种情况下,网络服务器接收的服务器和客户端间传递的网络消息都是应用协议A的网络消息,应用协议A的网络消息包括多个区段;在另一种情况下,网络服务器接收的服务器和客户端间传递的网络消息有多种协议进行切换的情况,如由协议A切换成协议B;在当前区段处理结束,下一个区段即将开始之前,需要进行决策,以确定下一个区段是什么,举例说明,如图3所示,其中,区段1和区段2分别采用协议A的区段描述信息一和区段描述信息二,网络服务器根据区段描述信息二中的决策方法进行决策,在一种情况下,该网络消息存在下一个区段,决策结果表示下一个区段是协议A的网络消息的下一个区段(例如,SIP消息的头域区段后是消息体区段),该网络消息的区段3可以继续采用协议A的区段描述信息三;在另一种情况下,该网络消息不存在下一个区段,决策结果表示下一个网络消息是协议B的网络消息,相应的,也分为多个区段,如协议B的区段1和协议B的区段2等,此时协议B与协议A的关系为协议切换,即将协议A切换为协议B,相应的,协议B的区段1和区段2分别采用协议B的区段描述信息一和区段描述信息二。
参阅图4,本发明实施例提供一种网络消息解析方法,该方法包括:
A1、接收网络消息,其中网络消息包括一个或多个区段。
在不同实现方式下,区段与区段之间可以是以分隔符或者给定的偏移长度分割。
其中,本发明实施例各步骤的执行主体可以是网络服务器。所述网络服务器位于与第一设备和第二设备通信连接,所接收的网络消息为第一设备向第二设备发送的上行网络消息,或者第二设备向第一设备发送的下行网络消息,即所接收的网络消息为第一设备与第二设备之间传输的网络消息。
其中,第一设备可以为客户端,第二设备为服务器。
A2、识别出所述网络消息的应用协议类型为第一应用协议。
A3、从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据。
其中,该第一应用协议对应的配置文件中的一个区段描述信息可以为上述区段描述信息二,该当前区段可以为网络消息的头域部分。
需要说明的是,当所述第一应用协议为基于行的文本类协议(如HTTP、RTSP),所述关心数据指示信息为头域名称,相应的,所述关心数据指示信息所指示的关心数据为:位于对应头域名称后面的头域值,或者,对应头域名称本身所表示的关心数据;
当所述第一应用协议为非文本类协议(如DNS、RTP),所述关心数据指示信息为属性名称,相应的,所述关心数据指示信息所指示的关心数据为属性值;
当所述第一应用协议为标签类协议(如XML、HTML),所述关心数据指示信息为标签名称,相应的,所述关心数据指示信息所指示的关心数据为标签值。
在本发明实施例的后文中,以所述第一应用协议为基于行的文本类协议具体举例说明。
A4、以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果。
需要说明的是,在实际应用中,所获取的关心数据可以是一个或多个,例如,获取的关心数据可以是5-10个,其中作为决策条件的可以是2-4个。应当理解的是,所获取的关心数据可以分成如下三种情况:
第一种情况:所获取的关心数据中的一部分输出给外部应用使用,而所获取的关心数据中的另一部分作为决策条件;
第二种情况:所获取的关心数据既作为决策条件,又输出给外部应用使用;
第三种情况:所获取的关心数据作为决策条件。
其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层,相应的,所执行的原子方法可以为更改当前数据流的协议类型,即下一个消息采用与当前网络消息不同的协议类型。
当所述当前区段不是所述网络消息的最后一个区段时,所述决策结果表示所述当前区段的下一个区段的处理方式,相应的,所执行的原子方法包括:设置下一个区段、设置下一个区段的协议类型、设置下一个区段的长度和设置下一个区段开始前需要进行的解码算法中的一项或任意组合。
其中,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括:一个或者多个关心数据;所述决策结果包括如下原子方法中的一个或多个,以及所述原子方法被执行时所需要的参数;
所执行的原子方法包括:设置下一个区段、更改下一个消息的首个区段的协议类型、设置下一个区段的协议类型和设置下一个区段开始前需要进行的解码算法中的一项或任意组合。
在一种实现方式下,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括一个或者多个关心数据;
其中,当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息和用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述协议类型信息和所述长度信息,
则,以所述协议类型信息和所述长度信息作为决策条件,且所述长度信息表示当前区段为最后一个区段,对应的决策结果包括:更改下一个消息的首个区段的协议类型的原子方法,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型;
或者,当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
则,以所述协议类型信息作为决策条件,对应的决策结果包括:更改下一个消息的首个区段的协议类型的原子方法,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型。
在另一种实现方式下,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
则以所述协议类型信息作为决策条件,对应的决策结果包括:设置下一个区段的协议类型的原子方法,其中,所述下一个区段的协议类型为所述协议类型信息所指示的协议类型。
在又一种实现方式下,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述长度信息,
则以所述长度信息作为决策条件,对应的决策结果包括设置下一个区段为直接跳过预定长度的区段的原子方法,其中所述预定长度为所述长度信息所指示的长度
在再一种实现方式下,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的编解码信息的第三指示信息,所获取的关心数据包括所述编解码信息,
则以所述编解码信息作为决策条件,对应的决策结果包括设置下一个区段开始前需要进行的解码算法的原子方法,其中,所述下一个区段开始前需要进行的解码算法为所述编解码信息表示的解码算法。
可见,本发明实施例利用区段描述信息,获取该区段描述信息所描述的区段中的关心数据,并依据关心数据执行该区段描述信息中的决策方法,决策出下一个区段或者下一个网络消息的处理方式,这样,如果网络消息解析的方法有变化,则可以通过修改区段描述信息中所描述的关心数据指示信息和/或决策方法来实现;如果需要增加新的应用协议解析能力时,则只需要增加新的应用协议的配置文件,不需要重新设置实现的软硬件逻辑,能够做到无损升级。
为了使本发明提供的上述技术方案更加清楚明白,如下以网络服务器为应用服务网关为例描述网络消息解析方法,参阅图4,如下对本发明实施例提供的上述技术方案进行详细介绍:
B1、应用服务网关加载并编译配置文件。
其中,应用服务网关编译配置文件,生成计算机直接读取的协议解析辅助数据并保存。
B2、应用服务网关接收网络消息。
其中,该步骤中接收的网络消息可以是服务器发往客户端的网络消息,也可以是客户端发往服务器的网络消息。
B3、应用服务网关识别该网络消息所属的应用协议,假定为第一应用协议。
具体的,可以采用现有技术中的协议识别方法识别该网络消息所属的应用协议,比如,可以采用传输控制协议(Transmission Control Protocol,TCP)/用户数据包协议(User Data Protocol,UDP)端口识别方法,或者,特征字识别方法,或者,协议行为识别方法等。
B4、应用服务网关利用该第一应用协议对应的配置文件中区段描述信息一,扫描该网络消息,从该网络消息中获取区段描述信息一中关心数据指示信息所指示的关心数据。
其中,区段描述信息一为首行对应的区段描述信息,区段描述信息一包括:区段名称、区段类型、关心数据指示信息和区段分割符,其中,区段类型表示该区段采用的扫描方式为正则表达式扫描方式。该步骤的具体实现方式是:应用服务网关采用正则表达式扫描方式,从网络消息中扫描关心数据指示信息,直到扫描到区段分割符为止,其中,该区段分割符所分割出的区段为应用协议的首行。其中,该区段描述信息一还可以包括下一个区段信息,比如下一个区段的名称,在本实施例中假定是区段描述信息二的名称。该实施例中区段描述信息一中没有决策方法,这样,应用服务网关在扫描该网络消息的首行结束后,根据区段描述信息一中的下一个区段的名称,采用区段描述信息二来处理该网络消息头域部分中的数据。
B5、应用服务网关利用该第一应用协议对应的配置文件中区段描述信息二,继续扫描该网络消息,从该网络消息中区段描述信息二所描述的区段中获取区段描述信息二中关心数据指示信息所指示的关心数据。
其中,区段描述信息二为头域部分对应的区段描述信息,区段描述信息二包括:区段名称、区段类型、关心数据指示信息、决策方法、数据分割符和区段分割符。其中,该区段类型所表示的扫描方式为快速扫描方式,关心数据指示信息为头域,该步骤的具体实现方式是:应用服务网关采用快速扫描方式,从网络消息中继续扫描区段描述信息二中的关心数据指示信息,直到扫描到区段分割符为止,其中,该区段分割符所分割出的区段即为区段描述信息二所描述的区段,具体是该网络消息的头域部分。其中,快速扫描方式请参见后续实施例的详细介绍。
B6、应用服务网关以步骤B5所获得的关心数据作为决策条件,执行区段描述信息二中的决策方法,得到决策结果。
如果在该网络消息的头域部分中未扫描到用于指示协议类型信息的第一指示信息,但扫描到用于指示长度信息的第二指示信息时,则决策出对应的决策结果,该决策结果包括:设置“下一个区段为直接跳过特定长度的区段”的原子方法,其中,特定长度为该长度信息所指示的长度。此时下一个区段所使用的区段描述信息可以是上述区段描述信息三。其中,第一指示信息可以为Content-Type,第二指示信息可以为Content-Length。需要说明的,该段中决定执行哪些原子方法时也可以不以是否扫描到第一指示信息为依据,即仅仅以是否扫描到第二指示信息为依据,换言之,有的实现方式中利用第二指示信息就可以做决策。
一种实施方式中,如果在该网络消息的头域部分中扫描到第一指示信息,且该网络消息中区段描述信息二所描述的区段(则该头域部分)为该网络消息的最后一个区段,决策出对应的决策结果,该决策结果包括:更改当前数据流的协议类型为所述第一指示信息所指示的协议类型的原子方法,比如当前网络消息为HTTP类型,下一个网络消息为第一指示信息所指示的协议类型,即第二应用协议,比如RTSP类型,此时两个协议的关系为协议切换,具体的协议切换的定义和相关描述请参考前述描述,在此不再赘述。具体的,如果在网络消息的头域部分没有扫描到第二指示信息,则可以表示该头域部分为该网络消息的最后一个区段。
又一种实施方式中,如果在该网络消息的头域部分中扫描到第一指示信息,且该网络消息中区段描述信息二所描述的区段不是该网络消息的最后一个区段,决策出对应的决策结果,该决策结果包括:设置下一个区段的协议类型为第一指示信息所指示的协议类型的原子方法,比如第二应用协议,此时,下一个区段为当前网络消息的消息体,此时该网络消息所属的第一应用协议与消息体所采用的第二应用协议为承载关系,具体的协议承载的定义和相关描述请参考前述描述,在此不再赘述。
需要说明的是,对于上述第二种情况,后续对该网络消息中消息体的操作完成后,还需要重新利用第一应用协议的配置文件继续处理下一个网络消息。
如果该网络消息的头域部分中扫描到用于指示编解码信息的第三指示信息,决策出对应的决策结果,该决策结果包括:设置下一个区段开始前需要进行的解码算法的原子方法,比如,第三指示信息指示的编解码类型可以为base64,则在下一个区段开始执行操作前需要先对下一个区段进行解码。其中,对于简单邮件传输协议(Simple Mail Transfer Protocol,SMTP),网络消息的消息体可以使用该编解码类型对应的解码算法对下一个区段进行解码。
B7、应用服务网关利用上述各步骤所获取的关心数据,获取既定策略。
该既定策略是用于对客户端与服务器间传输的网络消息进行处理的策略,其可以是阻断、计费等策略。
可见,本发明实施例利用区段描述信息,获取该区段描述信息所描述的区段中的关心数据,并依据关心数据执行该区段描述信息中的决策方法,决策出下一个区段的处理方式,这样,在网络消息解析的方法有变化时,则可以通过修改区段描述信息中所描述的关心数据指示信息和/或决策方法来实现,比如,关心数据有变化,则需要修改关心数据指示信息,再如,对下一个区段或者下一个网络消息的处理方式有变化时,则需要修改决策方法;在需要增加新的应用协议解析能力时,则只需要增加新的应用协议的配置文件,不需要重新设置实现的逻辑,能够做到无损升级。
请参阅图6,如下举实例对本发明实施例提供的网络消息解析方法进行详细描述:
图6示出了客户端与服务器之间传输的网络消息:其中,粗线条的矩形框表示一个网络消息,细线条的矩形区域表示一个区段,如区段100到区段109,如图6所示,HTTP协议消息、RTSP协议消息可以包括首行区段、头域部分区段和消息体部分区段,例如区段100对应是首行区段;区段101对应头域部分区段;应当理解的是,在实际应用中,有的消息可以是没有消息体部分区段,例如区段101之后就没有消息体,紧接着响应消息首行。其中,加粗字体为关心数据指示信息,比如Content-type,Content-length和RTP-Info。加粗字体并带有下划线的为关心数据指示信息所指示的关心数据,比如Content-type所指示的关心数据“application/sdp”,Content-length所指示的关心数据“1903”等。换言之,本发明实施例中的关心数据指示信息可以是Content-Type头域(在区段103、105以加粗字体示意)、Content-Length头域(在区段105以加粗字体示意)、RTP-Info头域(在区段108以加粗字体示意),相应的,关心数据指示信息所指示的关心数据本身就是Content-Type头域的头域值、Content-Length头域的头域值、RTP-Info头域的头域值,其中,HTTP协议网络消息和RTSP协议网络消息中首行的区段分隔符为“\r\n”,如图6中的HTTP协议网络消息的区段100、区段102,以及RTSP协议网络消息的区段104;HTTP协议网络消息头域部分的区段分割符为“\r\n\r\n”,数据分割符为“\r\n”,如图6中的HTTP协议网络消息的区段101。区段109是RTP格式的数据,其具体可以是视频数据。
其中,一种方式中,一个区段结束之后或下一个区段开始之前需要决策,在另一种方式中,一些区段结束之后已经明确下一区段,是不需要决策的,比如,在该区段描述信息中已有下一个区段的名称,这样默认为当前区段结束之后就执行下一个区段。例如区段100之后一定是区段101,本例中区段101之后是需要决策的,本例中区段101之后消息就结束了。如下示出了解析图6所示网络消息所利用的配置文件:
其中,决策条件是在本区段中获取的全部或者部分关心数据;下表1是保存决策条件的一张示例表(简称为决策表),换言之就是变量表,决策条件就是这些变量值;
为了使上述实例更加清楚,如下对决策表中的变量进行简单描述:
变量名称 | 类型 | 初始值 |
content-length | 整型 | 0 |
is_rtsp_tunnel | 布尔 | false |
is_rtp | 布尔 | false |
表1
如下结合图6和上述配置文件对本发明实施例提供的网络消息解析方法进行详细描述:
网络服务器接收到客户端向服务器发送的HTTP请求消息,在识别出其应用协议类型为HTTP协议后,查询HTTP协议对应的配置文件中区段描述信息一,该区段描述信息一包括区段名称即HTTP_FIRST_LINE_REQUEST和区段类型即正则表达式,下一个区段信息即HTTP_REQ_HEADER,以及关心数据指示信息即URL,利用该区段描述信息一中的区段类型表示的正则表达式扫描方式,对该HTTP请求消息进行扫描,利用该区段描述信息一中的关心数据指示信息,从HTTP请求消息中获取该关心数据指示信息所指示的关心数据,直到扫描到区段分割符“\r\n”,此时,HTTP请求消息的第一个字符到该区段分隔符之间的字符为区段100。该区段中关心数据指示信息为URL,扫描得到的关心数据为“/sweet.3gp”。
由于该区段描述信息一中包括下一个区段信息,指示下一个区段为HTTP_REQ_HEADER,故不需要决策,采用该应用协议的区段描述信息二,即名称为“HTTP_REQ_HEADER”的区段描述信息,直接处理该HTTP请求消息的下一个区段即区段101。
网络服务器利用该区段描述信息二中区段类型表示的快速扫描方式,从区段100后面的第一个字符开始扫描,利用该区段描述信息二中的关心数据指示信息,继续从该网络消息中扫描该关心数据指示信息所指示的关心数据,直到扫描到区段分割符“\r\n\r\n”为止,其中,区段100的下一个字符到区段分割符“\r\n\r\n”之间的字符为区段101。其中,该区段描述信息二中的关心数据指示信息为“User-Agent”和“Content-Length”,Content-Length指示的是HTTP消息的消息体的长度,User-Agent指示的是用户浏览器代理,如果在该区段101中没有扫描到“Content-Length”,也就是说该HTTP请求消息中没有HTTP消息的消息体,由于没有扫描到Content-Length,则Content-Length为0,所以该区段101中执行的原子方法为end_of_message,即表示消息结束,复位上表1中所有标志位与整型值为初始值。
网络服务器接收到服务器向客户端发送的HTTP响应消息即“HTTP/1.0 200OK”,查询HTTP协议对应的配置文件中区段描述信息四,该区段描述信息四包括区段名称即“HTTP_FIRST_LINE_RESPONSE”,区段类型即正则表达式,下一个区段信息即“HTTP_RSP_HEADER”,利用该区段描述信息四中的关心数据指示信息,采用区段描述信息四中的区段类型表示的正则表达式,从HTTP响应消息中扫描该关心数据指示信息所指示的关心数据,直到扫描到区段分割符为“\r\n”,此时,HTTP响应消息的第一个字符到该区段分隔符之间的字符为区段102(当前区段102是HTTP响应消息首行),依据该区段描述信息四中的关心数据指示信息,该区段中需要提取的关心数据是HTTP版本号。由于该区段描述信息四中包括下一个区段信息,指示下一个区段为HTTP_RSP_HEADER,故不需要决策,直接采用该应用协议的区段描述信息五(即区段名称为“HTTP_RSP_HEADER”的区段描述信息),处理该HTTP响应消息的下一个区段即区段103。
网络服务器查询该区段描述信息五,利用该区段描述信息五中的关心数据指示信息,采用区段描述信息五中的区段类型表示的快速扫描方式,从HTTP响应消息中扫描该关心数据指示信息所指示的关心数据,直到扫描到区段分割符为“\r\n\r\n”,其中,该区段分割符所分割出的区段为103。其中,该区段描述信息中的关心数据指示信息为“Content-Type”和“Content-Length”,该实例中,在该区段103中扫描到“Content-Type”头域,对其头域值进行精确匹配字符串“x-rtsp-tunnel”,若匹配成功,则设置变量“is_rtsp_tunnel”的值为真(例如在上表1中记录变量“is_rtsp_tunnel”的值为true),由于没有扫描到“Content-Length”,所以记录变量Content-Length的值为0(例如在上表1中记录变量Content-Length的值为0,或者,不用更新上表1中变量Content-Length的值;需要说明的是;如果在区段103中扫描到“Content-Length”头域,就将其头域值保存到变量“content-length”中),然后以“is_rtsp_tunnel”为真,Content-Length的值为0作为决策条件,执行决策方法,如下:
可见,当“is_rtsp_tunnel”为真,Content-Length的值为0时,决策出要执行的原子方法为″change_protocol″,该原子方法是下一网络消息的协议类型切换为RTSP,所以客户端和服务器间传输的下一个网络消息就采用RTSP对应的配置文件来进行解析。其逻辑含义是,由于Content-Length头域值表明此消息不包含消息体,因此不是协议承载关系,进一步的,Content-Type头域值表明了此HTTP消息的作用是RTSP隧道,因此后续网络消息需要切换成RTSP。
网络服务器接收服务器向客户端发送的RTSP消息即“RTSP/1.0 200OK”,查询RTSP协议对应的配置文件中的区段描述信息一,该区段描述信息一包括区段名称即RTSP_FIRST_LINE、区段类型即正则表达式,下一个区段信息即RTSP_HEADER和关心数据指示信息,利用该区段描述信息一中的区段类型表示的正则表达式扫描方式,扫描该RTSP网络消息,直到扫描到区段分割符“\r\n”为止,其中,该区段分割符“\r\n”所分割出的区段为区段104,依据该区段描述信息一中的关心数据指示信息,该区段中需要提取的关心数据是RTSP版本号。由于该区段描述信息一中包括下一个区段信息,指示下一个区段为RTSP_HEADER,故不需要决策,直接采用该RTSP下协议对应的配置文件中的区段描述信息二(其中区段名称为“RTSP_HEADER”),处理该RTSP消息的下一个区段即区段105。
网络服务器利用该RTSP协议对应的区段描述信息二中区段类型表示的快速扫描方式,继续扫描该RTSP网络消息,直到扫描到区段分割符为“\r\n\r\n”为止,其中,该区段分割符分割出的区段为区段105。如果扫描到该区段描述信息二中关心数据指示信息,则将该关心数据指示信息所指示的关心数据提取出来,比如关心数据指示信息为“Vsrc”、“Content-Type”和“Content-Length”,在此例子中在该区段中扫描到“Vsrc”、“Content-Type”和“Content-Length”,“Content-Type”头域值指示协议切换为会话描述协议(Session DescriptionProtocol,SDP),SDP协议的消息中没有关心数据,本例中可以忽略。由于头域值没有指示实时传输协议(Real Time Protocol,RTP)协议,所以变量“is_rtp”的值为默认值,保持为假,“Content-Length”头域值指示的值为1903,所以记录变量Content-Length的值为1903(例如在上表1中记录变量Content-Length的值为1903),然后以“is_rtp”的值为假,“Content-Length”的值为1903作为决策条件,执行决策方法,如下:
需要说明的是:如上决策方法是应用于区段105和区段108的,包含两个关心数据及对应的原子方法。可见,针对105区段来说,从上述决策方法可以看出,当“is_rtp”为假,Content-Length的值非0时,决策得出:确定下一区段为直接跳转区段,直接跳转的字符数为1903。则后续区段106的字符数为1903,网络服务器不对其进行任何处理,直接跳过。
由于106区段结束后就没有后续区段了,说明此RTSP消息结束,则后续消息采用本应用协议第一个区段的区段描述信息(即RTSP协议对应的区段描述信息一)来处理。因此107区段的处理方式与104区段一致。
同理,处理到区段108时,发现存在RTP-Info头域,决策后协议类型要切换为RTP。具体的,网络服务器利用该RTSP协议对应的区段描述信息二中区段类型表示的快速扫描方式,继续扫描该RTSP网络消息,直到扫描到区段分割符为“\r\n\r\n”为止,其中,该区段分割符分割出的区段为区段108。如果扫描到该区段描述信息二中关心数据指示信息,则将该关心数据指示信息所指示的关心数据提取出来,在此例子中在该区段中扫描到“RTP-Info”,“RTP-Info”头域值为url=rtsp://10.13.4.3:554/sweet.3gp/,该头域值可以不是关心数据,也不需要参与后续既定策略的匹配。由于关心数据指示信息本身指示了RTP协议,所以设置变量“is_rtp”的值为真,然后以“is_rtp”的值为真,“Content-Length”的值为0作为决策依据,执行决策方法,如下:
决策逻辑为,当“is_rtp”为真,content-length值为0时,决策出:协议切换成RTP协议。需要说明的是,在本例中,因为没有扫描到Content-Length头域,所以content-length的值为0。
需要说明的是,上述给出的决策逻辑仅仅适用于本实例,在实际应用中,可以有其他用于决策的变量,也可以有其他决策方法,不影响本发明的实现。
在另一具体实施例中,决策方法的决策结果为切换协议或者承载协议,具体的,配置文件中某个区段的描述信息可以包括如下内容,
<EndSection Treatment>
<Parameters>HTTP_IS_RTSP,HTTP_IS_MIME,HTTP_IS_MMS,HTTP_IS_KJAVA</Parameters>
<Decision action=″switch_Protocol″protocol=″RTSP″>TRUE,FALSE,FALSE,FALSE</Decision>;表示本协议切换成RTSP;
<Decisionaction=″Embedded_Protocol″protocol=″MIME″>FALSE,TRUE,FALSE,FALSE</Decision>;
表示本协议承载多用途网际邮件扩充协议(Multipurpose Internet MailExtensions,MIME),下一步将自动跳转到MIME协议的第一个Section,当整个MIME处理完毕后还会跳转回来本协议继续处理
<Decision action=″Embedded_Protocol″protocol=″MMS″>FALSE,FALSE,TRUE,FALSE</Decision>;表示本协议承载多媒体服务协议(Multi Media Serve,MMS),下一步将自动跳转到MMS协议的第一个Section,当整个MMS处理完毕后还会跳转回来本协议继续处理
<Decisionaction=″Embedded_Protocol″protocol=″KJAVA″>FALSE,FALSE,FALSE,TRUE</Decision>
表示本协议承载协议KJAVA,下一步将自动跳转到KJAVA协议的第一个Section,当整个KJAVA处理完毕后还会跳转回来本协议继续处理
</EndSectionTreatment>
图7和图8示出了本发明实施例提供的快速扫描方法,该快速扫描方法可用于扫描头域部分中的关心数据指示信息,其具体包括:
C1、从区段的第一个字符开始,跳转预设长度的字符;
其中,该区段可以是一网络消息的头域部分。
其中,所述预设长度由区段中的数据分隔符的长度决定,数据分隔符的长度越长,则该预定长度就越长,一般的,预定长度<数据分隔符+关心的字符长度n;其中,关心数据指示信息可以是一串字符串,该关心的字符为字符串的头部字符,其可以为字符串的前n个字符,其中,n大于或者等于1,比如n等于2时,其包括该字符串的第一个字符和第二个字符;其中,数据分割符可以记载在该区段描述信息中,数据分隔符与区段分割符不同,数据分割符是用于分割同一区段中的数据的,区段分割符是用于从网络消息中分割出对应区段描述信息的区段的,比如从HTTP网络消息中分割出HTTP首行和HTTP头域部分。具体的,数据分割符可以为“\r\n”,区段分割符可以为“\r\n\r\n”。其中,如果数据分隔符为“\r\n”,关心的字符取一个,则预设长度可以为3,即每次跳转3个字符。
C2、当跳转到的字符是所述字符串中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非字符串中的字符是否是数据分割符,如果是,利用所述跳转到的字符,采用字符串匹配方法,在所述区段中匹配到所述字符串,将匹配的字符串所指示的关心数据发送给策略匹配模块,结束本流程。
其中,在HTTP头域部分中匹配的字符串可以是“Content-Type”或者“Content-Length”。
C3、当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述字符串中的前n个字符,如果是,根据所述字符串中的前n个字符,采用字符串匹配方法,在所述区段中匹配到所述字符串,将匹配的字符串所指示的关心数据发送给策略匹配模块,结束本流程。
其中,n可以为1,或者2,或者其他任意数值,不影响本发明的实现。
需要说明的是,上述快速扫描算法可以适用于任何协议,其完全可以用硬件实现,比如用FPGA实现。
如下结合上述实例,对本发明实施例提供的快速扫描方法进行详细描述:
比如图6中的区段105:
RTSP/1.0 200 OK\r\n
CSeq:1\r\n
Date:Wed,31 Mar 2004 01:18:50GMT\r\n
Vsrc:http://10.13.4.3:8888/viewsource/eqDreA1\r\n
Last-Modified:Wed,10Mar 2004 02:07:17 GMT\r\n
Content-base:rtsp://10.13.4.3:554/sweet.3gp/\r\n
Vary:User-Agent,ClientID\r\n
Content-type:application/sdp\r\n
Content-length:1903\r\n\r\n
假定关心的字符是V和C,即字符串“Vsrc”和“Content-type”的首个字符,每次跳转的预设长度为3个字符,数据分割符为“\r\n”,在扫描Content-type时,会出现如下几种情况:
1、如果跳转到的字符为Content-Type之前的“\r”,此时需要检查后续两个字符是否是“\n”和“C”,如果是,再对剩余字符“ontent-Type”进行精确匹配,具体可以采用字符串匹配方法进行匹配,如果匹配成功,将Content-Type所指示的关心数据输出到策略匹配模块,即将“application/sdp”输出到策略匹配模块。
2、如果跳转到的字符为Content-Type之前的“\n”,此时需要检查后续字符是否是“C”,以及前面的字符是否是“\r”,如果是,再对剩余字符“ontent-Type”进行精确匹配,具体可以采用字符串匹配方法进行匹配,如果匹配成功,将Content-Type所指示的关心数据输出到策略匹配模块。
3、如果跳转到的字符为“C”,此时需要检查前面两个字符是否是“\r”和“\n”,如果是,再对剩余字符“ontent-Type”进行精确匹配,具体可以采用字符串匹配方法进行匹配,如果匹配成功,将Content-Type所指示的关心数据输出到策略匹配模块。
上述是以关心的字符为1个字符为例进行描述,其关心的字符也可以是两个字符,即字符串的头两个字符,即“Co”和“Vs”。
本发明上述实施例提供的网络消息解析方法可以应用到固网络、移动网络的接入网、核心网中各种网关设备,如可使用在应用服务网关上,其作用是用于获取网络消息中关心数据并针对该网络消息实施各种既定策略,例如阻断、限流、重定向、内容计费等策略,其中,图9示出了应用服务网关的多个网络消息处理流程,具体包括:
E1、应用服务网关接收网络消息。
具体的,客户端使用UE通过认证登录到无线接入网,并从核心网获得应用服务器的IP地址,然后向该应用服务器发送网络消息。
E2、应用服务网关识别出该网络消息所使用的应用协议。
具体可以采用TCP/UDP端口识别方法,或者,特征字识别方法,或者,协议行为识别方法。
E3、应用服务网关将该网络消息的五元组保存到流表中。
其中,网络消息的五元组包括:源IP、目的IP、源端口、目的端口和传输协议类型,传输协议类型可以是TCP或者UDP。应用服务网关将该网络消息的源IP、目的IP、源端口、目的端口和传输协议类型保存到流表中。
E4、应用服务网关利用步骤E2中识别出的应用协议所对应的配置文件,从网络消息中提取关心数据。
其中,应用服务网关从网络消息中提取关心数据的方法具体是依据应用协议对应的配置文件,采用正则表达式方式或者快速扫描方式在网络消息的对应区段中找到关心数据,并利用找到的关心数据作为决策依据执行决策方法,决策出网络消息的下一个区段或者下一个网络消息的处理方式,进而采用正则表达式方式或者快速扫描方式在下一个区段或者下一个网络消息中找到关心数据,具体的实现方式可参见图5所对应实施例的相应描述,在此不再赘述。
E5、应用服务网关利用从网络消息中提取到的关心数据进行策略匹配。
其中,既定策略包括:阻断、限流、重定向、计费等策略。
E6、应用服务网关执行匹配到的既定策略。
比如,对于上述图6所示的网络消息,应用服务网关在处理区段101中解析出URL“/sweet.3gp”,但是仅仅采用该URL没有匹配到任何策略,直到应用服务网关处理区段108时,匹配到RTP-Info头域,该应用服务网关利用RTP-Info头域与“/sweet.3gp”,才获知服务器与客户端交互的是视频文件,匹配到计费策略,后续就可以针对区段109的内容进行计费了。
E7、该应用服务网关接收到后续网络消息,将新接收到的网络消息的源IP、目的IP、源端口、目的端口和传输协议类型与保存到流表中五元组的进行匹配,如果匹配成功,则利用步骤E6中已匹配到的既定策略对该网络消息进行处理;如果匹配不成功,则将该网络消息当作一个新的网络消息,重新执行步骤E2-E6,在此不再赘述。
该实施例可以对客户端和服务器间的网络消息进行解析并匹配出既定策略,以便利用该既定策略对客户端与服务器的通信进行计费等处理。
参阅图10a和图10b,本发明实施例提供一种通信设备,该通信设备可以包括:
通信模块81,用于接收网络消息,所述网络消息包括一个或多个区段;
识别模块82,用于识别出所述网络消息的应用协议类型为第一应用协议;
解析模块83,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果;其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
其中,参阅图10a,该解析模块83包括:
解析子模块8311,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;
和,决策子模块8312,用于以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方法,得到对应的决策结果,
其中,所述决策方法用于描述依据不同的决策条件执行不同的原子方法;所述决策条件包括一个或者多个关心数据;
在一种实现方式下,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息和用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述协议类型信息和所述长度信息;
相应的,所述解析模块83包括:
解析子模块8311具体用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息和用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述协议类型信息和所述长度信息;
决策子模块8312具体用于以所述协议类型信息和所述长度信息作为决策条件,且所述长度信息表示当前区段为最后一个区段,决策出对应的决策结果,所述决策结果包括:更改下一个消息的首个区段的协议类型的原子方法,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型;
或者,在另一种实现方式下,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息;相应的,所述解析模块83包括:
解析子模块8311具体用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
决策子模块8312具体用于以所述协议类型信息作为决策条件,决策出对应的决策结果,所述决策结果包括:更改下一个消息的首个区段的协议类型的原子方法,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型。此时第一指示信息可以是Content-Type头域,其所指示的关心数据为位于该头域后面的具体的协议类型。或者,第一指示信息为RTP-info头域,其所指示的关心数据为RTP。
在另一种实施方式中,所述解析模块还用于当所述当前区段不是所述网络消息的最后一个区段时,所述决策结果表示所述当前区段的下一个区段的处理方式。
应当理解的是,本发明实施例中涉及的决策结果可以用原子方法以及该原子方法所需要使用的参数来表征,其中,原子方法包括设置下一个区段的原子方法、更改下一个消息的首个区段的协议类型的原子方法、设置下一个区段的协议类型的原子方法和设置下一个区段开始前需要进行的解码算法的原子方法中的一项或任意组合。其中,这些原子方法所执行功能的描述请参见方法实施例的相应描述,在此不再赘述。尤其需要说明的是,当所述当前区段不是所述网络消息的最后一个区段时,相应的决策结果可以用设置下一个区段的原子方法、设置下一个区段的协议类型的原子方法和设置下一个区段开始前需要进行的解码算法的原子方法中的一项或任意组合来表示,具体是哪一种原子方法,是根据具体的决策条件来确定的。
其中,在一种实施方式中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息;
相应的,所述解析模块83包括:
解析子模块8311具体用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息;
决策子模块8312具体用于以所述协议类型信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段的协议类型的原子方法,其中,所述下一个区段的协议类型为所述协议类型信息所指示的协议类型。
其中,另一种实施方式中,所述关心数据指示信息包括:用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述长度信息;
相应的,所述解析模块83包括:
解析子模块8311具体用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述长度信息;
决策子模块8312具体用于以所述长度信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段为直接跳过预定长度的区段的原子方法,其中所述预定长度为所述长度信息所指示的长度。其中,直接跳过预定长度的区段可以是上述图6所对应配置文件中的LEN_TRACKING,具体实现请参见方法实施例的相应描述。
其中,又一种实施方式中,所述关心数据指示信息包括:用于指示下一个区段的编解码信息的第三指示信息,所获取的关心数据包括所述编解码信息;
相应的,所述解析模块83包括:
解析子模块8311具体用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的编解码信息的第三指示信息,所获取的关心数据包括所述编解码信息;
决策子模块8312具体用于以所述编解码信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段开始前需要进行的解码算法的原子方法,其中,所述下一个区段开始前需要进行的解码算法为所述编解码信息表示的解码算法。其中,编解码类型可以是base64等。
其中,该实施例中配置文件的结构请参见上述方法实施例的相应描述,在此不再赘述。上述多种实施方式可以分别实施,也可以彼此结合实施,不影响本发明的实现。
具体的,所述第一区段描述信息包括:区段名称,区段类型,所述关心数据指示信息和所述决策方法,所述区段类型表示所述当前区段所使用的扫描方式,具体可以是快速扫描方式、正则表达式扫描方式等等;在一种实现方式下,参见图10b,所述解析模块83,包括:
扫描子模块8321,用于以所述区段类型表示的扫描方式,从所述区段名称对应的所述当前区段中扫描到所述关心数据指示信息;
获取子模块8322,用于获取所扫描到的关心数据指示信息所指示的关心数据;
决策子模块8323,用于获取所扫描到的关心数据指示信息所指示的关心数据,利用所述全部或部分关心数据,执行所述第一区段描述信息中的决策方法,得到对应的决策结果。
为了进一步的提高解析的效率,本发明实施例还提供快速扫描技术,参阅图11,所述扫描子模块8321包括:
快速扫描子模块8321a,用于从所述区段名称对应的当前区段的第一个字符开始,跳转特定长度的字符,当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符;其中,n大于或者等于1;当跳转到的字符是所述关心数据指示信息中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符;
精确匹配子模块8321b,用于在判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符的判断结果为是时,根据所述关心数据指示信息中的前n个字符,在所述当前区段中匹配到所述关心数据指示信息;在判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符的判断结果为是时,利用所述跳转到的字符,在所述当前区段中匹配到所述关心数据指示信息。其中,扫描子模块的具体操作可参见图7、图8所对应的实施例的详细描述。
为了实现对第一设备与第二设备间的网络消息进行阻断、计费等管理,所述通信设备还可以包括:策略匹配模块84和策略执行模块85,其中:
策略匹配模块84,用于利用所述关心数据,确定所述网络消息所适用的既定策略;
策略执行模块85,用于利用所述既定策略,对所述网络消息所在的数据流进行操作。其中,既定策略可以是计费策略等。
需要说明的是,本发明实施例的通信设备可以是应用到固定、移动网络的接入网、核心网中各种网关设备,具体可以是应用服务网关,但不限于此。可以作为实现网关设备各功能的支撑技术,如流量控制、内容计费、内容适配、网络安全防护、无线信令风暴抑制、负荷分担等等。
本发明实施例利用配置文件中区段所采用的区段描述信息中的头域,获取该区段中的关心数据,然后利用该关心数据,执行决策方法,决策出下一个区段或者下一个消息的处理方法,这样,如果网络消息解析的方法有变化,则可以通过修改区段描述信息中所描述的关心数据指示信息和/或决策方法来实现;如果需要增加新的应用协议解析能力时,则只需要增加新的应用协议的配置文件,不需要重新设置实现的逻辑,能够做到无损升级。
请参阅图12,为本发明实施例提供一种解析系统,包括:
编译引擎91,用于将配置文件编译成所述处理引擎能识别的协议解析辅助数据;其中,不同的应用协议类型对应不同的配置文件;
在一种实现方式下,编译引擎91支持系统初始化时加载配置文件,也支持系统在线时更新配置文件。
处理引擎92,用于接收网络消息,所述网络消息包括一个或多个区段;识别出所述网络消息的应用协议类型为第一应用协议;从所述第一应用协议对应的协议解析辅助数据中第一区段描述信息所描述的所述网络消息的当前区段中,获取第一区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述第一区段描述信息中的决策方法,得到决策结果;其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
应当了解的是,处理引擎92决策出决策结果后,该决策结果用原子方法以及所述原子方法被执行时所需要的参数表征,换言之,处理引擎92决策出原子方法和参数后,将执行这些原子方法。
其中,所述应用协议对应的配置文件包括:一个或多个区段描述信息,所述区段描述信息包括区段名称,区段类型,关心数据指示信息和决策方法,其中,所述区段类型表示区段所使用的扫描方式;所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,用于指示下一个区段的长度信息的第二指示信息,用于指示下一个区段的编解码信息的第三指示信息中的一个或任意组合;
所述决策方法用于描述依据不同的决策条件执行不同的原子方法,所述原子方法包括:设置下一个区段、设置下一个区段的协议类型、设置下一个区段的长度、确定一个完整的消息结束、更改当前数据流的协议类型和设置下一个区段开始前需要进行的解码算法中的一项或任意组合。
为了实现对内容的合理管理,该解析系统还包括:内存管理器93(图中以93a和93b示意),用于管理编译引擎和处理引擎使用的内存,所述编译引擎和处理引擎使用不同的内存区域或者相同的内存区域。在一种实现方式,通过部署不同的内存管理器来分别管理编译引擎91和处理引擎92所使用的内存。
为了加载配置文件,该解析系统还包括:加载器94,用于从内部储存设备或外部储存设备中读取配置文件并加载到所述编译引擎91。
如图13所示,为了将述配置文件编译成机器能读取的协议解析辅助数据,该编译引擎91可以包括:
快速扫描编译器911,用于将配置文件中描述的各区段中的头域编译成机器能读取的协议解析辅助数据,并输出快速扫描表;所述快速扫描表包括:所述头域的前n个字符和区段中的数据分割符对应的协议解析辅助数据;
精确匹配编译器912,用于将多模匹配算法编译成机器能读取的协议解析辅助数据;
逻辑决策编译器913,用于将配置文件中的决策方法编译成机器能读取的协议解析辅助数据。
还可以包括:正则表达式编译器914,用于将正则表达式编译成机器能读取的协议解析辅助数据,以便在区段类型表示区段所使用的扫描方式为正则表达式扫描方式时,处理引擎92利用该编译成的协议解析辅助数据,在相应区段查找关心数据指示信息。
如图13所示,所述处理引擎92可以包括:
快速扫描模块921,用于从所述区段名称对应的当前区段的第一个字符开始,跳转特定长度的字符,根据所述快速扫描表,判断跳转到的字符是数据分割符还是所述关心数据指示信息中的前n个字符中的字符,当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符;当跳转到的字符是所述关心数据指示信息中的前n个字符中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符;其中,n大于或者等于1;
精确匹配模块922,用于在判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符的判断结果为是时,根据所述关心数据指示信息中的前n个字符,执行所述协议解析辅助数据中的所编译成的多模匹配算法,以在所述当前区段中匹配到所述关心数据指示信息;在判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符的判断结果为是时,利用所述跳转到的字符,执行所述协议解析辅助数据中的所编译成的多模匹配算法,以在所述当前区段中匹配到所述关心数据指示信息;
决策器923,用于根据匹配到的关心数据指示信息,获取所述关心数据指示信息所指示的关心数据,利用所述全部或部分关心数据,执行所述第一区段描述信息中的决策方法所编译成的协议解析辅助数据,得到决策结果。
该处理引擎92还可以包括:正则表达式匹配模块924,用于在区段类型表示区段所使用的扫描方式为正则表达式扫描方式时,利用正则表达式所对应的协议解析辅助数据,在相应区段查找关心数据指示信息。
为了使外部模块能利用关心数据匹配既定策略,该处理引擎92还包括:输出模块925,用于将所获取的关心数据输出到外部,具体可以是输出给策略匹配模块,策略匹配模块利用所述处理引擎所获取的关心数据,确定所述网络消息所适用的既定策略;然后策略执行模块利用所述既定策略,对所述网络消息所在的数据流进行操作。
为了快速确定后续网络消息的应用协议类型,该解析系统还包括:
TCP/UDP流表管理模块(图中未示出),用于维护该网络消息的五元组与第一应用协议类型的对应关系,网络消息的五元组包括:源IP、目的IP、源端口、目的端口和传输协议类型,传输协议类型可以是TCP或者UDP。后续再接收到与该五元组匹配的网络消息,就直接确定其采用该五元组所对应的应用协议类型。
TCP/UDP流表管理模块,还用于记录该五元组与所述既定策略的对应关系。后续再接收到与该五元组匹配的网络消息,就直接对该网络消息采用该既定策略。
配置文件可以存储在计算机媒质中,其内容可以在系统启动时或正常运行时重新进行加载,编译成计算机可以直接读取的数据结构形式(是从人类可以读取的格式编译成计算可以读取的格式。各种数据结构,如结构体、链表、数组等等)保存到计算机内存中供协议处理时读取。此文件的格式可以采用任何能描述以上信息的格式,例如XML等等。配置文件的加载、编译过程与数据处理过程是分开的,并不是解释性脚本。
请参阅图14,为本发明实施例提供一种计算机系统的结构示意图,应当理解的是,下面针对本发明实施例的解析系统部署于计算机的情况下进行介绍;
1.所有软件处理逻辑代码都在系统初始化阶段从存储器62加载到处理器63处。同时,解析后的配置文件各区段信息数据结构保存在存储器65处。
2.当系统从接口68收到网络消息时,直接通过系统总线15写入到存储器65,并通过中断技术通知处理器63收到网络消息事件。
3.处理器63采用软件逻辑开始对存储器65中的网络消息进行处理,包括应用协议识别、解析等本发明提到的各步骤。
4.处理完毕后,网络消息被从65通过15回到68发送到网络下一跳设备,或者由于应用丢弃策略直接被丢弃掉而不再发送到下一跳设备。
应当理解的是,将从当前区段中获取的全部或部分关心的数据作为决策的依据,这些信息可以保存到计算机内存中。
综上所述,本发明上述实施例中,利用配置文件描述各种协议类型的网络消息以及相应的处理方法,在获得很高的灵活性的同时,也很大程度的提高了处理能力。
灵活性体现在:
1.配置文件描述能力不仅仅局限于特定协议的格式,还可以支持协议切换,预先编解码等等复杂逻辑,但是配置文件逻辑却很简洁。
2.使用配置文件描述网络数据处理的方法,当出现新的协议数据处理需求,或者对已经支持的协议数据处理方法切换时,不需要重新修改程序实现,仅需要更改配置文件,重新加载配置文件即可达到提升协议数据处理能力的目的,即。
高性能体现在:
采用快速扫描技术,解析的速度与分隔符的长度有关,不必每次仅跳跃一个字符,获得更高的性能。
以上对本发明实施例所提供的网络消息解析方法及通信设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (26)
1.一种网络消息解析方法,其特征在于,包括:
接收网络消息,所述网络消息包括一个或多个区段;
识别出所述网络消息的应用协议类型为第一应用协议;
从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取在所述网络消息中的、所述区段描述信息中的关心数据指示信息所指示的关心数据;
以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方式,得到对应的决策结果;
其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
2.根据权利要求1所述的方法,其特征在于,
所述关心数据指示信息为头域名称,所述关心数据指示信息所指示的关心数据为位于对应头域后面的头域值;
或者,所述关心数据指示信息为头域名称,所述关心数据指示信息所指示的关心数据为对应头域名称本身所表示的关心数据;
或者,所述关心数据指示信息为属性名称,所述关心数据指示信息所指示的关心数据为属性值;
或者,所述关心数据指示信息为标签名称,所述关心数据指示信息所指示的关心数据为标签值。
3.根据权利要求1所述的方法,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括:一个或者多个关心数据;所述决策结果包括如下原子动作中的一个或多个,以及所述原子动作被执行时所需要的参数;
所执行的原子动作包括:设置下一个区段、更改下一个消息的首个区段的协议类型、设置下一个区段的协议类型和设置下一个区段开始前需要进行的解码算法中的一项或任意组合。
4.根据权利要求1所述的方法,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括一个或者多个关心数据;
其中,当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息和用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述协议类型信息和所述长度信息,
则,以所述协议类型信息和所述长度信息作为决策条件,且所述长度信息表示当前区段为最后一个区段,对应的决策结果包括:更改下一个消息的首个区段的协议类型的原子动作,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型;
或者,当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
则,以所述协议类型信息作为决策条件,对应的决策结果包括:更改下一个消息的首个区段的协议类型的原子动作,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型。
5.根据权利要求1所述的方法,其特征在于,
当所述当前区段不是所述网络消息的最后一个区段时,所述决策结果表示所述当前区段的下一个区段的处理方式。
6.根据权利要求5所述的方法,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
则以所述协议类型信息作为决策条件,对应的决策结果包括:设置下一个区段的协议类型的原子动作,其中,所述下一个区段的协议类型为所述协议类型信息所指示的协议类型。
7.根据权利要求5所述的方法,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述长度信息,
则以所述长度信息作为决策条件,对应的决策结果包括设置下一个区段为直接跳过预定长度的区段的原子动作,其中,所述预定长度为所述长度信息所指示的长度。
8.根据权利要求5所述的方法,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括:一个或者多个关心数据;
当所述关心数据指示信息包括:用于指示下一个区段的编解码信息的第三指示信息,所获取的关心数据包括所述编解码信息,
则以所述编解码信息作为决策条件,对应的决策结果包括:设置下一个区段开始前需要进行的解码算法的原子动作,其中,所述下一个区段开始前需要进行的解码算法为所述编解码信息表示的解码算法。
9.根据权利要求1至8任一项所述的方法,其特征在于,
所述区段描述信息包括:区段名称,区段类型,所述关心数据指示信息和所述决策方式,所述区段类型表示所述当前区段所使用的扫描方式;
所述从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据,包括:
以所述区段类型表示的扫描方式,从所述区段名称对应的所述当前区段中扫描到所述关心数据指示信息,获取所述关心数据指示信息所指示的关心数据。
10.根据权利要求9所述的方法,其特征在于,所述区段类型表示快速扫描方式;
所述以所述区段类型表示的扫描方式,从所述区段名称对应的所述当前区段中扫描到所述关心数据指示信息包括:
从所述区段名称对应的当前区段的第一个字符开始,跳转特定长度的字符;
当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符,如果是,根据所述关心数据指示信息中的前n个字符,在所述当前区段匹配到所述关心数据指示信息,其中,n大于或者等于1;
当跳转到的字符是所述关心数据指示信息中的前n个字符中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符,如果是,利用所述跳转到的字符,在所述当前区段中匹配到所述关心数据指示信息。
11.一种通信设备,其特征在于,包括:
通信模块,用于接收网络消息,所述网络消息包括一个或多个区段;
识别模块,用于识别出所述网络消息的应用协议类型为第一应用协议;
解析模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取在所述网络消息中的、所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方式,得到对应的决策结果;
其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
12.根据权利要求11所述的通信设备,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括一个或者多个关心数据;
所述解析模块包括:
解析子模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息和用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述协议类型信息和所述长度信息;
决策子模块,用于以所述协议类型信息和所述长度信息作为决策条件,且所述长度信息表示当前区段为最后一个区段,决策出对应的决策结果,所述决策结果包括:更改下一个消息的首个区段的协议类型的原子动作,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型;
或者,
所述解析模块包括:
解析子模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息,
决策子模块,用于以所述协议类型信息作为决策条件,决策出对应的决策结果,所述决策结果包括:更改下一个消息的首个区段的协议类型的原子动作,其中,所述下一个消息的首个区段的协议类型为所述协议类型信息所表示的协议类型。
13.根据权利要求11所述的通信设备,其特征在于,
所述解析模块,还用于当所述当前区段不是所述网络消息的最后一个区段时,所述决策结果表示所述当前区段的下一个区段的处理方式。
14.根据权利要求13所述的通信设备,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括一个或者多个关心数据;
所述解析模块包括:
解析子模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的协议类型信息的第一指示信息,所获取的关心数据包括所述协议类型信息;
决策子模块,用于以所述协议类型信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段的协议类型的原子动作,其中,所述下一个区段的协议类型为所述协议类型信息所指示的协议类型。
15.根据权利要求13所述的通信设备,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括一个或者多个关心数据;
所述解析模块包括:
解析子模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的长度信息的第二指示信息,所获取的关心数据包括所述长度信息;
决策子模块,用于以所述长度信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段为直接跳过预定长度的区段的原子动作,其中所述预定长度为所述长度信息所指示的长度。
16.根据权利要求13所述的通信设备,其特征在于,
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括一个或者多个关心数据;
所述解析模块包括:
解析子模块,用于从第一应用协议对应的配置文件中的一个区段描述信息所描述的所述网络消息的当前区段中,获取所述区段描述信息中的关心数据指示信息所指示的关心数据;其中,所述关心数据指示信息包括:用于指示下一个区段的编解码信息的第三指示信息,所获取的关心数据包括所述编解码信息;
决策子模块,用于以所述编解码信息作为决策条件,决策出对应的决策结果,所述决策结果包括:设置下一个区段开始前需要进行的解码算法的原子动作,其中,所述下一个区段开始前需要进行的解码算法为所述编解码信息表示的解码算法。
17.根据权利要求11所述的通信设备,其特征在于,
所述区段描述信息包括:区段名称,区段类型,所述关心数据指示信息和所述决策方式,所述区段类型表示所述当前区段所使用的扫描方式;
所述解析模块,包括:
扫描子模块,用于以所述区段类型表示的扫描方式,从所述区段名称对应的所述当前区段中扫描到所述关心数据指示信息;
获取子模块,用于获取所扫描到的关心数据指示信息所指示的关心数据;
决策子模块,用于利用所述全部或部分关心数据,执行所述区段描述信息中的决策方式,得到对应的决策结果。
18.根据权利要求17所述的通信设备,其特征在于,
所述扫描子模块包括:
快速扫描子模块,用于从所述区段名称对应的当前区段的第一个字符开始,跳转特定长度的字符,当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符;其中,n大于或者等于1;当跳转到的字符是所述关心数据指示信息中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符;
精确匹配子模块,用于在判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符的判断结果为是时,根据所述关心数据指示信息中的前n个字符,在所述当前区段中匹配到所述关心数据指示信息;在判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符的判断结果为是时,利用所述跳转到的字符,在所述当前区段中匹配到所述关心数据指示信息。
19.根据权利要求11至18任一项所述的通信设备,其特征在于,
所述通信设备还包括:策略匹配模块和策略执行模块;
策略匹配模块,用于利用所述关心数据,确定所述网络消息所适用的既定策略;
策略执行模块,用于利用所述既定策略,对所述网络消息所在的数据流进行操作。
20.一种解析系统,其特征在于,包括:编译器和处理器,
所述编译器,用于将配置文件编译成所述处理器能识别的协议解析辅助数据;其中,不同的应用协议类型对应不同的配置文件;
所述处理器,用于接收网络消息,所述网络消息包括一个或多个区段;识别出所述网络消息的应用协议类型为第一应用协议;从所述第一应用协议对应的协议解析辅助数据中一个区段描述信息所描述的所述网络消息的当前区段中,获取在所述网络消息中的、所述区段描述信息中的关心数据指示信息所指示的关心数据;以所获取的全部或者部分关心数据作为决策条件,执行所述区段描述信息中的决策方式,得到对应的决策结果;其中,当所述当前区段是所述网络消息的最后一个区段时,所述决策结果包括所述网络消息的下一个消息的处理方式,所述网络消息与所述下一个消息属于同一应用层。
21.根据权利要求20所述的系统,其特征在于,
所述应用协议对应的配置文件包括:
一个或多个区段描述信息,所述区段描述信息包括区段名称,区段类型,关心数据指示信息和决策方式,其中,所述区段类型表示区段所使用的扫描方式;
所述决策方式用于描述依据不同的决策条件执行不同的原子动作;所述决策条件包括:一个或者多个关心数据;所述决策结果包括如下原子动作中的一个或多个,以及所述原子动作被执行时所需要的参数;
所执行的原子动作包括:设置下一个区段、更改下一个消息的首个区段的协议类型、设置下一个区段的协议类型和设置下一个区段开始前需要进行的解码算法中的一项或任意组合。
22.根据权利要求20或21所述的系统,其特征在于,还包括:
内存管理器,用于管理所述编译器和所述处理器使用的内存,所述编译器和处理器使用不同的内存区域或者相同的内存区域。
23.根据权利要求20或21所述的系统,其特征在于,还包括:
加载器,用于从内部储存设备或外部储存设备中读取所述配置文件并加载到所述编译器。
24.根据权利要求20或21所述的系统,其特征在于,
所述编译器包括:
快速扫描编译器,用于将配置文件中描述的各区段中的关心数据指示信息编译成机器能读取的协议解析辅助数据,并输出快速扫描表;所述快速扫描表包括:所述关心数据指示信息的前n个字符和区段中的数据分割符对应的协议解析辅助数据;
精确匹配编译器,用于将多模匹配算法编译成机器能读取的协议解析辅助数据;
逻辑决策编译器,用于将配置文件中的决策方式编译成机器能读取的协议解析辅助数据。
25.根据权利要求24所述的系统,其特征在于,
所述处理器包括:
快速扫描模块,用于从所述区段名称对应的当前区段的第一个字符开始,跳转特定长度的字符,根据所述快速扫描表,判断跳转到的字符是数据分割符还是所述关心数据指示信息中的前n个字符中的字符,当跳转到的字符是数据分割符时,判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符;当跳转到的字符是所述关心数据指示信息中的前n个字符中的字符时,判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符;其中,n大于或者等于1;
精确匹配模块,用于在判断位于所述跳转到的字符后面、且与所述跳转到的字符最近的n个非数据分隔符的字符是否是所述关心数据指示信息中的前n个字符的判断结果为是时,根据所述关心数据指示信息中的前n个字符,执行所述协议解析辅助数据中所编译成的多模匹配算法,以在所述当前区段中匹配到所述关心数据指示信息;在判断位于所述跳转到的字符前面、且与所述跳转到的字符最近的非关心数据指示信息中的字符是否是数据分割符的判断结果为是时,利用所述跳转到的字符,执行所述协议解析辅助数据中所编译成的多模匹配算法,以在所述当前区段中匹配到所述关心数据指示信息;
决策器,用于根据匹配到的关心数据指示信息,获取所述关心数据指示信息所指示的关心数据,利用所述全部或部分关心数据,执行所述协议解析辅助数据中的所编译成的区段描述信息中的决策方式,得到决策结果。
26.根据权利要求20所述的系统,其特征在于,
所述处理器还包括:
输出模块,用于将所获取的关心数据输出到外部。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389258.1A CN102413141B (zh) | 2011-11-30 | 2011-11-30 | 网络消息解析方法及通信设备 |
EP12853692.7A EP2770687B1 (en) | 2011-11-30 | 2012-11-29 | Network message parsing method and communication device |
PCT/CN2012/085494 WO2013079003A1 (zh) | 2011-11-30 | 2012-11-29 | 网络消息解析方法及通信设备 |
US14/292,086 US9819719B2 (en) | 2011-11-30 | 2014-05-30 | Method for parsing network message and communication device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110389258.1A CN102413141B (zh) | 2011-11-30 | 2011-11-30 | 网络消息解析方法及通信设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102413141A CN102413141A (zh) | 2012-04-11 |
CN102413141B true CN102413141B (zh) | 2014-10-08 |
Family
ID=45914991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110389258.1A Active CN102413141B (zh) | 2011-11-30 | 2011-11-30 | 网络消息解析方法及通信设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9819719B2 (zh) |
EP (1) | EP2770687B1 (zh) |
CN (1) | CN102413141B (zh) |
WO (1) | WO2013079003A1 (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413141B (zh) * | 2011-11-30 | 2014-10-08 | 华为技术有限公司 | 网络消息解析方法及通信设备 |
CN102761543B (zh) * | 2012-06-27 | 2016-03-16 | 北京中创信测科技股份有限公司 | 一种实现sip协议通用编解码的方法和装置 |
CN102916967B (zh) * | 2012-10-29 | 2015-11-25 | 华为技术有限公司 | 协议解析的方法和装置 |
CN103166973B (zh) * | 2013-03-27 | 2016-06-22 | 华为技术有限公司 | 协议识别的方法和装置 |
CN105337932A (zh) * | 2014-06-30 | 2016-02-17 | 杭州迪普科技有限公司 | 一种web应用防护方法及装置 |
US10289384B2 (en) | 2014-09-12 | 2019-05-14 | Oracle International Corporation | Methods, systems, and computer readable media for processing data containing type-length-value (TLV) elements |
JP5925287B1 (ja) * | 2014-12-26 | 2016-05-25 | 株式会社Pfu | 情報処理装置、方法およびプログラム |
EP3261314B1 (en) | 2015-03-13 | 2020-07-01 | Huawei Technologies Co., Ltd. | Access network system, and method and apparatus for processing data packet |
US10735438B2 (en) * | 2016-01-06 | 2020-08-04 | New York University | System, method and computer-accessible medium for network intrusion detection |
CN105721451B (zh) * | 2016-01-27 | 2019-03-05 | 深圳市盛弘电气股份有限公司 | 一种可拓展的Modbus协议解析方法及装置 |
US10193802B2 (en) | 2016-09-13 | 2019-01-29 | Oracle International Corporation | Methods, systems, and computer readable media for processing messages using stateful and stateless decode strategies |
US10341411B2 (en) * | 2017-03-29 | 2019-07-02 | Oracle International Corporation | Methods, systems, and computer readable media for providing message encode/decode as a service |
CN107370806B (zh) * | 2017-07-12 | 2020-11-24 | 北京京东尚科信息技术有限公司 | Http状态码监控方法、装置、存储介质和电子设备 |
CN107704567A (zh) * | 2017-09-29 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种二进制文件的解析方法、装置、设备及存储介质 |
CN108933779B (zh) * | 2018-05-23 | 2021-12-07 | 和芯星通科技(北京)有限公司 | 输入混合数据流识别方法和装置、计算机可读存储介质 |
CN109167726B (zh) * | 2018-08-23 | 2021-11-05 | 新华三技术有限公司 | 报文的数据预取方法、装置及网络设备 |
CN109889375A (zh) * | 2019-01-23 | 2019-06-14 | 中国银行股份有限公司 | 业务报文校验方法、装置及计算机存储介质 |
US11561997B2 (en) | 2019-03-13 | 2023-01-24 | Oracle International Corporation | Methods, systems, and computer readable media for data translation using a representational state transfer (REST) application programming interface (API) |
US11095691B2 (en) | 2019-06-26 | 2021-08-17 | Oracle International Corporation | Methods, systems, and computer readable media for establishing a communication session between a public switched telephone network (PSTN) endpoint and a web real time communications (WebRTC) endpoint |
CN110225062A (zh) * | 2019-07-01 | 2019-09-10 | 北京微步在线科技有限公司 | 一种监控网络攻击的方法和装置 |
CN110300193B (zh) * | 2019-07-01 | 2021-07-06 | 北京微步在线科技有限公司 | 一种获取实体域名的方法和装置 |
CN111092785A (zh) * | 2019-12-05 | 2020-05-01 | 深圳市任子行科技开发有限公司 | 数据监测方法及装置 |
CN111371655B (zh) * | 2020-04-07 | 2022-02-25 | 中移雄安信息通信科技有限公司 | 深度报文检测方法、dpi设备、中转设备、系统及存储介质 |
CN114760256B (zh) * | 2022-04-14 | 2024-01-30 | 曙光网络科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN114818656B (zh) * | 2022-06-30 | 2022-09-23 | 深圳华锐分布式技术股份有限公司 | 基于灰度升级的二进制文件解析方法、装置、设备及介质 |
CN115412532B (zh) * | 2022-08-15 | 2023-07-21 | 深圳市风云实业有限公司 | 一种sip及扩展协议会话控制流识别及处理的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907678A (en) * | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6175867B1 (en) * | 1998-03-23 | 2001-01-16 | Mci World Com, Inc. | System and method for managing networks addressed via common network addresses |
US6483804B1 (en) * | 1999-03-01 | 2002-11-19 | Sun Microsystems, Inc. | Method and apparatus for dynamic packet batching with a high performance network interface |
US6598034B1 (en) * | 1999-09-21 | 2003-07-22 | Infineon Technologies North America Corp. | Rule based IP data processing |
US6581108B1 (en) * | 1999-11-30 | 2003-06-17 | Lucent Technologies Inc. | Managing multiple private data networks using network and payload address translation |
US6862267B1 (en) * | 2000-05-08 | 2005-03-01 | Nortel Networks Limited | Determining network addresses and ports using table from a description file |
US6952425B1 (en) | 2000-11-14 | 2005-10-04 | Cisco Technology, Inc. | Packet data analysis with efficient and flexible parsing capabilities |
US7136385B2 (en) * | 2001-12-07 | 2006-11-14 | International Business Machines Corporation | Method and system for performing asymmetric address translation |
US7284039B2 (en) * | 2002-12-17 | 2007-10-16 | International Business Machines Corporation | Apparatus and method for flexible web service deployment |
US7565497B1 (en) * | 2005-05-26 | 2009-07-21 | Sun Microsystems, Inc. | Coarse write barrier control mechanism |
US7570661B2 (en) | 2005-06-14 | 2009-08-04 | Microsoft Corporation | Script-based parser |
US20070150478A1 (en) * | 2005-12-23 | 2007-06-28 | Microsoft Corporation | Downloading data packages from information services based on attributes |
US8010695B2 (en) * | 2005-12-30 | 2011-08-30 | Sap Ag | Web services archive |
CN101577704A (zh) * | 2008-05-08 | 2009-11-11 | 北京东华合创数码科技股份有限公司 | 一种网络应用层协议识别方法和系统 |
CN101557329B (zh) * | 2009-05-27 | 2011-05-11 | 杭州迪普科技有限公司 | 一种基于应用层的数据分割方法及装置 |
US9871807B2 (en) | 2009-06-12 | 2018-01-16 | Microsoft Technology Licensing, Llc | Generic protocol decoder for generic application-level protocol signatures |
US8898247B2 (en) * | 2009-06-17 | 2014-11-25 | Telefonaktiebolaget L M Ericsson (Publ) | Network cache architecture storing pointer information in payload data segments of packets |
WO2011038352A1 (en) * | 2009-09-26 | 2011-03-31 | Cisco Technology, Inc. | Providing offloads in a communication network |
CN102098331B (zh) * | 2010-12-29 | 2013-06-19 | 北京锐安科技有限公司 | 一种还原web类应用内容的方法及其系统 |
CN102413141B (zh) * | 2011-11-30 | 2014-10-08 | 华为技术有限公司 | 网络消息解析方法及通信设备 |
-
2011
- 2011-11-30 CN CN201110389258.1A patent/CN102413141B/zh active Active
-
2012
- 2012-11-29 WO PCT/CN2012/085494 patent/WO2013079003A1/zh active Application Filing
- 2012-11-29 EP EP12853692.7A patent/EP2770687B1/en active Active
-
2014
- 2014-05-30 US US14/292,086 patent/US9819719B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907678A (en) * | 1997-05-07 | 1999-05-25 | International Business Machines Corporation | Client/server system in which protocol caches for multiple sessions are selectively copied into a common checkpoint cache upon receiving a checkpoint request |
Also Published As
Publication number | Publication date |
---|---|
EP2770687A4 (en) | 2014-10-29 |
US20140280924A1 (en) | 2014-09-18 |
EP2770687B1 (en) | 2016-03-16 |
CN102413141A (zh) | 2012-04-11 |
US9819719B2 (en) | 2017-11-14 |
WO2013079003A1 (zh) | 2013-06-06 |
EP2770687A1 (en) | 2014-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102413141B (zh) | 网络消息解析方法及通信设备 | |
US10972573B1 (en) | Browser optimization through user history analysis | |
Narayan et al. | A survey of automatic protocol reverse engineering tools | |
US9456050B1 (en) | Browser optimization through user history analysis | |
US20130219492A1 (en) | System for finding code in a data flow | |
US9635007B2 (en) | Dynamic web services server | |
CN104320679B (zh) | 一种基于hls协议的用户信息获取方法和服务器 | |
US20220083326A1 (en) | Upgrading method and system, server, and terminal device | |
KR100943355B1 (ko) | 이진 프로그램 파일들을 처리하는 방법 | |
CN102710504A (zh) | 应用识别方法和装置 | |
CN109862021B (zh) | 威胁情报的获取方法及装置 | |
KR20120048525A (ko) | Sms를 통해 원격 디바이스를 제어하는 방법 및 이를 위한 장치 | |
CN104702564A (zh) | 一种网络共享用户识别方法及装置 | |
CN104412565A (zh) | 用于涉及承载无关协议的套接字管理的方法 | |
US11315605B2 (en) | Method, device, and computer program product for storing and providing video | |
US8880108B2 (en) | Short message processing method and apparatus | |
CN113660250A (zh) | 基于web应用防火墙的防御方法、装置、系统和电子装置 | |
US20180139256A1 (en) | Method and apparatus for cloud streaming service | |
US9785721B2 (en) | System and method for programmatically creating resource locators | |
RU2621961C2 (ru) | Шлюз и соответствующие ему способ, компьютерная программа и носитель информации | |
CN110554890A (zh) | 一种视频取证方法、终端设备及存储介质 | |
CN105635225A (zh) | 移动终端访问基于移动互联网络的服务器的方法与系统及移动终端 | |
KR20150052576A (ko) | 필드의 위치 정보를 포함하는 패킷을 처리하는 송, 수신 노드의 동작 방법 및 필드의 위치 정보를 포함하는 패킷 | |
US20130028262A1 (en) | Method and arrangement for message analysis | |
US9323857B2 (en) | System and method for providing content-related information based on digital watermark and fingerprint |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |