CN101577704A - 一种网络应用层协议识别方法和*** - Google Patents

一种网络应用层协议识别方法和*** Download PDF

Info

Publication number
CN101577704A
CN101577704A CNA2008101060729A CN200810106072A CN101577704A CN 101577704 A CN101577704 A CN 101577704A CN A2008101060729 A CNA2008101060729 A CN A2008101060729A CN 200810106072 A CN200810106072 A CN 200810106072A CN 101577704 A CN101577704 A CN 101577704A
Authority
CN
China
Prior art keywords
agreement
recognition
network application
data structure
identification
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.)
Pending
Application number
CNA2008101060729A
Other languages
English (en)
Inventor
杨建华
张众
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing DHC Digital Technology Co Ltd
Original Assignee
Beijing DHC Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing DHC Digital Technology Co Ltd filed Critical Beijing DHC Digital Technology Co Ltd
Priority to CNA2008101060729A priority Critical patent/CN101577704A/zh
Publication of CN101577704A publication Critical patent/CN101577704A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明披露了一种网络应用层协议识别方法及其***,能够对多类型和/或多状态的网络应用层协议进行识别。该***主要包括:对协议识别方式描述文件进行解析的描述方法解释器,其中所述识别方式描述文件用于对网络应用层的协议识别方式进行描述;存储解析后的数据结构Method List的Method List数据结构模块;依据Method List对协议进行识别的协议识别操作执行模块。本发明能够用来实现多类型的协议识别和利用状态识别实现多状态协议识别,同时又能方便对特征与识别方式进行更新。

Description

