Wireshark pcap文件导致的数据包丢失

时间:2018-07-10 20:40:03

标签: tcp wireshark pcap packet-loss

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

2 个答案:

答案 0 :(得分:1)

方法1:计数数据包

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

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

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


方法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包含另外两个数据包。


方法3:安装专用工具

如果您不反对安装新工具,那么有几种方法可以帮助您实现这一目标:

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

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

答案 1 :(得分:0)

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

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