CN100591070C - 协议消息解析方法及协议消息解析系统 - Google Patents

协议消息解析方法及协议消息解析系统 Download PDF

Info

Publication number
CN100591070C
CN100591070C CN200410058081A CN200410058081A CN100591070C CN 100591070 C CN100591070 C CN 100591070C CN 200410058081 A CN200410058081 A CN 200410058081A CN 200410058081 A CN200410058081 A CN 200410058081A CN 100591070 C CN100591070 C CN 100591070C
Authority
CN
China
Prior art keywords
message
rule
layer
symbol
base unit
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
CN200410058081A
Other languages
English (en)
Other versions
CN1735091A (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.)
China Academy of Telecommunications Technology CATT
Datang Mobile Communications Equipment Co Ltd
Original Assignee
Datang Mobile Communications Equipment 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 Datang Mobile Communications Equipment Co Ltd filed Critical Datang Mobile Communications Equipment Co Ltd
Priority to CN200410058081A priority Critical patent/CN100591070C/zh
Publication of CN1735091A publication Critical patent/CN1735091A/zh
Application granted granted Critical
Publication of CN100591070C publication Critical patent/CN100591070C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明提供了一种协议消息解析方法及协议消息解析系统,协议消息是由若干信息单元IE组成,包括以下步骤:1)从协议消息解析过程使用的所有逻辑控制动作中,划分出一套表示控制动作的规则符号,控制动作包括:从消息的比特流中定位IE位置、对IE进行连接合并、对IE进行运算和判断以及输出;2)生成一个能够识别这套规则符号的通用解释器;3)根据一具体协议设置规则库单元;4)当接收到所述协议消息的比特流时,通用解释器从规则库中读取规则语句,并执行每一规则语句中每一规则符号所设置的控制动作,从而完成对该消息的解析。当协议发生变化时,无需修改通用解释器,仅修改对应的规则库单元即可,从而减少协议消息解析系统修改的时间,降低协议解析的难度。

Description

