c – 调度分组重传

c – 调度分组重传,第1张

概述我正在通过UDP编程网络协议,在 Linux中使用C/C++.该协议必须提供可靠性,因此我将模拟像TCP上的TCP重传这样的东西. 这可以使用pthreads或fork来完成,但我认为这是一种过度杀伤并消耗大量系统资源.更好的方法是利用调度程序. 我可能无法使用Linux内部调度程序,因为我在用户空间编程.是否有标准的C/C++库来实现这一目标?第三方图书馆怎么样? 编辑:有人问为什么我这样做.为 @H_403_1@ 我正在通过UDP编程网络协议,在 Linux中使用C/C++.该协议必须提供可靠性,因此我将模拟像TCP上的TCP重传这样的东西.

这可以使用pthreads或fork来完成,但我认为这是一种过度杀伤并消耗大量系统资源.更好的方法是利用调度程序.

我可能无法使用linux内部调度程序,因为我在用户空间编程.是否有标准的C/C++库来实现这一目标?第三方图书馆怎么样?

编辑:有人问为什么我这样做.为什么不使用TCP呢?

答案是,因为我正在实施隧道协议.如果有人通过TCP隧道TCP,效率将大幅下降.这里有更多信息Why TCP Over TCP Is A Bad Idea.

解决方法 下面是如何完成 asynchronous coroutines with Boost的示例.在这种情况下,Boost管理创建线程以运行协程的开销,这样您就不需要了.如果您希望内核管理您的中断,您可以使用 alarm & setitimer,但它们的功能非常有限.

除非您使用select()等同步管理主线程中的传输,否则任何解决方案都将在某个级别包含线程,分支或它们的某些变体.

总结

以上是内存溢出为你收集整理的c – 调度分组重传全部内容,希望文章能够帮你解决c – 调度分组重传所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1213334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存