为什么 UDP 重新接收器数据包



我知道UDP并不总是按顺序或根本不接收数据包,但是我怎么能找出原因呢?是数据包在传输中丢失还是重新排序。例如,不同的数据包采用不同的路由并在不同的时间到达。还是损坏的数据包被重新发送,从而稍后到达?

我希望这可以在帖子中回答,但如果您可以将我重定向到更好的来源,也将不胜感激。

单个网络交换机可能会对最后两个数据包进行重新排序,作为行头阻塞的副作用,交换机的级联将导致进一步的重新排序,然后由于距离不同和缺乏数据报排序,多条路径无法保证排序。

这是一篇关于这个主题的论文:

  • http://ils.unc.edu/courses/2000_spring/inls186_001/reorderingpaper.pdf

出于速度和效率的目的,数据包不会按顺序接收,这意味着任何数据包都可以采用任何路由,而不必等待任何其他数据包到达/发送。因为可靠性不是UDP的主要关注点之一,所以它并不关心。

丢弃的数据包也不会重新发送,因为两端都没有进行检查。 UDP主要用于丢失一些数据包不那么相关的事情,例如流媒体,VoIP等。

如果你想要可靠性,那么你需要使用TCP。

最新更新