0、引言
隨著TD-SCDMA第三代移動(dòng)通信系統(tǒng)相關(guān)技術(shù)在中國(guó)飛速發(fā)展,基于該標(biāo)準(zhǔn)的網(wǎng)絡(luò)及終端設(shè)備已經(jīng)研制成功,并已能滿足商用要求。現(xiàn)階段,TD-SCDMA測(cè)試設(shè)備是最薄弱的環(huán)節(jié),一方面,這直接影響到TD-SCDMA產(chǎn)業(yè)鏈的完整性;另一方面,也影響到電信運(yùn)營(yíng)商對(duì)網(wǎng)絡(luò)設(shè)備的部署與檢測(cè),基于這樣的現(xiàn)實(shí),具有自主知識(shí)產(chǎn)權(quán)的TD-SCDMA網(wǎng)絡(luò)測(cè)試儀的研制具有重要意義。
TD-SCDMA網(wǎng)絡(luò)測(cè)試儀中的信令分析,針對(duì)的是無(wú)線接入網(wǎng)(UTRAN)和核心網(wǎng)(CN)的協(xié)議棧[1],其中包含一系列的傳輸層和無(wú)線層協(xié)議。儀表協(xié)議分析的基礎(chǔ)是要能夠?qū)崿F(xiàn)對(duì)所接收到的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行譯碼解析,在此功能準(zhǔn)確無(wú)誤的基礎(chǔ)上,儀表才可以進(jìn)行更高級(jí)的統(tǒng)計(jì)追蹤功能。在進(jìn)行協(xié)議分析時(shí),鑒于協(xié)議之間消息格式和處理機(jī)制的不同,以及軟件模塊化的實(shí)現(xiàn)要求,采取以單個(gè)協(xié)議進(jìn)行模塊封裝的辦法是更有效的,其好處在于能夠忽略協(xié)議間功能和格式的細(xì)微差別,對(duì)單個(gè)協(xié)議的分析方法也能在很大程度上推廣到其他協(xié)議。以UT-RAN內(nèi)部的協(xié)議棧為例,從下至上分為信令適配層、傳輸層和無(wú)線網(wǎng)絡(luò)層[2],其中信令適配層和傳輸層的協(xié)議在標(biāo)準(zhǔn)中都有
明確的消息結(jié)構(gòu),而無(wú)線網(wǎng)絡(luò)層的協(xié)議是采用ASN1(abstract syntax notation)語(yǔ)法進(jìn)行描述[3],導(dǎo)致消息封裝的方法有所不同,進(jìn)而帶來(lái)解碼方式上的差異。
我們?cè)诒疚闹醒芯康闹饕獌?nèi)容是TD-SCDMA的CN以及UTRAN協(xié)議棧中信令連接控制部分協(xié)議(signalling connection control part,SCCP)消息的分析,一方面描述如何根據(jù)協(xié)議標(biāo)準(zhǔn)中規(guī)定的協(xié)議消息結(jié)構(gòu)進(jìn)行解碼;另一方面結(jié)合實(shí)際情況探討SCCP協(xié)議上層PDU的獲取方法。
1、SCCP協(xié)議消息概述
SCCP協(xié)議是7號(hào)信令用戶部分的一種補(bǔ)充功能級(jí),SCCP協(xié)議位于消息傳輸部分協(xié)議(message transfer part,MTP)之上,為MTP提供附加功能。
在TD-SCDMA的CN以及UTRAN的協(xié)議棧中,都包含有SCCP協(xié)議,該協(xié)議位于協(xié)議棧的無(wú)線網(wǎng)絡(luò)控制平面中[3],如圖1所示。
圖1 Iu接口無(wú)線網(wǎng)絡(luò)控制平面的協(xié)議棧
SCCP協(xié)議處于無(wú)線協(xié)議無(wú)線接入網(wǎng)絡(luò)應(yīng)用部分(radio access network application part,RANAP)以下,ATM適配層協(xié)議以上,位于傳輸層,對(duì)于網(wǎng)絡(luò)的數(shù)據(jù)傳輸起著相當(dāng)重要的作用。
ITU-T在不改變?cè)蠱TP功能的基礎(chǔ)上,增加了SCCP,目的就是在信令網(wǎng)中建立邏輯信令連接,以傳送與電路無(wú)關(guān)的消息。因?yàn)殡S著通信網(wǎng)和通信新業(yè)務(wù)的不斷發(fā)展,越來(lái)越多的業(yè)務(wù)需要和遠(yuǎn)端網(wǎng)絡(luò)節(jié)點(diǎn)直接傳送控制消息,這些消息和呼叫連接的電路無(wú)關(guān),甚至根本與呼叫無(wú)關(guān),如現(xiàn)在通信網(wǎng)中開放的智能網(wǎng)業(yè)務(wù)、移動(dòng)電話的漫游業(yè)務(wù)、數(shù)據(jù)庫(kù)以及網(wǎng)絡(luò)的運(yùn)行、管理和維護(hù)等,而這些業(yè)務(wù)僅僅用MTP已無(wú)法滿足要求。[3]
SCCP能提供4類業(yè)務(wù),2類無(wú)連接業(yè)務(wù),2類面向連接業(yè)務(wù)。無(wú)連接業(yè)務(wù)類似于分組交換網(wǎng)中的數(shù)據(jù)報(bào)業(yè)務(wù);面向連接業(yè)務(wù)類似于分組交換網(wǎng)中的虛電路業(yè)務(wù)。
無(wú)連接業(yè)務(wù)不需要預(yù)先建立連接就可以在信令網(wǎng)中傳送信令消息。無(wú)連接業(yè)務(wù)又分為基本無(wú)連接業(yè)務(wù)和有序的無(wú)連接業(yè)務(wù),也稱為0類業(yè)務(wù)和1類業(yè)務(wù)。0類業(yè)務(wù)不保證消息的順序傳輸,各個(gè)消息被獨(dú)立地進(jìn)行傳送,相互不發(fā)生關(guān)系,因而在這種情況下,不能保證按照發(fā)送的順序把消息送到目的地信令點(diǎn);1類業(yè)務(wù)給來(lái)自同一消息流的數(shù)據(jù)信息附上了同一信令鏈路選擇SLS,即經(jīng)由同一信令鏈路傳送,因此可以保證按照發(fā)送的順序把消息送到目的地信令點(diǎn)。
面向連接業(yè)務(wù)在傳送消息之前,需要在源點(diǎn)和目的點(diǎn)之間建立一條消息傳送路徑,即邏輯連接。這種方式適合傳送大批量的數(shù)據(jù)。面向連接業(yè)務(wù)又分為基本面向連接業(yè)務(wù)和帶流量控制的面向連接業(yè)務(wù),即2類業(yè)務(wù)和3類業(yè)務(wù)。它們共同的特點(diǎn)是保證消息發(fā)送和接收的順序一致。此外,3類業(yè)務(wù)具有流量控制功能、消息丟失及錯(cuò)序的檢測(cè)功能等。在2類業(yè)務(wù)中,由于各個(gè)數(shù)據(jù)信息沒(méi)有順序號(hào),因此不能完成順序控制和流量控制。
SCCP是在不改變?cè)蠱TP功能的基礎(chǔ)上增加的,它對(duì)MTP的改進(jìn)主要有以下功能:①能夠傳送各種與電路無(wú)關(guān)的信令消息;既支持無(wú)連接業(yè)務(wù),又支持面向連接業(yè)務(wù);②具有增強(qiáng)的尋址功能,擴(kuò)大了業(yè)務(wù)范圍;③具有地址翻譯功能,可以在全球互連的不同7號(hào)信令網(wǎng)之間實(shí)現(xiàn)信令的直接傳輸;④具有管理功能,可以管理SCCP子系統(tǒng)狀態(tài)。
根據(jù)ITU-T Q.713,SCCP主要的消息類型[4]如表1所示。
表1 SCCP消息類型
一條完整SCCP消息包含以下4部分,消息類型、必選固定部分、必選可變長(zhǎng)部分以及可選部分,結(jié)構(gòu)如圖2所示。
圖2 SCCP消息整體結(jié)構(gòu)
Message type字段的長(zhǎng)度為1個(gè)字節(jié),位于SCCP消息的開始,任何對(duì)SCCP消息的分析都要以判斷消息類型作為第一步。
SCCP協(xié)議是7號(hào)信令中的重要協(xié)議,處于無(wú)線接入網(wǎng)的Iu接口以及核心網(wǎng)接口中。網(wǎng)絡(luò)接口的協(xié)議之間是以協(xié)議棧的方式進(jìn)行組合的,而信令數(shù)據(jù)也是按照協(xié)議棧的分層關(guān)系進(jìn)行封裝的,由于SCCP層處于協(xié)議棧的中間,它上層協(xié)議的數(shù)據(jù)將作為SCCP的凈荷數(shù)據(jù)封裝在SCCP消息中,而SCCP消息整體又作為其下層協(xié)議消息的凈荷封裝進(jìn)整條二進(jìn)制數(shù)據(jù)。在實(shí)際的解碼過(guò)程中,正是要按照協(xié)議棧由底向上的順序?qū)?shù)據(jù)進(jìn)行分析。以Iu接口為例,無(wú)線網(wǎng)絡(luò)層RANAP協(xié)議處于SCCP層以上,因此,RANAP消息被裝入SCCP的DATA數(shù)據(jù)中,SCCP消息則作為MTP3B協(xié)議消息的凈菏繼續(xù)被下層協(xié)議封裝?;谶@種不同協(xié)議間數(shù)據(jù)的封裝關(guān)系,以解碼為基礎(chǔ)的信令分析還有另外一個(gè)需求,即定位和提取上層協(xié)議的數(shù)據(jù)。協(xié)議分析進(jìn)行模塊劃分決定了解碼是每個(gè)協(xié)議自身完成的任務(wù),而數(shù)據(jù)總是由下層提供,也就是說(shuō)每個(gè)協(xié)議層應(yīng)該有2個(gè)基本的功能,一個(gè)是解碼,另一個(gè)就是定位和提取上層數(shù)據(jù)。
2、SCCP協(xié)議消息的解碼分析
SCCP協(xié)議消息的詳細(xì)結(jié)構(gòu)如圖3所示。
圖3 SCCP消息詳細(xì)結(jié)構(gòu)
圖3中,給出了SCCP協(xié)議消息的詳細(xì)消息結(jié)構(gòu),從圖3中可以看出每條消息是由4部分構(gòu)成:消息類型+必選固定部分+必選可變部分+可選部分。下面對(duì)這4部分規(guī)則分別進(jìn)行解釋。
●Message type code:消息類型字段只有一個(gè)字節(jié),該字段是所有SCCP消息必須包含,SCCP協(xié)議的消息類型已經(jīng)在前面的表格中有了說(shuō)明。
●Mandatory fixed part:必選固定部分參數(shù)是指那些在消息中必須存在的并且位置、參數(shù)長(zhǎng)度以及出現(xiàn)順序都由消息類型確定好的參數(shù)。因?yàn)檫@些參數(shù)的出現(xiàn)位置和長(zhǎng)度都是固定的,因此在消息中并不需要額外的字段用來(lái)表示它們的類型和長(zhǎng)度,只需在相應(yīng)的位置提供參數(shù)內(nèi)容即可。
●Mandatory variable part:必選可變部分參數(shù)是指那些在消息中必須存在的但是參數(shù)長(zhǎng)度可變的參數(shù),每個(gè)必選可變部分參數(shù)都有一個(gè)指針指向該參數(shù)內(nèi)容開始的位置,在不同的消息中,必選可變部分參數(shù)指針的順序在消息中是固定排列好的,因此對(duì)于必選可變部分參數(shù),也不需要提供參數(shù)類別,雖然必選可變部分參數(shù)的指針順序是固定的,但是其內(nèi)容順序有可能與指針順序不同,另外,因?yàn)檫@種參數(shù)的長(zhǎng)度可變,所以每個(gè)參數(shù)內(nèi)容中都包含1個(gè)或2個(gè)字節(jié)用來(lái)表示參數(shù)長(zhǎng)度。
●Optional part:可選部分參數(shù)是指那些在消息中定義了的可能出現(xiàn)也可能不出現(xiàn)的參數(shù),整個(gè)可選部分的起始位置由必備可變部分參數(shù)的最后一個(gè)指針來(lái)指明,該指針指示的是可選部分第一個(gè)參數(shù)開始位置的指針。如果消息類型指示沒(méi)有可選部分參數(shù)存在,那么這個(gè)指針將不存在,如果消息類型指示有可選部分存在,但對(duì)于一條具體消息時(shí)并不包含這些可選參數(shù),那么該指針?biāo)谧侄螒?yīng)該全為0??蛇x部分可以包含固定長(zhǎng)度參數(shù)或者可變長(zhǎng)度參數(shù)。另外,可選部分參數(shù)在消息中的發(fā)送順序是不受限制的,比如一條SCCP消息3個(gè)可選部分參數(shù),這3個(gè)參數(shù)出現(xiàn)的順序和協(xié)
議標(biāo)準(zhǔn)中描述的順序可以不同,協(xié)議標(biāo)準(zhǔn)中只是說(shuō)明這3個(gè)是可選的參數(shù),并沒(méi)有規(guī)定其出現(xiàn)的順序。鑒于以上描述的可選部分參數(shù)的特點(diǎn),任何一個(gè)可選部分參數(shù)都必須包括參數(shù)名,參數(shù)內(nèi)容,如果參數(shù)長(zhǎng)度可變,還必須包括參數(shù)長(zhǎng)度。
●End of optional parameters octet:在可選部分參數(shù)的最后,有一個(gè)長(zhǎng)度為1字節(jié),內(nèi)容為全0的end of parameters參數(shù),這個(gè)參數(shù)用來(lái)表示可選部分參數(shù)的結(jié)束,該參數(shù)只有當(dāng)可選部分參數(shù)在消息中存在的時(shí)候才出現(xiàn)。
1)消息內(nèi)容的發(fā)送順序:在SCCP消息中,所有的參數(shù)都包含整數(shù)個(gè)字節(jié),參數(shù)的格式都是按照字節(jié)棧的形式,在實(shí)際消息的傳送過(guò)程中,先發(fā)送的是協(xié)議標(biāo)準(zhǔn)中描述的位于棧頂?shù)牡托蛱?hào)字節(jié),最后發(fā)送的是位于棧底的高序號(hào)字節(jié)。
2)長(zhǎng)度參數(shù)的解碼規(guī)則:長(zhǎng)度參數(shù)字段被解碼為二進(jìn)制值,用來(lái)表示參數(shù)內(nèi)容字段的長(zhǎng)度,長(zhǎng)度參數(shù)字段的值不包括參數(shù)名稱和參數(shù)長(zhǎng)度占用的2個(gè)字節(jié)。
3)指針的解碼規(guī)則:指針的二進(jìn)制值表示了該指針的高位字節(jié)與該指針?biāo)傅膮?shù)之間相隔的字節(jié)數(shù)。
在SCCP協(xié)議中,消息都是遵循上面描述的固定結(jié)構(gòu)。對(duì)某一條具體的消息,比如CR(conneetion qequest),在Q.713協(xié)議中對(duì)消息中包含的參數(shù)做了規(guī)定[5],如表2所示。
表2 SCCP CR消息參數(shù)表
SCCP消息中消息類型,必選固定部分參數(shù)和必選可變部分參數(shù)都是按照固定的順序規(guī)定好的,而可選部分參數(shù)的情況并不固定,消息中只規(guī)定了可能包含的可選參數(shù),但對(duì)可選參數(shù)在實(shí)際消息中是否出現(xiàn)以及出現(xiàn)的順序并沒(méi)有說(shuō)明。
評(píng)論
查看更多