我正在使用 libpcap 库来监控 HTTP 请求和响应。我还根据字符串搜索和一些响应将 10 个最近的 GET 请求存储在内存中。假设监视器打开并且我正在下载文件,它会影响我的下载速度,还是将数据包的副本传递给 libpcap 而不会影响流量?
以前,我使用 iptables + libnetfilter_queue 做同样的事情。我的基于 libnetfilter_queue 的模块在分析数据包时有点慢,因为对每个传出数据包都进行了许多字符串搜索和相关操作,而传入数据包很少。它受下载速度的影响,假设使用下载加速器下载文件。当模块运行时,与未运行时相比,我的下载速度较低。可能是因为所有数据包都传递给了我的 netfilter_queue 模块,然后传递给了其他用户应用程序。我会面临与 libpcap 相同的问题吗?我听说它使用了一些零拷贝机制。