A-S-N編碼規(guī)則_第1頁(yè)
A-S-N編碼規(guī)則_第2頁(yè)
A-S-N編碼規(guī)則_第3頁(yè)
A-S-N編碼規(guī)則_第4頁(yè)
A-S-N編碼規(guī)則_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ASN.1和基本編碼規(guī)則作者:亢朝峰業(yè)務(wù)四室摘要:該文說(shuō)明了ASN.1和基本編碼規(guī)則(BER的原理和應(yīng)用。文中,首先描述了ASN.1,并給出了幾種常見(jiàn)類(lèi)型的相應(yīng)的例子,來(lái)說(shuō)明ASN.1的應(yīng)用;接著對(duì)基本編碼規(guī)則(BER,通過(guò)對(duì)MAP中白LocationRequest的請(qǐng)求操作消息的參數(shù)進(jìn)行編碼的具體實(shí)現(xiàn),來(lái)說(shuō)明基本編碼規(guī)則的工作原理??傊珹SN.1和基本編碼規(guī)則實(shí)際中有非常廣泛的應(yīng)用。關(guān)鍵詞:ASN.1基本編碼規(guī)則MAP消息LocationRequestASN.1作為一種數(shù)據(jù)表示標(biāo)準(zhǔn)產(chǎn)生于20世紀(jì)80年代早期的開(kāi)放系統(tǒng)互聯(lián)Internet網(wǎng)絡(luò)模型,但OSI模型并沒(méi)有得到廣泛的應(yīng)用,而ASN.

2、1標(biāo)準(zhǔn)繼續(xù)使之發(fā)展,今天在實(shí)際中已有大量應(yīng)用,這些應(yīng)用包括:3G移動(dòng)系統(tǒng):使用ASN.1標(biāo)準(zhǔn)數(shù)據(jù)交換的第三代移動(dòng)通信網(wǎng)絡(luò)。這一系統(tǒng)基于UMTS通用移動(dòng)通信系統(tǒng))標(biāo)準(zhǔn),其使用了ASN.1和分組編碼標(biāo)準(zhǔn)(PER。IP語(yǔ)音:在通信領(lǐng)域中的另一個(gè)重要應(yīng)用是通過(guò)包轉(zhuǎn)換網(wǎng)絡(luò)(如因特網(wǎng))傳遞語(yǔ)音數(shù)據(jù)。多媒體數(shù)據(jù)信號(hào)編解碼器(CODEC標(biāo)準(zhǔn)(H.323等等)基于ASN.1并且使用于分組編碼標(biāo)準(zhǔn)來(lái)獲取理想的數(shù)據(jù)傳輸速率。安全應(yīng)用:因特網(wǎng)安全授權(quán)同樣也使用了ASN.1。高級(jí)編碼標(biāo)準(zhǔn)在數(shù)據(jù)表示方面形成了一個(gè)方便的、平臺(tái)無(wú)關(guān)的標(biāo)準(zhǔn),比加密要優(yōu)越。PKIX、PKCS和X.509也是我們所熟悉的標(biāo)準(zhǔn),它們也是基于ASN.

3、1的。傳統(tǒng)通信網(wǎng)絡(luò):ASN.1和基本編碼規(guī)則(BER已經(jīng)在主要通信領(lǐng)域流行了很長(zhǎng)一段時(shí)間,所有的ss7到ISDN的一切都使用了ASN.1BER信息在各種類(lèi)型的設(shè)備和計(jì)算機(jī)之間傳遞信號(hào)。軍事和空間應(yīng)用:美國(guó)國(guó)家宇航局(NASA在其航空通信網(wǎng)規(guī)范中,也正在使用ASN.1和分組編碼規(guī)則作為空對(duì)地或地對(duì)空協(xié)議。、概述眾所周知,抽象是解決軟件開(kāi)發(fā)問(wèn)題的有效手段。利用抽象,設(shè)計(jì)人員可以定義系統(tǒng)的一個(gè)部分而不用關(guān)注這個(gè)部門(mén)實(shí)際上是如何實(shí)現(xiàn)或者表達(dá)的。這一方法使得實(shí)現(xiàn)open,它簡(jiǎn)化了定義過(guò)程,使得在實(shí)現(xiàn)部件之前可以聲明某些“公理”、并且在設(shè)計(jì)高層部件時(shí)假定下層部件是可以實(shí)現(xiàn)的。抽象是現(xiàn)代多數(shù)軟件規(guī)范的特點(diǎn)。

4、作為當(dāng)今最復(fù)雜的系統(tǒng)之一,開(kāi)放系統(tǒng)互聯(lián)(OSI)是一個(gè)包含了大量抽象的例子。OSI是一個(gè)國(guó)際通用的標(biāo)準(zhǔn)體系,從物理層一直到用戶層,規(guī)劃了計(jì)算機(jī)之間的互聯(lián)。高層次的對(duì)象被抽象定義,并將由底層的對(duì)象來(lái)實(shí)現(xiàn)。比如,某層的一個(gè)服務(wù)可能需要在計(jì)算機(jī)之間傳遞某個(gè)抽象對(duì)象;某一底層則可能提供關(guān)于0、1字符串的實(shí)現(xiàn),利用一些編碼規(guī)則把高層的抽象對(duì)象轉(zhuǎn)換成這些字符串。OSI的說(shuō)明抽象對(duì)象的方法叫做抽象語(yǔ)法標(biāo)記(ASN.1,在X.208中定義),而用0、1字符來(lái)表示這樣的對(duì)象的規(guī)則集合叫做基本編碼規(guī)則(BER。ASN.1是一個(gè)很靈活的標(biāo)記法,它允許定義眾多的數(shù)據(jù)類(lèi)型一一從整數(shù)和位串等簡(jiǎn)單類(lèi)型到如集合、序列等的結(jié)構(gòu)

5、,還可以是其它復(fù)雜定義的類(lèi)型。BER描述了如何將ASN.1類(lèi)型表示和編碼成八位字節(jié)串。通常不止一種編碼給定數(shù)據(jù)的方法,另一種叫做DER(DistinguishedEncodingRules)的編碼集合,它是BER的子集,其特點(diǎn)是給每一個(gè)ASN.1值一個(gè)唯一的編碼。圖1.1說(shuō)明了抽象語(yǔ)法、編碼規(guī)則之間的關(guān)系。從圖中可以看出,抽象語(yǔ)法利用一些正式的規(guī)則來(lái)描述各種用戶數(shù)據(jù);而編碼規(guī)則采用適當(dāng)?shù)姆椒▽⒂贸橄笳Z(yǔ)法描述的用戶對(duì)象定義為適合物理傳輸信道傳輸?shù)母袷?。LoclLocalStorageApplicationMappingIComponentAbstractLocalSyntaxLocol&

6、Torage+applicationLocHComponentMappingEncodingRulesEncodingRules圖1.1抽象語(yǔ)法、編碼規(guī)則之間的關(guān)系二、抽象語(yǔ)法標(biāo)記(ASN.1)ASN.1(AbstractSyntaxNotationOne)是一種用于描述結(jié)構(gòu)化客體結(jié)構(gòu)和內(nèi)容的語(yǔ)言。它定義在ISO8824或ITU-TX.208中。ASN.1類(lèi)似于高級(jí)程序設(shè)計(jì)語(yǔ)言的數(shù)據(jù)描述部分。它提供若干語(yǔ)言構(gòu)件用以定義類(lèi)型和值,類(lèi)型對(duì)應(yīng)結(jié)構(gòu),值對(duì)應(yīng)內(nèi)容。但和其他程序設(shè)計(jì)語(yǔ)言不同的是,ASN.1的類(lèi)型不需要機(jī)器實(shí)現(xiàn)。一個(gè)ASN.1的值可以用不同的方法表示:打印值是用打印的形式表示的ASN.1的值

7、,對(duì)人而言,它是一種嚴(yán)格的表示法,因?yàn)樗槐匾蕾嚾魏螜C(jī)器的體系結(jié)構(gòu);本地值是由程序設(shè)計(jì)語(yǔ)言或系統(tǒng)用來(lái)表示ASN.1的值;傳送值表示傳送中的ASN.1的值,它是ASN.1值的比特流形式,是根據(jù)一組稱之為傳送文法(TransferSyntax)的規(guī)則而得到的。ASN.1值的表示法決定了它的開(kāi)發(fā)性和互操作性,并成為一種通用的信息交換的表示法。ASN.1可以定義各種各樣的簡(jiǎn)單類(lèi)型數(shù)據(jù),也可以定義十分復(fù)雜的數(shù)據(jù)結(jié)構(gòu)類(lèi)型。2.1ASN.1的模塊ASN.1的基本單位是模塊(module)。ASN.1模塊實(shí)際上是由一組類(lèi)型定義和值定義組成的。類(lèi)型定義就是說(shuō)明類(lèi)型的名稱和類(lèi)型的格式,值定義則是規(guī)定將什么樣的具體

8、值賦給某一類(lèi)型的變量。ASN.1模塊的一般格式如下:ModuleDefinition:=ModuleidentifierDEFINITIONSTagDefault:=BEGINEXPORTSIMPORTSAssignmentListEND其中,ModuleIdentifier是模塊標(biāo)識(shí)符,也就是模塊的名稱(模塊名的第一個(gè)字母必須大寫(xiě));IMPORTS吉構(gòu)規(guī)定了模塊中某些定義是從其他模塊中移植過(guò)來(lái)的;EXPORT鉆構(gòu)用于定義其他模塊可以移植的類(lèi)型或值。類(lèi)型定義和值定義是通過(guò)類(lèi)型分配(typeassignment)和值分配(valueassignment)來(lái)完成的。類(lèi)型分配和值分配包含于模塊的As

9、signmentList中。類(lèi)型分配和值分配的格式如下:類(lèi)型定義語(yǔ)法:<typename>:=type類(lèi)型的賦值:<valuename><type>:=<value>2.2簡(jiǎn)單類(lèi)型1. INTEGERASN.1中沒(méi)有限制整型的位數(shù)。也就是說(shuō),整數(shù)類(lèi)型。與一般程序設(shè)計(jì)語(yǔ)言不同的是,INTEGE磯以是任意大小的整數(shù)。定義一個(gè)整型類(lèi)型CounterCouter:=INTEGERIpAddress:=Octetstring變量的賦值:例子:ipInReceivesCounter:=24502. BOOLEAN布爾型。取值為T(mén)UR或FALSE.3.REAL

10、實(shí)數(shù)類(lèi)型。和整型一樣,ASN.1中對(duì)實(shí)數(shù)的精度沒(méi)有限制。每個(gè)實(shí)數(shù)都可以表示為M*BE,即三元組M,B,E的形式,其中M1尾數(shù),B是級(jí)數(shù),E是指數(shù)。4.ENUMERATED枚舉類(lèi)型。枚舉類(lèi)型實(shí)際上是一組個(gè)數(shù)有限的整型值??梢粋€(gè)每個(gè)整型值賦以不同的意義。5.BITSTRING位串類(lèi)型,由零個(gè)或多個(gè)比特組成的有序位串。位串的值可以由對(duì)應(yīng)的二進(jìn)制或者十六進(jìn)制串表示。其中左邊的位由較高的權(quán)重。6.OCTETSTRING八位位組串。由零個(gè)或多個(gè)八位位組組成的有序串。八位位串可以用十進(jìn)制、二進(jìn)制或者十六進(jìn)制表示。7.OBJECTIDENTIFIER對(duì)象標(biāo)識(shí)符。從對(duì)象樹(shù)派生出的一系列點(diǎn)分?jǐn)?shù)字串的形式,用來(lái)標(biāo)識(shí)

11、對(duì)象。8. NULL空值類(lèi)型。這是最簡(jiǎn)單的一種類(lèi)型,它僅包含一個(gè)值一一NULL主要由于位置的填充。如果某時(shí)刻無(wú)法得知數(shù)據(jù)的準(zhǔn)確值,那么最簡(jiǎn)單的方法就是將這一數(shù)據(jù)定義為NULL1型。9. CHARACTERSTRING字符串類(lèi)型。ASN.1中定義了一些字符集不完全相同的CHARACTERSTRING!。不同類(lèi)型包含的字符集不同。字符串由雙引號(hào)擴(kuò)起。字符串類(lèi)型包括:NumericString:包含數(shù)字0到9以及空格;PrintableSting:包含所有大小寫(xiě)字母、數(shù)字、標(biāo)點(diǎn)和空格;IA5String:由取自IA5(5號(hào)國(guó)際字符表)的字符組成,它和ASCII碼基本相同;VisibleString:

12、由取自IA5的圖形字符組成;GeneralString:包含所有的標(biāo)準(zhǔn)字符。2. 2構(gòu)造類(lèi)型1. SEQUENCE序列類(lèi)型,是包含零個(gè)或者多個(gè)組成元素的有序列表。列表的不同元素可以屬于不同的數(shù)據(jù)類(lèi)型。結(jié)構(gòu)類(lèi)型定義SequenceType:=SEQUENCEElementTypeList|SEQUENCEElementTypeList:=ElementType|ElementTypeList,ElementTypeElementType:=NamedType|NamedTypeOPTIONAL|NamedTypeDEFAULTValue|COMPONENTSOFType有序列表的每個(gè)元素是由元素

13、名稱和元素類(lèi)型組成。元素類(lèi)型可以是簡(jiǎn)單類(lèi)型,也可以是定義的其他構(gòu)造類(lèi)型。元素類(lèi)型標(biāo)識(shí)符后可以跟OPTIONALDEFAULTS鍵字。OPTIONAL關(guān)鍵字表示在序列類(lèi)型的實(shí)例中該元素可以出現(xiàn),也可以不出現(xiàn)。DEFAUL俁鍵字表示序列類(lèi)型的實(shí)例中該元素具有事先指定的缺省值。COMPONENT®關(guān)鍵字表示它包含了給定序列中的所有組成元素。例子:UserAccount:=SEQUENCEusernameVisibleString,passwordVisibleString,accountNrINTEGER結(jié)構(gòu)賦值:SequenceValue:=ElementValueList|Elemen

14、tValueList:=NamedValue|ElementValueList,NamedValue例子:myAccountUserAccount:=username"steffen",password"jane51",accountNr47112.SEQUENCEOF單純序列(數(shù)組)類(lèi)型。即序列中的各項(xiàng)屬于同一類(lèi)型的ASN.1類(lèi)型。SequenceOfType:=SEQUENCEOFType|SEQUENCE例子:MemberCountries:=SEQUENCEOFVisibleString賦值:SequenceOfValue:=ValueList|

15、ValueList:=Value|ValueList,ValueeuMembersMemberCountries:="Austria","Belgium","Denmark","Finland","France","Germany","Greece","Ireland","Italy","Luxembourg","TheNetherlands","Portugal&q

16、uot;,"Spain","Sweden","UnitedKingdom"3. SET集合類(lèi)型,是包含零個(gè)或者多個(gè)組成元素的無(wú)序集合。這些元素的順序無(wú)任何意義,但是他們之間必須是不相同的,組成元素的類(lèi)型可以為不同的ASN.1類(lèi)型。SetType:=SETElementTypeList|SET例子:UserAccount:=SETusernameVisibleString,passwordVisibleString,accountNrINTEGER賦值:SetValue:=ElementValueList|例子:myAccountUse

17、rAccount:=username"steffen",password"jane51",accountNr47114. SETOF單純集合類(lèi)型,是包含零個(gè)或者多個(gè)組成元素的無(wú)序集合。這些組成元素必須為相同的ASN.1類(lèi)型。SetOfType:=SETOFType|SET例子:Keywords:=SETOFVisibleString賦值:SetOfValue:=ValueList|例子:someASN1KeywordsKeywords:="INTEGER","BOOLEAN","REAL"5.

18、CHOINCE選擇類(lèi)型,包含一個(gè)可供選擇的數(shù)據(jù)類(lèi)型列表。CHOICE類(lèi)型的每一個(gè)值都是其中某一數(shù)據(jù)類(lèi)型的值。數(shù)據(jù)可以在不同情況下取不同的值。6. ANY如果在定義數(shù)據(jù)時(shí)還不能確定數(shù)據(jù)的類(lèi)型,可以使用ANY型。ANY型可以被任何ASN.1類(lèi)型置換。7. Tagged標(biāo)簽類(lèi)型。標(biāo)簽時(shí)一個(gè)標(biāo)簽類(lèi)(class)和一個(gè)標(biāo)簽號(hào)(classnumber)組成。標(biāo)簽號(hào)是十進(jìn)制非負(fù)整數(shù)。共有四種不同的標(biāo)簽類(lèi)型。通用類(lèi)標(biāo)簽是ASN.1標(biāo)準(zhǔn)定義的,除了CHOICERANY類(lèi)型之外,所有的簡(jiǎn)單類(lèi)型和結(jié)構(gòu)類(lèi)型都具有統(tǒng)一分配的唯一標(biāo)簽。應(yīng)用類(lèi)是為具體應(yīng)用協(xié)議標(biāo)準(zhǔn)定義的,在ASN.1模塊中必須是唯一的。私有類(lèi)僅對(duì)某個(gè)企業(yè)有

19、效,它必須在該企業(yè)內(nèi)是唯一的。上下文有關(guān)類(lèi)主要由于消除歧義性,它在結(jié)構(gòu)的上下文必須是唯一的。2.3子類(lèi)型通過(guò)對(duì)某些類(lèi)型加以限制,可以定義他們的子類(lèi)型(subtype)。子類(lèi)型的值集合是其父類(lèi)型值集合的子集。定義子類(lèi)型的過(guò)程可以嵌套。2.4其他類(lèi)型1. GeneralizedTime表示時(shí)間的類(lèi)型,它有三種不同的表示方法:表示本地時(shí)間通用時(shí)間標(biāo)準(zhǔn)(UTC通過(guò)計(jì)算本地時(shí)間和UTC時(shí)間的差值來(lái)表示時(shí)間2. UTCTimeUTCTime也是表示時(shí)間的,只是精度不同,它只能精確到分或者秒。3. External外部類(lèi)型,其可區(qū)分值不能從其外部特征導(dǎo)出,但能夠從一個(gè)值的編碼中導(dǎo)出,這些值可以,但不必用AS

20、N.1描述,因而其編碼也可以不必使用ASN.1編碼規(guī)則。4. Objectdescriptor對(duì)象描述符,點(diǎn)分?jǐn)?shù)字串形式的對(duì)象標(biāo)識(shí)符不具備可讀性,為了更好的描述對(duì)象,可以使用對(duì)象描述符。對(duì)象描述符以可讀文本的形式簡(jiǎn)單地介紹對(duì)象。但是對(duì)象描述符不具有唯一標(biāo)識(shí)性,因此不能取代對(duì)象標(biāo)識(shí)符作為對(duì)象的標(biāo)識(shí)。三、基本編碼規(guī)則ASN.1數(shù)據(jù)值的編碼由按下列順序排列的四部分組成:標(biāo)識(shí)符八比特組、標(biāo)識(shí)符八比特組長(zhǎng)度八比特組內(nèi)容八比特組內(nèi)容結(jié)束八比特組圖3.1ASN.1編碼的結(jié)構(gòu)長(zhǎng)度八比特組、內(nèi)容八比特組以及內(nèi)容結(jié)束八比特組。如圖3.1所示。其中內(nèi)容八比特組只有當(dāng)長(zhǎng)度八位組的值要求內(nèi)容八比特組出現(xiàn)時(shí)才出現(xiàn)。3.1

