XGEN: A Brief ASN.1 和介绍 BER

文章翻译 文章翻译
文章编号: 252648 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文描述抽象语法表示法一 (ASN.1) 和 $ 基本编码规则 (BER),并阐明了这两种差异。

很多的信息技术工人包括经验丰富的专业人员通常是关于什么的 ASN.1 和 BER,区别是两者,之间或偶数区别很重要的原因感到困惑。很好地频繁地知道 ASN.1 和 BER 甚至那些人错误地使用术语时,其混乱是可以理解。

由于 ASN.1 是标准的语言,它是非常普遍用 ASN.1 编写的标准建议。支持专业人员、 咨询人员和信息技术专业人员都受益知道 ASN.1,因为它允许他们深入深入探讨了标准和解码,并了解它们进行故障排除的数据的内容。用 ASN.1 编写的最常见标准是由国际电报和电话咨询委员会 (CCITT) 和国际电信联盟 (ITU) 生成。但是,成员的 Internet 工程任务组 (IETF) 越来越多地使用 ASN.1 简洁声明它们的建议。ASN.1 一页显示为其他格式中写出哪些否则为需要 5 或 6 个页面。

以下是用 ASN.1 编写的常用标准的列表:
  • X.400 (电子邮件)
  • X.500 (目录服务)
  • X.200 (网络通信)
  • 请求的注释 (rfc) 2251年 2256 (轻型目录访问协议或 LDAP)
  • 要说明太多其他的 rfc
任何计算机或希望真正与众不同本身的数据通信专家需要有 ASN.1 和 BER 有至少一个基本的了解。因为 Microsoft Windows 2000 和 Microsoft Exchange 2000 Server 实现在一个窗体或其他上面提到的标准,流畅性中阅读和了解 ASN.1 和 BER 使解决那些这两种产品的要容易得多。

更多信息

ASN.1

抽象语法表示法一 (通常称为 ASN.1) 是用于定义与实现无关的标准语言。它是标准编写器的语言。当 John Smith CalTech 想编写该组件的一个建议的标准化过程在后面的与另一个组件时,他 ASN.1 表示形式写入该建议,并提交到一个标准主体,如 ITU 建议。ASN.1 促进专业人员和委员会成员之间的通信通过提供一种用于描述一种标准的公共语言。ITU-T 中定义的 ASN.1 建议 X.209 和 X.690。


例如对于 ASN.1 定义:
  • 是什么"类型"。
  • 什么是"模块",它的外观。
  • 什么是一个 integer 值。
  • 什么是一个布尔值。
  • 是什么"结构化的类型"。
  • 某些关键字对意味着什么 (例如、 BEGIN、 END、 导入、 出口、 外部,等等)。
  • "标记"类型,以便正确编码的方法。
ASN.1 有没有考虑任何特定标准编码方法、 编程语言或硬件平台。它是只是一种语言,用于定义标准。或者,也就标准用 ASN.1 编写。

BER

BER (pronounced"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

而 BER 就像该语言的编译器,ASN.1 就像一种编程语言 (如 C)。编译器都是特定于平台,而不是许多高级的编程语言。C 定义规则和编写程序的语言。程序不是 C,它编写的 c。直到它被编译为一个特定的平台 (诸如 Intel x86),程序不是很有用。因此,使用 ASN.1 和 BER。ASN.1 是编写一个标准的语言。一种标准,并不是 ASN.1 ; 它用 ASN.1 编写。从符合标准的程序生成的数据可能松散地称作"ASN.1 数据。 ASN.1 数据不是很有用 (也就是它不能跨传输 LAN) 直到 ASN.1 数据进行编码到的目标位置可以是很容易地解码字节流。为了说明,下面就是源自附录 I 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"
					
当所有是说并完成,什么实际获取传输 (或更具体地说就是哪些将成为数据部分为在下一层数据包向下) 是:
60 81 85 61 10 1A 04 ....
....  0A 43 08 19 59 07 17
					

参考

有关 ASN.1 的详细信息,请参阅通过 683 的 ITU-T 推荐 X.680。
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 标准版
  • Microsoft Exchange 2000 Server 标准版
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
关键字:?
kbmt kbinfo KB252648 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 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