gpt4 book ai didi

c - 在 Linux 上使用共享内存进行低延迟数据包处理?

转载 作者:IT王子 更新时间:2023-10-29 00:45:19 27 4
gpt4 key购买 nike

如果我要在 Linux 上接收 UDP 数据包(并且我不介意更改一些源代码),我的应用程序读取数据包的最快方式是什么?

我是否要修改网络堆栈,以便在收到 UDP 数据包后将其写入共享内存并让应用程序访问该内存?

有没有办法让堆栈通知应用程序使用react,而不是让应用程序不断轮询共享内存?

欢迎任何建议/更多资源 - 我只看到:

http://www.kegel.com/c10k.html

最佳答案

如果延迟是一个问题并且默认的 UDP 网络堆栈没有按您希望的那样执行,那么请尝试使用不同的现有(可安装)网络堆栈。

例子,试试UDP Lite ,与标准的 UDP 堆栈相比,这个特殊的堆栈不对 UDP 数据报执行任何校验和,从而以向应用层提供损坏的数据报为代价减少了延迟。

旁注:您不需要有“轮询”机制。阅读 select 的手册(它可能是 pselectppoll 的衍生物),有了这样的 API,内核将“唤醒”你的应用程序一旦管道中有可读或可写的内容。

关于c - 在 Linux 上使用共享内存进行低延迟数据包处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420302/

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