UDP可以重传丢失的数据吗?

edw*_*osh 3 networking udp udpclient

我知道该协议不支持这一点,但对于需要一定程度可靠性的客户端来说,如果发现它是腐败的,请求重新发送数据包的方法是否常见?

Dam*_*mon 5

如果客户需要可靠性(或者有时仅仅是一些可靠性)而不是TCP提供的任何其他东西,例如严格的有序交付,并且如果他们想要,同时客户端在UDP之上实现可靠性是很常见的.时间,低延迟(或多播,它工作的地方).

一般情况下,如果有紧急原因(只需要非常低的延迟和高速度,例如抽搐游戏),您只需要使用可靠的UDP.在每个"正常"的情况下,简单地使用TCP将同样好或更好地为您服务.
另请注意,在UDP上执行自己的堆栈很容易,而TCP的执行情况比TCP .

有关在UDP之上实现可靠性(以及一些其他功能)的库的示例,请参阅enet(Raknet或HawkNL将是其他示例).

  • +1只是为了**还要注意,在UDP之上实现自己的堆栈很容易比TCP执行得差.**,这太真实了. (4认同)