我有几个传输流视频封装在PCAP文件中。众所周知,它们有丢包。我需要知道一种方法来检测所有这些损失。 使用的协议是:以太网,IP,UDP,RTP,最后是TS(传输流)。 你知道是否有任何旗帜或领域来检测损失?我知道有一些像序列号这样的字段可以让我知道这些信息。尽管如此,我看不到任何序列号的任何跳跃。
我正在使用WireShark,您知道它是否存在更合适的工具来分析数据包丢失? 这里有我正在使用的PCAP文件:https://drive.google.com/file/d/1vdyBYlUl0P9LXNshf_jISPkCP6_Mxlev/view?usp=sharing
答案 0 :(得分:1)
您是否尝试过使用Wireshark的“Analyze - > Expert Information”? (您也可以通过单击状态栏左下角的小红圈来查看它,但圆圈的颜色会根据捕获文件中存在的最高错误级别而有所不同。)
修改:扩展了我的原始答案,下面有更多信息......
您还可以在“电话 - > RTP - > RTP Streams”下查看RTP统计信息,其中列出了23个丢失的数据包。 “电话 - > RTP - >流分析”还提供了潜在有用的信息。
查看数据的另一种可能有用的方法是使用I / O图。例如,“Statistics - > I / O Graph”。禁用任何正在绘制的内容并添加一个新内容,如下所示:
Enabled Graph Name Display Filter Color Style Y Axis Y Field SMA Period
X RTP Seq rtp.seq X Line MIN(Y Field) rtp.seq None
您应该看到一条相当直的对角线,从左下角开始,到右上角结束。现在将Interval更改为10ms,您将看到一些序列号间隙 - 对我来说,很容易观察到3个间隙,这可能是发生丢包的好指标。例如,在12:16:38左右,有一个间隙,可以看到缺少RTP序列#11634,它应该在帧10271和10272之间。
但是如果您想更容易地看到所有序列号间隙的位置,那么您可能希望将Wireshark数据导出到电子表格程序中,例如Excel。例如:
=G2-G1-1
。如果您首先选择整个列并在添加公式时使用“Ctrl-Enter”而不是“Enter”,则公式将快速应用于所有行。 (您可能必须清除最后一个有效行之外的一些无关数据。)
No. AbsTime Time DeltaT Proto Length RTP Seq # RTP Seq # Diff
3405 16:33.7 2.199559 0.001005 MPEG TS 1370 4748 3
6505 16:35.7 4.203210 0.000139 MPEG TS 1370 7851 1
6631 16:35.8 4.287576 0.001001 MPEG TS 1370 7978 1
8781 16:37.2 5.728671 0.000102 MPEG TS 1370 10129 1
8855 16:37.3 5.781427 0.000254 MPEG TS 1370 10204 1
9476 16:37.7 6.213582 0.000816 MPEG TS 1370 10826 1
9728 16:37.9 6.389564 0.000634 MPEG TS 1370 11079 10
9981 16:38.1 6.572582 0.000978 MPEG TS 1370 11342 1
10271 16:38.3 6.774569 0.000796 MPEG TS 1370 11633 1
10311 16:38.3 6.803568 0.000995 MPEG TS 1370 11674 1
10979 16:38.8 7.268695 0.000068 MPEG TS 1370 12343 1
12361 16:39.7 8.186596 0.000177 MPEG TS 1370 13726 1
这应该告诉您所有间隙的位置以及丢失的数据包数量,这只是最后一列的总和,或23,与Wireshark在RTP分析中报告的丢失数据包完全匹配。
注意:对于不熟悉解码非标准端口流量的人,为了让Wireshark将UDP有效负载解码为RPT,必须使用“Decode As”上面提到@nnovich-OK的功能。要执行此操作,请选择UDP数据包并右键单击“解码为”,或选择“分析 - >解码为... - > + - >”然后将UDP端口4000设置为RTP by在 Current 列下选择RTP。
答案 1 :(得分:0)
这对我有帮助
这里有一个用于总体丢弃数据包的统计信息-总比没有好。 同样可以使用 dumpcap 命令
来完成