一种网络应用层协议识别方法和***
技术领域
本发明涉及一种网络应用层协议识别方式的描述方法及基于该方法的协议识别***。
背景技术
随着网络应用的普及与网络技术的发展,新的网络应用业务层出不穷,随之而来的是应用层流量特征的多样化以及对应识别方式的复杂化。传统的网络应用服务使用固定的服务端口,能够很容易的通过应用端口进行应用层协议识别。随着P2P,VOD以及VoIP技术的使用,如今的网络应用协议主要适用动态端口的方式进行通信,因此传统的通过端口实现应用协议识别的方法不再适用。
为解决这样的情况,现在主要有两大类识别方式:第一类方式深度包解析,通过对单个或多个数据包内容的某些特征进行匹配来达到识别的目的,能够很准确的进行识别,但是识别周期相对长且对某些特征需要通过多包特征综合识别;第二类方式流量统计特征匹配,通过对目标应用流量的平均包大小,平均流速率等统计量的特征进行分析来实现识别功能,识别速度快但准确率低。时下网络应用服务的另一大特点则是协议更新频繁,随之而来的问题则是协议识别***需要经常对识别特征乃至识别方式进行更新,这就对协议识别***中对识别方式的组织结构提出了新的要求。
目前对协议识别方式的实现主要有两种结构:其一,通过代码实现针对每一种协议识别的程序,效率高但难于更新特征。对于这样的识别***,每次对识别特征的更新或识别方式的改变都需要重编译识别程序。其二,通过正则表达式来存储特征。能够实现不需重编译的特征更新,但是正则表达式匹配速度相对匹配函数较慢,且对于某些特征无法匹配,例如数据包内容与数据包长度的相关特征。而且正则表达式的特征描述方式较为抽象,增加了管理人员自行增加识别方式的难度。现有的方式中对于多个数据包中的组合特征是通过将多个数据包存储下来再组合在一起做综合特征匹配来实现的,这种方式效率低,存储空间需求大,在高速链路中使用的时候存在较大性能缺陷。
针对现在网络应用服务特征多样协议更新频繁的特点,应用层流量识别需要一种能够实现多类型和多状态的识别方式同时高效并易于更新的结构。
发明内容
本发明的目的在于提出了一种对应用层的协议识别方式的描述方法AIMDL,以及利用此描述方法构建的协议识别***。主要内容包括设计AIMDL的主要元素以实现对于多类型和多状态的协议识别方式的有效描述同时满足方便更新的需求。设计并实现能够利用AIMDL所描述的识别方式高效地进行应用协议识别工作的识别架构。
根据本发明的第一方面,提供了一种网络应用层协议识别方法,其特征在于,所述识别方法包括如下步骤:
1)对网络应用层的协议识别方式进行描述,并生成相应的识别方式描述文件;
2)对识别方式的描述文件进行解析,生成相应的Method List数据结构;以及
3)依据Method List数据结构,对网络应用层协议完成识别。
优选地,所述步骤1)中,还包括:在识别方式描述文件中对为协议识别提供操作支持的操作方式和识别方式的结构进行描述。
优选地,所述步骤2)中的解析是基于XML语言平台。
优选地,所述步骤3)中的Method List数据结构采用动态链表和无类型指针结合的方式。
根据本发明的第二方面,提供了一种网络应用层协议识别***,其特征在于,所述识别***包括:对协议识别方式描述文件进行解析的描述方法解释器,其中所述识别方式描述文件用于对网络应用层的协议识别方式进行描述;存储解析后的数据结构Method List的MethodList数据结构模块;依据Method List对协议进行识别的协议识别操作执行模块。
优选地,所述描述方法解释器是基于XML语言平台。
优选地,所述的Method List数据结构模块采用动态链表和无类型指针结合的结构。
本发明能够用来实现多类型的协议识别,同时又能方便对特征与识别方式进行更新;并能够利用基于状态机的识别方法实现多状态协议识别。
附图说明
下面将参照附图对本发明的具体实施方案进行更详细的说明,其中:
图1是本发明应用层协议识别***的工作示意图;
图2是本发明的协议识别方式描述方法解释器模块的流程图;
图3是本发明的Method List数据结构模块的结构图;以及
图4是本发明的协议识别操作执行模块的流程图。
具体实施方式
为了实现多类型和多状态的网络应用层协议识别方式同时又能方便对特征与识别方式进行更新,本发明提供了一种对网络应用层协议识别方式的描述方法及基于该方法的协议识别***。
描述方法综述
应用层协议识别方式的描述方法(AIMDL)能够通过描述几种基本识别操作的组合来构成一个完整的复杂操作。这些操作是通过对现有的协议识别方式进行分析得到的。
一个应用层数据包主要包含payload内容,数据包长度,端口这三个与所属协议相关的属性,因此基本的识别操作也主要是针对这三个属性进行的。特征也可以由匹配对象分为两种:一种是基本属性中的内容与静态特征之间的匹配,比如数据包中出现某一特征字段或是通信端口为某特征值;另一种则是基本属性之间的关系,例如payload中某特定位置的数据值与数据包长度或是通信端口号存在某特定关系的特征。
多包组合特征识别方式在AIMDL中是通过基于状态机的架构和构建临时存储buffer来实现的。基于状态机实现的识别方式中,每一组识别操作表征能够确认从状态机的一个状态进入最终状态,当达到最终状态的时候说明识别成功。因此需要能够对一组操作所对应的匹配状态,以及各状态之间的关系进行描述。AIMDL能够描述一组操作是否属于一个状态机识别架构的一个识别状态,以及这一识别状态所要求的前项状态是什么,这样就能够独立的表述整个状态机识别架构的每一个部分。有些基于状态机的识别操作是需要存储一些数据的,例如第一个数据包中的某个偏移与后续数据包中特定偏移的数据值有可以作为识别特征的关系。在本发明的协议识别架构中是通过给每一个流记录中设置一个buffer来保存数据,通过在AIMDL中支持有关buffer的操作实现对此类特征识别方式的支持。
一个应用层的识别***中包含很多个应用的识别方式,每个应用也包括很多种不同的特征流量,需要很多种不同的特征识别方式。因此AIMDL包含了结构描述元素对这些不同的应用和不同的识别方式之间的结构关系进行描述。
以基于XML为例的具体描述方法说明
网络应用层协议识别方式的描述方法AIMDL是一种基于XML的描述。通过设置特定的element元素标签来达到对各种结构的描述。以下是对上述几类描述对象的实例与详细说明:
一.静态特征匹配方法描述
1.payload包含特征字段的检验操作描述
<payload>
     <content>BitTorrent protocol</content>
     <offset>1</offset>
     <length>19</length>
