CN105337809A - 一种表达式解析和高性能运算的方法 - Google Patents

一种表达式解析和高性能运算的方法 Download PDF

Info

Publication number
CN105337809A
CN105337809A CN201510864513.1A CN201510864513A CN105337809A CN 105337809 A CN105337809 A CN 105337809A CN 201510864513 A CN201510864513 A CN 201510864513A CN 105337809 A CN105337809 A CN 105337809A
Authority
CN
China
Prior art keywords
expression
data
analysis
node
nodes
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
CN201510864513.1A
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.)
CHENGDU COLASOFT Co Ltd
Original Assignee
CHENGDU COLASOFT 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 CHENGDU COLASOFT Co Ltd filed Critical CHENGDU COLASOFT Co Ltd
Priority to CN201510864513.1A priority Critical patent/CN105337809A/zh
Publication of CN105337809A publication Critical patent/CN105337809A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种表达式解析和高性能运算的方法,首先按照字符的括号深度和优先级,以及表达式需要支持的操作符和运算符拆解表达式,生成逻辑树;在解析表达式时把需要分析的节点全部记录下来,加入到分析列表中,并且节点中保存该节点数据在分析列表中的位置;对数据进行填充后递归计算表达式的值。本发明将拆解过程中需要值的地方进行合并,在节点中记录数据指针;在计算表达式的值时采用指针取值。与现有技术相比,本发明的积极效果是:支持任意或者自定义的操作符和运算符;支持字符串、16进制、IP地址、整数、时间等任意或者自定义数据类型;将表达式节点作为数据指针,计算时采用指针取值,效率高。

Description

一种表达式解析和高性能运算的方法
技术领域
本发明涉及一种表达式解析和高性能运算的方法,用于网络流量的检测中。
背景技术
在网络检测过程中,固定的特征的检测方式已经不能满足日新月异的攻击方式,所以应该采用灵活的配置方式是趋势。而网络流量巨大,需要性能非常高的计算方法,保证数据的准确性。
常规的表达式解析只是为了识别特殊的表达式,为了实现表达式的校验,解析而已,但是表达的扩展性和高性能的运算方面不太看重。高扩展性是对用户提供更多的表达式输入空间,高性能运算是在表达式输入之后对该表达式的判断速度是否够快,这两者直接决定了用户配置自由度和产品性能。所以在多变网络流量检测时,这扩展性和高性能尤为重要。
发明内容
为了克服现有技术的上述缺点,本发明提供了一种表达式解析和高性能运算的方法。
本发明解决其技术问题所采用的技术方案是:一种表达式解析和高性能运算的方法,包括如下步骤:
步骤一、生成逻辑树:
按照字符的括号深度和优先级,以及表达式需要支持的操作符和运算符拆解表达式,生成逻辑树;
步骤二、在解析表达式时把需要分析的节点全部记录下来,加入到分析列表中,并且节点中保存该节点数据在分析列表中的位置;
步骤三、对数据进行填充后递归计算表达式的值。
进一步地,所述字符的括号深度是按该字符在第几层括号内进行确定的。
进一步地,将拆解过程中需要值的地方进行合并,在节点中记录数据指针;在计算表达式的值时采用指针取值。
与现有技术相比,本发明的积极效果是:
1.支持+,-,*,/,&&,||,==,!=,>,<,<=,>=,find等任意或者自定义的操作符和运算符。
2.支持字符串(“test”),16进制(|0001|),IP地址(127.0.0.1),整数(0),时间(1999/9/901:01:01)等任意或者自定义数据类型。
3.将表达式节点作为数据指针,计算时采用指针取值,效率高。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是将表达式拆解转为逻辑树的示意图;
图2是表达式计算的示意图。
具体实施方式
一种表达式解析和高性能运算的方法,包括如下步骤:
步骤一、按照括号深度和优先级,以及表达式需要支持的操作符和运算符拆解表达式,生成逻辑树:
括号深度:某字符在第几层括号内,该字符的括号深度为几。
如:A+(B-(C+A))==5
深度为0的字符有:“A+”,“==5”
深度为1的字符有:“B-”
深度为2的字符有:“C+A”
在分割表达式的时候,把所有的支持的操作符和运算符都记录下来,按照运算符和操作符的优先级分割为树。
将表达式:A+(B-(C+A))==5拆解后生成的逻辑树如图1所示。
步骤二、在解析的时候把需要分析的节点都记录下来,加入到分析列表中,并且节点中保存该节点数据在分析列表中的位置。
将拆解过程中需要值的地方进行合并,在节点中记录数据指针,方便计算时候获取值。
步骤三、对数据进行填充后递归计算表达式的值,如图2所示。

