首页/网络/协议速查/UDP 上的应用层可靠性
TCP 与 UDP54 条

UDP 上的应用层可靠性

用 UDP 就要自己实现:序号去重、ACK 重传、超时退避、流控;这些正是 QUIC/KCP 帮你做好的事,简单业务可只做「重试+幂等」。

协议速查网络更新于 2026-10-12

机制

机制要解决的问题简易做法
序号丢包/乱序检测每包递增 ID + 接收窗口
ACK/重传可靠性定时器 + 指数退避
去重重复包按 ID 幂等处理
分段大消息应用层分片 + 重组超时
流控压垮对端接收方通告可用额度

最小可靠 UDP(伪代码)

最小可靠 UDP(伪代码)
send: id++, 存入待确认表, 启动定时器
on timeout: 重发(最多 N 次)
recv ack(id): 删除待确认项
recv data(id): 去重后交付,回 ack(id)
别重复造 QUIC:通用场景用现成实现,只有延迟极致敏感才自研精简协议。

易错点

  • UDP 应用层重传没有拥塞控制会打爆网络:高丢包时无限重试会引发拥塞崩溃

数据来源与参考

  • RFC 9000 §2(QUIC 可靠性设计)
  • RFC 5405(UDP 使用指南)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