长BPF过滤器会减慢tcpdump
吗?
我重播数据包跟踪,其中所有数据包都有ttl=k
并等待 ICMP 消息。我一直注意到的是,如果我使用以下过滤器(在eth0上):
(ip and ip[8]=$k and src host $myAddress) or (icmp and dst host $myAddress and icmp[0]=11)
...我总是在发送的数据包中丢失20-30个数据包,而如果我这样做:
ip
...然后在捕获文件上执行上述完全过滤离线,我找到了我发送的所有数据包。
这是一种已知行为吗?
答案 0 :(得分:2)
如果tcpdump
的速度不足以从队列中弹出捕获的数据包,则内核可能会丢弃其中一些数据包。
查看转储结束时“内核”消息丢弃的XXXX数据包,看看是否有效丢失了一些消息。
确保将-n
选项添加到命令行。这将避免DNS解析,它会加快一点(取决于您的网络)