2017-08-27 75 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