协议消息解析方法及协议消息解析系统
技术领域
本发明涉及通信领域中协议消息的解析方法及协议消息的解析系统。
背景技术
在通信系统中,发送方将发送内容按照某种无线通信协议组成协议消息进行发送,而接收方按照相同的无线通信协议解析接收到的协议消息,从而获得发送内容。其中,协议消息包括协议规范定义的标准协议消息及设备商开发的自定义协议消息。
通信设备制造商在开发设备时,需要对设备的协议消息进行跟踪和测试,通过观察这些协议消息的通信过程及其包含的详细内容,可以发现设备存在的问题,进而衡量设备稳定性的高低。还有,对于通信运营商而言,也需要通过跟踪和分析在网络中传输的协议消息,从而找出网络存在的问题,进而达到对网络性能不断优化的效果。
其中,协议消息是基于特定的协议,而消息解析是解析消息所采用的协议,并从中获得消息的内容。采用相同协议的消息可以通过一个协议消息解析系统来完成该些消息的解析。
目前,现有的协议消息解析系统主要有两种实现方式。第一种协议消息解析系统完全是一协议解析程序,协议解析处理过程全部写在该协议解析程序的代码中,即全部通过程序来实现协议解析。针对特定格式的协议,在程序当中定义特定的结构来映射消息的结构。对于不同版本的协议,发布对应版本的协议解析程序。
当需要对采用某种协议的消息进行解析时,预先设置协议解析程序,若接收到协议消息时,执行协议解析程序,从中获得对应的消息结构,进而得到该消息的内容,从而实现对该协议消息的解析。
采用上述协议消息解析系统及解析方法进行消息解析时,由于当协议升级时必然需要修改协议解析程序,并且对于不同的协议需要提供对应的协议解析程序,因此该协议解析程序的扩展性差,从而使得程序开发人员需要编写的程序代码量大且程序可维护性差;而且对于协议消息解析系统的使用者来说,操作性差。尤其是,随着协议升级愈快,修改协议解析程序的代码愈多,因此实现协议消息解析的难度愈大。
采用第二种协议消息解析系统是采用协议消息结构描述模块及协议解析程序结合起来的方式。这种协议消息解析系统采用一组协议结构描述文件来静态描述协议消息的结构组成。
通常,协议中设置若干种消息类型,而每一种消息是由IE(信息单元)组成。而IE又分为很多种,我们将长度固定、位置固定的IE称之为固定IE,而将如条件IE(指其IE值依赖于同一消息中的其他IE的IE值)、可选IE(指其IE在消息中是否出现,需依赖于同一消息中其他IE的IE值)等其它与同一消息中另外IE存在依赖关系的IE,称之为动态IE。
上述协议结构描述文件是描述该协议的每种类型的消息结构组成,所述消息结构包括IE的组成、每种IE的类型及组成,当该IE为动态IE时,还需描述其依赖关系。
实际上,由于上述协议消息结构描述模块只是静态的描述了消息的结构组成,所以在解析消息时,对其中的动态IE的判决处理必由协议解析程序部分来完成,这就导致了协议解析程序是和某种协议标准,或某种协议标准的采用的编码方式(TLV,CSN.1,ASN.1等)相关的,在特定的情况下甚至是和协议标准的某一版本紧密相关的,这就导致了在协议标准升级时,除了更新协议消息结构描述模块之外,需要对协议解析程序进行升级。
当接收到具体的协议消息时,协议解析程序在协议消息结构描述模块中进行搜索,先确定该消息的类型,然后通过该消息类型判断能否确定消息的每一个IE值,若是,获得该消息的内容;否则协议解析程序根据程序中预先设置的代码来获得每一个IE值,从而实现对该协议消息的解析。
上述协议消息解析系统及其方法主要存在协议消息的解析与消息所采用的协议存在相关性,使得:
(1)当协议发生变化,比如协议的编码方式发生变化的时候,若编码方式从GSM(数字蜂窝移动通信系统)的CSN.1方式变化到3G(第三代移动通信系统)的ASN.1方式时,根据原先CSN.1编码方式划分出来的消息结构描述模块并不能适用于ASN.1编码方式下的协议解析,而且,原有的协议解析程序也需要重新修改,这就导致协议发生变化时,需要升级整个协议消息解析系统。并且,由于需要程序开发人员重新修改协议解析程序的代码,所以,不仅增加程序开发人员的工作量,而且需要重新测试升级后的协议解析程序的解析效果,进而增加了升级时间。也就是说,当协议升级时,由于需要更新整个协议消息解析系统,尤其是更新协议解析程序的难度大,从而使得更新协议消息解析系统费时费力,进而导致协议消息解析系统的更新速度更不上协议的更新速度。
(2)协议消息解析系统广泛应用于各种测试领域,目前,测试者采用开发人员开发的协议消息解析系统,进行协议测试,当协议变更或升级时,还需要将原协议消息解析系统返回给开发人员,获得修改后的协议消息解析系统进行新协议的测试,由于协议消息解析系统的修改时间较长,因此影响了整个测试周期。
发明内容
本发明的目的在于提供一种协议消息解析方法及协议消息解析系统,以解决现有技术中,由于消息解析与消息所采用的协议存在相关性,使得协议解析比较复杂,协议解析升级难度大、周期长的技术问题。
本发明公开了一种协议消息解析方法,所述协议消息是由若干信息单元IE组成,包括以下步骤:
1)从协议消息解析过程使用的所有逻辑控制动作中,划分出一套表示控制动作的规则符号,所述控制动作包括:从消息的比特流中定位IE位置、对IE进行连接合并、对IE进行运算和判断以及输出;
2)生成一个能够识别这套规则符号的通用解释器;
3)根据一具体协议设置规则库单元,所述规则库单元是由规则语句组成,所述规则语句是由规则符号组成,所述规则库单元用来描述该协议每一类型的消息解析过程;
4)当接收到所述协议消息的比特流时,所述通用解释器从所述规则库中读取规则语句,并执行每一规则语句中每一规则符号所设置的控制动作,以确定所述协议消息的类型,并得到所述协议消息中的每一个IE值,从而完成对该消息的解析。
其中,步骤1)中设置的规则符号还包括跳转规则符号;步骤3)还包括:将所述规则库单元分成若干层,并设置层与层之间的跳转关系,其中每一层包含若干规则语句,以指示所述通用解释器完成一解析处理步骤。
另外,步骤3)和4)之间还包括:a:所述通用解释器预先获得所述规则库的配置信息,所述配置信息包含所述规则库单元的层组成顺序及层之间的跳转关系。
步骤4)中所述通用解释器是依据预先获得的所述层组成顺序和层之间的跳转关系来找到所述规则库单元中的相应层,并读取所述层中的规则语句。
步骤4)具体包括:
41)通用解释器对所述比特流进行预处理操作,所述预处理操作包括对所述比特流进行有效性检查、比特流分割和比特流重新组合处理,以获得一条完整消息的比特流;
42)确定所述比特流的消息类型;
43)根据所述消息类型索引所述规则库单元,查找所述消息类型对应的结构描述,从而获得所述消息的具体内容。
步骤42)具体包括以下步骤:
根据规则符号的指示,通用解释器截取所述比特流相应的信息位;
通过所述信息位和设置在规则库单元中的消息判断条件进行匹配,确定本消息的类型。
步骤43)还包括以下步骤:
431)根据查找到的消息结构描述,获得所述消息的每一IE的类型;
432)判断所述IE的类型是否为固定IE时,若是,则根据其长度截取所述比特流相应的信息位,将所述信息位所表示的数据作为本IE对应的IE值;否则,所述IE的类型为动态IE,通用解释器根据规则库单元预先设定的解析步骤,获得所述IE所依赖的IE值,据此得到对应的IE值。
上述的对IE进行连接合并的规则符号包括:
连接规则符号,用以标识两个不同位置的IE的连接合并操作;
长度规则符号,用以标识具有长度标志的IE,便于获得完整的IE信息位;
对IE进行运算和判断的规则符号,包括:
运算规则符号,其包括算术/逻辑运算规则;
循环标志规则符号:用以标识对规则语句的循环操作;
条件相关规则符号:用以标识规则语句执行的分支判断操作。
还有,步骤1)中对IE进行运算和判断的规则符号包括用以定义参数的替代操作的替代规则符号及用以标识对已定义的参数表进行查询的查询规则符号;
步骤3)中还包括:在规则库单元中设置消息元素查询层,消息元素查询层用以保存通用解释器在解析过程获得的变量;
步骤4)还包括:当通用解释器遇到变量时,读取消息元素查询层,判断所述消息元素查询层中是否存在所述变量,若是,则获得所述变量值,否则保存所述变量值。
其中:步骤1)中设置的规则符号包括错误处理规则符号,用以定义在解析过程中发生错误时的处理操作;
步骤3)中还包括:在规则库单元中设置错误处理层,所述错误处理层用于保存通用解释器遇到不同错误时进行相应的处理操作;
步骤4)还包括:当通用解释器遇到错误时,根据错误处理层获得对应的处理操作。
本发明还公开了一种协议消息解析系统,包括:
规则库单元:它是由规则语句组成,所述规则语句是由规则符号组成,其中,所述规则符号是从所述协议的消息结构和解析过程中的逻辑控制动作的比特流中抽象出来,而所述规则库单元描述所述协议的解析处理过程;
通用解释器,接收需要解析的协议消息的比特流,读取所述规则库单元中的规则语句,识别所述规则语句中的规则符号,并根据所述规则符号的指示获得消息类型及其中包含的信息,从而完成对该消息的解析。
所述规则库单元还包括:
规则库配置描述层:用于对整个规则库单元的组成层进行描述,以使通用解释器获得所述规则库单元中所述层的先后顺序,便于协议消息解析;
比特流预处理层:用于指示通用解释器对接收到的比特流进行预处理操作,从而获得完整消息的比特流;
消息分类层:用于指示通用解释器读取所述比特流的相应信息位,通过所述信息位与所述消息分类层中的消息判断条件快速匹配,确定消息的类型;
消息结构描述层:用于指示通用解释器根据所述消息类型查找对应的结构描述,获得消息的具体内容。
与现有技术相比,本发明具有以下优点:
本发明的协议消息解析系统设置了一规则库单元和一个通用解释器,该规则库是由规则符号组成,规则符号中包括表示控制动作的规则符号,它是从协议消息解析过程使用的所有逻辑控制动作中划分出来的。运用本发明的规则库单元对协议数据进行描述,可以在规则语句中加入解析动作指示,使得协议解析过程中的所有动作都记录在规则库当中。因此规则库包含了协议中各种消息的格式以及协议处理动作等全部信息,从而在处理新的协议的时候,只需要导入新的规则库即可。而规则符号是从协议消息解析过程使用的所有逻辑控制动作的二进制码中划分出来,无论协议如何变化,二进制码形式的规则符号通常不会发生改变。在解析过程中,通用解释器只是面向规则符号组合形成的规则语句,由此,当协议发生变化时,无需修改通用解释器,仅修改对应的规则库单元即可,从而减少协议消息解析系统修改的时间,降低协议解析的难度,并且规则库单元可以设置成文本形式,进而降低修改协议消息解析难度。
在测试领域中,测试者采用开发者开发的协议消息解析系统进行解析,当协议变更或升级时,无须返回开发者重新修改程序代码,测试者通过修改规则库单元即可,缩短了协议消息解析系统升级周期。
附图说明
图1是本发明协议消息解析系统的结构示意简图;
图2是规则库单元的结构示意图;
图3是通用解释器的结构示意图;
图4是本发明基于上述协议消息解析系统进行协议消息的解析原理流程图;
图5是本发明协议消息的解析过程中初始化规则库单元的流程图;
图6是本发明的协议消息解析方法中对接收到的比特流进行解析的流程图;
图7是一个具体TSM协议的解析过程实施例。
具体实施方式
以下结合附图,具体说明本发明。
请参阅图1,其为本发明协议消息解析系统的结构示意简图。该协议消息解析系统包括规则库单元1和通用解释器2。其中:
规则库单元1:它是由规则语句组成,所述规则语句是由规则符号组成,其中,规则符号用来描述消息结构和相关的逻辑控制动作,所述动作指的是在消息解析过程当中所必须用到的判断、跳转、连接等;规则语句用来描述某一解析过程的具体动作;而所述规则库单元描述所述协议的解析处理过程。
通用解释器2,接收需要解析的协议消息的比特流,并将所述比特流在规则库单元1中进行匹配,同时根据规则库单元1中的指示去提取其中的消息类型及其此消息包含的信息,以完成对消息的解析。
不管协议采用哪种编码方式,事实上都是基于比特流(Bit流)的解析,而协议升级时,从比特流中划分出来的规则符号很少会发生变化,因此使得通用解释器2无需在协议变化时进行改变,从而避免修改通用解释器2中的程序代码的麻烦,进而减少协议解析的难度和缩短了整个解析时间。
其中,本发明表示逻辑控制动作的规则符号可以分为以下几类:
(1)定位IE位置的定位规则符号,包括绝对定位规则符号和相对定位规则符号,绝对定位规则符号用以标识在消息中位置固定的I E;而相对定位规则符号用以标识在消息里面位置可变的IE的相对定位;
(2)对IE进行连接合并的规则符号,包括:
连接规则符号,用以标识两个不同位置的IE的连接合并操作;
长度规则符号,用以标识具有长度标志的IE,便于获得完整的IE信息位;
(3)对IE进行运算和判断的规则符号,包括:
运算规则符号,其包括算术/逻辑运算规则,其中算术运算规则符号用以标识加、减、乘、除、乘方等算术运算;逻辑运算规则符号用以标识与、或等逻辑运算;
循环标志规则符号:用以标识对规则语句的循环操作;
条件相关规则符号:用以标识规则语句执行的分支判断操作;
替代规则符号:用以定义了参数的替代操作,可用来把先得到的变量值作为后续解析过程的规则语句的输入参数值;
查询规则符号:用以标识对已定义的参数表进行查询,比如对于测量参数的取值,不同的层值对应的实际值是不一样的,而且在不同的消息中都会用到这个参数,因此可以利用它的层值和实际值做成一个参数表,当我们获得它的层值时,就可以通过查询所述参数表直接得到它对应的实际值;
(4)输出操作的规则符号,包括:
输出规则符号:用以标识不同的输出操作,比如以比特流的形式输出或者以16进制输出等;
(5)进行跳转的规则符号,包括:
块标志规则符号,用以标识不具有长度标志的IE,便于获得完整的IE信息位;
层标志和跳转规则符号:用以标识了分层处理操作以及层之间的跳转操作;
(6)错误处理规则符号:用以定义在解析过程中发生错误时的处理操作。
除了上述表示控制动作的规则符号外,本发明还定义了注解规则符号,通过对的规则语句进行注解,增强了规则库的可读性。
根据上述定义的规则符号,设置规则库单元。通常根据消息解析过程的处理步骤将规则库单元分成若干层,每一层包含若干规则语句,用以指示通用解释器完成一解析处理步骤。
请参阅图2,其为规则库单元1的层组成结构示意图。它分为以下几层:规则库配置描述层11、比特流预处理层12、消息分类层13、消息结构描述层14、消息元素查询层15和错误处理层16。其中:
规则库配置描述层11:用于对整个规则库单元1的有效结构进行描述;比如规则库定义了多少层结构来处理协议解析、每个层都包含哪些规则语句,层与层之间是何种关系等等。
在通用解释器2运行的时候,先读取规则库配置描述层11的配置信息,所述配置信息包含层组成顺序及层之间的跳转关系;然后根据配置信息去读取相应层中的规则语句,识别其中的规则符号,完成相应解析。另外,通用解释器根据相关的规则库单元的层组成顺序,对这些规则库文件进行初始化工作(包括剥离注释语句、对规则语句进行语法检查等工作)。
比特流预处理层12:用于指示通用解释器2对接收到的比特流进行预处理操作,从而获得完整消息的比特流;其中,预处理包括对该比特流的有效性进行检查、对该比特流的分割处理以及重新组合处理,使之成为一条有效的完整消息比特流。
消息分类层13:用于指示通用解释器2读取所述比特流的相应信息位,通过所述信息位与消息判断条件的快速匹配,确定消息的类型。在该层中,通用解释器2就能确定出接收到的完整消息的比特流对应的协议消息是具体哪类消息,完成对消息类型的判断。
消息结构描述层14:用于指示通用解释器2根据所述消息类型查找对应的结构描述,获得消息的具体内容。在该消息结构描述层14中,预先定义所有消息的内部结构和详细内容,当完成消息类型的判别之后,通用解释器2可以根据获得的消息类型索引消息结构描述层14,查找该消息类型的结构描述部分,从而完成对该消息具体内容的解析。
消息元素查询层15,以指示通用解释器2存储获得的变量值,利于后续的解析过程中能重新调用所述变量值。
错误处理层16,以指示通用解释器2遇到不同错误时根据错误处理层中的错误处理表进行相应的操作。
请参阅图3,其为通用解释器2的一种结构示意图。通用解释器是一个解释器,该解释器包括:规则语句获取子单元21、规则符号获取子单元22、判断子单元23、优先级子单元24、规则符号执行子单元25。其中:
规则语句获取子单元21,用于读取规则库单元1中的规则语句;
规则符号获取子单元22:用于从读取的每条规则语句中获得所述语句的各个规则符号;
判断子单元23:用于检测读取的规则语句中是否有条件判断,若无条件判断,则直接将该规则语句中的每个规则符号发送至优先级子单元24,若有条件判断,则判断所述条件是否满足,若是则将所述规则语句中的每个规则符号发送至优先级子单元,否则判断下一条规则语句;
优先级子单元24;用于根据预先设置的规则符号的优先权确定所述规则语句中的规则符号的优先级顺序;
规则符号执行子单元25:用于根据所述优先级依次执行所述规则符号的指示,完成该条规则语句的解析。
通用解释器2和规则库单元1之间的交互过程只是对具体规则符号的识别过程。对于通用解释器2来说,它根本不关心目前解析的是什么协议,它只是读取规则库单元1当中的规则语句,识别其中的规则符号,并根据规则符号的指示对比特流进行操作,其结果的输出同样也是通过规则符号的指示来完成的。因此这个系统中的通用解释器2是一个仅仅面向规则符号的通用解释器,它与具体协议无关。
基于上述公开的协议消息解析系统,本发明提出了一种协议解析方法。请参阅图4,其为本发明协议消息解析方法的原理流程图。所述协议消息是由若干信息单元IE组成,包括以下步骤:
S110:从协议消息解析过程使用的所有逻辑控制动作中,划分出一套表示控制动作的规则符号,所述控制动作包括:从消息的比特流中定位IE位置、对IE进行连接合并、对IE进行运算和判断;
S120:生成一个能够识别这套规则符号的通用解释器;
S130:根据一具体协议设置规则库单元,所述规则库单元是由规则语句组成,所述规则语句是由规则符号组成,所述规则库单元用来描述该协议每一类型的消息解析过程;
S140:当接收到所述协议消息的比特流时,所述通用解释器从所述规则库中读取规则语句,并执行每一规则语句中每一规则符号所设置的控制动作,以确定所述协议消息的类型,并得到所述协议消息中的每一个I E值,从而完成对该消息的解析。
在步骤S110-步骤S130中,主要用于建立一个协议解析系统。为了提高协议解析的效率,在步骤130中,还可以设置规则库单元的分层处理构架,即将规则库单元分成若干层,并设置层与层之间的跳转关系。每一层中包含若干规则语句,以指示通用解释器完成一解析处理步骤,并且利用层与层之间的跳转关系完成解析处理步骤的连接,尤其在处理一些具有特殊格式消息时,提高了协议解析效率。
在步骤S130和步骤S140之间,还可包括:通用解释器预先获得所述规则库的配置信息,所述配置信息包含所述规则库单元的层组成顺序及层之间的跳转关系。
在步骤S140中,通用解释器是依据预先获得的所述层组成顺序和层之间的跳转关系来找到所述规则库单元中的相应层,并读取所述层中的规则语句。
通过上述步骤,可以减少执行步骤,提高执行效率。以下特举例来说明。
在现有仪表(如K1205)中进行解析消息时,如果按照传统的解析方法,是按照规定好的流程处理顺序依次执行解析过程(如:L1->L2->L3->L4)。而该仪表应用在Uu口(Air Interface between NodeB and UE空中接口)上的进行路测时,由于存在专门的测试手机,在消息解析时可能只需要经过两步(如:L1->L4),利用预先设置的分层处理架构和跳转规则,在L1中预先设置满足条件时向L4跳转的关系,当通用解释器运行到L1的时候,会根据这个跳转的指示自动到L4层去处理,提高了解析的速度。
请参阅图5,其为本发明协议消息的解析过程中初始化规则库单元的流程图。包括:
步骤210:通用解释器2读取规则库配置描述层11中的内容,从中获取该规则库单元1中的配置信息,所述配置信息包含规则库单元1的层组成顺序及层之间的跳转关系;
步骤220:通用解释器2在规则库单元1中剥离出的注释内容,格式化所述规则库单元1中的规则语句;
步骤230:进行规则语句语法有效性的检测,当检测未通过时,打印错误信息,否则进行步骤S140。
经过步骤S110-S130设置协议消息协议系统及步骤210-步骤230的规则库单元的初始化工作,开始接收比特流进行解析处理操作。其中:
步骤S120的具体实现:参阅图6,其为本发明的对接收到的协议消息进行解析的一个具体实现流程图。
S310:通用解释器2根据规则符号的指示,对所述比特流进行预处理操作,获得完整消息的比特流,其中,预处理操作包括对接收到的比特流的有效性检查,对该比特流的分割处理及重新组合处理,使之成为一条有效且完整消息的比特流;
S320:确定所述比特流的消息类型,包括:
首先,根据规则符号的指示,通用解释器2截取所述比特流相应的信息位;
然后,通过所述信息位和消息分类层13的消息判断条件的快速匹配,确定具体的消息类型,协议中每一消息类型的判断条件预先保存在消息分类层中,获得的不同信息位与每一消息类型的所有判断条件一一进行匹配,找到条件全部匹配消息条型,即为本比特流的消息类型;
S330:根据所述消息类型索引所述规则库单元1中的消息结构描述层14,查找所述消息类型的结构描述,从而获得所述消息的具体内容。协议中所有消息类型对应的消息结构预先设置在消息结构描述层14中,根据获得的消息类型可以获得对应的消息内容。
以下举个实例,具体说明从接收到一比特流到将该比特流解析出其消息内容的一个具体的解析过程。并且为了更好说明,把比特流用16进制来标识。收到如下的比特流:
0A74809330384BC23D2323399458371028430A33834B34343F88
首先,进行预处理,根据比特流预处理层12的指示进行截取或者重组,得到一条完整的消息数据比特流,比如完整的消息数据的比特流如下:
74809330384BC23D2323399458371028430A33834B34343F
接着,将该比特流进行消息分类;
根据消息分类层13的指示,通用解释器2截取相应的信息位,然后通过这些信息位和消息判定条件的快速匹配,判断出具体的消息类型。
比如,获取“74”这个Byte,然后和消息判定条件匹配,发现符合“74”的是消息“Handover Command”,即该消息为一条切换命令消息。
然后,进行消息详细解析;
获得消息的具体类型(“Handover Command”)之后,再根据它的类型值(0x74)去查找该消息对应的消息结构描述层14,然后根据这部分的规则指示,即可实现对这条切换命令消息的详细解析,如得到切换原因、切换目的小区等信息。
以下是一个规则库单元1进行分层并且设置层之间的跳转关系的一个具体例子,具体步骤包括:
首先,将规则单元进行分层,除了设定规则库配置描述层和比特流预处理层外,还分成四层来完成消息分类和消息结构的获得,请参阅图7,其为四层结构及其关系图。
第一层Level1,用于获得消息的上下行信息,并判断是否为MPH消息,若是则跳转到第四层Level4;否则,进入第二层Level2;
第二层Level2,用于得到逻辑信道以及PD(Protocol Discrimator)信息,并判断是否为非标准L3消息,若是则进入到第三层Level3中非标准L3处理文件;否则,进入第三层Level3中标准L3处理文件中;
第三层Level3,分为非标准L3处理文件和标准L3处理文件,其中,非标准L3处理文件用于根据信道识别号及消息类型值识别识别具体的消息类型;标准L3处理文件用于根据信道识别号、上下行信息及消息类型值识别具体的消息类型,并根据PD信息确定下一层的检测文件;
第四层Level4,用于根据消息类型解析消息,获得信息域。
当协议单元2接收到TSM协议消息时,将按照以下步骤进行解析:
第一步:“L3-Level1”子层的处理。经过“数据预处理”过程的数据流首先到“L 3-Level1”子层中进行检索,区分出具体的“Mph_消息”,和两个特殊的“Ph_消息”,即:PhDataReq和PhDataInd,同时得到了这两个Ph_消息的“上下行信息”。如果是“Mph_消息”,则直接送到“L3-Level4”子层相应的消息数据库中进行解析;如果是特殊“Ph_消息”,送往“Level2”子层处理。
第二步:“L3-Level2”子层的处理。经过“L3-Level1”子层处理的部分数据流(实际就是两个特殊的Ph_消息),经由“L3-Level2”子层的检索,可以区分出携带的“L3消息”是否“标准L3RR消息”,对于“标准L3RR消息”,需要判断得到其“PD信息”。
第三步:“L3-Level3”子层的处理。经过“L3-Level2”子层处理的数据流,根据其是否是“标准L3RR消息”,分别送到“L3-Level3”子层中相应的数据库文件中进行检索,可以确定其“消息名称”。
第四步:“L3-Level4”子层的处理。经过“L3-Level3”子层处理的数据流,根据其“消息名称”及其“PD信息”,分别送到“L3-Level4”子层中相应的数据库文件中进行检索,可以解析出该消息的具体内容。注意的是,此层的处理,有可能需要进行查表,所有用到的表的信息都保存在单独的一个文件(固定参数表)当中。
在协议解析过程中,可能会发生错误。本发明在规则库单元中设置错误处理层错误处理层,所述错误处理层用于保存通用解释器遇到不同错误时进行相应的处理操作;
当通用解释器进行协议消息解析时,若遇到错误,可以根据错误处理层获得对应操作。
为了更提高解析的效率,本发明在规则库单元中还设置消息元素查询层,消息元素查询层用以保存通用解释器在解析过程获得的变量;
当通用解释器进行协议消息解析时,若遇到变量时,可以读取消息元素查询层的规则语句,判断所述消息元素查询层中是否存在上述变量,若是,则获得所述变量值,否则保存所述变量值。本发明预先记录变量值,当后续的解析过程用到上述变量时,可以方便调用,避免了重新查找变量的麻烦,提高了解析的效率。
以上公开的仅为本发明的几个具体实施例,本领域的技术人员能思之的变化,都应落入本发明的保护范围内。

