在正常情况下,对于乱序的 UDP 数据包,我应该期望最坏的情况是什么?
我目前用两个字节(0 到 65535 的数字)标记每个数据包以跟踪订单。这是足够还是太多?
在正常情况下,对于乱序的 UDP 数据包,我应该期望最坏的情况是什么?
我目前用两个字节(0 到 65535 的数字)标记每个数据包以跟踪订单。这是足够还是太多?
根据 RFC 3208,您可以针对最后两个无序的数据包。
根据定义,最坏的情况是无限的,因此您最好将第三个无序数据包视为数据丢失。
在所有情况下,接收者应该缓和 NAK 生成的启动,以解决网络引入的简单错误排序。实现此目的的一种可能机制是仅在接收到序列号高于(假定的)丢失数据包的序列号的 N 个数据包后才假设丢失。N 的一个可能值是 2。这个方法应该补充一个基于超时的机制,该机制在数据流传输暂停之前处理最后一个数据包的丢失。
应该很多,我从来没有见过超过 3-4 个乱序的 UDP 数据包,你可以用一个字节来跟踪它。