【发布时间】:2016-05-26 20:35:02
【问题描述】:
图像数据以 200 mb/s 的速度进入我的 NIC。我正在使用 winpcap 来捕获这些数据。这些数据基本上只需要直接进入我的应用程序级别 - 我不需要任何过滤器。为了最大化效率,我的第六感告诉我两个数据存储(从 NIC 驱动缓冲区到 Winkpcap 内核缓冲区;从内核缓冲区到我的用户缓冲区)效率低下并且浪费 CPU。可以优化系统吗?还是有更好的方法来实现这一点? (可能是windows的pf_ring类型解决方案)
【问题讨论】:
-
请见谅(我不怎么做网络编程),但为什么不直接从应用程序中的接口读取数据(例如,使用原始套接字)?跨度>
-
不,这很好。我相信它被称为内核绕过,但我找不到任何适用于 windows 的东西——只有 linux
-
对于 Windows 中的内核绕过,您需要自己做 NIC 驱动程序。使用 WinPcap,它会得到最好的。
标签: c++ networking pcap libpcap winpcap