【ASN.1】BER编码规则

报文编码格式 专栏收录该内容
5 篇文章 0 订阅

ASN.1抽象语法标记(Abstract Syntax Notation OneASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。

ASN.1是描述在网络上传输信息格式的标准方法。它有两部分:一部分描述信息内数据,数据类型及序列格式;另一部分描述如何将各部分组成消息。它原来是作为X.409的一部分而开发的,后来才自己独立成为一个标准。ASN.1OSIISO 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中定义的数据类型既有简单的基本数据类型,也有复杂的结构类型。

1. 基本类型是不可再再分的,包括:

布尔型(BOOLEAN)

整型(INTEGER)

实型(REAL)

位串类型(BITSTRING)

o 8位位组类型(OCTET STRING)

枚举类型(ENUMERATED)

空类型(NULL)

对象标识符(OBJECT IDENTIFIER)

2. 除基本类型,ASN.1还定义了多种复杂的结构类型,例如:

o SEQUENCE:有序的数据集合(序列),由不同类型的数据组成。SEQUENCE结构强调内部成员的排序

o SEQUENCE OF:有序的数据集合,类似于C语言的数组,由同一类型的数据组成。

o SET:由不同类型的数据组成的集合,用来描述复杂的信息对象,对内部成员的顺序不作要求,类似于C语言的结构体类型

CHOICE:选择结构,在列出的内部成员中,只能选择其中之一,类似于C语言中的共用体类型



  • 0
    点赞
  • 1
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值