2017-04-13 71 views
-1

UDP有一个很好的特性 - 它是无连接的。但它有许多不好的特性 - 数据包可能会丢失,到达多次,没有数据包序列 - 数据包2可能比1快。如何保持良好并消除不良?有没有什么好的实现可以在udp之上提供可靠的传输协议,这样我们仍然可以无连接但没有提到问题。可以用它做什么的一个例子是mosh。UDP上的可靠传输协议

回答

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的原因是什么?

+0

对不起,我不知道其他语言是否足以给出一个很好的答案。我们使用C和C++来提高嵌入式设备的性能。使其稳定只是很多测试。单元测试,集成测试等。但我真的不能说如果有更好的选择和/或优点/缺点 – rinn2883