Claims (10)

1、一种协议消息解析方法,所述协议消息是由若干信息单元IE组成,其特征在于:包括以下步骤:
1)从协议消息解析过程使用的所有逻辑控制动作中,划分出一套表示控制动作的规则符号,所述控制动作包括:从消息的比特流中定位IE位置、对IE进行连接合并、对IE进行运算和判断以及输出;
其中:对IE进行连接合并的规则符号包括:连接规则符号,用以标识两个不同位置的IE的连接合并操作;长度规则符号,用以标识具有长度标志的IE,便于获得完整的IE信息位;对IE进行运算和判断的规则符号,包括:运算规则符号,其包括算术/逻辑运算规则;循环标志规则符号:用以标识对规则语句的循环操作;条件相关规则符号:用以标识规则语句执行的分支判断操作;
2)生成一个能够识别这套规则符号的通用解释器;
3)根据一具体协议设置规则库单元,所述规则库单元是由规则语句组成,所述规则语句是由规则符号组成,所述规则库单元用来描述该协议每一类型的消息解析过程;
4)通用解释器根据所述规则库单元确定协议消息的类型和IE值,从而完成对该消息的解析,其中:
确定协议消息的类型具体包括:在对规则库单元初始化后,接收到协议消息的比特流,通用解释器根据规则符号的指示,对比特流进行预处理操作,获得完整消息的比特流,通用解释器根据规则符号的指示,截取比特流相应的信息位,通过所述信息位和设置在规则库单元中消息判断条件进行匹配,确定消息的类型;
确定协议消息中IE值具体包括:根据确定的消息类型索引规则库单元,查找消息类型对应的结构描述,从而获得消息的具体内容。
2、如权利要求1所述的协议消息解析方法,其特征在于,
步骤1)中设置的规则符号还包括跳转规则符号;
步骤3)还包括:将所述规则库单元分成若干层,并设置层与层之间的跳转关系,其中每一层包含若干规则语句,以指示所述通用解释器完成一解析处理步骤。
3、如权利要求2所述的协议消息解析方法,其特征在于,步骤3)和4)之间还包括:
a:所述通用解释器预先获得所述规则库的配置信息,所述配置信息包含所述规则库单元的层组成顺序及层之间的跳转关系。
4、如权利要求3所述的协议消息解析方法,其特征在于,步骤4)中所述通用解释器是依据预先获得的所述层组成顺序和层之间的跳转关系来找到所述规则库单元中的相应层,并读取所述层中的规则语句。
5、如权利要求1或4所述的协议消息解析方法,其特征在于,步骤4)具体包括:
41)通用解释器对所述比特流进行预处理操作,所述预处理操作包括对所述比特流进行有效性检查、比特流分割和比特流重新组合处理,以获得一条完整消息的比特流;
42)确定所述比特流的消息类型;
43)根据所述消息类型索引所述规则库单元,查找所述消息类型对应的结构描述,从而获得所述消息的具体内容。
6、如权利要求5所述的协议消息解析方法,其特征在于,步骤43)还包括以下步骤:
431)根据查找到的消息结构描述,获得所述消息的每一IE的类型;
432)判断所述IE的类型是否为固定IE时,若是,则根据其长度截取所述比特流相应的信息位,将所述信息位所表示的数据作为本IE对应的IE值;否则,所述IE的类型为动态IE,通用解释器根据规则库单元预先设定的解析步骤,获得所述IE所依赖的IE值,据此得到对应的IE值。
7、如权利要求2所述的协议消息解析方法,其特征在于,
步骤1)中对IE进行运算和判断的规则符号包括用以定义参数的替代操作的替代规则符号及用以标识对已定义的参数表进行查询的查询规则符号;
步骤3)中还包括:在规则库单元中设置消息元素查询层,消息元素查询层用以保存通用解释器在解析过程获得的变量;
步骤4)还包括:当通用解释器遇到变量时,读取消息元素查询层,判断所述消息元素查询层中是否存在所述变量,若是,则获得所述变量值,否则保存所述变量值。
8、如权利要求2所述的协议消息解析方法,其特征在于,
步骤1)中设置的规则符号包括错误处理规则符号,用以定义在解析过程中发生错误时的处理操作;
步骤3)中还包括:在规则库单元中设置错误处理层,所述错误处理层用于保存通用解释器遇到不同错误时进行相应的处理操作;
步骤4)还包括:当通用解释器遇到错误时,根据错误处理层获得对应的处理操作。
9、一种协议消息解析系统,所述协议消息是由若干信息单元IE组成,其特征在于,包括:
规则库单元:它是由规则语句组成,所述规则语句是由规则符号组成,其中,所述规则符号是从所述协议的消息结构和解析过程所使用的逻辑控制动作中抽象出来,而所述规则库单元用来描述该协议每一类型的消息解析过程;所述控制动作包括:从消息的比特流中定位IE位置、对IE进行连接合并、对IE进行运算和判断以及输出;
其中:对IE进行连接合并的规则符号包括:连接规则符号,用以标识两个不同位置的IE的连接合并操作;长度规则符号,用以标识具有长度标志的IE,便于获得完整的IE信息位;对IE进行运算和判断的规则符号,包括:运算规则符号,其包括算术/逻辑运算规则;循环标志规则符号:用以标识对规则语句的循环操作;条件相关规则符号:用以标识规则语句执行的分支判断操作;
通用解释器,接收需要解析的协议消息的比特流,读取所述规则库单元中的规则语句,识别所述规则语句中的规则符号,并根据所述规则符号的指示获得消息类型及其中包含的信息,从而完成对该消息的解析;其中,
所述获得消息类型具体包括:根据规则符号的指示,截取比特流相应的信息位,通过所述信息位和设置在规则库单元中消息判断条件进行匹配,确定消息的类型;
所述获得协议消息中包含的信息具体包括:根据确定的消息类型索引规则库单元,查找消息类型对应的结构描述,从而获得消息的具体内容。
10、如权利要求9所述的协议消息的解析系统,其特征在于,所述规则库单元还包括:
规则库配置描述层:用于对整个规则库单元的组成层进行描述,以使通用解释器获得所述规则库单元中所述层的先后顺序,便于协议消息解析;
比特流预处理层:用于指示通用解释器对接收到的比特流进行预处理操作,从而获得完整消息的比特流;
消息分类层:用于指示通用解释器读取所述比特流的相应信息位,通过所述信息位与所述消息分类层中的消息判断条件快速匹配,确定消息的类型;
消息结构描述层:用于指示通用解释器根据所述消息类型查找对应的结构描述,获得消息的具体内容。
CN200410058081A 2004-08-12 2004-08-12 协议消息解析方法及协议消息解析系统 Active CN100591070C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200410058081A CN100591070C (zh) 2004-08-12 2004-08-12 协议消息解析方法及协议消息解析系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200410058081A CN100591070C (zh) 2004-08-12 2004-08-12 协议消息解析方法及协议消息解析系统

