導覽
近期變更
隨機頁面
新手上路
新頁面
優質條目評選
繁體
不转换
简体
繁體
18.119.111.70
登入
工具
閱讀
檢視原始碼
特殊頁面
頁面資訊
求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。
檢視 ASN.1 的原始碼
←
ASN.1
前往:
導覽
、
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
用戶
您可以檢視並複製此頁面的原始碼。
{| class="wikitable" align="right" |- | style="background: #66CCFF" align= center| '''<big>ASN.1</big> ''' |- |[[File:ASN.1抽象语法标记.jpg|缩略图|居中|[https://img.book118.com/sr1/M00/2A/22/wKh2AmBEczqIfpuHAADSKPLkLgEAAqSEQFHKyQAANJA329.jpg 原图链接]]] |- | style="background: #66CCFF" align= center| |- | align= light| 中文名: ASN.1抽象语法标记 外文名: Abstract Syntax Notation One 标 准: ISO/ITU-T 缩 写: ASN.1 |} '''[[ASN.1]]'''[[抽象语法标记]](Abstract Syntax Notation One) ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。<ref>[https://max.book118.com/html/2021/0307/8046115011003056.shtm],原创力文档 , 2021-03-09</ref> ==简介== 在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。ASN.1 和特定的 ASN.1 编码规则推进了结构化数据的传输,尤其是网络中应用程序之间的结构化数据传输,它以一种独立于计算机架构和语言的方式来描述数据结构。 OSI 协议套中的应用层协议使用了 ASN.1 来描述它们所传输的 PDU,这些协议包括:用于传输电子邮件的 X.400、用于目录服务的 X.500、用于 VoIP 的 H.323 和 SNMP。它的应用还可以扩展到通用移动通信系统(UMTS)中的接入和非接入层。 ASN.1 取得成功的一个主要原因是它与几个标准化编码规则相关,如基本编码规则(BER) -X.209 、规范编码规则(CER)、识别名编码规则(DER)、压缩编码规则(PER)和 [[XML编码规则(XER)]]。这些编码规则描述了如何对 ASN.1 中定义的数值进行编码,以便用于传输,而不管计算机、编程语言或它在应用程序中如何表示等因素。ASN.1 的编码方法比许多与之相竞争的标记系统更先进,它支持可扩展信息快速可靠的传输 — 在无线宽带中,这是一种优势。1984年,ASN.1 就已经成为了一种国际标准,它的编码规则已经成熟并在可靠性和兼容性方面拥有更丰富的历程。 简洁的二进制编码规则(BER、CER、DER、PER,但不包括 XER)可当作更现代 XML 的替代。然而,ASN.1 支持对数据的语义进行描述,所以它是比 XML 更为高级的语言。 正是由于这种数据类型的“抽象"特性,所以描述它的语法在OSI术语中被称为抽象语法(abstract syntax).抽象语法定义的数据类型,在传输时遵循的数据编码规则,称为传输语法(transfer syntax).一种ASN.1数据类型对应的传输语法可以有多种,但只能使用其中的一种。 ASN.1 的描述可以容易地被映射成 C 或 C++ 或 Java 的数据结构,并可以被应用程序代码使用,并得到运行时程序库的支持,进而能够对编码和解码 XML 或 TLV 格式的,或一种非常紧凑的压缩编码格式的描述。 同时,ASN.1也是一种用于描述结构化客体的结构和内容的语言。 ==定义== 抽象语法定义: ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:一部分描述[[信息内数据]],[[数据类型]]及[[序列格式]]];另一部分描述如何将各部分组成消息。它原来是作为X.409的一部分而开发的,后来才自己独立成为一个标准。ASN.1在OSI的ISO 8824/ITU X.208(说明语法)和ISO 8825/ITU X.209(说明基本编码规则)规范。 例如: Report ::= SEQUENCE { author OCTET STRING, title OCTET STRING, body OCTET STRING, biblio Bibliography } 在这个例子中,"Report"是由名字类型的信息组成的,而SEQUENCE表示消息是许多数据单元构成的,前三个数据单元的类型是OCTET STRING,而最后一个数据类型见下面的ASN.1语法表示它的意义: Bibliography ::= SEQUENCE { author OCTET STRING title OCTET STRING publisher OCTET STRING year OCTET STRING } ==数据类型== ASN.1 提供了一些基本的预定义数据类型: UNIVERSAL 0 保留给编码规则使用 UNIVERSAL 1布尔类型 UNIVERSAL 2整型 UNIVERSAL 3零或多个比特的序列 UNIVERSAL4 零或多个字节的序列 UNIVERSAL5 NULL UNIVERSAL 6 对象标识符类型 UNIVERSAL 7 对象描述符类型 UNIVERSAL 8 外部类型和类型实例 UNIVERSAL 9 实数类型 UNIVERSAL 10 枚举类型 UNIVERSAL 11 嵌入的 pdv 类型 UNIVERSAL 12 UTF8 字符串类型 UNIVERSAL 13 相关对象标识符类型 UNIVERSAL 14-15 保留给本建议的以后版本和国际标准使用 UNIVERSAL 16 序列和类型序列 UNIVERSAL 17 集合和类型的集合 UNIVERSAL 18-22, 25-30 字符串 类型 UNIVERSAL 23-24 时间 类型 UNIVERSAL 31-... 保留给本建议以外的类型和国际标准使用 ==数据结构== ASN.1 还能够定义如下的数据结构类型: 结构 ( SEQUENCE ) 列表 ( SEQUENCE OF ) 类型选择 ( CHOICE ) == 参考来源 == {{reflist}} [[Category:810 文學總論 ]]
此頁面使用了以下模板:
Template:Main other
(
檢視原始碼
)
Template:Reflist
(
檢視原始碼
)
模块:Check for unknown parameters
(
檢視原始碼
)
返回「
ASN.1
」頁面