构建可靠的 UDP 笔记

构建可靠的 UDP

TCP 是可靠网络通信的标准,但 UDP 为专用应用提供了更高的控制灵活性。UDP 本身不可靠,发送数据包时不提供交付保证或顺序保证。许多高性能系统(如游戏和流媒体服务)选择 UDP,因为它允许开发人员构建自定义的可靠性机制。这种机制是通过一种工程模式而非独立协议实现的,即在 UDP 数据包中添加元数据。关键组件包括用于跟踪数据包的序列号,以及用于确认接收的确认机制。重传计时器在数据包丢失时触发重传,而重复检测则处理冗余数据包。数据包排序机制确保数据按正确顺序到达应用。滑动窗口允许多个未确认数据包存在,从而提高吞吐量。虽然连接建立并非 UDP 固有特性,但可针对会话管理进行实现。心跳机制用于验证持续连接。拥塞感知对于尊重网络容量至关重要。最终,通过组合这些工程组件,UDP 可转变为针对特定应用需求定制的可靠传输层,正如 QUIC 协议所示。工程中的可靠性往往源于多个简单机制协同工作,而非单一复杂功能。