4

我正在使用 libpcap 1.4.0 来捕获来自/到设备的数据包(我正在使用 linux)。我正在遭受丢包的困扰,经过研究,我发现了PF_RING,现在我正在考虑使用它。

问题是,我真的不明白为什么使用 PF_RING 比使用 libpcap 的 PF_PACKET 更有效,当 libpcap 的默认数据包捕获方法是“零复制”(从 libpcap 1.0.0 开始)以及 PF_RING 的...

有人可以解释一下为什么使用 libpcap 1.0.0 及更高版本,使用 PF_RING 会比不使用它更有效(如果它实际上更有效的话)?

先感谢您!:)

4

1 回答 1

4

根据https://stackoverflow.com/a/8897187/288875,内核的套接字缓冲区(sk_buff)仍然有一份副本到您将读取的内存。PF_RING似乎没有做这个副本(据我所知,pfring 是否绕过了处理从网卡接收到的数据的正常内核机制)。

于 2013-11-02T14:09:34.190 回答