当前位置: 首页 > news >正文

通付盾 建设网站公司好用管理软件公司

通付盾 建设网站公司,好用管理软件公司,seo排名工具快速提高,装修公司名字大全参考什么是 ASN.1? ASN.1 编码是通信协议中非常重要的一种数据表示和传输方式,尤其在 DLMS/COSEM、SNMP、X.509、TLS 等标准中大量使用。 ASN.1 全称是 Abstract Syntax Notation One(抽象语法标记语言第一版) 它是一种描述数据结构…

什么是 ASN.1?

ASN.1 编码是通信协议中非常重要的一种数据表示和传输方式,尤其在 DLMS/COSEM、SNMP、X.509、TLS 等标准中大量使用。

ASN.1 全称是 Abstract Syntax Notation One(抽象语法标记语言第一版)
它是一种描述数据结构的语言,不是编码方法,而是规范一种“数据结构的定义方式”。

✨ 类似 XML / JSON 是描述数据的格式,ASN.1 是更底层、适合机器传输的那种。


📦 什么是 ASN.1 编码?

ASN.1 编码定义了如何把 ASN.1 描述的结构转换为二进制格式传输

其中最常见的编码规则是:

编码规则全称特点
BERBasic Encoding Rules最常用、结构灵活,DLMS/COSEM 采用此格式
DERDistinguished ERBER 的简化版,应用于证书等(如 X.509)
PERPacked ER高压缩率,用于无线通信

🧪 ASN.1 BER 编码格式:TLV(三段式)

[TAG] [LENGTH] [VALUE]

各部分说明:

部分说明
TAG表示数据类型,如 INTEGER、STRING、SEQUENCE 等
LENGTH表示 VALUE 的长度,支持短格式(1字节)或长格式(多字节)
VALUE实际的数据内容(如数字、字符串、结构等)

🎯 常见 ASN.1 Tag 值示例

类型TAG (十六进制)含义
BOOLEAN01布尔值
INTEGER02整数
OCTET STRING04字节串(如密码、密钥等)
NULL05空值
OBJECT IDENTIFIER06对象标识符(协议ID等)
SEQUENCE30结构体封装(构造类型)

📘 示例:AARQ 报文中的 ASN.1 编码

30 1A 02 01 01 04 10 4D 4C 4D 00 00 00 00 01 23 45 67 89 AB CD EF

解码说明:

字节序列含义
30SEQUENCE
1A长度 26 字节
02 01 01INTEGER,值为 1
04 10 ...OCTET STRING,16 字节系统标题

📌 应用场景(DLMS/COSEM 相关)

场景使用 ASN.1 编码部分
AARQ / AARE 报文建立 AA,封装用户安全上下文
加密载荷 Ciphered Payload加密前的结构体需 ASN.1 封装
安全设置中定义认证机制使用 OBJECT IDENTIFIER 编码
注册协议(如 CIASE)包装注册结构体

✅ 特点总结

特点说明
灵活性高支持多种结构体嵌套
结构清晰易于层级封装,例如 SEQUENCE + 子字段
协议通用性强适用于各种通信协议,如 SNMP、TLS、DLMS
不易手工编写通常需工具(如 Wireshark、ASN.1 Viewer)辅助解析

🎯 总结:

ASN.1 是结构化的语言,BER 是它的“口语表达”。
它在 DLMS 中用于封装安全上下文和握手结构,和 COSEM 数据类型不一样,COSEM 更偏向具体的值,ASN.1 更偏向结构和权限表达。


什么是 COSEM 数据模型 ?

在 DLMS 协议中,COSEM 编码是一种用于表示设备数据模型(COSEM 对象模型)中数据的结构化编码方式。它主要用于封装数据内容,如对象属性值、方法参数和返回值等。

📚 1. 什么是 COSEM?

COSEM 全称是 Companion Specification for Energy Metering,是 DLMS 协议的核心组成部分,用于描述“电表或设备的数据模型”和“通信结构”。

COSEM 对象由:

  • OBIS(对象标识符)
  • 属性(如数值、电压等)
  • 方法(操作,如复位、设置等)组成。

🔧 2. 什么是 COSEM 编码?

