王鵬 李海 宋起柱 陳國成
【摘 要】主要提出了一種基于TTCN-3測試語言和外部設備接口(PEI)的TETRA系統分組數據互操作性測試方案。首先介紹測試系統框架,然后對PEI鏈路的建立流程進行分析,最后闡述了基于TTCN-3的TETRA系統分組數據互操作性測試的具體實現,并給出基于TTworkbench測試平臺的測試例的測試結果。
【關鍵詞】TETRA 分組數據 互操作性 TTCN-3
中圖分類號:TN929.52 文獻標識碼:A 文章編號:1006-1010(2014)-02-
1 引言
TETRA系統是目前國內外應用最普遍的數字集群通信系統,市場上已經有眾多廠商生產開發的各類TETRA終端和網絡設備。為了確保這些設備都完全符合ETSI制定的TETRA標準[1],就需要對不同廠商生產的TETRA終端和網絡設備進行互操作性測試。目前,國際上的TETRA產業聯盟(TETRA MoU)所進行的TETRA互操作性測試仍然是手工完成的,工作效率低、測試時間長,測試后需要耗費大量人力和時間對待測設備采集的日志文件進行分析,往往數月后才能獲得最終測試結果。因此,迫切需要建立一套可以快速、便捷地自動完成TETRA互操作性測試的系統。
在TETRA系統測試中,分組數據的測試較復雜。本文針對分組數據測試的PPP協議處理、TTCN-3測試例的編寫、系統適配器(SA,System Under Test Adapter)和編解碼器(CD,Codec)的開發等關鍵問題進行了分析,并給出了相應的解決方案。
2 測試系統框架
被測系統由移動臺(MS,Mobile Station)和交換與管理基礎設施(SwMI,Switching and Management Infrastructure)共同構成,測試系統組成如圖1所示。
圖1 測試系統組成
移動臺和SwMI之間通過TETRA空中接口協議標準進行信令和數據的傳輸。TETRA產業聯盟針對TETRA系統分組數據業務的互操作性測試制定了測試標準(TTR001-05[3])和測試計劃(IOP001-05[4])。測試系統使用TTCN-3測試語言進行開發。TTCN-3是由ETSI維護的全球適用的標準測試語言,適用于描述在多種通信端口上的各種響應系統測試,已經被廣泛應用于協議測試領域[5-7]。測試系統模擬數據終端的功能,通過PEI(Peripheral Equipment Interface,外部設備接口)接口控制移動臺發送和接收分組數據,并將接收到的數據和測試標準進行對比,從而實現互操作性自動測試。
測試系統、移動臺和SwMI之間的分組數據測試協議棧如圖2所示。進行分組數據測試時,測試系統通過PEI鏈路與移動臺相連接。測試系統的數據經過移動臺的PEI控制實體處理后,再傳至移動臺的SNDCP實體,進而觸發移動臺與SwMI進行相應的空中接口協議交互。
圖2 測試系統、移動臺和SwMI之間的分組數據測試協議棧
3 PEI協議過程分析
測試系統通過PEI鏈路和被測系統進行通信,而PEI鏈路的建立需要遵從PPP(Point to Point Protocol)協議[8-9]。測試系統與移動臺連接后,先向移動臺發送“ATD*99#”命令,隨后兩者之間開始進行建鏈協商。
PEI鏈路的建立分為三個階段進行:
第一階段是鏈路控制協議(LCP,Link Control Protocol)協商,主要進行與鏈路控制相關的參數的配置,包括最大幀長、異步控制字符映射、是否使用鑒權協議和頭部壓縮等。
第二階段是鑒權,本階段是否執行取決于在LCP階段協商中是否使用鑒權協議。如果使用鑒權協議,在本階段就需要進行相應的鑒權處理,目前系統支持的鑒權協議是PAP鑒權[10]和CHAP鑒權[11];否則,跳過本階段直接進入下一階段。
第三階段是網絡控制協議(NCP,Network Control Protocol)協商,主要進行網絡層相關參數的配置,包括IP地址的分配、TCP/IP頭部壓縮等。本測試系統中具體執行IP控制協議(IPCP,IP Control Protocol)。
測試系統可以以靜態IP地址或動態IP地址進行PDP上下文激活,其通過PEI鏈路與移動臺的交互過程和移動臺通過空中接口與SwMI的交互過程具有對應關系。
NCP階段完成后,鏈路進入可進行數據通信的“鏈路打開”狀態,即分組數據PDP上下文激活成功。此后,鏈路兩端可以隨時向對方發送分組數據。
測試過程中,測試系統向被測系統發送承載ICMP報文的IP數據包進行數據傳輸測試。當發送IP數據包時,IP數據包會被封裝在PPP幀中進行傳輸,協議域為0x0021(若LCP階段進行了協議域壓縮協商,則協議域為0x21)。
4 測試系統的設計與實現
與C、C++等語言相比較,TTCN-3語言用于開發測試集具有簡潔便利、層次分明的特點。測試集的開發與編解碼器、系統適配器等模塊的開發可以獨立進行,以提高開發效率。測試系統選用Testing Tech公司的TTworkbench測試平臺,該平臺支持使用Java、ASN.1和XML等語言編寫插件,大大提高了測試系統的擴展性和靈活性。
借助TTworkbench提供的開發環境,本文主要進行了以下四個模塊的開發工作:測試例(TE,TTCN-3 Executable)、編解碼器(CD)模塊、系統適配器(SA)模塊以及平臺適配器(PA,Platform Adapter)模塊。
4.1 測試例(TE)開發
依據IOP測試標準,結合前面的PEI接口協議分析,測試例的基本處理流程設計如圖3所示。其中的后續操作取決于不同測試例所測試的具體內容,可能包括PDP上下文去激活模塊、數據傳輸模塊等。endprint
整個處理流程中,最重要的是實現PPP協議的兩個模塊:LCP模塊和IPCP模塊,按照RFC 1661規定的配置選項進行協商建鏈。
為了提高測試系統的兼容性,使其能夠同時支持各主流廠商的移動臺,并且盡量減少SA、CD等其他模塊的開發難度,在測試例開發中重點解決了以下幾個問題:
(1)進行“ATD*99#”撥號后,各廠商移動臺的響應是不同的。SEPURA移動臺完全符合TETRA協議,撥號后測試系統收到移動臺發出的CONNECT命令,然后開始LCP階段;MOTOROLA移動臺撥號后,測試系統先收到一系列字符串,之后才收到CONNECT命令,然后還要再收到OK命令后才能開始LCP階段;EADS移動臺撥號后先收到CONNECT命令,然后收到OK命令后才開始LCP階段。為了使測試例能夠同時支持三個廠商的移動臺,筆者專門設計了一個altstep函數,在撥號之后自動調用該函數以解決此問題。
(2)按照協議規定,測試系統和移動臺分別向對方發出LCP協商請求,是相互獨立的過程,沒有先后順序。若測試系統先發送LCP配置請求幀,則會收到移動臺對此LCP請求的響應幀以及移動臺的LCP配置請求幀。在使用SEPURA移動臺測試時,發現其兩個連續的LCP數據幀之間會省略一個幀界定符(0x7E),導致CD模塊解碼時崩潰。為了不增加CD模塊的設計難度,測試例中采用的方案是:測試系統等待收到移動臺發出的LCP配置請求幀后,再發送LCP配置請求。
(3)按照TTCN-3標準,CD模塊并不具有記憶功能,如果在LCP階段進行了協議域壓縮(PFC)的協商,則需要編寫支持壓縮和不支持壓縮兩個不同的CD模塊來支持,這會增加CD的開發難度。因此,測試例中在LCP階段不進行此項協商,以簡化CD模塊的開發。
(4)如果在LCP階段進行了異步控制字符映射(ACCM)協商,由于不同移動臺的ACCM協商結果可能不同,因此需要編寫不同的CD模塊才能實現相應處理。為了簡化CD模塊開發,采取的方案是測試系統不主動發起ACCM協商,而對于移動臺主動發起的ACCM協商總是確認。這樣,無論移動臺是否進行了ACCM協商,僅需要開發一個CD模塊,按照RFC 1662的規定進行轉義操作,就可以完成數據的正常發送與接收。
(5)為了簡化設計,在IPCP階段,只接受IP地址的協商配置,而忽略其他選項的協商。具體設計是測試系統收到移動臺IPCP配置請求時,判斷其中是否有IP協商之外的選項,若存在,對其回復拒絕幀;當只存在IP配置選項時,才回復確認幀。這樣的設計能夠降低CD模塊的開發難度和工作量。
4.2 編解碼器(CD)模塊開發
編解碼模塊主要是對測試系統和被測系統之間傳輸的測試數據進行編碼與解碼轉換。TTCN-3測試例中定義的數據類型都需要開發相應的CD模塊實現編解碼功能。分組數據互操作性測試中所涉及的數據類型有AT指令、PPP協議中的各種數據結構、IPv4協議數據包以及ICMP協議數據包等。
4.3 系統適配器(SA)模塊開發
系統適配器模塊用來實現測試系統與被測系統之間的通信過程,在SA中可以調用TRI接口所提供的API函數。測試中的PEI接口采用的是RS232串口形式,所以使用了TTworkbench提供的RS232插件。TTworkbench支持在SA模塊中加入用戶開發的端口過濾器(Port Filter),可以在標準的RS232插件處理之前對輸入輸出數據進行相應的過濾操作,具有很強的靈活性與便利性。本測試系統中,發送數據時端口過濾器完成對數據的封裝處理,包括使用CRC算法計算FCS、添加地址和控制域及添加幀定界符等。接收數據時完成對數據的提取處理,包括以上封裝處理的逆處理。
例如,在LCP協商階段,測試例中使用TTCN-3語言編寫的數據結構首先經過CD編碼后成為二進制數據流:C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02,然后傳送至SA的端口過濾器中進行處理,具體步驟如下:
(1)加上地址和控制域:FF 03 C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02
(2)計算FCS并添加到數據末尾,FCS的低字節在前,高字節在后:FF 03 C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02 87 68
(3)掃描整個序列,進行轉義處理:FF 7D 23 C0 21 7D 21 7D 21 7D 20 7D 34 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20 7D 25 7D 26 2F 5A 60 7C 7D 27 7D 22 7D 28 7D 22 87 68
(4)在數據首尾添加幀界定符7E組成PPP幀,發送:7E FF 7D 23 C0 21 7D 21 7D 21 7D 20 7D 34 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20 7D 25 7D 26 2F 5A 60 7C 7D 27 7D 22 7D 28 7D 22 87 68 7E
4.4 平臺適配器(PA)模塊開發
TTCN-3語言的優勢在于對系統測試的描述與交互,但是使用其來編寫涉及數學運算的程序會比較困難。因此,筆者在平臺適配器模塊中編寫了外部函數,專門實現各種算法,然后在測試例中調用這些外部函數來實現所需要的功能。
分組數據互操作性測試中所涉及的外部函數主要包括PPP幀長度的計算、CHAP鑒權所需要的MD5算法、IPv4包中的首部校驗和計算以及ICMP中的校驗和計算等。endprint
5 測試結果
根據測試標準TTR001-05和IOP001-05,筆者開發了全部27個測試例。由于目前的移動臺和網絡設備不支持標準中的部分功能,因此對其中的19個測試例進行了實際測試驗證。
測試中使用的移動臺包括MOTOROLA、SEPURA和EADS三家廠商的移動臺,網絡設備采用北京理工大學和北京交通大學聯合研制的TETRA基站和交換機系統。測試系統運行平臺為Windows XP系統和TTworkbench v14。
圖4是按照IOP 001-05標準中測試例1.3.1的要求設計的測試例的運行結果(LCP協商部分)。該測試例包括撥號、LCP協商、IPCP協商、數據傳輸和去激活的完整過程,具有很強的代表性。整個測試過程都是TTCN-3程序自動完成的,無需人工操作,測試完成后立刻得到測試是否通過的結果,完全達到了預期目的。
6 結束語
本文提出了一種基于TTCN-3語言的TETRA協議互操作性測試的設計方案,按照此方案設計的測試系統已經投入實際使用。文中所提出的PPP協議處理方法不僅可以用于TETRA系統,也可以應用于其他移動通信系統的分組數據測試。本測試系統既可以用于協議一致性或者互操作性的測試,也可以加以擴展用于系統的壓力測試、性能測試和生產測試等諸多領域。
參考文獻:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陳元,尹霞,王之梁. 基于TTCN-3的LDP一致性測試研究[J]. 計算機應用研究, 2009,26(1): 286-288.
[6] 詹寶容,庾錫昌. 基于TTCN-3的移動業務測試平臺的設計[J]. 計算機工程與設計, 2011,32(16): 1893-1897.
[7] 文霄,高阜鄉,賴旻. 基于TTCN-3同步擴展的協議一致性測試研究[J]. 電腦知識與技術, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint
5 測試結果
根據測試標準TTR001-05和IOP001-05,筆者開發了全部27個測試例。由于目前的移動臺和網絡設備不支持標準中的部分功能,因此對其中的19個測試例進行了實際測試驗證。
測試中使用的移動臺包括MOTOROLA、SEPURA和EADS三家廠商的移動臺,網絡設備采用北京理工大學和北京交通大學聯合研制的TETRA基站和交換機系統。測試系統運行平臺為Windows XP系統和TTworkbench v14。
圖4是按照IOP 001-05標準中測試例1.3.1的要求設計的測試例的運行結果(LCP協商部分)。該測試例包括撥號、LCP協商、IPCP協商、數據傳輸和去激活的完整過程,具有很強的代表性。整個測試過程都是TTCN-3程序自動完成的,無需人工操作,測試完成后立刻得到測試是否通過的結果,完全達到了預期目的。
6 結束語
本文提出了一種基于TTCN-3語言的TETRA協議互操作性測試的設計方案,按照此方案設計的測試系統已經投入實際使用。文中所提出的PPP協議處理方法不僅可以用于TETRA系統,也可以應用于其他移動通信系統的分組數據測試。本測試系統既可以用于協議一致性或者互操作性的測試,也可以加以擴展用于系統的壓力測試、性能測試和生產測試等諸多領域。
參考文獻:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陳元,尹霞,王之梁. 基于TTCN-3的LDP一致性測試研究[J]. 計算機應用研究, 2009,26(1): 286-288.
[6] 詹寶容,庾錫昌. 基于TTCN-3的移動業務測試平臺的設計[J]. 計算機工程與設計, 2011,32(16): 1893-1897.
[7] 文霄,高阜鄉,賴旻. 基于TTCN-3同步擴展的協議一致性測試研究[J]. 電腦知識與技術, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint
5 測試結果
根據測試標準TTR001-05和IOP001-05,筆者開發了全部27個測試例。由于目前的移動臺和網絡設備不支持標準中的部分功能,因此對其中的19個測試例進行了實際測試驗證。
測試中使用的移動臺包括MOTOROLA、SEPURA和EADS三家廠商的移動臺,網絡設備采用北京理工大學和北京交通大學聯合研制的TETRA基站和交換機系統。測試系統運行平臺為Windows XP系統和TTworkbench v14。
圖4是按照IOP 001-05標準中測試例1.3.1的要求設計的測試例的運行結果(LCP協商部分)。該測試例包括撥號、LCP協商、IPCP協商、數據傳輸和去激活的完整過程,具有很強的代表性。整個測試過程都是TTCN-3程序自動完成的,無需人工操作,測試完成后立刻得到測試是否通過的結果,完全達到了預期目的。
6 結束語
本文提出了一種基于TTCN-3語言的TETRA協議互操作性測試的設計方案,按照此方案設計的測試系統已經投入實際使用。文中所提出的PPP協議處理方法不僅可以用于TETRA系統,也可以應用于其他移動通信系統的分組數據測試。本測試系統既可以用于協議一致性或者互操作性的測試,也可以加以擴展用于系統的壓力測試、性能測試和生產測試等諸多領域。
參考文獻:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陳元,尹霞,王之梁. 基于TTCN-3的LDP一致性測試研究[J]. 計算機應用研究, 2009,26(1): 286-288.
[6] 詹寶容,庾錫昌. 基于TTCN-3的移動業務測試平臺的設計[J]. 計算機工程與設計, 2011,32(16): 1893-1897.
[7] 文霄,高阜鄉,賴旻. 基于TTCN-3同步擴展的協議一致性測試研究[J]. 電腦知識與技術, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint