最近参与到的项目中使用libnids来重组TCP会话,libnids是使用libpcap来抓包的。最初安装环境的时候用到的是libpcap0.8,这个是apt-get install的时候默认的版本,但是项目在测试过程中发现性能远不能达到需求,于是查阅了相关文档,发现libpcap在1.1.0版本的changelog中提到,Changes to Linux mmapped captures.也就是说,从1.1.0版本以后,libpcap使用mmap技术来抓包。因此决定通过提高libpcap的版本来提高libnids的性能。
实验系统是ubuntu12.04,用到的库为:libffi-3.0.13,glib-2.34.2,libnet-1.1.2.1,libpcap-1.2.1,libnids-1.21
另外一种方案是使用PF-RING,具体可以参考http://www.ntop.org/products/pf_ring/