21、 標(biāo)識(shí)符八比特組標(biāo)識(shí)符八比特組對(duì)數(shù)據(jù)值類(lèi)型的ASN.1標(biāo)記進(jìn)行編碼。ASN.1標(biāo)記由標(biāo)記類(lèi)和序號(hào)組成。標(biāo)記類(lèi)占據(jù)高三位比特位。第8、7比特的內(nèi)容由表3.1所決定。第6比特置“1/示編碼方式為構(gòu)造編碼方式,置“0/示編碼方式為元編碼方式,其余第5至第1比特表示序號(hào)(二進(jìn)制整數(shù),第5比特為最高比特),如圖3.2所示。若序號(hào)大于或等于31,則此5比特置“1”,表示后隨一個(gè)或多個(gè)后繼八比特組,后繼八比特組除最后一個(gè)八比特組之外的每個(gè)八比特組的第8比特置“1;最后一個(gè)八比特組的第8比特置“0;以第一個(gè)后繼八比特組的第7比特為最高比特,最后一個(gè)八比特組的第1比特為最后一個(gè)比特,表示標(biāo)記序號(hào)的無(wú)符號(hào)二進(jìn)制整

22、數(shù)的編碼,如圖3.3所示。表3.1標(biāo)記種類(lèi)的編碼標(biāo)記類(lèi)第8比特第7比特普通00應(yīng)用01上卜義指定10私用11后繼八比特組引導(dǎo)八比特組v第二個(gè)八比特組標(biāo)記類(lèi)P/C11111最后一個(gè)八比特組+.+.+標(biāo)記序號(hào)圖3.3ASN.1標(biāo)識(shí)符八比特組標(biāo)識(shí)符八比特組BITS87654321標(biāo)記類(lèi)P/C標(biāo)記序號(hào)04元編碼1=構(gòu)造編碼圖3.2ASN.1標(biāo)識(shí)符八比特組(低標(biāo)記序號(hào))3.2 長(zhǎng)度八比特組用長(zhǎng)度八比特組表示內(nèi)容八比特組中的八比特組數(shù)。長(zhǎng)度八比特組分為確定形和非確定形兩種。其劃分依據(jù)是:若編碼為元編碼則用確定形;若編碼是構(gòu)造的且都是立即可用的,則可用確定形或非確定形,由發(fā)送端選擇;若編碼是構(gòu)造的且不都是立