COSEM 编码是指 DLMS 协议中使用的一套数据类型编码规则,用于对上述对象的数据进行序列化,供传输使用。它不是 ASN.1 的 BER 编码,但有相似的结构,是为电表通信量身定制的一种轻量级类型编码方案


🧩 3. COSEM 数据类型及编码规则(Tag-Based)

COSEM 使用 “类型 + 长度 + 值”的结构,类似 TLV(Tag-Length-Value),如下:

Tag(类型标记)类型名称示例用途
00NULL_DATA空值
01ARRAY数组(如多个表值)
02STRUCTURE结构体
03BOOLEANtrue/false
04BIT STRING位数据
09OCTET STRING字节串
0AVISIBLE STRING字符串(UTF8)
10INTEGER有符号整数
11LONG有符号 16 位整数
12UNSIGNED无符号 8 位整数
06DOUBLE LONG有符号 32 位整数
16LONG64有符号 64 位整数
17UNSIGNED64无符号 64 位整数
其他

🎯 COSEM 数据类型由 DLMS UA 1000-1 标准定义,用于编码对象属性数据等。


📦 4. COSEM 编码 vs ASN.1 编码:区别一览

特性COSEM 编码ASN.1 (BER) 编码
用途设备数据模型的数据表示安全结构(如 AARQ、AARE、认证)封装
编码结构轻量级 TLV(Tag + Len + Value)标准 TLV,支持复杂结构和类标记
编码复杂度简单,定制通用,结构化
是否可嵌套结构体支持结构体、数组更强结构表达(SEQUENCE, SET)
示例应用属性读取响应、设置请求、方法调用安全上下文、握手、注册信息等

🧪 5. 报文例子(COSEM 编码)

02 03 09 06 01 00 1F 07 00 FF   -- Octet String (OBIS)0F 00                    -- Integer: 012 01                    -- Unsigned: 1

解释:

Byte含义
02STRUCTURE 类型
03结构体含 3 个字段
09 06 ...第 1 个字段:Octet String,长度 6(OBIS)
0F 00第 2 个字段:Integer,值为 0
12 01第 3 个字段:Unsigned,值为 1

💡 总结一句话:

COSEM 编码 是 DLMS 协议中专用于编码电能表设备数据模型(如属性值、操作参数)的数据表示方式,以 TLV 格式封装各种基本数据类型,与 ASN.1 编码分别服务于数据层 vs 安全层。


DLMS COSEM 数据对象 与 ASN.1/BER

在 DLMS/COSEM 协议中,经常会遇到两种不同的编码规范:COSEM 数据类型编码ASN.1 BER 编码。这两者虽然在结构上都使用 TLV(Tag-Length-Value)格式,但它们的作用、使用场景、编码规则和数据类型编号都不一样。

