CN1842081B - 扩展巴克斯范式字符串模式匹配和解析的方法及装置 - Google Patents

扩展巴克斯范式字符串模式匹配和解析的方法及装置 Download PDF

Info

Publication number
CN1842081B
CN1842081B CN2005100596504A CN200510059650A CN1842081B CN 1842081 B CN1842081 B CN 1842081B CN 2005100596504 A CN2005100596504 A CN 2005100596504A CN 200510059650 A CN200510059650 A CN 200510059650A CN 1842081 B CN1842081 B CN 1842081B
Authority
CN
China
Prior art keywords
abnf
character string
instruction
command
pattern matching
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
Application number
CN2005100596504A
Other languages
English (en)
Other versions
CN1842081A (zh
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.)
University of Science and Technology of China USTC
Huawei Technologies Co Ltd
Original Assignee
University of Science and Technology of China USTC
Huawei Technologies 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 University of Science and Technology of China USTC, Huawei Technologies Co Ltd filed Critical University of Science and Technology of China USTC
Priority to CN2005100596504A priority Critical patent/CN1842081B/zh
Priority to EP06722209A priority patent/EP1868090A4/en
Priority to PCT/CN2006/000557 priority patent/WO2006102849A1/zh
Publication of CN1842081A publication Critical patent/CN1842081A/zh
Priority to US11/905,199 priority patent/US20080072216A1/en
Application granted granted Critical
Publication of CN1842081B publication Critical patent/CN1842081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于ABNF(扩展巴克斯范式)文法的字符串模式匹配和解析的方法及装置。本发明主要包括:(1)定义了一套适合描述字符串模式规则的指令集;(2)设计了一个编译器,可以直接将ABNF文法描述的协议规则生成用指令集描述的协议规则以及目标代码;(3)根据指令集特点设计硬件解析器,解析器包含专用硬件实现的模块支持相应的指令,可以实现高速字符串模式匹配和解析。采用本发明进行字符串模式匹配和解析的效率大大提高;开发人员可以直接使用ABNF文法来描述协议规则,然后使用编译器生成机器码下载到解析器的内存里,不必用指令集来描述协议规则,这样大大地缩短了开发周期,降低了开发成本。

Description

