如何在Wireshark中查找数据包丢失?

7

我需要测试FTP应用程序的数据包丢失情况。我使用了Wireshark数据包嗅探器,并获得了TCP流。

如何使用Wireshark查找数据包丢失?


1
你在哪里运行Wireshark - 在FTP客户端机器上,FTP服务器机器上,还是挂在网络上的另一台机器上? - Vicky
1
这与编程无关,可能应该放在Serverfault上。 - Andre Miller
2个回答

6

丢包和其他相关指标,如比特错误率(BER),在Wireshark的转储中可能很难或不可能通过观察来实现,这取决于您想查看的层。而且,很大程度上取决于您使用的协议以及实现它的软件/固件。

例如,我曾经在Wi-Fi路由器上遇到过这种情况。我需要经验性地测试给定Wi-Fi链接的BER。但事实证明,802.11具有类似于TCP的基于CRC的重传系统,所有这些都发生在链路层。

因此,例如,您可以从Wi-Fi设备A发送一个UDP数据包到Wi-Fi设备B。在传输过程中,一些位被翻转,设备B发现CRC错误并发送请求进行重传。数据包再次被发送,但仍然损坏。在第三次尝试时,数据包成功传送。

从这个例子中,您希望看到某种丢包指标,对吗?很不幸,没有。整个交换过程发生在Wireshark下面。它只看到一个UDP数据包被成功发送,但需要三倍于正常时间才能到达目的地。(最终我不得不修改内核以在链路层CRC错误发生时发出通知。那真是一团糟!)


-1

[Zr40在下面指出这部分是错误的:为了详细说明我的评论 - Wireshark确实会在底部状态栏告诉您丢失数据包的数量(我刚刚运行了一个样本捕获,它说“数据包:65 显示:65 标记:0 丢失:0”),但我不确定您是否会根据运行Wireshark的哪一端获得相同的结果。]

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

此外,您需要设置FTP的捕获过滤器,除非您希望其他内容(如ARP,DNS查找等)影响您的统计数据。


在这种情况下,“Dropped”表示Wireshark无法快速捕获数据包,因此一些数据包被忽略了。 - Zr40

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接