首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP和PF_RING

TCP和PF_RING
EN

Stack Overflow用户
提问于 2012-10-25 06:53:51
回答 1查看 5.4K关注 0票数 12

我正在研究在我的应用程序中使用PF_RING进行发送和接收。

如果我计划使用PF_RING来维护TCP连接,那么在pfring_send发送原始数据包时,我看起来需要自己手动“伪造”IP和TCP消息。这是否意味着我必须在PF_RING之上手动重新实现TCP?

我知道使用PF_RING接收数据有一个明显的优势,有人尝试过用PF_RING发送数据吗?与普通的发送调用相比,是否有明显的优势?

注:我没有使用DNA (直接NIC访问),我只是使用NIC感知驱动程序的内核部分旁路。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-31 14:11:31

要回答您的第一个问题,是的,您必须从头开始手动构建TCP/IP消息、MAC地址和所有消息。举个例子,看看来自ntop.orgpfsend.c

ntop.org还提供了一个包含解释的PF_RING user guide

至于使用PF_RING发送数据,这是绝对可能的,其想法是绕过任何和所有的概念,实际是什么数据在线路上,并尽可能快地发送,参见来自ntop.org的wire speed traffic generation。与使用TCP/IP内核的普通发送调用相比,它唯一的优势是您可以1.更快地将数据发送到线路上,2.完全不格式化。2可能很方便,例如,当您想要在网络上回放之前捕获的数据包/多个数据包时。

除非您有一个特定的用例,需要您在没有内核干预的情况下访问原始底层数据,否则绝对没有理由以任何方式使用PF_RING。你最好的选择是使用可用的标准socket(),在大多数情况下,你能达到的性能已经足够了。

你脑海中有什么具体的用例?

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13059070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档