🧩 一、COSEM 数据类型编码(也称 DLMS 数据类型

✅ 作用:

用于表示 COSEM 对象模型中的属性值或参数值,常见于:

  • GET/SET 请求与响应报文体
  • Action 请求参数
  • Profile Generic 的数据结构

📦 编码结构(TLV):

[Tag] [Length] [Value]

🏷 常见 Tag 值(数据类型):

数据类型Tag (Hex)示例说明
NULL00无值
ARRAY01用于封装一个数据项数组
STRUCTURE02用于封装结构体类型的数据
BOOLEAN03布尔值
INTEGER0F有符号整型(8位)
UNSIGNED11无符号整型(8位)
LONG10有符号整型(16位)
UNSIGNED LONG12无符号整型(16位)
OCTET STRING09字节序列
VISIBLE STRING0A可打印字符
BCD13二进制编码十进制
ENUM16枚举类型
LONG6414有符号整型(64位)

📍 应用场景:

  • DLMS 服务层:如 Get-Request, Set-Request, Action-Request 的数据体
  • Profile Generic 表格值
  • 普通读写数据交换

🧬 二、ASN.1 BER 编码(Basic Encoding Rules)

✅ 作用:

ASN.1 是一种描述数据结构的抽象语法,由 BER 进行具体编码。DLMS 用它在高层协议封装中描述 Application Association(AA)建立过程中的数据结构

📦 编码结构(TLV):

[Tag] [Length] [Value]

但它的 Tag 更加复杂(支持 Class + Primitive/Constructed + TagNumber)

🏷 常见 Tag 值(通用类):

ASN.1 数据类型Tag (Hex)类别示例用途
INTEGER02原始/通用各种标识、版本号等
OCTET STRING04原始/通用System Title、密码等
OBJECT IDENTIFIER06原始/通用协议标识符
SEQUENCE30构造/通用AARQ 报文中 user-info 包含结构
BOOLEAN01原始/通用表示 true/false

📍 应用场景:

  • Application Association(AA)建立过程:AARQ / AARE 报文
  • Security context 封装(如 ciphered payload)
  • 设备注册协议(CIASE)数据结构

🔍 三、如何快速区分这两种编码?

比较项COSEM 数据类型编码ASN.1 BER 编码
使用场景GET/SET/Action 交互数据AARQ/AARE、加密封装、注册协议等
编码标准DLMS UA 规范定义ISO 8825 BER
Tag 值特点多以 0x01~0x16 表示常见类型常见有 0x04, 0x06, 0x30
Tag 对应含义映射到 COSEM 类型映射到 ASN.1 数据结构
示例09 06 01 02 03 04 05 0604 06 01 02 03 04 05 06
是否支持结构嵌套是(Structure、Array)是(Sequence、Set)
是否常用于加密封装否(加密后体才用它)是(加密体、系统标题、认证码)

📌 补充示意图:协议使用栈

              +----------------------+| ASN.1 编码(AARQ)   | ← 安全上下文封装、系统标题、认证数据+----------------------+| COSEM/DLMS 应用层    | ← Get/Set/Action 请求结构+----------------------+| HDLC/Wrapper 层      | ← 报文传输、帧头帧尾+----------------------+

🧠 总结记忆口诀:

  • COSEM编码在“内容”层,表征属性的数据类型
  • ASN.1 编码在“封装”层,服务交互或加密用结构体

📦 DLMS 报文中 COSEM 编码 vs ASN.1 编码对比

📌 场景说明:

以下两个典型场景:

  1. 场景一(COSEM 编码):读取一个对象的属性,比如读取设备名称(Visible String)
  2. 场景二(ASN.1 编码):AARQ 报文中携带 System Title,用于安全上下文初始化

🧪 报文一:COSEM 数据类型编码(例如 GET Response)

09 0C 44 4C 4D 53 5F 44 45 56 49 43 45 5F 31

🔍 解码:

字节含义
09数据类型:Octet String
0C数据长度:12 字节
44...31数据内容:“DLMS_DEVICE_1”

使用场景:读取对象属性,比如设备名称、序列号等。
位置:DLMS 的 Get-Response-PDU 中的数据体。


🧪 报文二:ASN.1 BER 编码(例如 AARQ user-information)

04 10 4D 4C 4D 00 00 00 00 01 23 45 67 89 AB CD EF

🔍 解码:

字节含义
04ASN.1 数据类型:Octet String
10数据长度:16 字节
4D...EF内容:System Title,含制造商 ID + 唯一标识

使用场景:建立应用关联(AA),用于加密会话身份识别。
位置:AARQ APDU 中的 user-information 字段里。


🎯 图解对比

【COSEM 编码】
Get Response PDU:
+----------+-----------+------------------------+
|  Tag=09  | Length=0C | Value="DLMS_DEVICE_1" |
+----------+-----------+------------------------+【ASN.1 编码】
AARQ User Info:
+----------+-----------+------------------------+
|  Tag=04  | Length=10 | Value=System Title     |
+----------+-----------+------------------------+

🧠 总结对照表

项目COSEM 数据体编码ASN.1 BER 编码
编码标准DLMS UA 1000-1 Part 2ISO/IEC 8825 (BER)
使用场景属性值读写、参数传输应用层握手、注册、安全上下文
示例 Tag09 (Octet String)04 (Octet String)
示例长度与内容09 0C ...04 10 ...
是否表示结构体/对象是(Array/Structure)是(Sequence/Set)

区分 COSEM 数据类型编码ASN.1 BER 编码 是理解 DLMS 协议报文结构的关键。它们虽然都采用 TLV(Tag-Length-Value)格式,但应用场景、语义和 Tag 值完全不同。


✅ 一张表快速区分 COSEM 编码 vs ASN.1 编码

比较项COSEM 数据类型编码ASN.1 BER 编码
📌 使用位置报文的数据部分,用于传输对象属性值报文的封装头部/结构部分,如 AARQ/AARE
🔐 作用表达 DLMS 数据模型的具体值类型封装 AA 信息、安全上下文,进行结构化表达
📦 典型数据体Get-Response-DataSet-Request-With-DataAARQ, AARE, Security Payload
🏷 Tag 举例01(Array), 02(Structure), 09(Octet String)04(Octet String), 06(OID), 30(SEQUENCE)
📜 编码规范DLMS UA 1000-1 Part 2(DLMS定义)ASN.1 BER(ISO/IEC 8825)
🧠 解码思路值本身,表示实际对象的数据封装结构,表示"谁"、“怎么封装”、“结构层级”
🧪 Tag 识别规律多在 0x01 ~ 0x16 区间常见 0x040x060x300xA1
🚩 常见入口字段Get-Response-With-Data, Set-Request-With-DataAARQ, AARE, user-information
📚 是否结构化嵌套通过 STRUCTURE / ARRAY 实现通过 SEQUENCE / SET 实现
📌 常见字符串编码 tag0x09 = Octet String0x04 = Octet String

🔍 快速实战判断方法

✅ 看上下文:

  • 报文是 业务数据交互(Get/Set/Action)?→ COSEM 编码
  • 报文是 连接认证/握手/加密数据封装?→ ASN.1 编码

✅ 看字段位置:

  • 出现在 AARQ / AARE / AssociationRequest? → ASN.1
  • 出现在 GetResponseNormal 里面? → COSEM

✅ 看 Tag 值:

Tag 值可能代表属于哪个编码
0x09Octet StringCOSEM
0x04Octet String (ASN.1)ASN.1
0x30SEQUENCEASN.1
0x01ArrayCOSEM
0x02StructureCOSEM

🧪 示例对比

🟩 COSEM 示例

09 06 01 02 03 04 05 06
  • 09 = Octet String
  • 06 = 长度
  • 后续为 6 字节内容
    ✅ 表示读取了某个对象属性,COSEM 格式

🟦 ASN.1 示例

04 10 4D 4C 4D 00 00 00 00 01 23 45 67 89 AB CD EF
  • 04 = ASN.1 的 Octet String
  • 10 = 长度为 16 字节
    ✅ 表示 system title 封装在 AARQ 中,ASN.1 格式

🎯 总结口诀(超实用):

业务值交互用 COSEM,结构封装握手看 ASN.1;0x09 是 Octet,封装里看 0x04;Get/Set 是数据,AARQ 是握手。


在这里插入图片描述

http://www.dtcms.com/a/514704.html

相关文章:

  • 网站代码输入完成之后要怎么做中小企业做网站贷款
  • 网站内容由什么组成部分组成建设机械网站方案
  • 福州 网站开发公司wordpress wp-config
  • 纪检网站建设计划书长春少儿编程培训机构
  • 设计网站需要哪些流程成都制作网站软件
  • 深圳市工程建设网站wordpress教育类模板
  • 宁波鄞州网站建设wordpress安装创建数据库文件目录
  • 事业单位门户网站开发开发公司安全工作总结汇报
  • 龙华网站优化WordPress顶部登陆代码
  • 网站建设公司 知乎wordpress oss插件
  • 网站建设岗位莱芜在线老板是谁
  • 姑苏网站建设百度云网盘登录入口
  • 绵阳建网站哪家好模板网站免费建站
  • 兼职做视频的网站网站建设服
  • 单页淘客网站怎么建设华强北网上商城
  • 武陟外贸英文网站建设专业的常州做网站
  • html5响应式网站网站模板模仿
  • 广元单页网站制作网站开发维护花费
  • 企业网站的规划与建设编程平台
  • 泰安哪里有做网站app的中国互联网
  • 做网站看网页效果台州网站设计建设
  • 马鞍山建设银行网站自己做内部网站
  • 利用模板建网站内容平台策划书
  • 怎样才能建设一歌网站南沙做网站公司
  • 网站建设哪家一见钟情 网站
  • 三水网站建设企业多用户商城源码开发
  • 做淘宝客需要网站吗设计一个简单的旅游网站
  • 东莞做网站公司律所网站建设要求书
  • 福建住房和建设网站wordpress淘宝客插件破解版
  • 怎样建立自己网站上海网站建设服务是什么意思