[发明专利]一种网络协议解码脚本的定义方法在审
申请号: | 201711439006.9 | 申请日: | 2017-12-27 |
公开(公告)号: | CN108173844A | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 林康;李安宇 | 申请(专利权)人: | 成都数成科技有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;G06F8/41 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 郭彩红 |
地址: | 610000 四川省成都市*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种网络协议解码脚本的定义方法,以语言基本逻辑为基础,整个脚本由5个定义段组成,按顺序依次是解码字段定义段、Int运算变量定义段、文法定义段和根文法定义段。与现有技术相比,脚本定义以基本逻辑为根基,能够在支持绝大多数协议的解码的同时,实现优化解码和高性能解码。 1 | ||
搜索关键词: | 解码 脚本 基本逻辑 网络协议 文法定义 脚本定义 运算变量 字段 根基 语言 优化 | ||
所述解码字段定义段包括文法字段,定义了如何解码一个同名文法;定义文法为:field字段名 = 缩写,类型,解码方法;
所述文法定义段包括文法定义体,定文法为:parser 文法名 = 文法定义体;所述文法定义体由三种基本语言逻辑{序列,分支,循环}构建,支持字符串、正则表达式和括号嵌套;其中,序列逻辑的定义文法为:文法1 文法2;分支逻辑的定义文法为:文法1 | 文法2;循环逻辑的定义文法为:(文法) 循环定义体;所述循环定义体分为两种,一种是正则表达式循环定义体,另一种是运行时int变量循环定义体;
所述根文法定义段是整个文法解析的入口,定义文法为:root = 文法名;
所述定义段由定义语句组成。
2.根据权利要求1所述的网络协议解码脚本的定义方法,所述定义段还包括位于解码字段定义段和文法定义段之间的Int运算变量定义段,由int运算变量定义语句组成,定义文法为:int变量名1 = EXPR(int变量名1,int变量名2,…,int变量名N);EXPR为变量与变量,变量与常量,常量与常量的四则运算。3.根据权利要求1所述的网络协议解码脚本的定义方法,所述解码字段还包括结构体字段,定义了如何解码一个结构体的一部分,定义文法为:structfield字段名 = 结构体名[偏移长度],缩写,类型,解码方法。4.根据权利要求1或3所述的网络协议解码脚本的定义方法,所述解码字段还包括组字段,定义了一组字段的从属聚合关系,定义文法为:groupfield字段名 = 字段名1 ,字段名2 ,…,字段名n。5.根据权利要求1或3所述的网络协议解码脚本的定义方法,所述解码字段还包括关联字段,定义了字段根据其他字段的运行时解码结果选择使用某个已定义的解码字段完成解码,定义文法为:relatedfield字段名=条件表达式1 字段名1 条件表达式2 字段名2 …条件表达式N 字段名N。6.根据权利要求1所述的网络协议解码脚本的定义方法,所述文法定义段还包括结构体,定义了一块连续的数据长度,分为一般结构体和运行时长度结构体;一般结构体的定义文法为:struct结构体名正整数;运行时长度结构体的定义文法为:struct结构体名字段名。7.根据权利要求1或6所述的网络协议解码脚本的定义方法,所述文法定义段还包括关联文法,定义了一个文法根据解码字段的运行时解码结果选择使用某个已定义的文法完成解析;关联文法的定义文法为:relatedparser文法名 = 条件表达式1 文法名1 条件表达式2 文法名2 …条件表达式N 文法名N。该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都数成科技有限公司,未经成都数成科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711439006.9/,转载请声明来源钻瓜专利网。