579204 packets captured
579346 packets received by filter
142 packets dropped by kernel
原因:Tcpdump 通过网络接口捕获原始数据包,数据包必须解析和执行过滤条件,执行过滤条件需
要耗费一些
时间,
因此传入
数据包必须排队(数据缓存)进行处理,当数据包过多时(处理速度跟不
上缓存速度),缓存区
就会被撑爆
(缓存区大小默认是2M),
此时就会丢弃新近的数据包,直到缓存
区有空间保存新到数据。
解决方案:增大缓存区的大小。
1)tcpdump命令可以使用 -B 参数来修改,单位是KiB。
2)libpap库中提供函数pcap_set_buffer_size() 。