零拷贝协议栈

发布于 2022-10-15 08:47:14 字数 112 浏览 16 评论 0

最近实现了一个零拷贝的模块,本人突然有个想法。就是通过零拷贝实现应用层收发数据包,然后在应用层实现协议栈(可以修改lwip实现)。这样就可以实现应用层程序收发数据的零拷贝,以提高应用层程序性能。欢迎大牛给点意见,这样可行吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

最初的梦 2022-10-22 08:47:14

当然可以啊,其实把内核协议栈移植到用户层即可,自己需要维护socket的队列,同步也是一个麻烦的事情

能否归途做我良人 2022-10-22 08:47:14

bekars兄的意见不错,只是这样需要自己要实现一套应用程序的API,工作量也大,我觉得没有移植lwip来的容易,只是不知道lwip的性能如何。有哪位大侠用过lwip的说说

临风闻羌笛 2022-10-22 08:47:14

好早的贴了。

最近本人由于工作原因对楼主的设想进行了一个实践。具体是使用零拷贝技术pfring与应用层协议栈lwip进行衔接,使得pfring零拷贝的数据直接传递给lwip进行处理。
应用程序调用lwip的API进行编程。

但是最终测试结果不尽人意,测试TCP,UDP带宽都是偏低。这可能是我没有正确运用pfring的接口造成的。没有使用pfring号称很强大的libzero库,(用起来有问题,就放弃了此方案)。

如果其他感兴趣的朋友可以跟我交流。 liheemail@163.com

倾城°AllureLove 2022-10-22 08:47:14

多进程分发怎么办?
协议栈零拷贝应该是用在特定场合,不会是通用的做法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文