扩展巴克斯范式字符串模式匹配和解析的方法及装置
技术领域
本发明涉及网络通信技术领域,尤其涉及一种扩展巴克斯范式字符串模式匹配和解析的方法及装置。
背景技术
ABNF(扩展巴克斯范式,Augmented BNF)是在IETF(Internet工程任务组,Internet Engineering Task Force)组织在RFC2234中定义的一个字符串模式匹配的文法定义。ABNF是在BNF(巴克斯范式)基础上的扩展,其与标准巴克斯范式的区别包括命名规则、循环、选择、次序独立以及值域。IETF组织使用ABNF定义了多个协议中的报文格式,例如,SIP(会话启动协议,Session Initiation Protocol)。
在解析ABNF定义的多个协议时,需要按照ABNF规则对报文的规则进行描述和分析。
ABNF规则以如下的方式来定义:
Name=elements crlf;
其中,“name”是规则名,“elements”是一个或多个规则名或终结符组合成的序列,“crlf”是回车换行,表征一行的结束;“=”表示“定义为”的含义,用于将规则名和规则定义分开。
ABNF的操作符有多种操作符,用来表示规则名或终结符之间的关系。其中有四种最基本的操作符:连接、选择、循环和可选项;利用该四种操作符可以描述绝大多数复杂数据结构,其余的操作符可以用这四种基本的操作符来取代。
以下举一个简单的例子来说明ABNF规则的特点以及四种基本操作符的意义:
Rule=“a”*(rule1)rule2[rule3];
Rule1=“b”|“c”;
Rule2=“de”;
Rule3=“f”;
在上述规则中,“*”指不定循环,表示rule1可以循环0次或无穷次;rule2与前后规则具有连接关系;用方括号(“[”和“]”)括起来的成分表示是可选的,表明rule3是一可选项;Rule1中的“b”和“c”由“|”连接,表示选择关系(“或”关系)。Rule实际上就是用ABNF文法定义了一种字符串模式规则,对于一些字符串如:“abdef”、“abbccdef”、“ade”等都可以匹配。
Rule的语法树如图1所示,树的叶子是终结符,在ABNF文法中所有的终结符都属于ASIIC码。树的节点是一些ABNF文法中操作符或子规则名(表示调用)。代表连接操作符,在ABNF文法中被省略。相比于用来描述多数计算机语言所使用的正规表达式,ABNF的文法较丰富。ABNF文法中一些操作符具有相关性,如可选项在表达规则时完全可以用选择关系来取代。但这些操作符都是很有必要的,因为ABNF主要是用来描述数据结构,它在定义结构规则的同时,也要给出结构中的域值,共上层识别、提取,使用这些操作符提高了ABNF的表达能力。
现有常见的ABNF解析方案之一是在通用微处理器上,使用软件来实现,主要分为两类,一类是使用嵌套程序直接描述ABNF表达的协议规则,实质上就是使用开发语言的语法代替ABNF语法来描述协议规则;另一类是根据整个协议规则生成一棵语法树,解析的过程上就是遍历语法树的过程。
以上两种软件实现的方案中,前者的特点是占用存储空间小,但通用性能差,每有新的协议都需要重新开发;后者的特点是通用性能好,可以根据ABNF描述的协议规则直接生成语法树,但占用存储空间较大,不适合在嵌入式系统中实现。
以上两种软件实现的方案在CPU执行时判断、跳转、调用太多,频繁访问不连续的存储空间,带来的缺点是效率低,处理速度慢,给整个系统的运转带来很大的瓶颈。特别是一些面对百万级连接、吞吐量比较大的网络服务器,纯软件实现方案无法满足性能要求。
目前,还提出了一种硬件实现的高速字符串匹配方案,可以对满足正则表达式类字符串进行高速匹配。
正则式有三种基本形式:
(1)r1|r2标识选择关系,可以匹配任何满足规则r1或规则r2的字符串;
(2)r1r2表示连接关系;
(3)r1表示循环关系;
如正则式((a|b))(cd)可以匹配字符串有:acd、aabbcd、cd等。可以为每一个正则式构造一个相应的NFA,采用硬件逻辑通过构造NFA来对可以使用正则式描述其模式规则的字符串进行匹配。图2是四种基本的逻辑结构:(a)单个字符的匹配;(b)r1|r2;(c)r1r2;(d)r1。其中(a)是最基本的单元,在硬件实现中,字符c可以用比较器来实现,用一个触发器(Flip-flop)传接该单元的使能信号,并使整个电路同步。与门、或门和单元之间的物理连线描述了各个单元的逻辑关系。使用这四种基本的逻辑结构可以构造任意的正则式。
图3是((a|b))(cd)的逻辑结构。我们将这种思想应用在本发明的特殊解析器模块中(参考图5),用这种思想实现的字符串模式匹配可以达到很高的速度。与软件实现相比,该方案的可以以O(n)的速度对字符串进行匹配。对硬件实现而言即每个时钟周期处理一个字符。
然而,在这一方案中,如果构造大规模的正则式,由于其模块不能复用,占用的硬件逻辑资源太多,以致代价太高。另一方面,该方案不易于提取域值,难以应用在报文的内容解析中。多数ABNF描述的应用层网络协议,例如,SIP(会话初始协议),协议规则非常庞大,而且域值很多,因此不适合使用这一技术方案实现。
发明内容
鉴于上述现有技术所存在的问题,本发明的目的是提供一种扩展巴克斯范式字符串模式匹配和解析的方法及装置,从而实现快速、高效地对任何使用ABNF语法描述的协议规则的报文进行模式匹配和解析。
本发明的目的是通过以下技术方案实现的:
本发明提供了一种扩展巴克斯范式ABNF字符串模式匹配和解析的方法,包括:
A、建立ABNF规则对应的ABNF指令;
B、将基于ABNF文法描述的协议规则编译为基于ABNF指令描述的协议规则;
C、对使用ABNF文法描述字符串或协议报文基于所述的ABNF指令描述的协议规则进行匹配和解析处理;
所述的ABNF指令包括:
选择命令、循环命令、可选命令、调用命令、比较命令和返回命令。
所述的返回命令包括:匹配成功命令和匹配失败命令。
所述的步骤B包括:
当使用选择命令、循环命令和可选命令时需要指明相应的偏移地址,所述的偏移地址分别用于表明选择关系的长度、循环关系的长度和用于确定可选项的结束地址。
所述的步骤C包括:
利用硬件处理芯片对所述的字符串或协议报文进行匹配和解析处理。
基于上述方法,本发明还提供了一种扩展巴克斯范式ABNF字符串模式匹配和解析处理装置,包括:
数据存储空间:用于存放需要进行扩展巴克斯范式ABNF字符串模式匹配和解析处理的文本数据;
程序存储空间:用于存放将所述的ABNF描述的字符串模式规则经编译处理后获得的基于ABNF指令的协议规则序列的目标代码;
译码器:用于对程序存储空间的协议规则序列的目标代码进行译码,获得控制信号;并提取程序存储空间的待比较数据,提供给比较器;
比较器:用于将程序存储空间被译码器提取出的操作数与当前数据存储空间的数据进行比较,并反馈比较结果。
所述的数据存储空间、程序存储空间和匹配和译码器通过总线连接。
所述的ABNF字符串模式匹配和解析处理装置还包括:
结果输出缓冲模块:连接于控制总线上,用于保存针对协议规则序列代码的匹配和解析处理结果。
所述的ABNF字符串模式匹配和解析处理装置还包括:
特殊解析器:对特定的字符串模式规则进行匹配,且为完全使用硬件逻辑单元实现,每个特殊解析器与专用的指令对应,通过所述指令调用相应的特殊解析器对报文进行解析。
所述的ABNF字符串模式匹配和解析处理装置还包括循环计数器,用于为程序存储空间提供访问地址。
所述的ABNF字符串模式匹配和解析处理装置还包括:
链表栈:用于保存选择命令、循环命令和可选命令时需要指明的偏移地址信息,所述ABNF指令包括:选择命令、循环命令和可选命令。
由上述本发明提供的技术方案可以看出,由于本发明为基于硬件解码芯片实现所述的ABNF解码器,使得其与软件实现方式相比,解析效率大为提高;而且,本发明中,所述的ABNF指令集实质上相当于一种高级语言,基本与ABNF文法是一一对应,使得目标代码简便,并易于硬件实现。而且,在本发明提供编译器可以直接根据用ABNF文法描述的协议规则生成相应的机器代码,这样,开发人员直接使用ABNF语法描述协议规则即可,不必用指令来描述协议规则,这样开发起来方便,提高了通用性,缩短了开发周期,降低了开发成本。因此,本发明构造了一个通用、高效的字符串模式匹配和解析的处理器。
附图说明
图1为规则Rule=“a”*(rule1)rule2[rule3]语法树的结构示意图;
图2为正则式的四种基本逻辑结构示意图;
图3为规则Rule=“a”*(rule1)rule2[rule3]组合逻辑结构示意图;
图4为本发明所述的方法的流程图;
图5为本发明所述的解析器的原理框图。
具体实施方式
本发明主要是提供了一种基于ABNF文法的字符串模式匹配和解析的硬件解码器的实现,可以对任何使用ABNF语法描述的协议规则的报文进行高速模式匹配和解析。
为对本发明有进一步了解,下面首先对本发明所述的扩展巴克斯范式字符串模式匹配和解析的方法的具体实现方式进行描述。
为实现本发明所述的方法首先需要建立ABNF规则对应的ABNF指令,所述的ABNF指令包括:选择命令、循环命令、可选命令、调用命令、比较命令和返回命令,所述的返回命令又进一步包括匹配成功命令和匹配失败命令;而且,当应用选择命令、循环命令和可选命令时,还需要指明相应的偏移地址,所述的偏移地址分别用于表明选择关系的长度、循环关系的长度和用于确定可选项的结束地址,ABNF指令集的具体含义描述如下表所示:
 
