调度分组重传

M.S*_*sti 3 c c++ linux network-programming scheduling

我正在通过UDP编程网络协议,在Linux中使用C/C++.该协议必须提供可靠性,因此我将模拟像TCP上的TCP重传这样的东西.

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

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

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

答案是,因为我正在实施隧道协议.如果有人通过TCP隧道TCP,效率将大幅下降.这里有更多信息为什么TCP over TCP是一个坏主意.

Mat*_*ann 5

你所追求的"调度程序"称为"select",它是linux中可用的用户空间调用.输入"man 2 select"以阅读帮助页面以了解如何使用它.

如果需要超时,只需使用超时值调用select().当新数据到达或超时已到期时,select调用将返回.如果超时,您可以执行重新传输.