</payload>
该元素表示识别方式中包含一个payload特征字段检验。包含三个子元素:
“content”:特征字段的内容,此处表示为字符串“BitTorrentprotocol”;
“offset”:特征字段所处在payload中的位置。如果为负数表示是从payload的尾部向前的偏移量。特征值“SEARCH”表示没有固定偏移,特征字段在数据包中的位置不固定。例子中的偏移表示从payload的第二个字节开始,第一个字节偏移为0;
“length”:存储特征字段的长度,例子中长度19为“BitTorrentprotocol”的长度。
2.payload length为特征值的检验操作描述
<payload_length>68</payload_length>
payload length特征的校验一般使用在一组完整的识别操作的第一个。很多特征只会出现在具有固定包长或者包长为某一特定范围的数据包中。其内容表示特征数据包的值,若包含”>’号则表示为范围限制。
3.端口号为特征值的检验操作描述
<port>
     <group>
        <start>6881</start>
        <end>6889</end>
     </group>
     <group>
        <start>10044</start>
        <end>10044</end>
     </group>
</port>
port特征的校验并不具有确定协议的准确性,可能与动态端口的协议发生误识别,因此port的识别方式是在其他识别方式无法正确识别的情况下使用的。
“group”:包含两个元素“start”和“end”,表示从“start”开始到“end”的端口都是协议的特征端口。
二.基本元素相关特征匹配描述方法
1.payload内容与包长相关的
<content_length>
     <offset>0</offset>
     <byte_width>1</byte_width>
     <multiple_number>1</multiple_number>
     <differ_value>3</differ_value>
</content_length>
针对payload内容中包含payload长度信息的特征。
“offset”:payload特征数据位置;
“byte_width”:表示数据位大小,例子中的1表示数据宽度为一个字节;
“multiple_number”:倍数。匹配方式为:payload长度=payload内容×倍数+差值;
“differ_value”:表示上式中的差值。
例子中payload length=第一个字节的大小×1+3;
2.payload内容自相关
<content_content>
     <offset0>2</offset0>
     <offset1>3</offset1>
     <differ_value>3</differ_value>
</content_content>
content_content元素用以描述payload中两个固定偏移的数据具有固定关系的特征。根据对数据包内容的分析,关系一般是相等或有固定偏差,因此设计了对应的元素用以描述这样的识别操作。
“offsetX”:两个比较目标参数的位置。
“differ_value”:两个比较目标之间有固定差值的描述。
三.状态描述方法
<state>
    <pre_state>NO_STATUS</pre_state>
    <finalstate>0</finalstate>
    <identifier_state>BT0</identifier_state>
</state>
state标签被用来实现基于状态的识别架构。其主要元素包括:
“pre_state”:在基于状态机的识别方式中,状态之间的关系是实现正确的识别操作的保证。通过描述前项状态实现对多状态识别过程中的识别流程的控制。
“finalstate”:表示是否是一组多状态识别的最后一个状态。如果在finalstate的匹配操作通过的情况下,即是完成了多状态的匹配流程。
“identifier_state”:对通过该组匹配操作的流的状态标签进行赋值,使得流中的后续数据包能够顺利的进入后续的状态进行特征匹配。
四.buffer操作描述方法
1.store buffer操作描述
<store_buffer>
     <buffer_offset>0</buffer_offset>
     <payload_offset>2</payload_offset>
</store_buffer>
将payload中的数据存储在buffer中方便后续操作时使用。
“payload_offset”:payload中待存储的数据的偏移位置。
“buffer_offset”:buffer中欲存储数据的位置。
2.Modify buffer操作描述
<modify_buffer>
     <buffer_offset>1</buffer_offset>
     <add_value>1</add_value>
