You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Wireshark MATE计算SMPP submit_sm与响应包的响应时间?

用Wireshark MATE计算SMPP submit_sm与submit_sm_resp的响应时间

问题背景

需要通过Wireshark的MATE插件计算每个SMPP submit_sm(command_id=4,即0x00000004)和对应submit_sm_resp(command_id=2147483652,即0x80000004)之间的响应时间,现有MATE脚本如下:

Pdu smpp_pdu Proto smpp Transport mate { 
   Extract cmd From smpp.command_id; 
   Extract seq From smpp.sequence_number;
};
Gop smpp_session On smpp_pdu Match (seq) { 
   Start (cmd=4); 
   Stop (cmd=2147483652);
};
Done;

当前遇到的问题:

  • Delta Time Displayed列仅能显示当前数据包与前一个数据包的时间差,无法匹配请求与响应的对应关系
  • mate.smpp_pdu.RelativeTime仅显示数据包相对于追踪开始的时间,不是请求到响应的时间差
  • mate.smpp_session.Time无任何结果输出

解决方案

1. 修改MATE脚本,提取会话时间差

在原有脚本的Gop块中添加Extract delta From Delta;,让MATE自动计算Start(submit_sm)到Stop(submit_sm_resp)的时间差并提取:

Pdu smpp_pdu Proto smpp Transport mate { 
   Extract cmd From smpp.command_id; 
   Extract seq From smpp.sequence_number;
};
Gop smpp_session On smpp_pdu Match (seq) { 
   Start (cmd=4); 
   Stop (cmd=2147483652);
   Extract delta From Delta;  // 提取请求到响应的时间差
};
Done;

2. 添加自定义列查看响应时间

  1. 右键Wireshark的列标题,选择列首选项
  2. 点击添加按钮,配置新列:
    • 标题:SMPP响应时间(可自定义)
    • 字段类型:选择自定义
    • 字段内容:mate.smpp_session.delta
  3. 点击确定保存设置,返回数据包列表即可看到对应响应时间

3. 过滤已完成的会话

如果需要只查看已经匹配到请求和响应的会话,可以使用过滤条件:

mate.smpp_session.delta exists

注意事项

  • 确保submit_sm和submit_sm_resp的sequence_number严格对应(SMPP协议通过seq字段匹配请求与响应)
  • 修改脚本后需重新加载MATE插件,或重启Wireshark生效

内容的提问来源于stack exchange,提问作者Lucas Rey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:26:19