WinPcap是否适用于1 gbps网卡

时间:2016-05-26 20:35:03

标签: c++ networking pcap libpcap winpcap

图像数据以200 mb / s的速度进入我的网卡。我正在使用winpcap来捕获这些数据。这个数据基本上只需要直接到我的应用程序级别 - 我不需要任何过滤器。为了最大限度地提高效率,我的第六感告诉我两个数据存储(从NIC驱动程序缓冲区到Winkpcap内核缓冲区;从内核缓冲区到我的用户缓冲区)效率低下并浪费CPU。是否可以优化系统?或者有更好的方法来实现这一目标吗? (也许是Windows的pf_ring类型解决方案)

2 个答案:

答案 0 :(得分:0)

这是您可以执行的操作:

  • 使用pcap_setbuff将WinPcap缓冲区配置为较大的值(例如100MiB)
  • 将读取超时设置为较大的值(例如1秒),read_timeout的参数pcap_open
  • 最重要:确保将数据包从缓冲区中取出的速度比NIC接收数据包的速度快。例如,对于200Mbps,每个数据包需要60B / 200Mbps = 2.4µs以确保没有数据包丢失。

答案 1 :(得分:0)

如果您使用的是Windows 7或更高版本,则也可以尝试Npcap