</modify_buffer>
在某些匹配过程中需要对buffer中数据进行操作然后再进行匹配。此元素就是用以对此类操作进行描述。根据分析只有数值增加的特征出现。所以设置元素如下:
“buffer_offset”:***作buffer元素的位置
“add_value”:增加的量
3.judge buffer操作描述
<judge_buffer>
     <buffer_offset>2</buffer_offset>
     <payload_offset>8</payload_offset>
     <width>4</width>
</judge_buffer>
在前项状态的操作过程中完成对数据的存储和特定修改操作后,通过匹配buffer中的数据与新的被检测数据包中的特定位置数据实现应用协议特征匹配的目的。
“buffer_offset”:buffer中被匹配特征数据的偏移位置。
“payload_offset”:payload中被用来与buffer中内容进行匹配的数据的偏移位置。
“width”:匹配数据的位数。例子中的4表示4个字节的数据进行匹配操作。
五.识别方式的结构描述方法
<protocol_name>
<tcp>
  ...
</tcp>
<udp>
<method>
<statu>
  ...
      </statu>
      <payload_length>X</payload_length>
      ...
    </method>
    <method>
      ...
    </method>
    ...
    </udp>
</protocol_name>
上述是使用AIMDL描述一种应用的识别方式的文件结构:
根元素“protocol_name”:用以表示此元素是描述的何种应用的识别方式。
次级标签“tcp”和“udp”:区分同种应用的tcp和udp流不同的识别方式。在构建协议识别方式表的时候对不同的应用层协议分别构建特征匹配方法表使得识别流程更快。
“method”标签:method标签由“state”标签、“payload”标签和其他操作标签组成,表示一个独立的识别方式。这个识别方式包含由此方法对应的状态信息、包长限制以及包含的微操作组合。这个独立的方法能够根据其状态信息确定是否是多状态识别的一个状态或是一个能够独立完成一种应用协议识别的一组操作。包长限制能够帮助快速审查此数据包是否符合基本的进行后续检查的要求。剩下所罗列的一组操作时完成一个完整独立识别方式所需要的一组微元操作。
协议识别***综述
本发明的应用层协议识别***是利用AIMDL所描述的识别方式高效地进行应用流量识别工作的识别架构。
通过对网络应用协议识别方式进行统计与分析,得到了若干基本的特征匹配方法。这些方式以网络数据包所具有的内容,包长,端口信息这几个属性为特征匹配对象,实现针对这些属性与静态的特征内容匹配以及这些属性之间相关关系的特征校验操作。这些基本的识别操作是针对网络数据所能够被用以匹配的属性以及匹配操作而构建的,因此所有现存的协议识别方式都能够通过将这几个基本的操作进行组合来实现。经过对实际的协议识别方式进行统计验证这一设计的正确性。因此能够通过将这几个基本操作及其对应的参数描述方法设计在AIMDL中实现利用AIMDL对任意协议识别方式进行描述的需求。随着网络协议的多变,很多协议的识别特征都分布在多个数据包中,因此需要将这些信息综合在一起才能有效的实现识别功能。本发明采用了基于状态机与临时存储器的特征匹配架构实现对于此类特征的识别功能,同时在AIMDL中设计了与此相关的操作与元素的描述功能。
通过设计基于AIMDL的内容解释器与协议识别模块,使得能够利用AIMDL实现高效的协议识别***。AIMDL内容解释器能够将基于AIMDL的协议识别方式的描述文件中的基本识别操作的组织模式以及对应的参数信息存储,在特别设计的可扩展识别方式存储数据结构methodlist中,一方面能够在更新操作时重新解析AIMDL描述文件内容实现更新,另一方面此结构为识别操作执行模块提供识别方式的实现方式。协议识别操作执行模块根据method list的内容正确高效的实现协议识别工作。
本发明的协议识别***能够被应用来实现多种类型的协议识别方式,同时又能方便对特征与识别方式进行更新。通过对多种识别方式的支持使得能够在***中使用不受限制的使用高效的识别方式,同时这些多样的方式有能够利用AIMDL来方便的描述,使得能够通过简单的更新描述文件实现识别方式的更新。利用XML的易于表述可扩展的特性,方便了操作人员设计并更新识别方式的过程。实现了兼具识别效率和可扩展性的应用层协议识别架构。另一方面,能够利用状态识别实现多状态协议识别方式。现有技术中没有通用的多状态解决方式。只有将多个数据包内容整合成一个整体进行匹配用以实现类似的功能或是为特定协议设计特定的多状态识别方式。
图1是本发明的应用层协议识别***的工作示意图。如图1所示,该协议识别***包括协议识别方式的描述方法解释器、Method List数据结构模块、协议识别操作执行模块。整体***流程分为下面几个阶段:
1)根据识别方式结合NAIMDL语法规则设计对应的配置文件;
2)程序在初始化数据过程中调用解释器模块解析配置文件的内容并依据内容在程序中构建method list数据结构;
3)程序的识别模块调用method list结构中的内容实现协议识别操作。
以基于XML平台的协议识别***的具体结构说明
一.AIMDL协议识别方式的描述方法解释器
AIMDL解释器负责从识别方式描述文件中解析出识别方式组织与对应参数并存储在对应的数据结构method list中。AIMDL基于XML进行设计,因此AIMDL解释器利用现有的XML解释器实现对文件中各个XML基本元素的遍历以及内容的获取,对内容语义的解析根据AIMDL的设定在程序中完成相关逻辑即可。具体实现上利用由开放源代码的软件库libxm12为基础实现遍历与解析文件中XML元素内容的目的,语义解析代码为对应元素内容按照语法以及method list的设计结构在method list中构建相应的存储空间用以保存信息。
图2示出图1中的协议识别方式描述解释器模块的流程图;如图2所示,整个AIMDL解析器模块就由两部分组成。在阶段200获取描述文件结构,接着在阶段202判断是否存在下一种协议,如果没有存在下一种协议,则进入阶段210,解析程序结束;如果存在,进入阶段204,获取状态信息、包长限制构建协议头并加载在method list中。在阶段206中,接着判断是否存在下一种协议,如果否,跳转到阶段202开始之前;如果是,则进入阶段208,获取基本操作参数等信息。将结构加载到method list对应的位置。最后根据操作的具体情况,要么返回阶段206开始之前,要么进入阶段210解析程序结束。
二.Method list数据结构模块
method list用以在协议识别程序中保存识别方式,其结构采用动态链表和无类型指针构成,方便动态扩展协议识别方式。同时通过对结构的设计高效的实现协议识别流程。
图3示出图1中的Method List数据结构模块的结构图。如图3所示,其具体结构图忽略了链表元素之间连接的指针元素。
识别方式头:引导一组基本识别操作以实现一个独立的识别方式。这个方式可以是能够直接识别数据包所属流为何种应用协议的方式也可以是多状态识别方式中对某一状态的校验方法。该识别头中主要包含的元素为:此方式的状态信息、包长限制信息、应用名称以及指向所属基本操作和下一识别头的指针。状态信息存储了这个识别方式是否是多状态识别方式的一部分,如果是的话对前项状态的要求是什么,识别后赋予的状态名是什么这些信息。包长限制信息表示此类识别方式针对的是包长在某个限制条件下的数据包。包长限制信息以及前项状态要求信息能够有效对数据包是否有资格进行后续的一连串基本识别操作哦进行判断。这一结果能够有效的加快平均检测流程。
基本识别操作:根据其类型和参数,识别操作执行模块能够完成识别方式的各个基本操作。因为基本操作类型较多,链表各元素使用无类型指针链接,下一操作类型用以正确解析下一个基本操作元素的内容。
三.协议识别操作执行模块
协议识别操作执行模块结合对象数据包的信息以及该数据包所属流记录中的识别状态信息以及buffer内容信息使用method list中存储的识别方式完成协议识别操作。
图4示出图1中的协议识别操作执行模块的流程图。如图4所示,每个数据包进入识别流程后按照method list的逐条匹配方法依次完成匹配操作。在每个独立的匹配操作中按照:
1.包长限制检测;
2.状态信息检测;
3.基本检测操作的顺序完成识别方式。
如果通过上述三个检测,则识别状态成功或是识别所属应用成果退出流程。未通过检测的继续流程中的下一组识别操作直到被识别或是完成整个识别流程。
基于XML平台的协议识别***的流程说明
下面通过一个实际的例子说明协议识别***的整体工作流程:
一.一个实际的识别方式描述文件内容
<?xml version=″1.0″encoding=″UTF-8″?>
<bittorrent>
 <tcp>
     <type value=″1″>
         <byte>
             <content>0x13</content>
             <offset>0</offset>
         </byte>
         <string>
             <content>BitTorrent protocol</content>
             <offset>1</offset>
             <string_length>19</string_length>
         </string>
     </type>
 </tcp>
 <udp>
     <type value=″1″>
         <payload_length>21</payload_length>
         <byte>
             <content>0x00</content>
             <offset>0</offset>
         </byte>
         <byte>
              <content>0x00</content>
              <offset>1</offset>
         </byte>
        <byte>
            <content>0x04</content>
            <offset>2</offset>
        </byte>
        <byte>
            <content>0x01</content>
            <offset>3</offset>
        </byte>
     </type>
 </udp>
