簡體   English   中英

Scapy 嗅探器的過濾器與數據包處理方法中的過濾器相比的優勢?

[英]Advantages of Scapy sniff's filter, versus filtering in packet handling method?

在使用 Scapy 的 sniff 方法時,在 sniff 調用級別使用過濾器和在傳遞給 sniff 調用的回調方法中進行過濾有什么區別? 過濾器是否更高效,例如因為它被傳遞給 libpcap,但這會產生顯着差異嗎? 還是兩者或多或少相同,更多的是個人喜好問題?

注意:我在 Linux 上使用 Scapy 2.45 和 Python3 來嗅探無線數據包。

謝謝 !

如果您使用來自 sniff 的filter=關鍵字參數,那么您將傳遞一個 BPF 過濾器。 這個字符串過濾器被libpcap編譯成C object,然后傳遞給socket。 然后它被 kernel 直接使用,即它比回調中的過濾性能要好得多。

當你處於高負載時,這實際上很重要:如果你收到例如 1 Go/s 的數據包,Scapy 無法足夠快地解析,所以它用來接收這些數據包的套接字將填充它的緩沖區, 大量的數據包將被丟棄。 另一方面,如果您使用 BPF“內核級”過濾器,則只有過濾后的數據包會到達 Scapy:這是一個更易於管理的數據包 stream。

如果您沒有遇到丟包問題(低速率......等),則歸結為偏好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM