如何将 Boost::ASIO 与 userland 网络堆栈集成?

How to integrate Boost::ASIO with userland network stack?

有没有办法将 Boost::ASIO 与 F-stack 或 DPDK 等用户态网络堆栈集成?

我正在寻找一种方法来获得 userland 堆栈的性能优势,但为 Boost::ASIO 维护 API 以便能够使用所有编写的库等有了它。

基本上,如果不存在这样的包装器,您将必须实现低级接口和套接字,即。那些使用 boost::asio 套接字(基本上在 IO 服务内部)抽象 TCP 和 UDP 细节的那些。

我不知道你要使用的库。所以,这可能需要相当大的努力。

查看 boost::asio basic_datagram 套接字、解析器、端点和 service。您至少需要翻译发送和接收等重要部分(性能)。如果您的库有一个通过该句柄发送和接收的接口,您可以通过 boost 访问套接字的本机句柄,您可能只需要重写所有发送和接收函数。只需在外部处理 sending/receiving。