</bittorrent>
以上是一个描述识别BT流量的以NAIMD实现的配置文件。这里具体实现了针对tcp和udp的各一种特征识别方式。它们分别是:
1.Payload首字节内容为0x13,从第二个字节开始的19个字节为字符串“BitTorrent protocol”,针对的是tcp流量。
2.Payload长度为21的数据包,第一到四个字节内容分别是0x000x00 0x04 0x01
二.初始化解析过程
内容解析模块根据配置文件将导入(一)中所述文件中描述的识别方式。
1.首先根据主元素内容“bittorrent”确定了即将引入的识别方式是针对BT协议的;
2.分别提取tcp和udp标签下的识别方式内容,将其内部的识别方式加入到对应的method list中(***中包含两个methodlist,分别表示tcp和udp的协议识别方式);
3.在解析过程中为每一个”type”标签下的内容在method list中构建一个识别方式头(identifier_header),type中的每一个基本识别元素为这个识别方式头链接的基本识别方式中的一个。例如TCP标签下的type 1构建一个识别方式头,链接两个识别方式分别是判断首字节内容是否是0x13和判断第二个字节开始的19个字节内容是否是“BitTorrentProtocol”。
三.识别执行过程
在具体的识别执行过程中,识别执行模块按照method list中的内容实现具体的识别工作。
具体流程如下:
1.根据传输层协议决定参照TCP或UDP的method list来进行识别工作;
2.对数据包内容和其所属流信息用method list中的识别方式头指定的一些基本信息和链接的一组基本识别操作进行识别工作;如果未完成任何一个独立的识别操作就被认为是不能满足这一识别方式对应的特征,于是继续进入method list中的下一条识别方式头指定的识别方式进行判断。如果完成了一个识别方式头所指定的所有操作,则被认为满足了识别特征(或者是满足了多状态识别中进入下一状态的特征),则该流就可以被识别未对应的流量。
四.实例完整的工作流程
当一个数据包以及其所属流的信息进入检测流程之后,识别执行模块根据method list信息对其进行流量识别。首先根据其所属的传输层协议选择对应的method list(tcp和udp各自维护了一个methodlist)。在依据method list中的识别方式头指定的识别方式进行识别操作,假如一个数据包被上述识别方式描述文件中的tcp的第一个type指定的方法所检测的时候,首先进行第一个操作检测首个字符是否是0x13(这个操作存储在识别方式头指定的第一个操作结构中,识别方式头中包含这个操作的类型和其指针使得识别执行模块能够正确地找到这个存储这个操作的结构。这个结构中存储了其比较参数为0x13,于是执行模块根据参数和操作类型对数据包和流信息进行特征匹配)。如果不符合这个特征就直接结束这个识别方式头指定的识别操作,进入下一识别方式头指定的识别过程中。如果符合这个特征就继续后续的识别操作,比如比较第二个字节开始是否是字符串“BitTorrent Protocol”,如果不是就进入下一识别方式中。如果是则告知识别执行模块,完成特征匹配,这个数据包所属于的流可以被标识为属于BT应用。
以上对本发明的具体描述旨在说明具体实施方案的实现方式,不能理解为是对本发明的限制。本领域普通技术人员在本发明的教导下,可以在详述的实施方案的基础上做出各种变体,这些变体均应包含在本发明的构思之内。本发明所要求保护的范围仅由所述的权利要求书进行限制。

