我試圖從視頻運行時的YouTube上計算丟包率。如何用scapy計算丟包率?
我嗅探包逐個通過Scapy的,上的eth0並用IP頭過濾TCP分組。
爲了計算分組丟失率,我應該有一個數字接收的分組和多個發送的數據包(或除外分組)。
我可以很容易地計算出接收到的數據包的數量,但是我從發送的數據包有問題。
我試圖從視頻運行時的YouTube上計算丟包率。如何用scapy計算丟包率?
我嗅探包逐個通過Scapy的,上的eth0並用IP頭過濾TCP分組。
爲了計算分組丟失率,我應該有一個數字接收的分組和多個發送的數據包(或除外分組)。
我可以很容易地計算出接收到的數據包的數量,但是我從發送的數據包有問題。
經過更多google搜索,我找到了一篇來自思科的文章,解釋瞭如何基於帶寬來近似丟包率。
這是鏈接,幫助我,我希望能幫助你。
Bandwidth, Packets Per Second, and Other Network Performance Metrics
謝謝。
它比這更復雜一點,你需要看看重傳(數據包在超時限制內未被確認)。
在到達您之前,您看不到從另一端丟失的數據包。你可以做的是查看TCP序列號,看看是否有任何差錯,你收到數據包的順序。
這可能是數據包丟失的指示,但不能保證。您可能需要對兩個數據包之間的間隔有多少時間限制進行試驗,然後才能將其計爲重發,而不僅僅是出於其他原因無序到達。
我建議你閱讀儘可能多地瞭解TCP協議,瞭解詳情:https://en.wikipedia.org/wiki/Transmission_Control_Protocol
,我建議你試試這個:
準備以低,中,高流量交通仿真。您將生成流量,您將提前知道將發送的總數據包。
1)先用tcpdump捕獲所有流量。
2)秒利用scapy捕獲所有流量(避免用python將數據包保存到磁盤)。
您將看到以下內容:
數據來源:計算機安全 - ESORICS 2011:第16屆歐洲研究計算機安全研討會。
我試了我自己,我得到了同樣的結果。 沒有啓用libpcap scapy數據包丟失率爲96%。
記住tcpdump幾乎是比較完美的案例。
嗨, 謝謝你的準確答案,但我嘗試另一種方式。 因爲我沒有訪問它們從源發送的數據包,所以我應該接近丟包率。 然後,經過更多的谷歌搜索,我找到了一篇來自思科的文章,幫助了我。 這是這篇文章的鏈接: [link](https://www.cisco.com/c/en/us/about/security-center/network-performance-metrics.html) – nima
謝謝你回答我的問題。 @SpacemanSpiff – nima
但是對於這個項目,我需要可靠的數據。 – nima