Publications (2)

Publication Number Publication Date
CN1735091A CN1735091A (zh) 2006-02-15
CN100591070C true CN100591070C (zh) 2010-02-17

Family

ID=36077286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410058081A Active CN100591070C (zh) 2004-08-12 2004-08-12 协议消息解析方法及协议消息解析系统

Country Status (1)

Country Link
CN (1) CN100591070C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087221B (zh) * 2006-06-07 2010-12-08 华为技术有限公司 资源预留协议节点及其交互方法
CN101651683B (zh) * 2009-08-28 2014-07-23 重庆重邮东电通信技术有限公司 一种信令消息解析源代码生成方法
CN108494752B (zh) * 2018-03-09 2021-03-16 万帮星星充电科技有限公司 一种协议的解析方法和装置
CN112448971B (zh) * 2019-08-29 2024-01-23 中科云谷科技有限公司 数据解析平台、数据解析方法及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1394036A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 基于策略的网络管理系统
US6708310B1 (en) * 1999-08-10 2004-03-16 Sun Microsystems, Inc. Method and system for implementing user-defined codeset conversions in a computer system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708310B1 (en) * 1999-08-10 2004-03-16 Sun Microsystems, Inc. Method and system for implementing user-defined codeset conversions in a computer system
CN1394036A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 基于策略的网络管理系统