23、即可用的,則用非確定形。對(duì)于確定型,長(zhǎng)度八比特組又分為長(zhǎng)形式和短形式兩種。只有當(dāng)內(nèi)容八比特組的組數(shù)小于或等于127時(shí),才使用短形式。在短形式中,長(zhǎng)度八比特組由單個(gè)比特組組成,其中第8比特為“0”,第七比特至第1比特是內(nèi)容八比特組中的八比特組組數(shù)的編碼。在長(zhǎng)形式中,長(zhǎng)度八比特組由一個(gè)初始八比特組和一個(gè)或幾個(gè)后繼八比特組組成。初始八比特組的第8比特置“1”,第七至1比特為長(zhǎng)度八比特組為后繼八比特組的組數(shù)的編碼;后繼八比特組的編碼等于內(nèi)容八比特組中的八比特組數(shù)的無(wú)符號(hào)二進(jìn)制整數(shù)編碼。確定形的編碼如圖3.4所示。對(duì)于非確定型,長(zhǎng)度八比特組由單個(gè)八比特組80h組成,表示由內(nèi)容結(jié)束八比特組結(jié)束內(nèi)容八比特組

24、。非確定形編碼如圖3.5所示。圖3.4ASN.1確定型編碼結(jié)構(gòu)標(biāo)識(shí)符八比特組長(zhǎng)度八比特組內(nèi)容八比特組內(nèi)容結(jié)束八比特組表明內(nèi)容八比特組由內(nèi)容結(jié)束表明內(nèi)容八比特組八比特組結(jié)束=10000000中不再有編碼圖3.5ASN.1非確定型編碼結(jié)構(gòu)3.3 內(nèi)容八比特組由零、一個(gè)或多個(gè)八比特組組成的數(shù)據(jù)值編碼。內(nèi)容八比特組的編碼依賴于數(shù)據(jù)值的類(lèi)型。3.4 內(nèi)容結(jié)束八比特在非確定型編碼時(shí)出現(xiàn),由兩個(gè)零八比特組組成,如圖3.5所示。四、MAP中基本編碼規(guī)則的應(yīng)用由協(xié)議ANSITIA/EIA41D第六章,所有的MAM息(包括操作請(qǐng)求和操作響應(yīng))都是SET類(lèi)型。消息可能為空(一般是操作響應(yīng)),如InterSystem

