ASN.1

✍ dations ◷ 2025-08-27 00:06:58 #ASN.1

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

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的其他应用领域参见此处。

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

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编码格式(皆16进制)的数据结构:

30 -- 標籤說明 SEQUENCE13 -- octets長度02 -- 標籤說明 INTEGER01 -- octets長度05 -- value16 -- 標籤說明 IA5String0e -- 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 (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记法的标准:

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

ASN.1标准列表

本条目部分或全部内容出自以GFDL授权发布的《自由线上电脑词典》(FOLDOC)。

相关

  • 不孕症不孕(英语:Infertility)又称不育,是指人类、动物或植物无法透过有性生殖繁衍后代的情形。对于大部分健康的成熟动植物个体而言,会在生命中的特定时期内有生育能力,不过真社会性物
  • 恐怖袭击恐怖活动(英语:terror)是指恐怖份子制造的危害社会稳定、危及平民的生命与财产安全的一切形式的活动,通常表现为针对平民的大规模伤害、袭击公共交通工具和绑架等形式,与恐怖活动
  • 会厌闪音会厌闪音是辅音的一种,就目前所知不是任何语言的音素,但在达哈洛语(英语:Dahalo language)等语言中以清会厌塞音/ʡ/之元音间浊同位音的形式存在。伊拉克阿拉伯语中也可能存有会
  • 昇立化工昇立化工控股有限公司,简称昇立化工控股,以及昇立化工(英语:SunVic Chemical Holdings Limited),在1989年由孙立平创立在中国内地经营生产及销售化工产品,包括从事丙烯酸及丙烯醛脂
  • 情事 (1999年电影)《情事》(法语:)是一部于1999年上映的爱情剧情片。电影由法雷德利克·方泰纳(英语:Frédéric Fonteyne)执导,并由菲利浦·布拉斯班(英语:Philippe Blasband)编剧。一对男女透过满足性
  • 胡蝶 (主播)胡蝶(1983年2月16日-),出生于陕西汉中,中国电视节目主持人,现为中国中央电视台新闻频道《朝闻天下》女主播。
  • 徐楼站徐楼站是一个濉阜线上的铁路车站,位于安徽省淮北市濉溪县徐楼乡,建于1971年,目前为四等站,邮政编码为235155。目前客运:办理旅客乘降;不办理行李、包裹托运;不办理货运营业。
  • 阿尔特奈战役阿尔特奈战役(德语:Gefecht bei Artenay),是1870年10月10日普法战争期间,法国在卢瓦雷省的奥尔良西北部的阿尔特奈地区,与普鲁士王国和巴伐利亚王国的一场战役。普法战争爆发后,法兰西第二帝国在1870年9月2日的色当会战中经历重大失败,法皇拿破仑三世也被普鲁士俘虏。普鲁士王国随着联同巴伐利亚王国和北德意志联邦的军队向法国腹地推进,并包围了首都巴黎。为了确保普军从巴黎向南部的攻势,路德维希·萨姆森·海因里希·亚瑟·冯·弗雷尔(英语:Ludwig Freiherr von und zu
  • 莫琳·康诺利莫琳·康诺利(英语:Maureen Connolly,1934年9月17日-1969年6月21日),美国女子网球运动员,在1950年代初曾获得9项大满贯单打冠军。1953年,莫琳·康诺利成为第一个在同一个年度中赢得四场大满贯冠军的女子选手。1954年7月,一场骑马事故严重伤害莫琳·康诺利右腿,她在19岁时结束网球生涯。
  • VIXX音乐作品列表《VIXX音乐作品列表》主要列举韩国男子音乐组合VIXX历年发行之各类音乐作品。