UDP有一个很好的功能 - 它是无连接的。但它有许多不好的功能 - 数据包可能会丢失,多次到达,没有数据包序列 - 数据包2可以比1更快到达。如何保持良好并删除不良?是否有任何良好的实现在udp之上提供可靠的传输协议,以便我们仍然无连接但没有提到的问题。可以用它做的一个例子是mosh。
答案 0 :(得分:1)
根据具体情况,你描述为坏的并不是很糟糕。 例如,UDP在实时流中被大量使用,传送确认和重发在这种情况下是无用的。
话虽如此,您可能希望了解一些实现:
ENet(http://enet.bespin.org/)
RUDP(https://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol)
UDT(https://en.wikipedia.org/wiki/UDP-based_Data_Transfer_Protocol)
我在嵌入式环境中工作:
CoAP(https://en.wikipedia.org/wiki/Constrained_Application_Protocol)也实现了很多这些功能,所以值得一看。
您不选择TCP的原因是什么?