指令实例 指令含义
or[ornum] 进入选择关系,[omum]是偏移地址,表示选择关系的长度,执行时 处理器将ornum作为成功匹配地址压入数据链表里
cmp‘c’ 将当前数据空间指针指向的数据跟’c’比较。如果该指令处于顺序状态,当匹配成功数据指针加1,然后执行下一条指令,若匹配失败,则从数据链表中取出失败匹配地赋给程序指针;如果指令处于 选择状态,当匹配成功数据指针加1,处理器从数据链表中取出成功地址赋给程序指针,如果匹配失败则执行下一条指令
loop[loopnum] 进入循环关系,[loopnum]是偏移地址,表明循环关系的长度。处理器根据此指令可以知道需要循环的开始地址和结束地址,然后赋给循环计数器。同时每次循环之前将endloop指令地址作为火败地址压入数据链表。
endloop 与loop指令一一对应,表明循环关系的结束地址,处理器只是继续 执行下一条指令。
opt[optnum] 表明该指令一下的是可选项,[optnum]是偏移地址,处理器将它与现行程序计数器相加获得可选项的结束地址并作为失败地址压入数据链表中。
call R 表示调用,R是子规则的绝对地址。如果当前是顺序关系,处理器将下一条指令的地址作为成功匹配地址压入数据链表,然后跳转到R指向的程序空间;如果当前是选择关系,处理器将一下跳指令的地址作为失败匹配地址压入数据链表,然后跳转到R
error 匹配失败,处理器从数据链表里取出失败匹配地址给程序指针
Ret 匹配成功,处理器从数据链表里取出成功匹配地址给程序指针。[ID]是可选项,ret跟call是一一对应的,当ID存在时表示call的值域是需 要记录的,[ID]表示该值域对应的编码。编码的值是由编译器编译分配的。
有了上述ABNF指令集后,则可以将基于ABNF字符串描述的协议规则编译为基于ABNF指令的协议规则序列,也就是说,将待匹配和解析处理的数据文本(协议规则数据文本)首先以ABNF字符串进行描述,然后,再将所述的ABNF字符串基于ABNF指令进行编译;
最后,便可以对所述的基于ABNF指令的协议规则序列进行匹配和解析处理,由于ABNF指令的简便且易于实现,因此整个匹配和解析过程的硬件实现将更为方便,从而保证的解析处理的高效性和通用性。
可以看出,本发明中,ABNF指令的格式为:操作码[操作数],其中一些操作数是隐式给出,如指令cmp‘c1’实质上有两个操作数,一个是字符‘c1’,存放在程序空间,另一个是当前数据空间里数据指针指向的内容;
所述的ABNF指令集的具有双出口特点,即部分指令(如or,loop等)用来记录该状态执行成功和执行失败所需返回的地址,称为成功匹配地址和失败匹配地址,压入链表栈中;部分指令(如cmp)根据执行的结果来决定是从链表栈里取出成功地址还是失败地址作为返回地址。
本发明还提供了一种采用硬件实现的扩展巴克斯范式字符串模式匹配和解析处理装置,在使用该装置开发基于新的协议规则的解析处理软件时,首先将ABNF规则编译成为ABNF指令序列,然后下载到解码芯片的程序空间即可使用,具体处理过程如图4所示,首先使用ABNF语法描述协议规则,然后,使用本发明中的ABNF指令集对所述的协议规则进行编译连接,如果编译失败,则重新使用ABNF语法描述协议规则,再进行编译连接,当编译连接成功时,便可以将所述的基于ABNF指令的协议规则序列利用本发明提供的装置进行匹配和解析处理,获得解析处理结果。
下面再对本发明提供了扩展巴克斯范式字符串模式匹配和解析处理装置结合附图进行说明,如图5所示,具体包括:
(1)数据存储空间,即数据空间
用于存放需要进行扩展巴克斯范式ABNF字符串模式匹配和解析处理的文本数据,所述的数据存储空间充当待解析的报文的缓冲;
(2)程序存储空间,即代码空间
用于存放将所述的ABNF描述的字符串模式规则经编译处理后获得的基于ABNF指令的协议规则序列的目标代码,即所述的代码空间(即程序存储空间)用于存放描述协议规则的目标代码;
(3)循环计数器
循环计数器用来产生程序存储空间的地址,为了提高地址产生效率,循环计数器除了具有普通计数器功能之外,还专门支持loop(循环)指令;循环计数器使用两个寄存器文件,即StartReg文件和EndReg文件,分别用来存放计数器的起始计数值和结束计数值;计数器从起始值开始递增计数,当到达结束值时,自动从起始值开始重新递增计数;当StartReg0=0X0000,EndReg=0Xffff时,该循环计数器功能就与普通计数器一样;
(4)译码器
译码器用于对存放在程序存储空间的机器码进行译码,为各个存储空间以及比较器、特殊解析器、循环计数器、数据地址发生器、解析结果输出缓冲器提供控制信号,为比较器提供比较数据;
(5)比较器
比较器用于对除特定的协议规则外的协议规则进行比较处理,获得匹配和解析处理结果;具体为:所述的比较器用来专门支持所述的cmp(比较)指令,将程序空间被译码器提取出的操作数与当前数据空间的数据进行比较,然后反馈比较结果;
(6)特殊解析器
特殊解析器为基于特定的协议规则设置,专门针对协议中常见模块规则直接用硬件逻辑构造不确定状态机,专门对特定常用的规则模式进行解析,如IPV4和IPV6地址模式规则的字符串进行解析;特殊解析器连接在处理器数据总线和控制总线上,需要特殊解析器解析的模式规则对应有专门的指令,程序调用这些指令时,处理器就直接调用特殊解析器来解析当前报文数据,这样在解析协议中常见的模块规则时,使用特殊解析器大大地提高了报文解析速度。特殊解析器可以根据处理器的应用目的进行定制,例如若处理器应用于SIP协议解析,可以针对SIP协议的特点定制特殊处理器,以提高解析速度;
(7)结果输出缓冲模块
用于保存针对协议规则序列代码的匹配和解析处理结果;具体是在解析数据缓冲的报文过程中记录下需要提取的域值的位置(地址)和错误信息;
(8)链表栈
用于保存选择命令、循环命令和可选命令时需要指明的偏移地址,以及子规则调用指令(call)的返回地址;这些地址可分为匹配成功返回地址和匹配失败返回地址。
具体为:所述的链表栈控制器和RAM构成一个链表栈,该链表栈是支持ABNF指令集关键的模块,一些ABNF指令是直接解释ABNF文法的操作符,需要记录当前匹配成功或匹配失败所需返回的地址,链表栈就是用来按照一定的数据结构存放成功地址和失败地址,便于解析器在代码空间快速寻址。
本发明所述的装置采用的是增强的哈佛结构,即所述的数据存储空间、程序存储空间、匹配和解析处理器(包括特殊解析器和比较器),以及结果输出缓冲模块和链表栈控制器间通过五根独立的总线连接,其目的是为了提高访问存储器的效率,所述的五根总线包括两根地址总线、两根数据总线和一根控制总线,两根地址总线分别为数据存储地址总线和程序存储地址总线,两根数据总线分别为数据存储数据总线和程序存储数据总线;
不难看出,本发明的实现过程中,ABNF指令集起到了重要的作用。下面将结合具体实例来说明所述ABNF指令集的使用:
(a)顺序关系:
(1)对于规则R:R=R1R2的描述如下:
call  R1
call  R2
ret
其中,R1、R2为基于ABNF字符串描述的协议规则,下同;
(2)对于规则R:R=‘c1’‘c2’的描述如下:
cmp‘c1’
cmp‘c2’
ret
其中,C1、C2为具体的ABNF字符串,下同;
(b)选择关系:
(1)对于规则R:R=R1|R2的描述如下:
or    [ornum]
call   R1
call   R2
error
ret
(2)对于规则R:R=‘c1’|‘c2’的描述如下:
or    [ornum]
cmp  ‘c1’
cmp  ‘c2’
error
ret
(c)循环关系
(1)对于规则R:R=*(R1)的描述如下:
loop   [loopnum]
call   R1
endloop
ret
(2)对于规则R:R=*(c1)的描述如下:
loop   [loopnum]
cmp   ‘c1’
endIoop
ret
(d)可选项
(1)对于规则R:R=R1[R2]R3的描述如下:
call   R1
opt   [optnum]
call  R2
call  R3
ret
(2)对于规则R:R=c1[c2]c3的描述如下:
cmp ‘c1’
opt   [optnum]
cmp  ‘c2’
cmp  ‘c3’
ret
基于上述ABNF指令集,下面再以一个具体的ABNF规则为例,描述其采用ABNF指令集描述的形式:
Rule=“abc”*(rule1)rule2[rule3]         ;规则名及其定义
Rule:cmp‘a’
      cmp‘b’
      cmp‘c’
      loop  [loopnum]
