gpt4 book ai didi

linux - 如何使用 DPDK 编写 DNS 服务器?

转载 作者:可可西里 更新时间:2023-11-01 02:41:07 27 4
gpt4 key购买 nike

我想使用 Intel DPDK 编写一个高性能的 DNS 服务器。如何使用英特尔 DPDK 有效处理 TCP 数据包?

当然,在 DPDK 上实现网络堆栈是解决方案。但它太复杂了。

由于 DNS 服务器处理的 UDP 查询比 TCP 查询多得多,我打算使用 DPDK 来处理 UDP 查询并使用 linux 网络堆栈来处理 TCP 查询。
如何在一台机器上执行此操作?

最佳答案

Gabe 的建议是正确的——但是有更好的方法可以实现您真正想要的。您需要使用 fork 驱动程序。

Gabe 建议使用 KNI 的问题是:

用户空间中的软件将决定它需要保留的内容 (UDP) 以及所有需要通过网络堆栈 (TCP) 路由的内容。然后,您将通过 DPDK 软件环将它们传递给内核,这会消耗 CPU 和内存周期。

您的 mbuf 和内核套接字缓冲区之间将存在内存副本,这将影响您的 KNI 性能。

另请注意,如果您在用户空间处理 UDP,则需要在将数据包推出之前构建 L2 header 。这意味着您可能还需要捕获所有 ARP 数据包,以便您可以构建 ARP 缓存,因为您将需要它来构建 L2 header 。

关于linux - 如何使用 DPDK 编写 DNS 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19313834/

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