十分钟读懂智能电表 DLMS/COSEM 通信Wireshark 抓包与排障实操【免费下载链接】wiresharkRead-only mirror of Wiresharks Git repository at https://gitlab.com/wireshark/wireshark. Youre welcome to submit pull requests there.项目地址: https://gitcode.com/gh_mirrors/wi/wireshark一个台区集中器回传曲线某块电表整点数据缺失而链路监测却显示在线。与其换设备碰运气不如先接入 Wireshark 做一轮智能电表协议分析把集中器上行口旁路抓下来逐条核对 DLMS/COSEM 报文交互往往比猜测快得多。下面按协议分工、抓包配置、读包路径、排障思路四步走。 协议栈速览DLMS 与 COSEM 各管什么先弄清分工再看包COSEM用电设备对象模型定义电表内部的数据对象寄存器Register、标度值、冻结值等都以对象地址 属性索引的方式寻址例如0-0:40.00.41.00.02指向某个电能寄存器。DLMS设备语言消息规范负责连接与事务关联请求AARQ/AARE、鉴权方式、Get/NEXT 读操作都走这一层。两者通常承载在 TCP 或 UDP 上常见服务端口为4059。Wireshark 自带对应解析器协议主逻辑在 packet-cosem.cCOSEM 的 ASN.1 数据定义在 cosem.asn。想弄清某个字段为什么被解析成那样翻这两个文件比查手册直接。 4059 端口捕获配置要点在捕获选项中选择对应网卡捕获过滤器输入tcp port 4059如果链路走 UDP改用udp port 4059。几个经验提醒不算手册步骤环形缓冲建议开。现场丢包有时就丢一两帧环形缓冲能保住最近一段流量让你有机会复现异常时刻。文件大小上限 按大小分割。连续采集可能跑几天单个巨型文件对打开、传输、归档都是灾难。注意 Promiscuous 模式和链路层头选项别因为一个旁路口把同段其他业务也拖下水。 读包从 AARQ 握手到 Get/NEXT 对象以一次正常会话为例。开头是电表侧发来的 AARQ关联请求与服务端回应的 AARE里面敲定 HN 协议版本、鉴权方式与安全设置这一轮走通关联才成立。随后服务端连续发 Get-Request 和 NEXT逐对象遍历每个对象在详情区会展开成对象地址加属性索引你可以直接对照表计点定义核对读的是哪路电能。出问题的时候先看 Expert Information 面板TCP RST、疑似虚假重传、Previous segment not captured 都会按 Error/Warning 分级并汇总计数帮你先判断问题出在传输层还是应用层。想把原始字节串起来看右键 Follow TCP Stream 即可把双向载荷拼成连续流4059 的流量大部分是二进制混合内容建议切 Hex 或 Raw 视图再对照协议字段。 排障思路与延伸方向如果你遇到连接频繁被重置先看 RST 来自电表侧还是服务端再核对 AARQ 里的鉴权方式和关联参数最后查中间设备的超时策略。如果大量出现 Previous segment not captured先怀疑抓包起步太晚或中途丢包用环形缓冲重新抓一轮再对比。如果关联直接失败——AARQ 之后没有 AARE或 AARE 带原因码先对照 HN 版本与鉴权方式再查服务端设备白名单。顺带一提IEC 62056-21 定义的 SML智能计量语言是面向集中器—主站链路的文本采集协议排查上行侧时可以参考 packet-sml.c 补充分析。把 4059 链路摸熟之后还可以继续往两头延伸通信中断多的场景看 GPRS 空口段户内电力线载波看 HPLC 载波段加密后的负载则要看 SM 安全会话的配置。【免费下载链接】wiresharkRead-only mirror of Wiresharks Git repository at https://gitlab.com/wireshark/wireshark. Youre welcome to submit pull requests there.项目地址: https://gitcode.com/gh_mirrors/wi/wireshark创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?