fbpx
维基百科

ASN.1

电信计算机网络领域,ASN.1Abstract Syntax Notation One) 是一套标准,是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。[1]

ASN.1
抽象句法符号一
状态已生效
开始年1984
最新版本(02/21)
February 2021
组织ITU-T
有关标准X.690
网站https://www.itu.int/rec/T-REC-X.680/

标准简介 编辑

ASN.1是ISOITU-T的联合标准,最初是1984年的CCITT X.409:1984的一部分。由于其广泛应用,1988年ASN.1移到独立标准X.208,1995年进行全面修订后变成X.680系列标准。

ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种ASN.1的编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达)。标准的ASN.1编码规则有:

  • 基本编码规则(BER,Basic Encoding Rules)
  • 规范编码规则(CER,Canonical Encoding Rules)
  • 唯一编码规则(DER,Distinguished Encoding Rules)
  • 压缩编码规则(PER,Packed Encoding Rules)
  • XML编码规则(XER,XML Encoding Rules)

为了使ASN.1能够描述一些原先没有使用ASN.1定义,因此不适用上述任一编码规则的数据传输和表示的应用和协议,另外制订了ECN来扩展ASN.1的编码形式。ECN可以提供非常灵活的表明方法,但还没有得到普遍应用。

ASN.1与特定的ASN.1编码规则一起通过使用独立于计算机架构和编程语言的方法来描述数据结构,为结构化数据的交互提供了手段,特别是在网络环境的应用程序。

应用 编辑

应用层协议如X.400(email)、X.500LDAP目录服务)、H.323VoIP)和SNMP使用 ASN.1 描述它们交互的协议数据单元。在UMTS的接入和非接入层也有广泛的应用。ASN.1的其他应用领域参见此处。

工具 编辑

这里列举了很多ASN.1的自由或者商业的工具。

给定了协议内容并选定了编码规则,很多工具可以生成读(解码)写(编码)PTU的C/C++、Java、C#、Python等源代码。

ASN.1是一种和平台、语言无关的描述语言,可以使用很多ASN.1的翻译工具,将ASN.1翻译成为C, C++, Java等代码。用于跨平台编程的protocol buffers和Apache Thrift具有类似功用。

範例 编辑

FooProtocol 結構的定義係使用 ASN.1 表示法:

FooProtocol DEFINITIONS ::= BEGIN FooQuestion ::= SEQUENCE { trackingNumber INTEGER, question IA5String } FooAnswer ::= SEQUENCE { questionNumber INTEGER, answer BOOLEAN } END

ASN.1沒有定義的談話流動。 這是協議的文本描述。

假設消息,符合與foo的協議將被發送到接收方。這種特定的消息(PDU):

myQuestion FooQuestion ::= { trackingNumber 5, question "Anybody there?" }

要通過網絡發送上述消息,需要編碼成位元字串(string of bits)。ASN.1定義了不同的算法來完成這項任務,被稱為編碼規則。有很多,最簡單的一個是DER.

Foo協議規範應明確名稱一套編碼規則的使用,Foo的協議,使用者 知道他們應該使用哪一個。

DER的編碼範例 编辑

下面顯示DER編碼格式(皆16進位)的數據結構:

30 -- 標籤說明 SEQUENCE 13 -- octets長度 02 -- 標籤說明 INTEGER 01 -- octets長度 05 -- value 16 -- 標籤說明 IA5String 0e -- octets長度 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f -- value ("Anybody there?" in ASCII) 

(Note: DER uses a pattern of type-length-value英语Type-length-value triplets)

人們實際上得到的是21個octets:

30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f

ASN.1 的範圍與 DER 結束於此. It is possible to transmit the encoded message to the party by any means (utilizing TCP or any other protocol). The party should be able to decode the octets back using DER.

XER編碼的範例 编辑

另外,它是可能的編碼用XER (ASN.1) 來獲取更多人類可讀性 "over the wire". 可以產生下列的 108 octets:

<FooQuestion> <trackingNumber>5</trackingNumber> <question>Anybody there?</question> </FooQuestion> 

PER 範例(未對齊) 编辑