call  Rule1;
endloop
call Rule2
opt  [optnum]
call Rule3
ret
Rule1=“d”|”e”             ;子规则名及其定义
Rule1:or[ornum]
       cmp‘d’
       cmp‘e’
      error
      ret
Rule2=“f”                    ;子规则名及其定义
Rule2:cmp‘f’
     ret
Rule3=“gh”                   ;子规则名及其定义
Rule3:cmp‘g’
        cmp‘h’
        ret
基于硬件解码芯片的ABNF解码器可带来如下有益效果:
发明一种高速进行字符串模式匹配和解析的处理器,便于应用在大型网络服务器上对应用层文本编码的报文进行合法性检查和解析;与传统软件实现方法相比,匹配和解析的速度大为提高。
所述的ABNF指令实质上相当于一种与ABNF文法对应的高级语言。在本发明中,实现了该语言的编译器,可以根据用ABNF文法描述的协议规则生成指令描述的规则和处理器的机器代码。开发人员开发新的协议时可以直接使用ABNF文法来描述协议规则,不必用指令集来描述,这样就缩短开发周期,降低开发成本。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (10)

1.一种扩展巴克斯范式ABNF字符串模式匹配和解析的方法,其特征在于,包括:
A、建立ABNF规则对应的ABNF指令,所述的ABNF指令包括:选择命令、循环命令、可选命令、调用命令、比较命令和返回命令;
B、将基于ABNF文法描述的协议规则编译为基于ABNF指令描述的协议规则;
C、对使用ABNF文法描述字符串或协议报文基于所述的ABNF指令描述的协议规则进行匹配和解析处理。
2.根据权利要求1所述的ABNF字符串模式匹配和解析的方法,其特征在于,所述的返回命令包括:匹配成功命令和匹配失败命令。
3.根据权利要求1所述的ABNF字符串模式匹配和解析的方法,其特征在于,所述的步骤B包括:
当使用选择命令、循环命令和可选命令时需要指明相应的偏移地址,所述的偏移地址分别用于表明选择关系的长度、循环关系的长度和用于确定可选项的结束地址。
4.根据权利要求1、2或3所述的ABNF字符串模式匹配和解析的方法,其特征在于,所述的步骤C包括:
利用硬件处理芯片对所述的字符串或协议报文进行匹配和解析处理。
5.一种扩展巴克斯范式ABNF字符串模式匹配和解析处理装置,其特征在于,包括:
数据存储空间:用于存放需要进行扩展巴克斯范式ABNF字符串模式匹配和解析处理的文本数据;
程序存储空间:用于存放将所述的ABNF描述的字符串模式规则经编译处理后获得的基于ABNF指令的协议规则序列的目标代码;
译码器:用于对程序存储空间的协议规则序列的目标代码进行译码,获得控制信号;并提取程序存储空间的待比较数据,提供给比较器;
比较器:用于将程序存储空间被译码器提取出的操作数与当前数据存储空间的数据进行比较,并反馈比较结果。
6.根据权利要求5所述的ABNF字符串模式匹配和解析处理装置,其特征在于,所述的数据存储空间、程序存储空间和译码器通过总线连接。
7.根据权利要求5所述的ABNF字符串模式匹配和解析处理装置,其特征在于,该装置还包括:
结果输出缓冲模块:连接于控制总线上,用于保存针对协议规则序列代码的匹配和解析处理结果。
8.根据权利要求5、6或7所述的ABNF字符串模式匹配和解析处理装置,其特征在于,该装置还包括:
特殊解析器:对特定的字符串模式规则进行匹配,且为完全使用硬件逻辑单元实现,每个特殊解析器与专用的指令对应,通过所述指令调用相应的特殊解析器对报文进行解析。
9.根据权利要求8所述的ABNF字符串模式匹配和解析处理装置,其特征在于,该装置还包括循环计数器,用于为程序存储空间提供访问地址。
10.根据权利要求8所述的ABNF字符串模式匹配和解析处理装置,其特征在于,该装置还包括:
链表栈:用于保存选择命令、循环命令和可选命令时需要指明的偏移地址信息,所述ABNF指令包括:选择命令、循环命令和可选命令。
CN2005100596504A 2005-03-30 2005-03-30 扩展巴克斯范式字符串模式匹配和解析的方法及装置 Active CN1842081B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN2005100596504A CN1842081B (zh) 2005-03-30 2005-03-30 扩展巴克斯范式字符串模式匹配和解析的方法及装置
EP06722209A EP1868090A4 (en) 2005-03-30 2006-03-30 METHOD AND DEVICE FOR FILTERING AND ANALYZING CHAINS OF ABNF CHARACTERS
PCT/CN2006/000557 WO2006102849A1 (fr) 2005-03-30 2006-03-30 Procede et dispositif de filtrage et d’analyse de chaines de caracteres abnf
US11/905,199 US20080072216A1 (en) 2005-03-30 2007-09-28 Method and device for ANBF string pattern matching and parsing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2005100596504A CN1842081B (zh) 2005-03-30 2005-03-30 扩展巴克斯范式字符串模式匹配和解析的方法及装置

