背景技术
TTCN-3(Testing and Test Control Notation version3,测试和测试控制表示方法第三版)是ETSI(European Telecommunications StandardInstitute,欧洲电信标准协会)推出的一种国际标准化的测试开发编程语言。TTCN-3用于描述在多种通信端口上的各种响应系统测试,它应用的典型领域包括:协议测试、系统测试、交互性测试、服务测试等等。
在特定的测试系统上运行TTCN-3测试脚本,需要一个完备的TTCN-3测试系统。TTCN-3测试系统主要包括TE(TTCN-3Executable,可执行实体)、TM(Test Management,测试管理)、CD(Coding andDecoding,编解码实体)、SA(System Under Test Adapter,被测系统适配器)以及PA(平台适配器)。在TTCN-3测试系统中,TE是执行测试例的实体,它协同TRI(Test Runtime Interface,测试运行时接口)和TCI(TestControl Interface,测试控制接口)完成整套测试例的运行。SUT(SystemUnder Test,被测系统)通过系统适配器模块与测试系统进行交互。
在TTCN-3测试系统中,TE、SA和CD的通信关系如图1所示。SA作为连接SUT和TE的功能模块,负责SUT与测试系统进行消息通信和过程调用,并负责发送请求到SUT和TE,实现SUT与测试系统的信息交互。SA的主要工作包括实现测试组件端口与测试系统接口的映射、发送命令以及接收测试事件。
CD主要负责对测试数据按照特定的协议标准进行编码和解码操作。CD于TE模块之间的TCI接口用于实现的TTCN-3抽象数据结构与SA所识别的标准协议格式之间的双向转换。
在TETRA数字集群测试系统中,被测数据来源于TETRA数字集群系统的空中接口。TETRA数字集群空中接口协议是指移动台与SwMI(交换与管理基础设施)之间无线通道的信息传输规范,只有移动台和交换与管理基础设施的开发都遵守这样的规范,多个厂商生产的设备才能够相互通信。因此,协议栈开发必须严格地遵守协议的规定。TETRA数字集群空中接口协议是按照ISO(International Organization for Standardization,国际标准化组织)/OSI(Open Systems Interconnection,开放系统互连)七层参考模型定义的,协议栈对应七层模型的下三层,分别为物理层,数据链路层以及网络层,TETRA数字集群通信系统的空中接口的第一层是物理层,它具有射频发送和接收、调制和解调、发送和接收的转换、定时、时分多址接入以及移动台的功率控制等功能。空中接口的第二层由MAC(Medium AccessControl,介质访问控制)层和LLC(Logical Link Control,逻辑链路控制)层两个子层组成。MAC层主要解决如何将数据进行处理,以适合在无线电线路上传输。LLC处理数据传输、转发、分段、重新装配和逻辑链路的管理控制等操作。
空中接口的第三层分成两个子层,下层称为MLE(Mobile Link Entity,移动链路实体)。MLE负责控制较低层与无线电相关的功能,包括无线电连接的管理、登记区之内的移动性管理、移动台身份管理和服务质量控制等功能。上层由3个单元组成,统称为SNAF(Sub-Network Access Function,子网络接入功能)。SNAF由MM(Mobility Management,移动性管理)、CMCE(Circuit Mode Control Entity,电路模式控制实体)和PD(PacketData,分组数据实体)组成。MM处理漫游和位置更新等业务。CMCE处理呼叫控制、短数据业务以及补充业务。PD处理面向无连接的和面向连接用户的分组数据。
现有技术中的基于TTCN-3平台测试系统的SA和CD之间的接口主要针对一些特定的协议或服务开发,如:DNS(Domain Name System,域名系统)域名服务、Web Service、SIP(Session Initiated Protocol,起始会话协议)、GSM(Global System for Mobile communications,全球移动通信系统)、TD-LTE(TimeDivisionLongTermEvolution,分时长期演进)等等。
比如,在针对SIP的测试系统中,SA负责与SUT的具体通信细节,即采用socket套接字处理底层的网络包,将待发送的SIP数据放入到底层网络包,以及从网络包中读取对应的SIP数据包,实现协议数据单元的发送与接收。
SIP测试系统中的CD负责TTCN-3数据和PDU(ProtocolDataUnit,协议数据单元)之间的双向转换:一方面从SA的接口上获取待处理的SIP数据包,并将其映射为抽象的TTCN-3复合数据结构;另一方面将待发送的TTCN-3抽象数据封装为SA可识别的SIP数据包,以待SA发送到SUT网络。
上述现有技术中的SA和CD之间的接口的缺点为:该接口主要针对一些特定的协议,如:SIP、GSM等等。由于上述特定的协议在通信接口数据封装定义上的不兼容性,无法将该原有SA和CD之间的接口移植到现有的TETRA数字集群测试系统的相应接口上,即现有技术中的SA和CD之间的接口不适用于TETRA数字集群测试系统。
发明内容
本发明的实施例提供了一种TETRA系统中SA和CD之间的数据传输方法和装置,以实现使TTCN-3测试系统中的SA和CD之间的接口适用于TETRA数字集群测试系统。
本发明提供了如下方案:
一种TETRA系统中SA和编解码器之间的数据传输方法,包括:
被测系统适配器SA从被测系统读取原始数据包,对所述原始数据包进行解析,获取原始数据包中包含的有效数据净荷和媒体接入控制MAC层信息、逻辑链路控制LLC层信息;
所述SA对所述MAC层信息和LLC层信息进行数据分析处理,对数据分析处理后的MAC层信息和LLC层信息进行重新封装,得到附加信息头部,将所述附加信息头部设置到所述有效数据净荷的头部,得到SA封装后的数据包;
所述SA将所述SA封装后的数据包传输给编解码器CD,所述CD对所述SA封装后的数据包进行解析,从解析后得到的附加信息头部和有效数据净荷中获得所述SA封装后的数据包的第三层协议数据单元PDU的相关信息。
一种TETRA系统中SA和编解码器之间的数据传输装置,包括:被测系统适配器SA和编解码器CD,
所述的SA,用于从被测系统读取原始数据包,对所述原始数据包进行解析,获取原始数据包中包含的有效数据净荷和媒体接入控制MAC层信息、逻辑链路控制LLC层信息;对所述MAC层信息和LLC层信息进行数据分析处理,对数据分析处理后的MAC层信息和LLC层信息进行重新封装,得到附加信息头部,将所述附加信息头部设置到所述有效数据净荷的头部,得到SA封装后的数据包;将所述SA封装后的数据包传输给CD;
所述的CD,用于对所述SA封装后的数据包进行解析,从解析后得到的附加信息头部和有效数据净荷中获得所述SA封装后的数据包的第三层协议数据单元PDU的相关信息。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例通过基于TETRA数字集群系统的特性,对SA和CD进行功能划分,将数据处理量较大的部分(如MAC、LLC层数据处理)放入到代码逻辑较为简单的SA模块,将功能较为复杂的第三层PDU与TTCN-3数据的映射功能放入到CD模块,从而在SA和CD之间建立一个完备的数据接口机制,实现了使TTCN-3测试系统中的SA和CD之间的接口适用于TETRA数字集群测试系统。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的TTCN-3测试系统中的TE、SA和CD的通信关系示意图;
图2为本发明实施例一提供的一种基于TETRA数字集群通信系统的空中接口协议栈结构的SA和CD之间的数据传输方法的实现原理示意图;
图3为本发明实施例一提供的一种基于TETRA数字集群通信系统的空中接口协议栈结构的SA和CD之间的数据传输方法中的SA的处理流程图;
图4为本发明实施例一提供的一种附加信息头部的结构示意图;
图5为本发明实施例一提供的一种SA封装后的数据包的结构示意图;
图6为本发明实施例一提供的一种基于TETRA数字集群通信系统的空中接口协议栈结构的SA和CD之间的数据传输方法中的CD的处理流程图;
图7为本发明实施例一提供的一种针对空中接口第三层PDU的TTCN-3数据结构的示意图;
图8为本发明实施例二提供的一种TETRA系统中用户面、信令面切换检测的装置的结构示意图,图中,SA810和CD820。
具体实施方式
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
实施例一
本发明实施例的针对现有技术存在的缺点,提出了一种基于TETRA数字集群通信系统的空中接口协议栈结构的SA和CD之间的数据传输方法,该方法的实现原理示意图如图2所示,实现在SA和CD之间的功能划分,该方法中的SA的处理流程如图3所示,包括如下的处理过程:
SA首先从SUT读取原始数据包,对该原始数据包进行解析,获取原始数据包中包含的有效数据净荷和MAC(MediaAccessControl,媒体接入控制)层信息、LLC(Logical Link Control,逻辑链路控制)层信息。
SA对上述MAC层信息进行数据分析和过滤处理,获取数据包的上下行标志、第二层地址、数据包实际比特串长度和PDU类型信息等信息。对上述LLC层信息进行数据分析和过滤处理。在上述MAC层信息、LLC层信息进行数据分析、过滤和处理后的数据为非空后,SA按照指定格式将数据分析、过滤和处理后的MAC层信息、LLC层信息进行重新封装,得到附加信息头部,该附加信息头部的结构如图4所示,由四部分组成:比特数指示、上下行标志、PDU类型和第二层地址,在一定的情况下,这四部分的位置可以交换。根据TETRA数字集群通信系统标准,第二层地址长度必须在24比特以上。其他三个附加部分的长度则依赖于测试平台的选取(比如在Java环境中,可以每个部分占有一个字节,也可以三个部分占用一个字节)。以下是对这四个填充部分的详细说明:
比特数指示:在TETRA数字集群通信系统的第三层PDU(Protocol DataUnit,协议数据单元)中,有些PDU(如短信部分)没有固定长度,对其比特串的解码依赖于该PDU实际比特长度。由于送入CD的数据是以整字节为单位(比特长度为8的整数倍),所以务必从SA获取实际数据的比特长度。该比特数指示有两种方式:可以直接示出总的比特串长度;也可以示出该数据为凑齐整字节长度,而附加的比特数,可称为填充比特数。采用后一种方式时,在获得了填充比特数A后,再获取CD上待处理数据的字节长度B,则实际数据的比特长度即为:8*B-A;
上下行标志:上下行标志在SA模块的MAC层处理中获得,针对上下行对该数值设定不同的值即可;
PDU类型:该附加部分主要用于存储第二层获取的特殊类型(如广播信息PDU或高级链路建立PDU等)。为了将第二层PDU的相关数据也送入CD中处理,务必将一些已解析的第二层PDU信息(主要是PDU类型)存储到该字段上。
第二层地址:在TETRA数字集群通信系统中,每个移动台的通信地址(即数据的发送和接收)就是第二层通信地址,该地址可用于呼叫、短信等通信业务。根据TETRA数字集群通信系统标准,第二层地址可以是一个独立地址或是一个组地址,并且第二层地址的长度在24比特以上,故该附加元素长度至少为三个字节。
SA将上述附加信息头部设置在数据净荷的头部,得到SA封装后的数据包,该SA封装后的数据包的结构如图5所示。上述SA封装后的数据包即为TETRA数字集群协议上LLC层数据的TL-SDU部分。
SA将上述SA封装后的数据包传输给CD。
上述基于TETRA数字集群通信系统的空中接口协议栈结构的SA和CD之间的数据传输方法的CD的处理流程如图6,包括如下的处理过程:
CD接收到上述SA传输过来的SA封装后的数据包后,将数据包放入到等待队列的尾部。
CD从等待队列的头部提取出数据包,对数据包进行解析,获取该数据包中包含的附加信息头部和数据净荷,从解析后得到的附加信息头部和有效数据净荷中获得所述SA封装后的数据包的第三层PDU的相关信息。
具体的,CD从上述附加信息头部中获取该数据包的上下行标志、第二层地址和数据包实际数据的比特长度指示位。CD对上述数据净荷按照协议规定进行解码,从上述数据净荷中读取数据包的MLE头,获取数据包所属的第三层PDU实体,如MM、CMCE等等。将上述数据包传输到上述数据包所属的第三层PDU实体,在该第三层PDU实体内部,根据TETRA数字集群通信系统的第三层空中接口PDU定义对上述数据包的PDU上的每一个字段进行解码,得到解码数据,建立所述解码数据和所述TTCN-3抽象数据结构的指定字段之间的映射关系。
返回一个Value实例,送入TTCN-3脚本中,进行匹配。
所述CD根据所述第三层协议数据单元PDU的相关信息,以及所述解码数据和TTCN-3抽象数据结构的指定字段之间的映射关系,对所述SA封装后的数据包进行重新封装,得到如图7所示的针对空中接口第三层PDU的TTCN-3数据结构。
上述TTCN-3数据结构是一个结构体(在TTCN-3中称为Record),该结构体内部包含两个元素:分别为第二层地址和第三层PDU实体两个元素。在TETRA数字集群系统中,第二层地址主要依靠解析MAC层的地址元素得到。而对于不同的第三层子PDU,在区分这些PDU时,首先应当判断该PDU的上下行属性,而该属性也依靠解析MAC层数据获得。并且,对于一些特殊PDU(如MAC广播PDU),该PDU类型的判断也位于MAC层。
实施例二
该实施例提供的一种TETRA系统中SA和CD之间的数据传输装置的结构示意图如图8所示,具体可以包括如下的模块:SA和CD。
所述的SA,用于从被测系统读取原始数据包,对所述原始数据包进行解析,获取原始数据包中包含的有效数据净荷和媒体接入控制MAC层信息、逻辑链路控制LLC层信息;对所述MAC层信息和LLC层信息进行数据分析处理,对数据分析处理后的MAC层信息和LLC层信息进行重新封装,得到附加信息头部,将所述附加信息头部设置到所述有效数据净荷的头部,得到SA封装后的数据包;将所述SA封装后的数据包传输给CD;
所述的CD,用于对所述SA封装后的数据包进行解析,从解析后得到的附加信息头部和有效数据净荷中获得所述SA封装后的数据包的第三层协议数据单元PDU的相关信息。
所述的SA,具体用于对所述MAC层信息进行分析和过滤处理,得到所述原始数据包的上下行标志、第二层地址、数据包实际比特串长度信息和PDU类型信息;
对所述LLC层信息进行分析和过滤处理;对所述原始数据包的上下行标志、第二层地址、数据包实际比特串长度、协议数据单元PDU类型信息进行重新封装,得到附加信息头部,所述附加信息头部包括:比特数指示、上下行标志、PDU类型和第二层地址,所述比特数指示表示所述数据包的实际数据的比特长度指示位。
所述的CD,具体用于接收到所述SA传输过来的SA封装后的数据包后,将所述SA封装后的数据包放入到等待队列的尾部;
从等待队列的头部提取出数据包,对所述数据包进行解析,获取所述数据包中包含的附加信息头部和数据净荷,从上述附加信息头部中获取所述数据包的上下行标志、第二层地址、PDU类型和比特数指示,从所述数据净荷中获取所述数据包的第三层PDU实体信息。
所述的CD,具体用于对所述数据净荷按照协议规定进行解码,从解码后的数据净荷中读取数据包的MLE头,获取数据包所属的第三层PDU实体,将所述数据包传输给所述第三层PDU实体;
在所述第三层PDU实体内部,根据TETRA数字集群通信系统的第三层空中接口PDU定义对所述数据包中的PDU上的每一个字段进行解码,得到解码数据,建立所述解码数据和所述TTCN-3抽象数据结构的指定字段之间的映射关系。
所述的CD,还用于根据所述第三层协议数据单元PDU的相关信息,以及所述解码数据和TTCN-3抽象数据结构的指定字段之间的映射关系,对所述SA封装后的数据包进行重新封装,得到针对空中接口第三层PDU的TTCN-3数据结构,所述TTCN-3数据结构中包括:第二层地址和第三层PDU实体两个元素。
用本发明实施例的装置进行TETRA系统中SA和CD之间的数据传输的具体过程与前述方法实施例类似,此处不再赘述。
综上所述,本发明实施例通过基于TETRA数字集群系统的特性,对SA和CD进行功能划分,将数据处理量较大的部分(如MAC、LLC层数据处理)放入到代码逻辑较为简单的SA模块,将功能较为复杂的第三层PDU与TTCN-3数据的映射功能放入到CD模块,从而在SA和CD之间建立一个完备的数据接口机制,实现了使TTCN-3测试系统中的SA和CD之间的接口适用于TETRA数字集群测试系统。
本发明实施例通过在SA处理后的数据净荷上增加一个附加信息头部,该头部可分为四个部分:填充比特数、上下行标志、PDU类型、第二层地址。这四个部分为CD模块的解码提供了充分的信息,从而实现了第三层PDU信息与TTCN-3抽象数据结构的正确解码和数据映射。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。