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

从ISO9506到实际报文:手把手用Wireshark解码一个MMS数据包(含ASN.1/BER解析实战)

从ISO9506到实际报文手把手用Wireshark解码一个MMS数据包含ASN.1/BER解析实战当你面对工业控制网络中捕获的陌生流量时能否准确识别出隐藏在TCP端口102背后的MMS协议通信本文将带你从协议标准出发通过Wireshark实战演练逐层拆解MMS报文的结构与编码逻辑。1. MMS协议基础与工业应用场景在智能制造和电力自动化领域MMS制造报文规范扮演着关键角色。这套ISO 9506标准定义的协议本质上构建了一个面向工业设备的对象模型。不同于传统工控协议直接操作寄存器地址MMS将物理设备抽象为虚拟设备VMD通过标准化的服务接口访问变量、程序、事件等逻辑对象。典型应用场景包括智能变电站中IED设备的状态监控IEC 61850-8-1标准汽车生产线PLC与机器人控制器间的数据交换数控机床加工程序的远程上传/下载提示MMS协议栈运行在TCP/IP之上默认使用102端口常与TPKT/COTP/ACSE等传输层协议配合使用。2. 协议栈分层与Wireshark捕获准备2.1 网络捕获环境配置开始分析前需要确保网络接口选择使用支持混杂模式的网卡捕获工业交换机镜像端口流量过滤规则优化推荐初始过滤条件tcp.port 102 || udp.port 102解码器验证确认Wireshark已加载MMS协议解析插件默认包含# 示例Linux环境下启动抓包 tcpdump -i eth0 -w mms_capture.pcap port 1022.2 协议栈层次解析完整MMS通信包含以下协议层自下而上协议层功能描述关键字段示例TPKT报文分帧Length字段标识PDU总长COTP连接控制PDU类型DT/CR/CCACSE关联控制Application-context-nameMMS业务逻辑InvokeID, serviceType3. ASN.1/BER编码实战解析3.1 编码结构拆解MMS采用BERBasic Encoding Rules编码每个字段遵循TLV三元组结构[Tag][Length][Value] 1B 1-5B 可变长常见Tag类型0x02: INTEGER0x04: OCTET STRING0x30: SEQUENCE3.2 手动解码示例假设捕获到以下HEX报文片段Read请求A0 81 9F 02 01 01 30 81 99 A1 81 96 02 01 01 A0 81 8F A1 81 8C 1A 81 89 55 52 4E 3A 53 43 41 44 41 3A 49 4E 56 45 4E 54 4F 52 59 2F 4D 4F 54 4F 52 5F 53 50 45 45 44逐步解析过程外层容器A0→ CONSTRUCTED上下文标签81 9F→ 长度159字节InvokeID02 01 01→ INTEGER类型值1变量名提取1A 81 89→ VisibleString类型长度137字节ASCII解码得URN:SCADA:INVENTORY/MOTOR_SPEED4. 典型服务报文分析4.1 Read服务交互流程正常通信包含三个关键阶段请求阶段# 伪代码表示MMS Read请求结构 { invokeID: 123, variableAccess: { name: PROCESS/TEMPERATURE, address: [1, 3, 5] # 域/变量/组件三级地址 } }响应阶段成功响应包含数据值和时间戳错误响应携带错误码如variable-not-defined异常处理超时重传机制关联异常ABORT PDU4.2 工业场景报文特征电力自动化系统中常见的特殊字段时间同步采用UTC时间格式MMS::UtcTime质量标志包含validity、source等子属性数据集传输使用SEQUENCE OF结构批量传输5. 高级分析技巧与故障排查5.1 解码优化策略当Wireshark自动解码不完整时可以强制指定协议层次右键报文 → Decode As → 选择TPKT自定义ASN.1语法编辑preferences→Protocols→MMS→ASN.1模块导出原始HEX进行离线分析5.2 常见问题诊断表现象可能原因解决方案报文不完整TPKT分片检查TCP重组功能解码错误BER格式异常验证Length字段值服务无响应ACSE关联失败检查Application-context-name匹配变量访问拒绝对象权限不足确认VMD访问控制列表在最近某汽车厂PLC调试中我们发现MMS Write请求频繁超时。通过对比正常和异常报文的ACSE层最终定位到是防火墙阻断了Association-request报文中的特定上下文参数。