Publications (2)

Publication Number Publication Date
CN1842081A CN1842081A (zh) 2006-10-04
CN1842081B true CN1842081B (zh) 2010-06-02

Family

ID=37030924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100596504A Active CN1842081B (zh) 2005-03-30 2005-03-30 扩展巴克斯范式字符串模式匹配和解析的方法及装置

Country Status (4)

Country Link
US (1) US20080072216A1 (zh)
EP (1) EP1868090A4 (zh)
CN (1) CN1842081B (zh)
WO (1) WO2006102849A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493481B1 (en) * 2004-05-17 2009-02-17 Netxen, Inc. Direct hardware processing of internal data structure fields
US20080244511A1 (en) * 2007-03-30 2008-10-02 Microsoft Corporation Developing a writing system analyzer using syntax-directed translation
CN101562603B (zh) * 2008-04-17 2012-06-20 北京启明星辰信息技术股份有限公司 一种通过回显解析telnet协议的方法及系统
TWI383618B (zh) * 2008-12-22 2013-01-21 Univ Nat Taiwan 管線架構型正規表示式樣式比對處理電路
CN101854298A (zh) * 2010-05-19 2010-10-06 中国农业银行股份有限公司 报文的自动链接方法、账务修正方法及系统
CN102163221A (zh) * 2011-04-02 2011-08-24 华为技术有限公司 模式匹配方法和装置
EP2560338B1 (en) 2011-06-13 2016-01-13 Huawei Technologies Co., Ltd. Method and apparatus for protocol parsing
US8959493B2 (en) * 2011-06-27 2015-02-17 International Business Machines Corporation Using range validation in assembly language programming
KR101913313B1 (ko) * 2011-12-28 2018-10-31 삼성전자주식회사 게이트웨이에서 인터넷 프로토콜 기반 네트워크를 이용하여 컨텐츠 중심 네트워크를 구현하는 방법 및 그 게이트웨이
CN103019801B (zh) * 2012-12-20 2016-03-23 北京航天测控技术有限公司 一种应用于高速数字io波形引擎的编译器
CN103218246A (zh) * 2013-04-19 2013-07-24 中国科学院自动化研究所 一种基于图描述语言的将二进制工具生成方法
CN106909435B (zh) * 2015-12-22 2020-02-07 北京网御星云信息技术有限公司 一种网络安全设备命令行的解析方法和装置
CN107229723B (zh) * 2017-06-05 2022-05-03 腾讯科技(深圳)有限公司 指令处理方法及指令处理装置
CN108933784B (zh) * 2018-06-26 2021-02-09 北京威努特技术有限公司 一种工控协议解码规则的表述及优化解码方法
CN110708307B (zh) * 2019-09-29 2021-12-07 北京明略软件系统有限公司 转码器生成方法和装置、电子设备及存储介质
US11775298B2 (en) * 2020-04-24 2023-10-03 Intel Corporation Frequency scaling for per-core accelerator assignments
CN112287663B (zh) * 2020-11-25 2022-08-12 深圳平安智汇企业信息管理有限公司 一种文本解析方法、设备、终端及存储介质
CN112511551B (zh) * 2020-12-08 2022-03-22 中国船舶重工集团公司第七一六研究所 面向多种类型数据流的通信应用层协议解析方法及系统
CN112528627B (zh) * 2020-12-16 2022-10-04 中国南方电网有限责任公司 一种基于自然语言处理的检修意见识别方法
CN113377433B (zh) * 2021-05-27 2023-03-21 北京北方华创微电子装备有限公司 半导体工艺的执行方法
CN114610288B (zh) 2022-05-12 2022-09-16 之江实验室 基于阵列式解析基元结构的后端编译器实现方法及装置
CN117270968B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 字符串比较方法、装置、终端设备以及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903756A (en) * 1996-10-11 1999-05-11 Sun Microsystems, Incorporated Variable lookahead parser generator
CN1533093A (zh) * 2003-03-19 2004-09-29 华为技术有限公司 一种分析信令的方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5916305A (en) * 1996-11-05 1999-06-29 Shomiti Systems, Inc. Pattern recognition in data communications using predictive parsers
US6959415B1 (en) * 1999-07-26 2005-10-25 Microsoft Corporation Methods and apparatus for parsing Extensible Markup Language (XML) data streams
US7054926B1 (en) * 2002-01-23 2006-05-30 Cisco Technology, Inc. Method and apparatus for managing network devices using a parsable string that conforms to a specified grammar
AU2003210795A1 (en) * 2002-02-01 2003-09-02 John Fairweather System and method for analyzing data
US7810024B1 (en) * 2002-03-25 2010-10-05 Adobe Systems Incorporated Efficient access to text-based linearized graph data
US7080094B2 (en) * 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
US20040088425A1 (en) * 2002-10-31 2004-05-06 Comverse, Ltd. Application level gateway based on universal parser
US7380021B2 (en) * 2002-12-18 2008-05-27 International Business Machines Corporation Method for designating internet protocol addresses
CA2521576A1 (en) * 2003-02-28 2004-09-16 Lockheed Martin Corporation Hardware accelerator state table compiler
US7293113B1 (en) * 2003-05-28 2007-11-06 Advanced Micro Devices, Inc. Data communication system with hardware protocol parser and method therefor
CN100505752C (zh) * 2005-01-21 2009-06-24 华为技术有限公司 文本编码类协议通用解析器
US7779398B2 (en) * 2005-06-08 2010-08-17 Cisco Technology, Inc. Methods and systems for extracting information from computer code
US7975059B2 (en) * 2005-11-15 2011-07-05 Microsoft Corporation Generic application level protocol analyzer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903756A (en) * 1996-10-11 1999-05-11 Sun Microsystems, Incorporated Variable lookahead parser generator
CN1533093A (zh) * 2003-03-19 2004-09-29 华为技术有限公司 一种分析信令的方法

