CN105337809A - 一种表达式解析和高性能运算的方法 - Google Patents
一种表达式解析和高性能运算的方法 Download PDFInfo
- 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
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所述的一种表达式解析和高性能运算的方法,其特征在于:在计算表达式的值时采用指针取值。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
-
2015
- 2015-12-01 CN CN201510864513.1A patent/CN105337809A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103001971A (zh) * | 2012-12-25 | 2013-03-27 | 成都科来软件有限公司 | 一种网络数据包解析方法 |
Non-Patent Citations (1)
Title |
---|
何云东: ""复杂表达式解析和计算的研究实现"", 《中国科技信息》 * |
Cited By (3)
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 |