我正在尝试在视频运行时从youtube计算丢包率。
我通过Scapy在 eth0 上逐个嗅探数据包,并使用 IP 标头过滤 TCP 数据包。
要计算丢包率,我应该有一些收到的数据包和一些已发送数据包(或例外数据包)。
我可以轻松计算收到的数据包数量,但是从youtube发送的数据包有问题。
答案 0 :(得分:1)
我建议你试试这个:
准备低,中,高流量的模拟流量。您将生成预先知道将要发送的总数据包的流量。
1)首先使用tcpdump捕获所有流量。
2)Second使用scapy捕获所有流量(避免使用python将数据包保存到磁盘)。
您将看到以下内容:
数据来源:计算机安全 - ESORICS 2011:第16届欧洲研究计算机安全研讨会。
我尝试了自己,得到了同样的结果。 没有libpcap启用scapy数据包丢失率为96%。
记住tcpdump几乎是比较的完美案例。
答案 1 :(得分:0)
比这更复杂一点,你需要查看重传(在超时限制内未确认的数据包)。
你无法看到来自对方的数据包在到达你之前丢失了。您可以做的是查看TCP序列号,看看是否存在无序接收数据包的间隙。
这可能是数据包丢失的指示,但不能保证。你可能不得不做一些试验,以确定两个数据包之间允许的间隔时间限制,然后再将其作为重新传输计数,而不仅仅是因为其他原因而无法到达。
我建议尽可能多地阅读TCP协议,以了解详细信息:https://en.wikipedia.org/wiki/Transmission_Control_Protocol
答案 2 :(得分:0)
经过更多谷歌搜索后,我发现思科的一篇文章解释了如何根据带宽估算丢包率。
这是链接,这对我有所帮助,我希望它也可以帮到你。
Bandwidth, Packets Per Second, and Other Network Performance Metrics
感谢。