上期能源深度行情 Wireshark 插件

上期能源深度行情 Wireshark 插件

基于《深度行情发布平台接口规范 v1.00》的 Lua 解析插件,支持 MDQP(TCP 快照查询)与 MIRP(UDP 增量行情)。


环境要求

  • Wireshark 4.6.x(已在 4.6.8 上验证;需支持 Lua 插件)
  • 操作系统:Windows / macOS / Linux 均可
  • 无需编译,单文件 .lua 脚本,复制即可使用

说明: 请使用官方 Wireshark 安装包。便携版若未启用 Lua,插件将无法加载。可在菜单 Help → About Wireshark 中确认是否包含 Lua 支持。


下载

插件 传输 说明 下载
MDQP Dissector TCP 解析 MDQP 行情查询协议(快照、登录、增量补包等) mdqp_dissector.lua
MIRP Dissector UDP 解析 MIRP 增量行情,含 PacketNo / ChangeNo 连续性检测与丢包高亮 mirp_dissector.lua

注:由于网站安全设置无法直接下载.lua文件,下载后去掉.txt扩展,将文件重命名为.lua文件,如果浏览器直接打开了该文件,请复制所有内容并保存为.lua文件


安装与加载

1. 复制插件文件

将下载的 .lua 文件放入 Wireshark 个人插件目录(两个插件可同时安装):

系统 插件目录
Windows %APPDATA%\Wireshark\plugins\
macOS ~/.local/lib/wireshark/plugins/
Linux ~/.local/lib/wireshark/plugins/

也可在 Wireshark 中通过 Help → About Wireshark → Folders 查看 Personal Lua Plugins 路径。

2. 加载插件

  1. 启动或重启 Wireshark
  2. 菜单选择 Analyze → Reload Lua Plugins
  3. 打开抓包文件,在 Edit → Preferences → Protocols 中应能看到 MDQP、MIRP

3. 手动指定协议(可选)

若端口未自动识别,对目标包右键 → Decode As… → 选择 MDQP 或 MIRP。


MDQP 配置(TCP)

路径:Edit → Preferences → Protocols → MDQP

选项 默认值 说明
TCP ports 33022 MDQP 服务端口,源或目的端口匹配即可;支持逗号、范围,如 33022,33023
Heuristic dissection 关 扫描全部 TCP 流量,大文件较慢,建议保持关闭并指定端口

TCP 重组(必开)

MDQP 报文可能跨多个 TCP 段,请确认:

Edit → Preferences → Protocols → TCP

  • 勾选 Allow subdissector to reassemble TCP streams

Info 列显示字段

完整解析后 Info 列展示:

SnapDate、SnapTime、SnapMillisec、PacketNo、InstrumentID、InstrumentNo

显示过滤器示例

mdqp
mdqp.type_id == 0x32
tcp.port == 33022 && mdqp
mdqp.contract.instrument_id == "rb2510"

MIRP 配置(UDP)

路径:Edit → Preferences → Protocols → MIRP

选项 默认值 说明
UDP ports 21000,25000 增量组播端口,逗号或范围,如 21000,25000、21000-21005
Heuristic dissection 关 建议关闭,仅绑定已知端口(性能最佳)
Track PacketNo continuity 开 按 TopicID + CenterChangeNo 检测 PacketNo 跳号
Track ChangeNo continuity 开 按合约检测 ChangeNo 跳号
Auto-install gap color rules 开 丢包包黑底白字高亮(需重启 Wireshark 加载着色规则)

显示过滤器示例

mirp
mirp.topic_id == 100
mirp.packet_status == 2
mirp.gap_loss == 1
mirp.contract.instrument_no == 20

丢包标记黑色高亮

跳号后首包设置 mirp.gap_loss == 1。着色规则写入:

%APPDATA%\Wireshark\colorfilters (Windows)下载修改好的文件

修改着色规则后需重启 Wireshark(Reload Lua 不会刷新 colorfilters)。


常见问题

过滤 mdqp / mirp 没有结果?

显示过滤器只能匹配已成功解析的包。请先用 tcp.port == 33022 或 udp.port == 21000 确认有流量,再 Reload Lua,或 Decode As 手动指定协议。

MDQP 仍显示为 TCP?

  1. 确认 Preferences → MDQP → TCP ports 已填写
  2. 确认 TCP 已开启 subdissector reassemble
  3. 对含完整 payload 的包尝试 Decode As → MDQP

插件加载报错?

查看 Analyze → Reload Lua Plugins 下方 Lua 控制台输出;请使用 Wireshark 4.6.x,旧版 API 可能不兼容。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注