原始套接字与libpcap的性能可捕获传入的以太网帧

时间:2019-04-03 15:22:30

标签: sockets pcap libpcap

我需要捕获接口上的自定义传入以太网帧。但是,我不想捕获我的应用程序在同一接口上发送的传出以太网帧。

我尝试搜索,至少发现了以下两种方式:

  1. 使用原始套接字(ETH_P_ALL)和recvfrom(),并检查in_addr.sll_pkttype!= PACKET_OUTGOING(在用户空间中)。不幸的是,以太网帧中没有合适的字段,我可以使用BPF过滤器丢弃传出的帧。

  2. 使用pcap接口,pcap_next_ex()和pcap_setdirection()(在内核空间中执行丢弃吗?)。

总体而言,我可以知道哪种方法具有更好的性能吗?谢谢。

0 个答案:

没有答案