首页/网络/工控与物联网速查/Modbus TCP报文的MBAP头解析
工业协议80 条

Modbus TCP报文的MBAP头解析

Modbus TCP 报文由 7 字节 MBAP 头与 PDU 组成,MBAP 含事务标识、协议标识、长度与单元标识,没有 CRC 字段,校验依赖 TCP。单元标识在直连与经网关场景下语义不同,跨网关调试需先确认其含义。

工控与物联网速查网络更新于 2026-10-17
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

MBAP 头解决什么问题

Modbus TCP 在以太网上承载 Modbus 请求,报文由 7 字节的 MBAP 头加 PDU 组成。MBAP 头处理了串行链路不需要处理的问题:事务配对、协议识别与长度界定,并保留单元标识,使网关能把请求转发给串行链路上的从站。由于 TCP 已经提供校验与重传,Modbus TCP 报文中没有 CRC 字段,这是抓包分析时最容易误判的一点。

MBAP 的七个字节

事务标识2 字节,用于请求与响应配对,由客户端生成并原样返回
协议标识2 字节,Modbus 固定为 0x0000
长度2 字节,表示其后的字节数,包含单元标识与 PDU
单元标识1 字节,直连设备时常为固定值,经网关时用于指定后端从站地址,以设备手册为准
PDU功能码与数据,长度上限受协议约束
校验方式依赖 TCP 校验与重传,报文内没有 CRC 字段

读保持寄存器示例

读保持寄存器示例
# MBAP(7 字节):事务 0001,协议 0000,长度 0006,单元 01
00 01 00 00 00 06 01 03 00 00 00 02   # 其后为 PDU:03 00 00 00 02
# 长度为 6,表示单元标识 1 字节加 PDU 5 字节
# 响应中事务标识与协议标识应与请求一致,便于客户端配对

字段判读

字段长度含义常见问题
事务标识2 字节请求响应配对多客户端下未正确配对导致响应错位
协议标识2 字节固定为 0非 0 时通常被直接丢弃
长度2 字节其后字节数与实际不符会被拒绝或截断
单元标识1 字节目标从站或网关路由经网关时填写错误导致异常或无响应
PDU不定长功能码与数据长度或数量超限返回异常码

排错观察点

  • 无响应:先确认端口、单元标识与目标设备是否一致
  • 连接被拒或被重置:检查设备是否限制并发连接数
  • 响应内容与请求不匹配:多客户端场景下事务标识配对是否正常
  • 网关后端设备无响应:核对单元标识映射与串口参数
  • 抓包发现协议标识非 0:该报文不会被当作 Modbus 处理
单元标识在不同实现中的语义并不统一:直连设备时可能被忽略或要求固定填写,经串口网关时用于指定后端从站地址。跨网关调试前必须先确认其含义,否则容易出现 TCP 侧可达而后端设备无响应的情况。
Modbus TCP 没有认证机制,能建立连接的一方通常可以直接读写数据区,因此它不应跨越信任边界暴露。跨区访问必须由防火墙或网关做来源与功能码限制。

易错点

  • 找 CRC 字段:Modbus TCP 报文没有 CRC,抓包时误判为报文损坏
  • 协议标识填写非 0:设备直接丢弃请求,表现为完全无响应
  • 长度字段与实际不符:报文被截断或拒绝,排查方向被误导到设备侧
  • 忽略单元标识语义:直连设备正常但经网关后后端设备无响应
  • 允许多客户端无节制连接:部分设备连接数有限,超出后新连接被拒

数据来源与参考

  • Modbus 应用协议规范(Modbus Organization)
  • Modbus/TCP 实现指南相关公开文档
  • IEC 61158 系列:工业通信网络

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/ics/modbus-tcp-mbap-header.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​​‌​​‌‌‌​‌​‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​​​‌‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​​‌​​‌‌​​​​‌​‌‌‌​​​​​​‌​‌‌​‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​​​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​