Claims (4)

1.一种表达式解析和高性能运算的方法,其特征在于:包括如下步骤:
步骤一、生成逻辑树:
按照字符的括号深度和优先级,以及表达式需要支持的操作符和运算符拆解表达式,生成逻辑树;
步骤二、在解析表达式时把需要分析的节点全部记录下来,加入到分析列表中,并且节点中保存该节点数据在分析列表中的位置;
步骤三、对数据进行填充后递归计算表达式的值。
2.根据权利要求1所述的一种表达式解析和高性能运算的方法,其特征在于:所述字符的括号深度是按该字符在第几层括号内进行确定的。
3.根据权利要求1所述的一种表达式解析和高性能运算的方法,其特征在于:将拆解过程中需要值的地方进行合并,在节点中记录数据指针。
4.根据权利要求3所述的一种表达式解析和高性能运算的方法,其特征在于:在计算表达式的值时采用指针取值。
CN201510864513.1A 2015-12-01 2015-12-01 一种表达式解析和高性能运算的方法 Pending CN105337809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510864513.1A CN105337809A (zh) 2015-12-01 2015-12-01 一种表达式解析和高性能运算的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510864513.1A CN105337809A (zh) 2015-12-01 2015-12-01 一种表达式解析和高性能运算的方法

Publications (1)

Publication Number Publication Date
CN105337809A true CN105337809A (zh) 2016-02-17

Family

ID=55288121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510864513.1A Pending CN105337809A (zh) 2015-12-01 2015-12-01 一种表达式解析和高性能运算的方法

Country Status (1)

Country Link
CN (1) CN105337809A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256054A (zh) * 2018-01-15 2018-07-06 腾讯科技(深圳)有限公司 确定目标号码集合的方法和装置
CN109614597A (zh) * 2018-12-14 2019-04-12 中通服公众信息产业股份有限公司 一种逻辑表达式转换拆分组装方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001971A (zh) * 2012-12-25 2013-03-27 成都科来软件有限公司 一种网络数据包解析方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103001971A (zh) * 2012-12-25 2013-03-27 成都科来软件有限公司 一种网络数据包解析方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
何云东: ""复杂表达式解析和计算的研究实现"", 《中国科技信息》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256054A (zh) * 2018-01-15 2018-07-06 腾讯科技(深圳)有限公司 确定目标号码集合的方法和装置
CN109614597A (zh) * 2018-12-14 2019-04-12 中通服公众信息产业股份有限公司 一种逻辑表达式转换拆分组装方法
CN109614597B (zh) * 2018-12-14 2023-04-07 中通服公众信息产业股份有限公司 一种逻辑表达式转换拆分组装方法

Similar Documents

Publication Publication Date Title
US10797970B2 (en) Interactive hierarchical network chord diagram for application dependency mapping
US20230300044A1 (en) Unique id generation for sensors
US10097464B1 (en) Sampling based on large flow detection for network visibility monitoring
US9979624B1 (en) Large flow detection for network visibility monitoring
US10536360B1 (en) Counters for large flow detection
US10425290B1 (en) Creating and displaying a graph representation of a computer network topology for an executing application
WO2018099154A1 (zh) 一种事件处理方法及网管设备、服务器
US10003515B1 (en) Network visibility monitoring
US8886508B2 (en) Circuit simulation acceleration using model caching
US20210135948A1 (en) Discovering a computer network topology for an executing application
WO2018175020A1 (en) Security system using automatic and scalable log pattern learning in security log analysis
CN108093026B (zh) 多租户请求的处理方法及装置
CN110737891A (zh) 一种主机入侵检测方法和装置
EP3217738A1 (en) M2m node management method and apparatus, and computer storage medium
CN105337809A (zh) 一种表达式解析和高性能运算的方法
JP6749873B2 (ja) 検知装置、検知方法、および、検知プログラム
EP3379772B1 (en) Analysis method, analysis device, and analysis program
Zichao et al. Ethernet topology discovery for virtual local area networks with incomplete information
CN111211939A (zh) 一种基于网络处理器实现流表高效计数的装置和方法
CN115988107A (zh) 基于xml配置文件的自定义协议解析方法、系统
Sija et al. Survey on network protocol reverse engineering approaches, methods and tools
CN105634999B (zh) 一种介质访问控制地址的老化方法及装置
US10469319B2 (en) Certification tool gap analyzer
Zeng et al. Design of test case for openflow protocol conformance test based on OFTest
CN107609008A (zh) 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160217

RJ01 Rejection of invention patent application after publication