新闻中心

EEPW首页>手机与无线通信>设计应用> TD-SCDMA网络测试仪中SCCP协议解码(下)

TD-SCDMA网络测试仪中SCCP协议解码(下)

——
作者:魏辉 张治中 时间:2007-05-15 来源:重庆邮电学院学报 收藏

(接上)

3、实际测试中的SCCP消息组装问题

中的SCCP消息长度一般在100个字节内,SCCP消息需要封装上层RANAP或者RNSAP的数据,而上层数据通常不会很长,一条SCCP消息完全可以容纳,但在少数情况下,上层数据需要分段由几条SCCP消息中传输,而多条SCCP消息再分散在底层的ATM信元中传送。这个现象从逻辑上是容易理解的,但从数据分析的角度,尤其是从数据接收端的角度来看,处理就要复杂很多,因为尽管数据分段的情况相对较少,但是信令分析注重消息解析的准确性和信令流程的连贯性,为了达到这2个要求,就要保证接收端能够准确完成数据的组装,在此基础上,对SCCP层的分析以及更高层如RANAP协议的分析才能够保证。

的消息中,绝大部分都包含data或longdata参数,这2个参数表示SCCP的用户数据(service data unit,SDU),也叫做SCCP上层协议的协议数据单元(protocol olata unit,PDU)。SCCP的大多数消息都包含数据参数,从而加大了获取PDU的难度,另外,消息类型的不同导致获取的方法也不同,包含Data参数的消息分类如表3所示。


表3 包含Data参数的消息分类表

包含Data参数的消息分类表

当调用模块的获取上层PDU函数时,首先判断消息类型,如果不在

以上消息类型中,则不存在用户数据,那么仅仅完成即可;如果是以上消息类型中的一种,那么就需要调用相应的函数进行获取SDU的操作。由于包含用户数据的消息比较多,为了处理方便和逻辑清晰,在模块实现时为表3中的消息定义了各自的函数。

表3中有两列内容分别是辅助参数和它们的存在性。辅助参数是指在相应消息中对于获取SDU有帮助的参数,而存在性就表示该辅助参数在相应消息中的存在可能,F和V表示一定存在,0表示可能存在。辅助参数的作用主要是用来告知消息中包含的Data是完整的还是需要分段传送的,如果完整,那么取得数据后函数就把PDU数据返回;否则要对来自多条SCCP消息的多个Data进行组装。在表3中用A,B,C,D对消息处理进行了分类,每个类型代表一种处理的复杂程度如表4所示。


表4 获取SDU分析表a

获取SDU分析表a

根据获取Data数据的复杂程度,把相应函数分为4类。每类函数根据处理的复杂程度,都需要辅助函数的支持,例如,类型2中对DT1和DT2的处理,这2条消息中都有参数包含more data indicator字段,其作用是指示本条数据消息后面是否有属于同一个SDU的数据,因此该参数是DT1和DT2消息获取数据的重要操作依据。对于其他类型的函数,辅助参数起着同样的作用,另外个别辅助参数本身是可选的,如类型4函数中的辅助参数segments,因此在类型4函数处理时需要判断的条件就很多,首先需要知道segments参数是否存在,存在的话才有组装的可能,不存在的话说明数据不需要组装。4类函数对参数的需要性如表5所示。

表5 获取SDU分析表b

获取SDU分析表b

在实际的SCCP消息中,大多都是用DT1消息来承载上层数据,获取DT1消息的函数属于表5中的第2类,下面就以该消息为例来说明获取上层PDU的方法,DT1的格式[5]如表6所示。

表6 DT1消息结构

DT1消息结构

第1个参数(Message type)表示消息类型,根据消息类型表格可知,DT1消息类型为OX0000 0110即6;第2个参数(Destination local reference)是目的地本地参考,表示目的地地址信息;第3个参数(Segmenting/reassembling)叫做分割/组装,长度是1个字节,格式如图5所示。

Segmenting/reassembling参数结构

图5 Segmenting/reassembling参数结构

该参数长度为一个字节,最低位是信息字段M,为0表示消息后面没有分段的数据;为1则表示有。图6表示在模拟真实的环境,以DT1数据的传输为例,说明所有可能的情况。

DT1数据在网络中传送的可能情况示意图

图6 DT1数据在中传送的可能情况示意图

DT1消息在网络中的传送共4种可能,每种类型中右边的表示本条DT1消息,图6左边的表示上条DT1消息,两消息中都有M指示,下面分别说明。

类型1:本条DT1数据和前面的DT1是连续的,另外本条DT1数据后面还有连续的数据,在此情况下,应该把本条DT1数据串接在前面的D

T1后面,并且继续等待后面的包含同类内容的数据。

类型2:本条DT1数据和前面的DT1是连续的,另外本条DT1数据后面没有连续的数据,在此情况下,应该把本条DT1数据串接在前面的DT1后面,构成一个完整的上层数据PDU交给上层处理。

类型3:本条DT1数据和前面的DT1不是连续的,另外本条DT1数据后面有连续的数据,在此情况下,应该把本条DT1数据保存起来等待后面同类数据进行组装。

类型4:本条DT1数据和前面的DT1不是连续的,另外本条DT1数据后面没有连续的数据,在此情况下,应该用本条DT1数据作为上层PDU。

下面用流程图的形式来说明获取DT1消息上层数据的程序处理过程,如图7所示。

获取DT1消息上层PDU函数流程图

图7 获取DT1消息上层PDU函数流程图

在真实的网络环境中,在使用CR消息建立完SCCP连接后,SCCP协议出现最多的就是DT1,SCCP层的主要作用是封装层的信令数据,而上层数据才是对分析网络以及应用最有价值的信息。基于这样的现实,分析DT1消息有重要意义,尽管在SCCP协议中还有其他消息也包含数据信息,但在实际信令中出现的情况并不多。

5、结束语

通过对SCCP协议和获取上层数据的分析,一方面为模块实现提供了设计方案,另一方面可以把SCCP协议的分析方法推广到标准协议栈中其他传输层的协议分析中。在网络分析仪的软件模块中,采用面向对象编程方法[7]对SCCP部分进行了实现,该模块在仪表测试的过程中表现稳定,通过实践论证了设计方案的正确性。

参考文献:

[1] KAMMERLANDER K.Benefits and implementation of[EB/OL].(2000-04-12)[2006-11-28].http://IEEExplore.ieee.org/ie15/7138/1922l/00890848.pdf?isnurnber=&arnumber=890848.

[2] 3GPP TS25.401V3.10.0.UTRAN overall description [EB/OL].(2002-06-06)[2006-11-23].http://www.3gpp.org/ftp/Specs/archlye/25_series/25.401.

[3] 李小文.李贵勇.TD-SCDMA第三代移动通信系统、信令及实现[M].北京.人民邮电出版社,2003.

[4] 罗进文.信令网技术教程[M].北京.人民邮电出版社,2003.9.

[5] ITU-T Q.713.Signalling connection control part for mats and Codes[EB/OL].(2002-01-01)[2006-11-23].http://electronics.ihs.com/document/abstract/NROVWAAAAAAAAAA.

[6] MIRSA R,BAIER P W.A test system for evaluation of the WCDMA technology[J].IEEE Trans.Commum,2004,(8):16-20.

[7] 钱能.c++程序设计教程[M].北京:清华大学出版社.2001.6.



评论


相关推荐

技术专区

关闭