我知道 UDP 并不总是按顺序或根本不接收数据包,但我怎样才能找出原因呢?数据包是否在传输中丢失或重新排序。例如,不同的数据包采用不同的路由并在不同的时间到达。还是损坏的数据包被重新发送并因此延迟到达?
如果可以在帖子中回答,我更愿意,但是如果您可以将我重定向到更好的来源,我将不胜感激。
我知道 UDP 并不总是按顺序或根本不接收数据包,但我怎样才能找出原因呢?数据包是否在传输中丢失或重新排序。例如,不同的数据包采用不同的路由并在不同的时间到达。还是损坏的数据包被重新发送并因此延迟到达?
如果可以在帖子中回答,我更愿意,但是如果您可以将我重定向到更好的来源,我将不胜感激。
单个网络交换机可能会重新排序最后两个数据包作为头部阻塞的副作用,因此级联交换机将导致进一步重新排序,然后由于距离不同和缺乏排序,多条路径无法保证排序与数据报。
这是有关该主题的论文:
出于速度和效率的目的,数据包不是按顺序接收的,这意味着任何数据包都可以采用任何路由,而不必等待任何其他数据包到达/发送。因为可靠性不是 UDP 的主要关注点之一,所以它并不关心。
丢弃的数据包也不会重新发送,因为两端都没有进行检查。UDP 主要用于与丢失一些数据包无关的事情,例如流媒体、VoIP 等。
如果你想要可靠性,那么你需要使用 TCP。