抽象語法記法

抽象語法記法(ASN.1)是一種ISO/ITU-T標準,描述了一種對數據進行表示、編碼、傳輸和解碼的數據格式。

抽象語法記法(ASN.1)是一種ISO/ITU-T標準,描述了一種對數據進行表示、編碼、傳輸和解碼的數據格式。它提供了一整套正規的格式用於描述對象的結構,而不管語言上如何執行及這些數據的具體指代,也不用去管到底是什麼樣的應用程式—不論是非常複雜的,還是非常簡單的。

概述

在任何需要以數字方式傳送信息的地方,ASN.1都可以傳送各種形式的信息(聲頻視頻、數據等等)。ASN.1和特定的ASN.1編碼規則推進了結構化數據的傳輸,尤其是網路中應用程式之間的結構化數據傳輸,它以一種獨立於計算機架構和語言的方式來描述數據結構。

ISO協定套中的套用層協定使用了ASN.1來描述它們所傳輸的PDU,這些協定包括:用於傳輸電子郵件的X.400、用於目錄服務的X.500、用於VoIP的H.323和SNMP。它的套用還可以擴展到通用移動通信系統(UMTS)中的接入和非接入層。

原理

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

簡潔的二進制編碼規則(BER、CER、DER、PER,但不包括XER)可當作更現代XML的替代。然而,ASN.1支持對數據的語義進行描述,所以它是比XML更為高級的語言。ASN.1的描述可以容易地映被射成C或C++或Java的數據結構,並可以被應用程式代碼使用,並得到運行時程式庫的支持,進而能夠對編碼和解碼XML或TLV格式的,或一種非常緊湊的壓縮編碼格式的描述。

協定結構

ASN.1提供了一些基本的預定義數據類型:
UNIVERSAL0保留給編碼規則使用
UNIVERSAL1布爾類型
UNIVERSAL2整型
UNIVERSAL3二進制字元串類型
UNIVERSAL4八進制字元串類型
UNIVERSAL5空類型
UNIVERSAL6對象標識符類型
UNIVERSAL7對象描述符類型
UNIVERSAL8外部類型和類型實例
UNIVERSAL9實數類型
UNIVERSAL10枚舉類型
UNIVERSAL11嵌入的pdv類型
UNIVERSAL12UTF8字元串類型
UNIVERSAL13相關對象標識符類型
UNIVERSAL14-15保留給本建議的以後版本和國際標準使用
UNIVERSAL16序列和類型序列
UNIVERSAL17集合和類型的集合
UNIVERSAL18-22,25-30字元串類型
UNIVERSAL23-24時間類型
UNIVERSAL31-...保留給本建議以外的類型和國際標準使用
ASN.1還能夠定義如下的數據結構類型:
結構(SEQUENCE),
列表(SEQUENCEOF),
類型選擇(CHOICE),

相關詞條


相關詞條

相關搜尋

熱門詞條

聯絡我們