25、Answer操作的響應(yīng)為空。若消息不為空,則帶有一個(gè)或多個(gè)參數(shù),這些參數(shù)或?yàn)楸剡x項(xiàng),或?yàn)榭蛇x項(xiàng)。4.1參數(shù)結(jié)構(gòu)定義以LocationRequest的請(qǐng)求操作為例,其在協(xié)議IA/EIA/IS-771中數(shù)據(jù)結(jié)構(gòu)描述如下:Table63LocationRequestINVOKEParametersLocationRequestINVOKEParametersTimer:LRTFieldValueTypeReferenceNotesIdentifierSETNAflONAL18M6.3,2.1LengthvariableoctetsM6.3.21ContentsBilhnglDOrigin君ting)

26、M6.5.2.16Digits(Dialed)M6.5.2.58MSCID(Originating)M6.5.2.82SystemMyTypeCode(Originating)M652,147CallingpartyNameO6.5.2.bw心CallingPartyNumberDigKsIO65.2.21aCallingpartyNumberDigits2O6.5,2.22aCallingPartySubaddress06.5.2.25aMSCIdentificationNurnherOS.5.2.83bPC_SSN(Originating)O6.5.2.93cRedirectingNumb

27、erDigitsO6.5.2.107aRedirectingPartyNameO6.5.2byaJiRedirectingSubaddressO6.5.2.109aTerminationAccessTypeO652155dTransactionCapabititHO65216CeTrigqeTyDeQ852dhIWiNCagMityQ652diq由上表可知:該消息共有13個(gè)參數(shù),其中4個(gè)必選參數(shù),9個(gè)可選參數(shù),因此在編碼時(shí)它的參數(shù)個(gè)數(shù)為:413。相應(yīng)的根據(jù)協(xié)議ANSITIA/EIA-41D和ASN.1規(guī)則,在程序中的數(shù)據(jù)結(jié)構(gòu)定義如下:/*6.4.2.27Locationrequest*/typ