Claims (10)

1.一种网络应用层协议识别方法,其特征在于,所述识别方法包括如下步骤:
1)对网络应用层的协议识别方式进行描述,并生成相应的识别方式描述文件;
2)对识别方式描述文件进行解析,生成相应的Method List数据结构;以及
3)依据Method List数据结构,对网络应用层协议进行识别。
2.根据权利要求1所述的识别方法,其特征在于,所述网络应用层协议识别方式是多类型和/或多状态的协议识别方式。
3.根据权利要求1所述的识别方法,其特征在于,所述步骤1)中,还包括:在识别方式描述文件中对为协议识别提供操作支持的操作方式和识别方式的结构进行描述。
4.根据权利要求1所述的识别方法,其特征在于:所述步骤2)中的解析是基于XML语言平台。
5.根据权利要求1所述的识别方法,其特征在于:所述步骤3)中的Method List数据结构采用动态链表和无类型指针结合的方式。
6.根据权利要求3所述的识别方法,其特征在于:所述对协议识别提供操作支持的操作方式包括buffer操作。
7.一种网络应用层协议识别***,其特征在于,所述识别***包括:
对协议识别方式描述文件进行解析的描述方法解释器,其中所述识别方式描述文件用于对网络应用层的协议识别方式进行描述;
存储解析后的数据结构Method List的Method List数据结构模块;以及
依据Method List对协议进行识别的协议识别操作执行模块。
8.根据权利要求7所述的识别***,其特征在于:所述描述方法解释器是基于XML语言平台。
9.根据权利要求8所述的识别***,其特征在于:所述描述方法解释器调用LIBXML2开放代码库。
10.根据权利要求7至9任一项所述的识别***,其特征在于:所述的Method List数据结构模块采用动态链表和无类型指针结合的方式。
CNA2008101060729A 2008-05-08 2008-05-08 一种网络应用层协议识别方法和*** Pending CN101577704A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008101060729A CN101577704A (zh) 2008-05-08 2008-05-08 一种网络应用层协议识别方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008101060729A CN101577704A (zh) 2008-05-08 2008-05-08 一种网络应用层协议识别方法和***

