DPDK 是否提供原生 TCP/IP 网络堆栈实现?
Does DPDK provide a native TCP/IP network stack implemetation?
我正在尝试找出 DPDK 或任何流行的开源项目中是否提供了任何本机 TCP/IP 堆栈实现来实现它。任何帮助将不胜感激。
更新:
我的平台是 Ubuntu 16.04 x64,带有 DPDK 20.08 的 Intel 82599es NIC。我想要完成的是从我在 NIC 端口上收到的数据包重建 TCP 连接以供以后使用。我认为像 ANS、mTCP 和 fstack 这样的工具可能会完成轨道,但它们是第三方的,其中一些不是完全开源的,所以我正在寻找一个本地的或一个受开发人员欢迎的工具。不知道这种需求应该叫什么,不好意思因为这个问题造成的困扰,等我了解相关概念再改。
到目前为止 DPDK 版本 20.11 LTS 在 DPDK 版本中没有本机 TCP-IP 堆栈实现。更进一步,我认为 DPDK 不会实现本机 TCP-IP 堆栈。因此当前的选项是
既然要求是rebuild TCP connection state information
,我的建议是
- 创建 RTE_FLOW_ACTION_MIRROR 以使用 IP-TCP 地址端口的组合在 HW NIC 级别为所有感兴趣的 TCP 连接创建数据包副本。
- 如果没有 HW 选项,使用
ref_cnt_update
或 copying the user packet payload
创建数据包的副本。
- 在 RTE_RINGS 或 RTE_FB_ARRAY 的帮助下,基于对称 RSS(如果可用)或基于自定义 HASH 将来自客户端和服务器的数据包组织到适当的容器中。
- 对于您的数据包处理建议是使用
FSTACK or mTCP or BSD TCP-ip from scratch
Internet 上有多个参考资料也提供了入门提示。请参考
- mTCPslide 14
- fstack slide deck
我正在尝试找出 DPDK 或任何流行的开源项目中是否提供了任何本机 TCP/IP 堆栈实现来实现它。任何帮助将不胜感激。
更新: 我的平台是 Ubuntu 16.04 x64,带有 DPDK 20.08 的 Intel 82599es NIC。我想要完成的是从我在 NIC 端口上收到的数据包重建 TCP 连接以供以后使用。我认为像 ANS、mTCP 和 fstack 这样的工具可能会完成轨道,但它们是第三方的,其中一些不是完全开源的,所以我正在寻找一个本地的或一个受开发人员欢迎的工具。不知道这种需求应该叫什么,不好意思因为这个问题造成的困扰,等我了解相关概念再改。
到目前为止 DPDK 版本 20.11 LTS 在 DPDK 版本中没有本机 TCP-IP 堆栈实现。更进一步,我认为 DPDK 不会实现本机 TCP-IP 堆栈。因此当前的选项是
既然要求是rebuild TCP connection state information
,我的建议是
- 创建 RTE_FLOW_ACTION_MIRROR 以使用 IP-TCP 地址端口的组合在 HW NIC 级别为所有感兴趣的 TCP 连接创建数据包副本。
- 如果没有 HW 选项,使用
ref_cnt_update
或copying the user packet payload
创建数据包的副本。 - 在 RTE_RINGS 或 RTE_FB_ARRAY 的帮助下,基于对称 RSS(如果可用)或基于自定义 HASH 将来自客户端和服务器的数据包组织到适当的容器中。
- 对于您的数据包处理建议是使用
FSTACK or mTCP or BSD TCP-ip from scratch
Internet 上有多个参考资料也提供了入门提示。请参考
- mTCPslide 14
- fstack slide deck