28、edefstructcmBillID_TtBillID;cmBCDDigitsL_TtDigits;cmMSCID_TtMscid;BYTEbSysTypeCode;BITSbtCPNFlag:1;BITSbtCPN1Flag:1;BITSbtCPN2Flag:1;BITSbtCPSFlag:1;BITSbtMscinFlag:1;1JBITSbtPcssnFlag:1;1JBITSbtRNDFlag:1;1JBITSbtRPNFlag:1;/*addedin771*/BITSbtRSFlag:1;1JBITSbtTATFlag:1;1JBITSbtTCFlag:1;1JBITSbtTTFla

29、g:1;/*addedin771*/BITSbtWCFlag:1;/*addedin771*/BITSbtRsv:3;cmCallPartName_TtCallPartName;cmCPNumDig1_TtCPNumDig1;cmCPNumDig2_TtCPNumDig2;cmCPSubaddr_TtCPSubaddr;cmMSCIN_TtMscin;cmPCSSN_TtPcssn;cmRedirNumDig_TtRedirNumDig;cmRedirPartName_TtRedirPartName;/*addedin771*/cmRedirSubaddrTtRedirSubaddr;BYTE

30、bTermAccType;cmTranCapa_TtTranCapa;cmTrigType_TtTrigType;/*addedin771*/cmWINCapa_TtWINCapa;/*addedin771*/cmLocReqReq_T;4. 2參數(shù)結(jié)構(gòu)編碼利用基本編碼規(guī)則將這個(gè)結(jié)構(gòu)進(jìn)行編碼,結(jié)果如下(改數(shù)據(jù)來(lái)自實(shí)驗(yàn)局的真實(shí)碼流):8107000D0100042400840A0100210B3133390900039503000D019601279F500A0230210B3133390900F19F5E0C0001610F64000339391900F09F200509272727089F7