Publications (1)

Publication Number Publication Date
CN101577704A true CN101577704A (zh) 2009-11-11

Family

ID=41272492

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101060729A Pending CN101577704A (zh) 2008-05-08 2008-05-08 一种网络应用层协议识别方法和***

Country Status (1)

Country Link
CN (1) CN101577704A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备
CN103780624A (zh) * 2014-01-26 2014-05-07 北京仿真中心 一种面向复杂***的通用应用层网络通信协议应用方法
CN106453131A (zh) * 2016-11-03 2017-02-22 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1703890A (zh) * 2002-07-29 2005-11-30 科斯莫斯公司 数据网络中识别和分析协议的方法
CN1708017A (zh) * 2004-06-04 2005-12-14 安捷伦科技有限公司 协议仿真器
CN1717915A (zh) * 2002-11-28 2006-01-04 科斯莫斯公司 一种用于对数字通信数据触发操作的方法和计算机***
CN1738257A (zh) * 2004-12-31 2006-02-22 北京大学 基于应用协议检测引擎的网络入侵检测***和方法
CN1258723C (zh) * 1999-06-30 2006-06-07 倾向探测公司 用于监控网络流量的方法和设备
CN1845066A (zh) * 2006-05-16 2006-10-11 北京启明星辰信息技术有限公司 一种自动协议识别方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1258723C (zh) * 1999-06-30 2006-06-07 倾向探测公司 用于监控网络流量的方法和设备
CN1703890A (zh) * 2002-07-29 2005-11-30 科斯莫斯公司 数据网络中识别和分析协议的方法
CN1717915A (zh) * 2002-11-28 2006-01-04 科斯莫斯公司 一种用于对数字通信数据触发操作的方法和计算机***
CN1708017A (zh) * 2004-06-04 2005-12-14 安捷伦科技有限公司 协议仿真器
CN1738257A (zh) * 2004-12-31 2006-02-22 北京大学 基于应用协议检测引擎的网络入侵检测***和方法
CN1845066A (zh) * 2006-05-16 2006-10-11 北京启明星辰信息技术有限公司 一种自动协议识别方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102413141A (zh) * 2011-11-30 2012-04-11 华为技术有限公司 网络消息解析方法及通信设备
US9819719B2 (en) 2011-11-30 2017-11-14 Huawei Technologies Co., Ltd. Method for parsing network message and communication device
CN103780624A (zh) * 2014-01-26 2014-05-07 北京仿真中心 一种面向复杂***的通用应用层网络通信协议应用方法
CN103780624B (zh) * 2014-01-26 2017-10-17 北京仿真中心 一种面向复杂***的通用应用层网络通信协议应用方法
CN106453131A (zh) * 2016-11-03 2017-02-22 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备
CN106453131B (zh) * 2016-11-03 2019-06-28 瑞斯康达科技发展股份有限公司 一种匹配器生成的方法和设备

