我正在看看PF_RING
在我的应用程序中使用发送和接收.
如果我计划PF_RING
用于维护TCP连接,看起来我需要自己手动"伪造"IP和TCP消息,因为pfring_send
发送原始数据包.这是否意味着我必须手动重新实现TCP PF_RING
?
我明白接收使用有明显的优势PF_RING
,有没有人试过发送数据PF_RING
?与普通的发送呼叫相比,有明显的优势吗?
注意:我没有使用DNA(直接NIC访问),我只是使用具有NIC感知驱动程序的内核部分旁路.
我正在将数据包解析/处理程序从FreeBSD移植到Linux(特别是Debian-jessie)。该程序在执行TX操作之前执行解析/操作的同时,在两个物理接口之间实现了双向桥接。
在FreeBSD中,此应用程序使用Pcap进行RX / TX。到目前为止,在Linux中,我已经对Pcap,PACKET_MMAP(使用TPACKET_V2)和Vanilla PF_RING进行了测试。
使用相同的硬件和实验室环境,我观察了通过iperf进行的几次测试的以下(大致)吞吐量结果:
Debian用户空间的速度对我来说似乎很可笑。它们无法使用-我怀疑我缺少了一些东西。我是否需要启用系统选项(“快转”,大声笑)?
还是这仅仅是Linux用户空间桥接的方式?
我一直怀疑,有一个管理上的限制会影响Debian测试。我正在搜索系统文档以查找(某物/任何东西)无济于事。有什么想法可以限制这一点吗?