如何用scapy计算丢包率?
How to calculate packet loss rate with scapy?
我正在尝试计算视频 运行 时来自 YouTube 的丢包率。
我在 eth0 上通过 Scapy 一个一个地嗅探数据包并过滤 TCP 具有 IP[=23 的数据包=] header。
要计算数据包丢失率,我应该有一些接收数据包和一些发送数据包(或例外数据包) .
我可以很容易地计算出收到的数据包数量,但是我对从youtube发送的数据包有问题。
比这要复杂一点,你需要看看重传(在超时限制内未确认的数据包)。
您看不到来自另一端的数据包在到达您之前丢失了。您可以做的是查看 TCP 序列号,看看是否存在您接收乱序的数据包的间隙。
这可能是数据包丢失的迹象,但不能保证。在将其计为重传之前,您可能需要对两个数据包之间允许的间隔时间限制进行一些试验,而不仅仅是出于其他原因的乱序到达。
我建议尽可能多地阅读 TCP 协议以了解详细信息:https://en.wikipedia.org/wiki/Transmission_Control_Protocol
我推荐你试试这个:
准备低、中、高流量的模拟流量。如果您将生成流量,您将提前知道将发送的总数据包。
1) 首先用tcpdump抓取所有流量
2) 其次用scapy捕获所有流量(避免用python将数据包保存到磁盘)。
您将看到以下内容:
- 低流量 25% 数据包 scapy 丢失。
- 中等流量 67% 数据包 scapy 丢失。
- 高流量89%! packet 丢失 scape.
数据来源:计算机安全 – ESORICS 2011:第 16 届欧洲计算机安全研究研讨会。
我自己试了一下,得到了同样的结果。
在没有启用 libpcap 的情况下,scapy 数据包丢失率为 96%。
记住 tcpdump 几乎是比较的完美案例。
经过更多google搜索,我发现了一篇来自 Cisco 的文章,其中解释了如何根据带宽估算丢包率。
这是link,对我有帮助希望对你也有帮助。
Bandwidth, Packets Per Second, and Other Network Performance Metrics
谢谢。
我正在尝试计算视频 运行 时来自 YouTube 的丢包率。
我在 eth0 上通过 Scapy 一个一个地嗅探数据包并过滤 TCP 具有 IP[=23 的数据包=] header。
要计算数据包丢失率,我应该有一些接收数据包和一些发送数据包(或例外数据包) .
我可以很容易地计算出收到的数据包数量,但是我对从youtube发送的数据包有问题。
比这要复杂一点,你需要看看重传(在超时限制内未确认的数据包)。
您看不到来自另一端的数据包在到达您之前丢失了。您可以做的是查看 TCP 序列号,看看是否存在您接收乱序的数据包的间隙。
这可能是数据包丢失的迹象,但不能保证。在将其计为重传之前,您可能需要对两个数据包之间允许的间隔时间限制进行一些试验,而不仅仅是出于其他原因的乱序到达。
我建议尽可能多地阅读 TCP 协议以了解详细信息:https://en.wikipedia.org/wiki/Transmission_Control_Protocol
我推荐你试试这个:
准备低、中、高流量的模拟流量。如果您将生成流量,您将提前知道将发送的总数据包。
1) 首先用tcpdump抓取所有流量
2) 其次用scapy捕获所有流量(避免用python将数据包保存到磁盘)。
您将看到以下内容:
- 低流量 25% 数据包 scapy 丢失。
- 中等流量 67% 数据包 scapy 丢失。
- 高流量89%! packet 丢失 scape.
数据来源:计算机安全 – ESORICS 2011:第 16 届欧洲计算机安全研究研讨会。
我自己试了一下,得到了同样的结果。 在没有启用 libpcap 的情况下,scapy 数据包丢失率为 96%。
记住 tcpdump 几乎是比较的完美案例。
经过更多google搜索,我发现了一篇来自 Cisco 的文章,其中解释了如何根据带宽估算丢包率。
这是link,对我有帮助希望对你也有帮助。
Bandwidth, Packets Per Second, and Other Network Performance Metrics
谢谢。