首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.pcap文件中的丢包检测

.pcap文件中的丢包检测
EN

Stack Overflow用户
提问于 2018-02-13 11:22:59
回答 2查看 7.1K关注 0票数 1

我有几个传输流视频封装在一个PCAP文件中。众所周知,他们有丢包的情况。我需要知道一种方法来发现所有这些损失。使用的协议有:以太网、IP、UDP、RTP和最终TS (传输流)。你知道是否有任何标志或字段来检测损失吗?我知道有些字段,比如序列号,可以让我知道这些信息。尽管如此,我看不到任何序列号的跳跃。

我正在使用WireShark,您知道它是否存在一个更适合分析数据包丢失的工具吗?这里有我正在使用的PCAP文件:Mxlev/view?usp=共享

EN

回答 2

Stack Overflow用户

发布于 2018-02-14 18:20:00

你试过使用Wireshark的“分析-> https://www.wireshark.org/docs/wsug_html_chunked/ChAdvExpert.html”吗?(您也可以通过单击状态栏左下角的小红圆圈来查看它,尽管该圆圈的颜色将因捕获文件中的最高错误级别而有所不同。)

编辑:用下面的更多信息扩展了我原来的答案..。

您还可以在"Telephony -> -> RTP“下查看RTP统计信息,其中列出了23个丢失的数据包。“电话-> RTP ->流分析”也提供了潜在的有用信息。

查看数据的另一种可能有用的方法是使用I/O图。例如,“统计-> I/O图”。禁用正在绘制的任何内容并添加一个新的,如下所示:

代码语言:javascript
运行
复制
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

你应该看到一条相当直的对角线,从左下角开始,到右上角结束。现在将间隔更改为10 me,您将看到一些序列号间隙--对我来说,3个间隙很容易被观察到,这可能是数据包丢失发生的位置的很好的指示。例如,大约12:16:38,有一个空白,可以看到11634的RTP序列#缺失了,这应该在帧10271和10272之间。

但是,如果您想更容易地查看所有序列号空白的位置,那么您可能希望将Wireshark数据导出到电子表格程序中,比如Excel。例如:

  • 右键单击任何数据包的RTP序列号字段,并选择“应用为列”。
  • 将该文件导出到CSV:->文件导出包将->分解为CSV。
  • 使用speadsheet程序打开.csv文件
  • 添加一个列,其内容是上一行中的RTP序列号与当前行中的RTP序列号之间的差异。例如,如果RTP序列号位于G列中,则单元格将包含=G2-G1-1。如果您首先选择整个列,并在添加公式时使用“Ctrl”而不是"Enter“,则公式将快速应用于所有行。(您可能需要清理最后一个有效行之后的一些无关数据。)
  • 通过用标题替换未定义的值来修复新列的第一行,例如"RTP Seq # diff“。
  • 除0以外的任何值都表示RTP序列号中的空白。
  • 要更容易地找到所有空白,请选择整个表并在这个新列上筛选除0以外的所有值,您应该得到一个相对较小的表,如下所示:

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分析中报告的丢失数据包完全匹配。

Note:对于不熟悉在非标准端口上解码通信量的人,为了让Wireshark将UDP有效负载解码为RPT,您必须使用"Decode As“功能作为@nnovich-OK上面提到的功能。为此,要么选择一个UDP数据包并右键单击"Decode“,要么选择"Analyze -> Decode as . -> + ->”,然后通过在当前列下选择RTP将UDP端口4000设置为RTP。

票数 3
EN

Stack Overflow用户

发布于 2019-09-11 14:12:55

这个帮了我,

  1. 使用WireShark,首先停止捕获(在捕获了所需/想要的所有内容之后),
  2. 然后转到统计->捕获文件属性

有一个关于整体丢包的统计数据--总比什么都没有好。同样的情况也可以通过dumpcap命令来实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48765675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档