另外,採用壓縮編碼規則(Packed Encoding Rules), 會產生下列 122 bits (小於16 octets):

01 05 0e 83 bb ce 2d f9 3c a0 e9 a3 2f 2c af c0

标准下载 编辑

(从ITU-T网站免费下载(页面存档备份,存于互联网档案馆))

描述ASN.1记法的标准:

  • ITU-T Rec. X.680 | ISO/IEC 8824-1
  • ITU-T Rec. X.681 | ISO/IEC 8824-2
  • ITU-T Rec. X.682 | ISO/IEC 8824-3
  • ITU-T Rec. X.683 | ISO/IEC 8824-4

描述ASN.1编码规则的标准

  • ITU-T Rec. X.690 | ISO/IEC 8825-1 (BER, CER and DER)
  • ITU-T Rec. X.691 | ISO/IEC 8825-2 (PER)
  • ITU-T Rec. X.692 | ISO/IEC 8825-3 (ECN)
  • ITU-T Rec. X.693 | ISO/IEC 8825-4 (XER)

参见 编辑

  • Federal Standard 1037C
  • MIL-STD-188。

本條目部分或全部内容出自以GFDL授權發佈的《自由線上電腦詞典》(FOLDOC)。

参考 编辑

  1. ^ . www.itu.int. [2021-04-29]. (原始内容存档于2021-04-23). 

外部链接 编辑

