【问题标题】:packet loss from wireshark pcap files来自wireshark pcap文件的数据包丢失
【发布时间】:2018-12-18 18:59:39
【问题描述】:

我有两个来自发送方和接收方的wireshark pcap 文件。我正在使用不同的协议(TCP、UDP、RTMP 和 RTSP)将实时视频从发送方流式传输到接收方。当网络断开时,有没有办法从两个 pcap 文件中丢失数据包?

【问题讨论】:

  • “两个pcap文件丢包”是什么意思?
  • 您的意思是在接收方检索到的 pcap 文件包含的数据包少于来自发送方的数据包,因为数据包丢失,您想计算两个文件之间的差异吗?
  • @Malt 在流式传输时,我引入了一个故障,因此应该会导致 Wireshark 捕获的数据包丢失。我在发送方和接收方运行了wireshark,因此通过比较这两个捕获文件可以得出在失败期间丢失了多少数据包。我想知道是否有办法获得该号码。
  • @pchaigno 是的,这就是我想知道的。差异会给我在失败期间丢失或丢失的数据包数量。

标签: tcp wireshark pcap packet-loss


【解决方案1】:

方法一:统计包数

如果您确定接收方没有收到来自其他发送方的数据包,您可以简单地统计每个捕获文件中的数据包数,以获得丢弃的数据包数:

$ capinfos file1.pcap | grep "Number of packets:"
Number of packets:   12
$ capinfos file2.pcap | grep "Number of packets:"
Number of packets:   18

在这里,我有 4 个数据包的差异,因为 file2 的捕获是在 file1 之前开始的。


方法2:比较文本转储

$ tshark -r file1.pcap -Tfields -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport > file1.txt 
$ tshark -r file2.pcap -Tfields -e ip.src -e ip.dst -e tcp.srcport -e tcp.dstport > file2.txt 
$ diff file1.txt file2.txt
0a1,2
> 172.16.0.67   172.16.0.97 22  56732
> 172.16.0.97   172.16.0.67 56732   22

在这里,我为每个数据包转储了一些字段值,在我的情况下,这已经足够了。您可能需要转储不同的字段值。比较这两个文本文件发现 file2.pcap 包含另外 2 个数据包。


方法三:安装专用工具

如果您不反对安装新工具,有几个可以为您做到这一点:

  • Tracediff 将打印两个捕获文件之间不同的每个数据包的详细信息。您可以使用以下方法提取不同/缺失文件的数量:

    $ sudo apt install tracediff
    $ tracediff file1.pcap file2.pcap | grep "Capture: Packet Length:" | wc -l
    

【讨论】:

  • 在我的捕获文件中,除了 tcp 数据包之外,还有 ARP、DHCP、ICMP 数据包。我想知道丢失了多少数据包。我试过方法1,它给了我每个pcap文件中的数据包数量,它也显示在窗口右下角的wireshark中。我还尝试了方法 3,它为我提供了数据包长度、方向值、标头长度、ID、源 ip、目标 ip、seq、ack 等信息。从哪个值可以知道丢失数据包的数量?
  • 在方法2中,“0a1,6”是什么意思?你怎么知道 file2.pcap 还包含 2 个数据包?
  • 这是 diff 的格式。详情请见unix.stackexchange.com/a/216131/238209
  • 方法 1 不适合您吗?对于方法 3,如果您运行我给出的确切命令,它应该返回丢失数据包的数量。对于方法 2,您必须在 tshark 的输出中添加其他字段。
  • 方法一给出pcap文件中的包总数。我的 pcap 文件有 TCP 数据包以及发生故障时的 ARP、DHCP 和 ICMP 数据包。因此,即使这些数据包也将计入总数。所以这个数字不是我要找的。对于方法 3,它在末尾给出“包长度”的值。它不返回丢失数据包的数量。
【解决方案2】:

要计算两个 pcap 文件之间的差异,您可以使用 wand's libtrace。它包含tracediff 工具,可以满足您的需求。

类似于tracediff pcapfile:sender.pcap.gz pcapfile:receiver.pcap.gz

【讨论】:

  • 它给出了数据包长度、方向值、报头长度、ID、源IP、目标IP、seq、ack等信息。从哪个值我可以知道丢失的数据包的数量?
猜你喜欢
  • 2018-08-09
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 2022-11-27
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多