gpt4 book ai didi

linux - Linux 中 NDIS 过滤器的模拟是什么?

转载 作者:太空狗 更新时间:2023-10-29 12:05:54 30 4
gpt4 key购买 nike

我正在 Linux 中开发一个尽可能接近实时的系统,并且需要在收到特定数据包后立即在 TCP 数据包中发送大约 600-800 字节。

为了获得尽可能好的延迟,我希望这个数据包直接从内核发送,而不是接收到的数据包一直发送到用户空间和应用程序,然后再返回。

如果我在 Windows 上,我会编写一个 NDIS 过滤器,我会缓存要发送的数据包和匹配的参数,以便它会检查接收到的数据包,并在匹配时将预缓存的数据包触发到网络而不将接收到的数据包传递到更高层。

所以我的问题是 Linux 上最接近 NDIS 过滤器的模拟是什么?

我已经阅读了有关 netfilter 的内容,也许这就是我会使用的,但我不知道这是否是最好的方法。

我还能做些什么来实现尽可能低的延迟?

我当前的纯用户空间代码在 Intel Xeon 3.7 GHz 处理器上为我提供了大约 80-100 微秒,该处理器在 2.6.3x 内核上运行 Ubuntu 10.04。

最佳答案

您可以使用 iptables 目标 NFLOG 将数据包复制到用户空间或 NFQUEUE 以允许用户空间处理它们。这种互动发生在 netlink , 但您可以使用诸如 libnetfilter_log 之类的库和 libnetfilter_queue环绕它。

关于linux - Linux 中 NDIS 过滤器的模拟是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829150/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com