2012-04-08 133 views
2

是否可以使用零拷贝数据包机制在Linux上使用libpcap读取数据包? (我正在使用CentOS 6.2) 如果是,我可以看到任何代码示例吗?零拷贝机制和libpcap

回答

3

是的,libpcap 1.0和更高版本都是这样做的,尽管更高版本的libpcap修复了一些bug,所以后来使用的libpcap版本越好。写入标准libpcap API的代码将在Linux上使用libpcap 1.0及更高版本进行零拷贝捕获。

(Netsniff-NG有它自己的代码捕获数据包,而不是使用libpcap的。)

+0

你的意思libpcap0.8 1. *具有零拷贝? – SuB 2015-04-22 05:42:47

+1

“libpcap 1.0和更高版本”这样做“包括”在libpcap 1.0和更高版本中包含的Debian软件包非常容易被称为libpcap0.8“。或者换一种说法,你可以用Debian软件包的名字来替换“0.8”,“新的软件包名称”不会或多或少地告诉你实际的libpcap版本包比旧的包名没有; “0.8”应该被认为是装饰性的,而不是任何类型的libpcap版本号。 – 2015-04-22 07:49:11

1

是的,显然netsniff-ng做到了。我建议查看它的代码。