2017-08-27 76 views
0

我试图从视频运行时的YouTube上计算丢包率。如何用scapy计算丢包率?

我嗅探包逐个通过Scapy的,上的eth0并用IP头过滤TCP分组。

为了计算分组丢失率,我应该有一个数字接收的分组和多个发送的数据包(或除外分组)。

我可以很容易地计算出接收到的数据包的数量,但是我从发送的数据包有问题。

回答

0

它比这更复杂一点,你需要看看重传(数据包在超时限制内未被确认)。

在到达您之前,您看不到从另一端丢失的数据包。你可以做的是查看TCP序列号,看看是否有任何差错,你收到数据包的顺序。

这可能是数据包丢失的指示,但不能保证。您可能需要对两个数据包之间的间隔有多少时间限制进行​​试验,然后才能将其计为重发,而不仅仅是出于其他原因无序到达。

我建议你阅读尽可能多地了解TCP协议,了解详情:https://en.wikipedia.org/wiki/Transmission_Control_Protocol

+0

谢谢你回答我的问题。 @SpacemanSpiff – nima

+0

但是对于这个项目,我需要可靠的数据。 – nima

1

,我建议你试试这个:

准备以低,中,高流量交通仿真。您将生成流量,您将提前知道将发送的总数据包。

1)先用tcpdump捕获所有流量。

2)秒利用scapy捕获所有流量(避免用python将数据包保存到磁盘)。

您将看到以下内容:

  • 低流量25%的数据包丢失与Scapy的。
  • 中等流量67%包损失与scapy。
  • 高流量89%!包损失与景观。

数据来源:计算机安全 - ESORICS 2011:第16届欧洲研究计算机安全研讨会。

我试了我自己,我得到了同样的结果。 没有启用libpcap scapy数据包丢失率为96%。

记住tcpdump几乎是比较完美的案例。

+0

嗨, 谢谢你的准确答案,但我尝试另一种方式。 因为我没有访问它们从源发送的数据包,所以我应该接近丢包率。 然后,经过更多的谷歌搜索,我找到了一篇来自思科的文章,帮助了我。 这是这篇文章的链接: [link](https://www.cisco.com/c/en/us/about/security-center/network-performance-metrics.html) – nima