歡迎來到通信人在線![用戶登錄] [免費注冊]

抽象語法記法(ASN.1)及其標準介紹

瀏覽:9560  來源:通信人在線  日期:2017-08-29

通信設備需要相互傳輸數據,但是設備可能是由不同廠家生產的,其硬件體系結構、程序語言的語法定義和程序功能實現一般是不相同的。例如,在一臺設備中,整形數據類型是16位表示,而在另一臺則可能用32位表示。這些差異導致了同一數據對象在不同的設備上被表示為不同的符號串。為了解決以上問題,ISO組織推出了抽象語法表符號1ASN.1Abstract Syntax Notation One)。ASN.1通過定義若干簡單類型和復合類型,使得各個設備對其間交換消息的數據類型有了一致的認識。系統(tǒng)的消息發(fā)送方采用編碼規(guī)則(BERPER)將ASN.1描述的消息編碼成二進制字節(jié)流;消息接受方對收到的字節(jié)流進行解碼,再轉化為符合其自身語法的消息格式。這樣,經過ASN.1處理的消息獨立于應用環(huán)境,就不會因為系統(tǒng)終端的區(qū)別而產生歧義。基于H.323協議的視頻會議系統(tǒng)的信令消息就是采用ASN.1來表示的。

80年代初,當時的國際電報電話咨詢委員會(CCITT)將應用于E-mail MHS協議的基本記法和解碼格式進行了標準化,形成了X.409方案,這是ASN.1的前身。該標準后來被ISO組織采用并將其分為抽象語法記法和傳輸語法,形成了ISO/IEC 8824ISO/IEC 8825兩個系列標準,且版本在不斷更新之中(目前是2015年版本)。CCITT1989年相應地發(fā)布了X.208ASN.1)和X.209BER)取代了X.409。但后來由國際電信聯盟(ITU)在1994年頒布的數據結構基本描述X.680Specification of basic notation)、信息對象描述X.681Information object specification)、約束描述X.682Constraint specification)和規(guī)范的參數化X.683Parameters of ASN.1 specification)等系列標準代替了X.208X.209也被ITU1994年的X.690~ X.696所代替。X.680系列和X.690系列又分別于1997年、2002年和2015年更新了版本。ITU-TX.680系列和X.690系列分別與ISO8824系列和8825系列相對應;我國從1996年開始也陸續(xù)頒布了相應的國家標準。

欲進一步了解我國關于ASN.1的相關標準索引的請進入

根據標準X.680ASN.1定義的數據結構類型分為簡單類型和復合類型。基本類型是ASN.1描述數據結構的基礎;復合類型是通過基本類型的組合而形成的較復雜的類型。

基本類型包括BOOLINTEGERREALBIT STRINGOCTET STRINGENUMERATEDOBJECT IDENTIFIERNULL等。這些類型的注釋詳見下表1ASN.1里定義的每個基本對象都有一個對應的數字標識Tag,在進行二進制編碼的時候需要使用該標志。ASN.1定義的部分基本數據類型,其各字段的含義、標識Tag詳見下表2

1:基本類型的注釋

2ASN.1定義的基本數據類型

復合類型有SEQENCESETCHOICESEQUENCE OFSET OF等。其中SEQUENCESET類型可表示一組不同數據類型的集合,相當于C語言中的struct結構體;CHOICE類型是表示選擇一組數據類型中的一個,相當于C語言中的union聯合體;SEQUENCE OF SET OF類型定義了同一數據類型元素的集合,相當于C語言中的數組。兩者的差別是:SEQUENCE OF內各項元素是有序的,而SET OF結構中各項元素的順序是任意的。

ASN.1 取得成功的一個主要原因是它與幾個標準化編碼規(guī)則相關,如基本編碼規(guī)則(BER)、規(guī)范編碼規(guī)則(CER)、識別名編碼規(guī)則(DER)、壓縮編碼規(guī)則(PER)和 XER 編碼規(guī)則(XER)。這些編碼規(guī)則(分別由X.690系列所規(guī)范)描述了如何對 ASN.1 中定義的數值進行編碼,以便用于傳輸,而不管計算機、編程語言或它在應用程序中如何表示等因素。ASN.1的編碼方法比許多與之相競爭的標記系統(tǒng)更先進,它支持可擴展信息快速可靠的傳輸--在無線寬帶中,這是一種優(yōu)勢。1984年,ASN.1就已經成為了一種國際標準,它的編碼規(guī)則已經成熟并在可靠性和兼容性方面擁有更豐富的歷程。

簡潔的二進制編碼規(guī)則(BERCERDERPER,但不包括 XER)可當作更現代XML的替代。然而,ASN.1支持對數據的語義進行描述,所以它是比XML更為高級的語言。

 


附錄
聯合國兒童基金會助學
© 2004-2025 通信人在線 版權所有 備案號:粵ICP備06113876號 網站技術:做網站
主站蜘蛛池模板: 六枝特区| 古丈县| 德州市| 申扎县| 陆河县| 光山县| 通化县| 芦山县| 莱州市| 弥勒县| 乌拉特中旗| 西吉县| 朝阳市| 常山县| 仙游县| 都昌县| 泰顺县| 广饶县| 洞头县| 洪泽县| 兰西县| 左云县| 临江市| 深水埗区| 长岛县| 方正县| 城步| 兴宁市| 阳高县| 仁怀市| 闵行区| 四川省| 昌乐县| 清镇市| 赣榆县| 舞钢市| 北海市| 搜索| 安平县| 永丰县| 蒙阴县|