Also Published As

Publication number Publication date
EP1868090A4 (en) 2008-08-27
WO2006102849A1 (fr) 2006-10-05
US20080072216A1 (en) 2008-03-20
EP1868090A1 (en) 2007-12-19
CN1842081A (zh) 2006-10-04

Similar Documents

Publication Publication Date Title
CN1842081B (zh) 扩展巴克斯范式字符串模式匹配和解析的方法及装置
Ung et al. Machine-adaptable dynamic binary translation
CN102637136B (zh) 用于融合来自不同编译器阶段的调试信息的方法和设备
US8332828B2 (en) System for translating diverse programming languages
CN103218294B (zh) 一种嵌入式系统的调试方法、调试转换装置和系统
CN101253478A (zh) 类型推理和类型导向的后期绑定
CN101841515A (zh) 可变目标的协议数据单元编解码代码自动生成的实现方法
CN107291522A (zh) 一种面向自定义规则文件的编译优化方法及系统
CN112379917A (zh) 浏览器兼容性提升方法、装置、设备及存储介质
CN114327477A (zh) 智能合约执行方法、装置、电子装置和存储介质
CN100502309C (zh) 嵌入式Web网管系统及其交互方法
CN111159496B (zh) 正则表达式nfa的构造方法及装置
CN102446112B (zh) 指令处理装置和处理器、指令翻译装置和方法
Neable The. net compact framework
Fajge et al. An automated framework for migrating java applications to ethereum solidity applications
CN108595166B (zh) 一种分布式物联网应用执行引擎实现方法及系统
Silva et al. Internal inconsistencies in the third edition of the IEC 61131-3 international standard
CN102207949A (zh) 用于移动通讯设备终端的浏览器脚本解析方法及其装置
US8473932B2 (en) Relaxed and extended delegates
Ertl et al. Fast and flexible instruction selection with on-demand tree-parsing automata
KR100198956B1 (ko) 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법
Haga et al. Inconsistency Checking of UML Sequence Diagrams and State Machines Using the Structure-Behavior Coalescence Method
Chen et al. Lr (1) parser generator hyacc
Xu et al. Implementation Method and Code Reuse and Maintenance Mechanism of a RISC-V Lightweight Code Library
Nitu et al. Building an Interface for the D Compiler Library

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