相关文章:

从ISO9506到实际报文:手把手用Wireshark解码一个MMS数据包(含ASN.1/BER解析实战)

从ISO9506到实际报文:手把手用Wireshark解码一个MMS数据包(含ASN.1/BER解析实战) 当你面对工业控制网络中捕获的陌生流量时,能否准确识别出隐藏在TCP端口102背后的MMS协议通信?本文将带你从协议标准出发,通…...

材料科学正经历第4次方法论革命?——基于2026奇点大会278项AGI实验数据的颠覆性趋势研判

第一章:材料科学正经历第4次方法论革命?——基于2026奇点大会278项AGI实验数据的颠覆性趋势研判 2026奇点智能技术大会(https://ml-summit.org) 278项AGI驱动的材料发现实验揭示了一个结构性跃迁:传统“试错—表征—建模”闭环已被AGI原生工…...

保姆级教程:从零在Mac上配置HarmonyOS PC的HNP构建环境(含Gitcode账户与SSH密钥关联详解)

从零构建HarmonyOS PC开发环境:Mac用户的完整工具链配置指南 当你第一次在Mac上尝试搭建HarmonyOS PC开发环境时,可能会被各种工具链配置和权限问题搞得晕头转向。这篇文章将带你一步步完成从Gitcode账户注册到最终构建成功的全过程,特别针对…...

因果推理不是AGI的加分项,而是生死线,深度拆解3大主流架构在Do-Calculus测试中的崩溃临界点

第一章:因果推理不是AGI的加分项,而是生死线 2026奇点智能技术大会(https://ml-summit.org) 大型语言模型可以流畅续写《哈姆雷特》,却无法回答“若国王未饮毒酒,奥菲莉亚是否还会溺亡?”——这不是知识缺失&#xff…...

uni-app怎么使用Vite uni-app Vue3版本构建工具配置【配置】

uni-app Vue3 项目自 v3.9.0 起默认使用 Vite 构建,无需手动切换;需确保 CLI ≥ 3.9.0、使用 Vue3 模板,配置应写在 vite.config.ts 中并调用 defineUniAppConfig,环境变量须以 UNI_APP_ 或 VUE_APP_ 开头,且第三方插件…...

有哪些适合继续教育学生的AI论文写作工具?求真实推荐

继续教育(成教、函授、自考)同学大多在职上班、时间碎片化、论文基础弱、预算有限、需要快速过查重 低 AI 痕迹、贴合实践案例,不用复杂科研,只求高效、合规、低成本、顺利毕业。本文全部为真实实测体验,严格按照你要…...

毕业答辩PPT别再手动肝了!百考通AI十分钟自动生成高质量学术汇报稿

在经历了论文撰写、反复修改、查重降重的重重考验后,许多同学却在最后一道关卡——毕业答辩PPT的制作上,耗费了意想不到的巨大心力。你是否也曾面对空白的演示文稿绞尽脑汁:如何将数万字的论文浓缩成十几页幻灯片?怎样的排版才显得…...

为什么GPT-5没提“元学习”?深度起底OpenAI内部技术路线图中被雪藏的快速适应模块

第一章:AGI的元学习与快速适应能力 2026奇点智能技术大会(https://ml-summit.org) 元学习(Meta-Learning)是通向人工通用智能(AGI)的关键范式,其核心在于让系统学会“如何学习”——而非仅针对特定任务优化…...

告别答辩PPT焦虑:百考通AI,你的智能学术汇报助手

又到一年毕业季,当论文定稿、查重通过的喜悦褪去,不少同学会赫然发现,最后一道关卡——毕业答辩PPT,竟如此让人头疼。面对空白的幻灯片,从内容提炼、逻辑构建到排版设计、模板选择,每一个环节都在消耗所剩无…...

TuGraph图数据库:5大核心功能全面解析与快速上手指南

TuGraph图数据库:5大核心功能全面解析与快速上手指南 【免费下载链接】tugraph-db TuGraph: A High Performance Graph Database. 项目地址: https://gitcode.com/gh_mirrors/tu/tugraph-db 在当今数据驱动的时代,图数据库正成为处理复杂关系数据…...

C语言完美演绎8-11

/* 范例&#xff1a;8-11 */#include <stdio.h>void func(int9, int9); /* 在原型声明上作预设初值 */void fun(){func(); /* 若不是在func()函数的原型声明上设定参数预设初值或函数fun()原型声明的话&#xff0c;此行将会错误 */}/* 若参数a没有传入值&#xff0c;…...

MuJoCo肌腱系统核心技术深度解析:生物力学仿真的物理引擎架构设计

MuJoCo肌腱系统核心技术深度解析&#xff1a;生物力学仿真的物理引擎架构设计 【免费下载链接】mujoco Multi-Joint dynamics with Contact. A general purpose physics simulator. 项目地址: https://gitcode.com/GitHub_Trending/mu/mujoco MuJoCo&#xff08;Multi-J…...

C语言完美演绎8-10

/* 范例&#xff1a;8-10 */#include <stdio.h>void arith(int *k, int j) /* 以指针来接收传入数组的首地址 */{int a;for (a0;a<j;a){printf("i[%d]%d\n",a,k[a]);}}void main(){int i[]{1,8,5};arith(i,3); /* 调用函数arith()并传入数组i首地址与数组…...

SVG数据处理架构对比:如何选择最适合程序化操作的可扩展转换引擎

SVG数据处理架构对比&#xff1a;如何选择最适合程序化操作的可扩展转换引擎 【免费下载链接】svgson Transform svg files to json notation 项目地址: https://gitcode.com/gh_mirrors/sv/svgson 在前端开发和数据可视化项目中&#xff0c;SVG图形数据的程序化处理一…...

B站M4S转MP4终极指南:5秒解锁你的缓存视频宝藏

B站M4S转MP4终极指南&#xff1a;5秒解锁你的缓存视频宝藏 【免费下载链接】m4s-converter 一个跨平台小工具&#xff0c;将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾为心爱的B站视频突然下架而心…...

03 原创AI大模型开源:华夏之光永存:华夏本源大模型——合规数据集处理与标准化训练方案

华夏之光永存&#xff1a;华夏本源大模型——合规数据集处理与标准化训练方案 一、本篇核心定位 本篇承接第二篇架构设计&#xff0c;全流程放出合规数据处理模型训练硬核实操内容&#xff0c;所有流程、参数、脚本逻辑均为可直接落地、可复现的开源干货&#xff0c;完全匹配7B…...

02国产大模型开源:华夏之光永存:华夏本源大模型——通用大模型整体架构设计与工程实现

华夏之光永存&#xff1a;华夏本源大模型——通用大模型整体架构设计与工程实现 一、架构核心定位与硬核基准 本篇为华夏本源大模型开源通用底座核心架构篇&#xff0c;说明逻辑硬核实操参数同步放出&#xff0c;公开内容严格对标GPT-3.5级别通用大模型全能力基准&#xff0c…...

智谱GLM-5.1登场:开源首超Opus 4.6,8小时自主执行重塑AI Agent边界

在AI大模型的演进路线上&#xff0c;我们习惯了“参数军备竞赛”和“跑分内卷”&#xff0c;但真正决定大模型能否从“极客玩具”走向“生产力工具”的核心壁垒&#xff0c;究竟是什么&#xff1f; 智谱AI用最新发布的GLM-5.1给出了答案&#xff1a;长程自主执行力。 没有铺天盖…...

01华夏之光永存:自主产权国产大模型开源(8篇)

华夏之光永存&#xff1a;华夏本源大模型 —— 开源序言暨全系列目录 本系列为华夏本源大模型原创技术开源系列文章&#xff0c;全文严格遵循人工智能行业主流工程技术规范&#xff0c;无玄学、无超标、无虚假技术、无侵权、无违规表述。所有公开内容均为当前主流大模型可理解、…...

飞书API权限避坑大全:从‘无权限’到成功发送消息的完整流程

飞书API权限配置实战指南&#xff1a;从零到消息发送的完整避坑手册 第一次调用飞书API时&#xff0c;看到控制台抛出"无权限"错误的那种挫败感&#xff0c;我至今记忆犹新。那是一个周五的深夜&#xff0c;我按照官方文档逐字逐句配置&#xff0c;却在最简单的发送…...

C#怎么实现OAuth2.0授权_C#如何对接第三方快捷登录【核心】

...

苹果微软双修党福音:Navicat如何优化跨系统传输性能延迟

Navicat跨系统传输卡顿本质是连接层与传输层双重延迟&#xff0c;主因包括SSL/TLS握手、DNS解析、非原生架构运行、逐行INSERT、小批次建连频繁及系统时间不同步。Navicat跨系统传输卡顿&#xff0c;本质是连接层传输层双重延迟不是mac或windows客户端“慢”&#xff0c;而是na…...

从零到一:PrimeTime静态时序分析入门指南

从零到一&#xff1a;PrimeTime静态时序分析入门指南 在数字芯片设计的最后阶段&#xff0c;时序收敛往往是工程师们最头疼的问题之一。想象一下&#xff0c;当你精心设计的电路在仿真中表现完美&#xff0c;却因为时序问题无法通过物理实现&#xff0c;那种挫败感足以让任何工…...

FPGA实战:手把手教你用CORDIC Translate IP核搞定复数转极坐标(附定点数归一化避坑指南)

FPGA实战&#xff1a;CORDIC Translate IP核实现复数转极坐标的工程化解决方案 在数字信号处理领域&#xff0c;复数到极坐标的转换是一个基础但关键的操作。无论是通信系统中的载波同步、雷达信号处理中的目标检测&#xff0c;还是电机控制中的矢量变换&#xff0c;都需要高效…...

如何快速上手Fiji:科学图像分析的终极完整指南

如何快速上手Fiji&#xff1a;科学图像分析的终极完整指南 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji Fiji是一个"开箱即用"的ImageJ发行版&#xff0c;专…...

SQL分组统计时如何处理文本类型聚合_GROUP_CONCAT的用法

GROUP_CONCAT返回NULL或空字符串主因是默认忽略NULL值&#xff0c;全NULL则结果为NULL&#xff1b;结果截断因默认长度1024&#xff1b;需用IFNULL预处理、调大group_concat_max_len、显式ORDER BY和SEPARATOR&#xff0c;并依场景选JSON_ARRAYAGG。GROUP_CONCAT 为什么返回 NU…...

golang如何实现错误预算Error Budget计算_golang错误预算Error Budget计算实现实战

错误预算是SLO允许的失败请求占比上限&#xff0c;需绑定固定时间窗口、用累计值而非rate计算、避免float64实时减法&#xff0c;推荐Prometheus聚合异步校准。什么是错误预算&#xff0c;Go 里为什么不能直接用 float64 算错误预算是 SLO&#xff08;Service Level Objective&…...

5分钟掌握网易云音乐NCM解密:免费转换MP3的完整指南

5分钟掌握网易云音乐NCM解密&#xff1a;免费转换MP3的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为下载的网易云音乐只能在官方应用播放而烦恼吗&#xff1f;NCM格式限制让你无法在其他设备上欣赏心爱的歌曲&…...

看得见的数据结构:Android可视化学习终极指南

看得见的数据结构&#xff1a;Android可视化学习终极指南 【免费下载链接】DS4Android 看得见的数据结构Android版---Show the Data_Structure power by Android View 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Android 你是否曾在学习数据结构时感到困惑&#…...

【脚本安装】十分钟配置Claude Code:终端里的AI编程搭档

十分钟上手Claude Code&#xff1a;终端里的AI编程搭档从零开始配置属于你自己的AI编程助手&#xff0c;让代码审查、批量修改、技术问答都在命令行里搞定。为什么写这篇 最近折腾了不少AI编程工具&#xff0c;Claude Code给我的体验最接近「搭档」这个词——不是那种被动等指令…...