如何在Wireshark中找到丢包?

kri*_*mar 7 packet-capture packet wireshark

我需要测试FTP应用程序的丢包.我使用了Wireshark数据包嗅探器,我得到了TCP Stream.

如何使用Wireshark找到丢包?

Alt*_*tF4 6

通过查看Wireshark中的转储,根据您想要查看的层,数据丢失和其他相关指标(如误码率(BER))很难或根本无法通过经验看出.而且很多都高度依赖于您正在使用的协议以及实现它的软件/固件.

例如,我对Wi-Fi路由器有过这方面的经验.我需要凭经验测试给定Wi-Fi链路的BER.但事实证明,802.11具有类似TCP的基于CRC的重传系统,所有这些都发生在链路层.

因此,例如,您可以从Wi-Fi设备A向Wi-Fi设备B发送UDP数据包.在传输过程中,几个比特被翻转,设备B看到CRC错误并发送重传请求.数据包再次被发送,并再次被破坏.然而,在第三次尝试中,数据包完成得很好.

从这个,您希望看到某种丢包指标吗?好吧,不幸的是没有.整个交换发生在Wireshark下面.它看到的只是UDP数据包成功发送,但需要三倍于正常情况才能到达那里.(当发生链路层CRC错误时,我不得不进行内核修改以发出通知.这太乱了!)


Vic*_*cky -1

[Zr40 在下面指出这部分是错误的:扩展我的评论 - Wireshark 确实会告诉您底部状态栏中丢弃的数据包数量(我刚刚运行了一个示例捕获,它显示“数据包:65 显示:65”)标记:0 丢弃:0”)但我不确定你是否会得到相同的结果,具体取决于你在哪一端运行它。]

在这种情况下 - 我想您需要在每一端运行 Wireshark 并查看数据包统计信息(数据包数量 A->B、B->A)并比较差异。您不能依赖 TCP 重试等,因为这并不一定意味着数据包丢失。

另外,您只需要为 FTP 设置捕获过滤器,除非您希望统计数据受到 ARP、DNS 查找等其他内容的影响。