XGEN: A 簡短介紹 ASN.1 及 BER

文章翻譯 文章翻譯
文章編號: 252648 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

本文將說明 ASN.抽象語法表示法一 (1) 和基本編碼規則 (BER),並釐清這兩個差異。

許多資訊技術工作者,包括 seasoned 專業人員多半混了哪個 ASN.1 及 BER 位於,差異之間在兩個或甚至不同的是很重要的原因。甚至那些也經常知道 ASN.1 及 BER 的人使用條款不正確時,理解其混淆。

由於 ASN.1 的標準語言是很常見尋找以 ASN.1 撰寫的標準建議。支援專業人員、 顧問和資訊技術專家攤好處從知道 ASN.1,因為它可讓他們深深入標準和解碼,並瞭解它們的疑難排解的資料內容。最常見的標準所撰寫的 ASN.1 是那些由國際電報和電話諮詢委員會 (CCITT) 和 [國際電信聯集 (ITU) 所產生。不過,成員的 「 網際網路工程任務推動小組 (IETF) 逐漸正在使用 ASN.1 到簡潔狀態其建議。ASN.1 說在一個頁面中要以其他格式寫出何種否則花五或六個頁面。

以下是以 ASN.1 撰寫的常用標準清單:
  • X.400 (電子訊息)
  • X.500 (目錄服務)
  • X.200 (網路通訊)
  • 為註解 (RFC) 要求 2251年-2256 (輕量型目錄存取通訊協定或 LDAP)
  • 說太多其他 RFC
任何電腦或人員希望真的設定本身分開的資料通訊專家需要有 ASN.1 及 BER 對至少有基本的了解。在閱讀和瞭解 ASN.1 及 BER fluency 因為 Microsoft Windows 2000 和 Microsoft Exchange 2000 Server 實作在一個表單或另一個上述的標準,使得疑難排解這些兩種產品的簡單多了。

其他相關資訊

ASN.1

抽象語法表示法一 (更常稱為 ASN.1) 是一種語言,用來定義標準而不考慮實作。它是標準寫入器的語言。當 John Smith CalTech 想?寫入為標準化程序建議該一個元件在後面的另一個元件與交談時,他將建議寫入以 ASN.1 表示法,並送出標準的主體,如 [ITU 建議。ASN.1,透過提供共通的語言來描述一種標準協助專業人員和委員會成員之間的通訊。ASN.1 定義在 ITU-T 建議 X.209 和 X.690。


ASN.1 的定義,例如:
  • 一個 」 是什麼類型 」。
  • 什麼是 「 模組 」,外觀應該。
  • 什麼是一個整數。
  • 什麼是布林值。
  • 一個 「 結構化是什麼類型 」。
  • 某些關鍵字表示什麼 (針對範例、 BEGIN、 結束、 IMPORT、 匯出、 外部,等)。
  • 「 標記 」 型別,以便可以適當地編碼的方式。
ASN.1 有沒有考慮到任何特定標準,編碼方式、 程式設計語言或硬體平台。它是只是用來定義標準語言。或者亦即以 ASN.1 撰寫標準。

BER

BER (明顯"burr 」) 是常見的名稱為基本的編碼方式的 ASN.1 的規則。BER 被定義在 ITU-T 建議 X.209 和 X.690。BER 是一組規則的 ASN.1 資料至資料流,可以透過通訊連結傳輸八位元資料組的編碼。編碼 ASN.1 資料的其他方法包括辨別編碼規則 (DER)、 正式編碼規則 (CER) 及封裝編碼規則 (PER)。每一種編碼方式的方法有它的應用程式,但是 BER 傾向於被編碼方法最常使用,而且最常談有關。

BER 定義:
  • ASN.1 值的編碼方式的方法。
  • 決定何時使用指定的方法的規則。
  • 在資料中的特定八位元資料組的格式。

對比 ASN.1 及 BER

ASN.1 是像程式設計的語言 (如 C),而 BER 就像該語言的編譯器。編譯器是平台特定,而不是許多高階的程式設計語言。C 定義規則和撰寫程式的語言。程式不是 C ; 它所撰寫 C。針對特定的平台 (如 Intel x86) 編譯時,才有用程式。所以它是與 ASN.1 及 BER。ASN.1 是撰寫一個標準的語言。一種標準不 ASN.1; 它以 ASN.1 撰寫。從符合標準的程式產生的資料可能都鬆散稱為 ASN.1 資料。 ASN.1 資料並不是很有用 (也就是它無法傳輸跨區域網路 (LAN) 直到 ASN.1 資料編碼成可以在目的端是很容易解碼的八位元組資料流。為了說明,下列是衍生自附錄我 ITU-T 建議事項 X.209 這些概念的範例。這是人事資料記錄的非正式描述:
   Name:             John P Smith
   Date of Birth:    17 July 1959
   (other data)
					
可能的人事記錄 (標準) ASN.1 描述:
   PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
       Name,
       title [0]       VisibleString,
       dateOfBirth [1]          Date,
       (other types defined)          }

   Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
       givenName       VisibleString,
       initial         VisibleString, 
       familyName      VisibleString  }
					
這個 ASN.1 說明描述一個 PersonnelRecord 的樣貌。但更重要的是它說明了如何應用程式資料應格式化,讓它變成 ASN.1 資料編碼方式進行之前。

接下來,應用程式將人事資料對應到人事記錄結構 (ASN.1 資料格式),然後將 [基本編碼規則 (BER) 套用於 ASN.1 資料。這是什麼它看起來會像 (與例外狀況,名稱會被轉換成 ASCII):
  Personnel
  Record     Length   Contents
  60         8185
                      Name     Length  Contents
                      61       10
                                       VisibleString  Length  Contents
                                       1A             04      "John"
                                       VisibleString  Length  Contents
                                       1A             01      "P"
                                       VisibleString  Length  Contents
                                       1A             05      "Smith"

                       DateofBirth     Length  Contents
                       A0              0A
                                               Date    Length  Contents
                                               43      08      "19590717"
					
當所有是說和完成,什麼實際取得傳輸 (或更特別的是什麼會成為資料 portion 封包在下一層的向下) 是:
60 81 85 61 10 1A 04 ....
....  0A 43 08 19 59 07 17
					

?考

ASN.1 的詳細資訊,參考 ITU-T 建議事項 X.680 透過 683。
上 BER 的詳細資訊,參考本身 (ITU-T 建議事項 X.690 或 X.691) 建議事項。

如需詳細資訊參閱 [ITU-T 研究群組 17 Web 網頁上的 ["變更從 ASN.1:1988 到 ASN.1:2002"]:
http://www.itu.int/ITU-T/studygroups/com17/changing-ASN/

屬性

文章編號: 252648 - 上次校閱: 2007年2月22日 - 版次: 4.4
這篇文章中的資訊適用於:
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
關鍵字:?
kbmt kbinfo KB252648 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:252648
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com