我通过 wifi 运行 Iperf,将 UDP 数据包从客户端发送到服务器,然后使用 Wireshark 捕获流量。Wireshark 捕获的数据报总数少于使用 Iperf 发送的数据报总数。根据序列号,应该可以找出哪些帧丢失了。Wireshark 是否有某种荧光笔可以帮助我找到间隙,或者还有其他方法可以找到它吗?
答案1
我没有运行带有防火墙支持,但我做过类似的事情尤其是数据包,您可能会发现它们很有用,我将在下面使用这些数据包进行说明。显然,您需要修改tshark
下面的命令以满足您的防火墙需要。我猜想过滤器可能只需要从 更改为 ,-Y "esp"
而-Y "iperf2_udp"
要打印的字段可能只需要从 更改为-e esp.sequence"
,-e iperf2.udp.sequence"
但目前我还没有办法验证和测试这一点,所以我把它留给读者作为练习。
无论如何,需要遵循 3 个基本步骤:
使用
tshark
,生成相关流程的所有序列号列表并将其保存在 .csv 文件中。就我而言:tshark -r capture.pcap -Y "esp and ip.src eq 192.168.1.100" -T fields -e frame.number -e esp.sequence -E separator=, > esp_seq.csv
将 .csv 文件导入 Excel(或您最喜欢的电子表格软件)并添加标题列,使其看起来更美观,并且您知道哪列是哪列。它应该看起来像这样:
A B C 1 Frame Seq#
2 2 7753 3 4 7754 4 6 7756 5 8 7757
在单元格 C3 中,添加一个公式来指示是否存在间隙,然后通过拖动填充柄将该公式应用于 C 列(C2 除外)中的每个其他单元格,例如,
=IF(B3-B2=1,"","Missing")
您应该看到:
A B C 1 Frame Seq#
2 2 7753 3 4 7754 4 6 7756 Missing 5 8 7757
信用:Excel 技巧来自这里,但略作修改,以避免在 C 列最后一行出现“缺失”。