PCAP 回放
将先前录制的 PCAP 或 PCAPNG 抓包文件作为实时设备进行回放。不会向网络发送任何内容:驱动会建立连接,而它“接收”到的帧全部来自文件。
这是一种用于调试和开发的传输方式。借助它,你可以针对从一台无法访问的机器上获取的抓包文件来开发驱动,它与 [审计日志]](https://plc4x.apache.org/plc4x/latest/users/audit-log.html) 天然契合——录制一次,然后按需反复回放。
传输语法
抓包文件由 pcap-replay.pcap-file 参数指定;连接字符串中的地址部分不会被解析。
示例
profinet:pcap-replay://?pcap-replay.pcap-file=/tmp/line-3.pcapng&pcap-replay.speed-factor=1.0名称
类型
默认值
是否必需
说明
名称
PCAP Replay
代码
pcap-replay
Maven 依赖
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4j-transports-pcap-replay</artifactId>
<version>1.0.0</version>
</dependency>配置选项:
pcap-replay.pcap-file
STRING
required
用于回放的 PCAP 文件路径。
pcap-replay.local-address
本地 MAC 地址(用于模拟,充当该设备)。
pcap-replay.remote-address
STRING
用于通信的远程 MAC 地址。
pcap-replay.protocol-id
INT(整型)
0
用于过滤的 EtherType / 协议号(例如,PROFINET 使用 0x88B5)。
pcap-replay.speed-factor
双精度浮点数(DOUBLE)
0
回放速度倍数。1.0 = 实时,0.0 = 尽可能快,2.0 = 双倍速。
pcap-replay.loop
BOOLEAN
false
当 PCAP 文件到达末尾时,循环播放该文件。
pcap-replay.only-incoming-packets
BOOLEAN
true
仅重放从远端到本地的数据包(模拟设备响应)。当为 false 时,重放所有数据包。
pcap-replay.only-outgoing-packets
BOOLEAN
false
仅重放从本地到远程的数据包(模拟设备请求)。
pcap-replay.max-frame-size
INT
1500
以字节为单位的最大帧大小。
pcap-replay.read-timeout-ms
INT
0
阻塞读取的读取超时时间,单位为毫秒。
pcap-replay.packet-queue-size
INT
1000
数据包队列的缓冲区大小。
pcap-replay.auto-detect-mac-addresses
BOOLEAN
true
根据 PCAP 文件中的第一个数据包自动检测 MAC 地址。
pcap-replay.auto-start
BOOLEAN
true
创建传输时自动开始重放。
pcap-replay.vlan-id
INT
0
按 VLAN ID 过滤(0 表示不进行 VLAN 过滤)。
首次运行之前,有两个选项值得了解:
pcap-replay.speed-factor默认为0,即以尽可能快的读取速度重放抓包数据。将其设置为1.0可以还原原始时序——如果你要追踪的 bug 与时序有关,就应该这样设置。pcap-replay.only-incoming-packets默认为true,因此默认情况下只重放设备发送的帧,驱动自身的请求不会被发出。如果要替代某个设备,这样的设置才是正确的。
评论
登录后参与评论
KnowForge