没有重传怎么算丢包
无连接的传输协议不会自动补救丢失的报文,因此丢包只能靠观测来估算。好在多数实时类协议自带序号或时间戳,序号缺口就是最直接的证据;即使协议没有序号,也可以用发送端计数与接收端计数之差、周期报文的到达间隔差来推算。估算时要先按序号重排再统计缺失,否则先到的序号大的包会让普通的乱序被误算成丢包,结论被明显放大。
基本信息
| 适用平台 | 抓包工具侧的统计与估算,与具体业务协议无关 |
|---|---|
| 常见依据 | 序号字段、时间戳、编解码计数 |
| 典型协议 | 实时传输协议、基于流的加密传输协议 |
| 关键前提 | 先重排再统计,排除乱序与重复 |
典型使用场景
- 语音或视频质量下降,量化端到端丢包水平
- 评估链路改造前后的实时业务质量差异
- 为双端计数不一致的问题提供量化证据
- 排查周期心跳报文是否按预期到达
- 为业务侧的质量上报数据做网络侧交叉验证
- 在无重传协议上估算可接受的最大丢包阈值
观察要点
观察要点
# 有序号: 序号缺口即为丢失候选
# 有确认范围: 结合确认范围判断哪些包已到达
# 无序号: 发送端计数 - 接收端计数
# 无序号也无计数: 用周期包到达间隔的倍数差估算
# 统计前先按序号重排,重复包要去重判据逐项读法
| 判据 | 适用条件 | 主要误差来源 |
|---|---|---|
| 序号缺口 | 协议自带单调序号 | 乱序与重复会被误算 |
| 双端计数差 | 两端都能取到计数 | 取数时间窗不一致 |
| 周期包间隔差 | 存在固定周期报文 | 发送端抖动被算作丢包 |
| 确认范围 | 协议带回执机制 | 回执延迟造成的暂时缺口 |
缺口不一定都是丢包:乱序到达要先按序号重排再统计,否则估算值会显著偏高。
重复报文需要去重:链路复制或重发都会让接收计数虚高,进而低估丢包比例。