如何开发Linux内核模块以使UDP可靠?这是我的大学任务,我不知道如何继续.如何通过加载新的内核模块来改变linux内核中的默认UDP行为?以及如何编程这样的内核模块?
可靠的UDP与仅使用TCP不同.存在许多差异,但最主要的是保证始终收到整个UDP消息或根本不接收它.然而,接收部分TCP消息不仅可能而且非常普遍.
由于这只是一个家庭作业,我建议只实现一个发送消息,等待ACK,发送下一个消息例程并超时.如果超时启动,则在声明失败之前重新发送消息一定次数.是的,这将比必要的慢.有很多技术可以提高吞吐量,但对于你的任务,你可能不需要使用它们.
实际上有可靠的UDP,它叫做RUDP,它是为Plan 9发明的.但是,确实没有意义,只需使用TCP.
编辑:此外,UDT可能很有用.它基于UDP,但可靠.
那些一直告诉穷人"只使用TCP"的人忽略了为什么可以通过TCP使用可靠的UDP实现的充分理由 - 而且它不是数据报语义(它很容易在TCP之上分层)
主要的合法驱动因素是许多节点之间/之间的无连接通信,否则可能需要携带过多的连接多样性
这通常用于广播数据馈送,集群内系统软件通信等.