31、701FC9F7B02FF3E9F82170120BF82180C9F821503FFFF1F9F82190103下面對(duì)各個(gè)參數(shù)的編碼(長(zhǎng)生碼流)過(guò)程進(jìn)行具體說(shuō)明:1 .參數(shù)tBillID第一部分:在協(xié)、議TIA/EIA-41的表Table112TIA/EIA-41MAPParameterIdentifiers中可以查到ParameterIdentifierCode為10000001B(二進(jìn)制),也就是0x81(十六進(jìn)制),可以得到81:計(jì)費(fèi)ID第二部分由基本編碼規(guī)則可知,第二部分是長(zhǎng)度八比特組,同樣在協(xié)、議TIA/EIA-41的6.5.2.16節(jié)Figure23BillingIDparame

32、ter可知,其長(zhǎng)度為7,可以得到長(zhǎng)度八比特組為0X0707:參數(shù)長(zhǎng)度第三部分由基本編碼規(guī)則可知,第三部分是內(nèi)容八比特組,其長(zhǎng)度為7:000D0100042400同理,可以對(duì)其他參數(shù)進(jìn)行編碼。2 .參數(shù)tDigits84:數(shù)字(撥號(hào))0A:參數(shù)長(zhǎng)度0100210B3133390900033 .參數(shù)tMscid95:MSCID嶺發(fā)系統(tǒng))03:參數(shù)長(zhǎng)度000D014 .參數(shù)bSysTypeCode96:系統(tǒng)類(lèi)型碼01:參數(shù)長(zhǎng)度275 .參數(shù)tCPNumDig19F50:主叫號(hào)碼數(shù)字10A:參數(shù)長(zhǎng)度0230210B3133390900F16 .參數(shù)tMscin9F5E:MS以別數(shù)字0C:參數(shù)長(zhǎng)度0001610F64000339391900F07 .參

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論