Also Published As

Publication number Publication date
CN1735091A (zh) 2006-02-15

Similar Documents

Publication Publication Date Title
CN1526104B (zh) 分析结构化数据
CN102647414B (zh) 协议解析方法、设备及系统
CN101488085A (zh) 软件接口测试方法和装置
JP2004102597A (ja) コンパイル処理プログラム、コンパイル処理方法、およびコンパイル処理プログラム記録媒体
CN101651683B (zh) 一种信令消息解析源代码生成方法
KR100456023B1 (ko) 절차 지향 프로그램을 컴포넌트 기반의 시스템으로래핑하기 위한 방법 및 그 장치
US20030056151A1 (en) Software evaluation system, software evaluation apparatus, software evaluation method, recording medium, and computer data signal
CN101261603A (zh) 故障定位的方法和装置
CN110912782B (zh) 一种数据采集方法、装置及存储介质
CN109947432B (zh) 汇编程序处理方法及相关装置
CN110286917A (zh) 文件打包方法、装置、设备及存储介质
CN107797823A (zh) 业务规则管理方法、装置、存储介质和计算机设备
CN101419531B (zh) 在计算机中进行文字输入的方法及装置
JP2000232516A (ja) 妥当性検査規則を作成するための方法、生成モジュール、サーバ、制御モジュール、および記憶手段
CN101251799A (zh) 管理实现的方法和装置
CN100591070C (zh) 协议消息解析方法及协议消息解析系统
CN104898991A (zh) 一种基于自动化ral的寄存器访问方法及系统
JP4394225B2 (ja) 通信システム用のコンフィグレーションデータを検証するための、方法、検証モジュール、サーバ、制御モジュール、および記憶手段
JP4091620B2 (ja) シナリオ登録装置、登録方法及び登録プログラム
CN104280674A (zh) 一种通用硬件测试系统
CN103049504A (zh) 基于源代码查询的半自动插桩方法
CN111259619A (zh) 配置对象的控制方法、装置、存储介质及验证平台
JP3999949B2 (ja) 別名検索装置、別名検索方法及び別名検索用プログラム
CN101751321B (zh) 一种动态可视化查看变量的实现方法及系统
JP3887550B2 (ja) クロスリファレンス構築装置、クロスリファレンス構築方法及びクロスリファレンス構築用プログラム

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
ASS Succession or assignment of patent right

Owner name: INST OF TELECOMMUNICATION SCIENCE AND TECHNOLGOY

Free format text: FORMER OWNER: DATANG MOBILE COMMUNICATION EQUIPMENT CO., LTD.

Effective date: 20110523

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110523

Address after: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee after: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Address before: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee after: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

Address before: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20210617

Address after: 100085 1st floor, building 1, yard 5, Shangdi East Road, Haidian District, Beijing

Patentee after: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd.

Address before: 100083 No. 40, Haidian District, Beijing, Xueyuan Road

Patentee before: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY

TR01 Transfer of patent right