ddup

Libpcap

在用libpcap capture packet时, os会分配一个’os buffer’来保存接收的包, 该’os buffer’是由固定大小的slot组成的. 该’os buffer’的默认大小是2M, 如果将snapshot length的大小设置为65535, 则slot的大小就是32(65535 * 32 = 2M). 如果包到达速度非常快, 而包处理函数比较慢, 就会造成slot占满, 就会造成丢包. 将snapshot length的大小调小, 就会有更多的slot, 能缓存更多的包.