Similar Documents

Publication Publication Date Title
TWI730654B (zh) 部署和執行智能合約的方法及裝置
US10783082B2 (en) Deploying a smart contract
US7389234B2 (en) Method and apparatus utilizing speech grammar rules written in a markup language
CN103294652B (zh) 一种数据转换方法及***
CN1526104B (zh) 分析结构化数据
US7458022B2 (en) Hardware/software partition for high performance structured data transformation
CN110688122B (zh) 编译和执行智能合约的方法及装置
JP6238494B2 (ja) 文法コンパイル方法、語義解析方法、及び装置
Back DataScript-A specification and scripting language for binary data
US7437666B2 (en) Expression grouping and evaluation
CN110704063B (zh) 编译和执行智能合约的方法及装置
CN101329665A (zh) 解析标记语言文档的方法和解析器
US7328403B2 (en) Device for structured data transformation
CN110704064B (zh) 编译和执行智能合约的方法及装置
CN110334326B (zh) 一种识别配方文件并转化为xml文件的方法及***
CN108334622B (zh) 一种获取格式化复合数据的方法
CN109189381A (zh) 一种业务流组件的创建方法及装置
CN107015841A (zh) 一种程序编译的预处理方法及程序编译设备
CN101577704A (zh) 一种网络应用层协议识别方法和***
CN101980546B (zh) 智能网平台、业务执行方法和分析业务异常的方法
CN101202736A (zh) 一种在通讯网络中实现编解码的方法
CN101577706A (zh) 一种对网络应用层协议识别方式的识别方法
CN115113876A (zh) 一种基于源代码检测的增量编译的方法和装置
CN100470472C (zh) 一种基于解释器和解析器实现地理信息服务的***及方法
US20080201351A1 (en) Automated transformations for style normalization of schemas

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20091111