1 ASN.1 定義
不同系統(tǒng)之間通信需要面對的一個基本問題是數(shù)據(jù)從發(fā)送端到接收端的高效轉(zhuǎn)換怕篷。在 OSI(開發(fā)式系統(tǒng)互聯(lián)參考模型) 參考模型丑搔,為了方便數(shù)據(jù)傳輸蜘矢,數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)都表現(xiàn)為應(yīng)用層的一個函數(shù)接口妈候。在表示層完成數(shù)據(jù)到規(guī)定地可傳輸?shù)亩M(jìn)制序列的轉(zhuǎn)換犀概。功能的分離使得應(yīng)用層僅承擔(dān)
處理數(shù)據(jù)的內(nèi)容和結(jié)構(gòu)立哑,而將數(shù)據(jù)表示的工作留給表示層。與這種分離機(jī)制相應(yīng)地姻灶,我們提出一種數(shù)據(jù)和結(jié)構(gòu)表示的抽象語法铛绰,這種標(biāo)記語法就是 ASN.1(Abstract Syntax Notation One)。
2 ASN.1 的目的
ASN.1 是用戶在應(yīng)用層使用的一個基本工具产喉。它提供了描述將在兩個完全獨立的系統(tǒng)之間交換的數(shù)據(jù)的能力捂掰。
ASN.1 提供給了應(yīng)用層和協(xié)議開發(fā)者一個高級工具-----一種數(shù)據(jù)定義語言,該語言定義了可以再不同系統(tǒng)間通信的協(xié)議語法和信息曾沈。ASN.1描述的數(shù)據(jù)結(jié)構(gòu)能夠本地化為某一系統(tǒng)本地數(shù)據(jù)定義这嚣。ASN.1 的很多語法定義都跟程序語言的數(shù)據(jù)類型定義類似。
3 例釋
如果需要將一個數(shù)據(jù)從系統(tǒng) A 傳輸?shù)较到y(tǒng) B塞俱,這兩個系統(tǒng)是不同操作系統(tǒng)也應(yīng)用程序也使用不同的編程語言姐帚。若僅僅是這兩個系統(tǒng)之間可以各自用特定的方法來進(jìn)行編碼與解碼數(shù)據(jù),但是若是 N 個不同系統(tǒng)之間需要數(shù)據(jù)通信障涯,則帶來的編碼和解碼的復(fù)雜度就變成不可實現(xiàn)了罐旗。從而引出一個更好的解決方案,使得數(shù)據(jù)的表示唯蝶、編碼和解碼獨立于系統(tǒng)九秀,使得不同系統(tǒng)能夠使用一套統(tǒng)一的數(shù)據(jù)表、編碼和解碼的方法粘我。
4 綜述
綜上所述鼓蜒,ASN.1 提供了一套數(shù)據(jù)類型表示和定義的方法,并且提供相應(yīng)的編碼和解碼的規(guī)則涂滴,使得不同的系統(tǒng)之間可以采用統(tǒng)一的一套方式進(jìn)行數(shù)據(jù)的通信友酱。