在电信和计算机网络领域, abstract, syntax, notation, 是一套标准, 是描述数据的表示, 编码, 传输, 解码的灵活的记法, 它提供了一套正式, 无歧义和精确的规则以描述独立于特定计算机硬件的对象结构, 抽象句法符号一状态已生效开始年1984最新版本, february, 2021组织itu, t有关标准x, 690网站https, 目录, 标准简介, 应用, 工具, 範例, der的編碼範例, xer編碼的範例, 範例, 未對齊, 标准下载, 参见, 参考, 外部链接标准简介, 编辑是i. 在电信和计算机网络领域 ASN 1 Abstract Syntax Notation One 是一套标准 是描述数据的表示 编码 传输 解码的灵活的记法 它提供了一套正式 无歧义和精确的规则以描述独立于特定计算机硬件的对象结构 1 ASN 1抽象句法符号一状态已生效开始年1984最新版本 02 21 February 2021组织ITU T有关标准X 690网站https www itu int rec T REC X 680 目录 1 标准简介 2 应用 3 工具 4 範例 4 1 DER的編碼範例 4 2 XER編碼的範例 4 3 PER 範例 未對齊 5 标准下载 6 参见 7 参考 8 外部链接标准简介 编辑ASN 1是ISO和ITU T的联合标准 最初是1984年的CCITT X 409 1984的一部分 由于其广泛应用 1988年ASN 1移到独立标准X 208 1995年进行全面修订后变成X 680系列标准 ASN 1本身只定义了表示信息的抽象句法 但是没有限定其编码的方法 各种ASN 1的编码规则提供了由ASN 1描述其抽象句法的数据的值的传送语法 具体表达 标准的ASN 1编码规则有 基本编码规则 BER Basic Encoding Rules 规范编码规则 CER Canonical Encoding Rules 唯一编码规则 DER Distinguished Encoding Rules 压缩编码规则 PER Packed Encoding Rules XML编码规则 XER XML Encoding Rules 为了使ASN 1能够描述一些原先没有使用ASN 1定义 因此不适用上述任一编码规则的数据传输和表示的应用和协议 另外制订了ECN来扩展ASN 1的编码形式 ECN可以提供非常灵活的表明方法 但还没有得到普遍应用 ASN 1与特定的ASN 1编码规则一起通过使用独立于计算机架构和编程语言的方法来描述数据结构 为结构化数据的交互提供了手段 特别是在网络环境的应用程序 应用 编辑应用层协议如X 400 email X 500和LDAP 目录服务 H 323 VoIP 和SNMP使用 ASN 1 描述它们交互的协议数据单元 在UMTS的接入和非接入层也有广泛的应用 ASN 1的其他应用领域参见此处 1 工具 编辑这里 2 列举了很多ASN 1的自由或者商业的工具 给定了协议内容并选定了编码规则 很多工具可以生成读 解码 写 编码 PTU的C C Java C Python等源代码 ASN 1是一种和平台 语言无关的描述语言 可以使用很多ASN 1的翻译工具 将ASN 1翻译成为C C Java等代码 用于跨平台编程的protocol buffers和Apache Thrift具有类似功用 範例 编辑FooProtocol 結構的定義係使用 ASN 1 表示法 FooProtocol DEFINITIONS BEGIN FooQuestion SEQUENCE trackingNumber INTEGER question IA5String FooAnswer SEQUENCE questionNumber INTEGER answer BOOLEAN END ASN 1沒有定義的談話流動 這是協議的文本描述 假設消息 符合與foo的協議將被發送到接收方 這種特定的消息 PDU myQuestion FooQuestion trackingNumber 5 question Anybody there 要通過網絡發送上述消息 需要編碼成位元字串 string of bits ASN 1定義了不同的算法來完成這項任務 被稱為編碼規則 有很多 最簡單的一個是DER Foo協議規範應明確名稱一套編碼規則的使用 Foo的協議 使用者 知道他們應該使用哪一個 DER的編碼範例 编辑 下面顯示DER編碼格式 皆16進位 的數據結構 30 標籤說明 SEQUENCE 13 octets長度 02 標籤說明 INTEGER 01 octets長度 05 value 16 標籤說明 IA5String 0e octets長度 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f value Anybody there in ASCII Note DER uses a pattern of type length value 英语 Type length value triplets 人們實際上得到的是21個octets 30 13 02 01 05 16 0e 41 6e 79 62 6f 64 79 20 74 68 65 72 65 3f ASN 1 的範圍與 DER 結束於此 It is possible to transmit the encoded message to the party by any means utilizing TCP or any other protocol The party should be able to decode the octets back using DER XER編碼的範例 编辑 另外 它是可能的編碼用XER ASN 1 來獲取更多人類可讀性 over the wire 可以產生下列的 108 octets lt FooQuestion gt lt trackingNumber gt 5 lt trackingNumber gt lt question gt Anybody there lt question gt lt FooQuestion gt PER 範例 未對齊 编辑 另外 採用壓縮編碼規則 Packed Encoding Rules 會產生下列 122 bits 小於16 octets 01 05 0e 83 bb ce 2d f9 3c a0 e9 a3 2f 2c af c0标准下载 编辑 从ITU T网站免费下载 页面存档备份 存于互联网档案馆 描述ASN 1记法的标准 ITU T Rec X 680 ISO IEC 8824 1 ITU T Rec X 681 ISO IEC 8824 2 ITU T Rec X 682 ISO IEC 8824 3 ITU T Rec X 683 ISO IEC 8824 4描述ASN 1编码规则的标准 ITU T Rec X 690 ISO IEC 8825 1 BER CER and DER ITU T Rec X 691 ISO IEC 8825 2 PER ITU T Rec X 692 ISO IEC 8825 3 ECN ITU T Rec X 693 ISO IEC 8825 4 XER ASN 1标准列表参见 编辑TTCN ECNFederal Standard 1037C MIL STD 188 本條目部分或全部内容出自以GFDL授權發佈的 自由線上電腦詞典 FOLDOC The ASN 1 Consortium 页面存档备份 存于互联网档案馆 ASN 1 C C Java Tools 页面存档备份 存于互联网档案馆 Online ASN 1 decoder Free online tool ASN 1 IDE Editor Compilers 页面存档备份 存于互联网档案馆 ASN 1 相关站点 参考资料 其他 ASN 1教程 微軟知識庫 XGEN A 简短简介 BER 和 ASN 1 页面存档备份 存于互联网档案馆 参考 编辑 X 680 Information technology Abstract Syntax Notation One ASN 1 Specification of basic notation www itu int 2021 04 29 原始内容存档于2021 04 23 外部链接 编辑ASN 1 Made Simple 页面存档备份 存于互联网档案馆 ASN 1 页面存档备份 存于互联网档案馆 A Layman s Guide to a Subset of ASN 1 BER and DER 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title ASN 1 amp oldid 77569961, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。