首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >libpcap还是PF_PACKET?

libpcap还是PF_PACKET?
EN

Stack Overflow用户
提问于 2014-10-14 15:45:15
回答 1查看 1.6K关注 0票数 6

我知道这个问题已经讨论过很多次了:我应该使用libpcap PF_PACKET (数据链接套接字)来捕获数据包吗?

在我的研究基础上,libpcap几乎随处可见,主要是因为它的可移植性。

但是,对于我当前的项目(在生产系统中使用),可移植性根本不是问题,我只关心性能(速度、丢包率)。据我所知,我的程序运行在CentOS 5.10 (内核2.6.18)上,在每个包上都有一个时间戳。这会造成很大的性能损失吗?在高速网络中,是否还有其他因素使libpcap不适用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 19:09:33

据我所知,libpcap在每个包上都有一个时间戳。

不,libpcap从它使用的OS数据包捕获机制获得数据包的时间戳--在Linux上是.

...PF_PACKET插座

Linux内核时间标记传入的数据包。PF_PACKET套接字有多种读取方式:

  • 常规套接字接收,您可以获得一个带有显式ioctl的时间戳(这样您可以避免将它获取到用户地,但首先不能避免内核对数据包进行时间戳;libpcap,当使用正则套接字接收时,总是要求时间戳);
  • 内存映射访问,它总是提供时间戳。

无论何时可用,Libpcap都使用内存映射访问;如果您关心捕获性能,您可能也想这样做。然而,使用起来并不容易。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26364888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档