type
Post
status
Published
date
Oct 12, 2026
slug
udp
summary
tags
技术探索
category
手写
icon
password
UDP 本身不可靠,如果要实现可靠传输,应该在应用层或 UDP 之上的传输层实现序列号、ACK 确认、超时重传、滑动窗口和拥塞控制,分别解决乱序、丢包、流量控制和网络拥塞问题。
典型实现就是 QUIC 协议,HTTP/3 正是基于 QUIC + UDP 实现的。
相比 TCP,QUIC 不仅能保证流内可靠有序传输,还能减少连接建立延迟,通过多路独立 Stream 缓解 TCP 层的队头阻塞问题。
主要实现 5 个机制:
机制 | 解决什么问题 | 怎么实现 |
1. 序列号 | 数据乱序、重复 | 给数据编号,接收方按编号排序、去重 |
2. ACK 确认 | 不知道数据是否到达 | 接收方收到数据后返回确认 |
3. 超时重传 | 数据丢失 | 发送方超时未收到 ACK,就重传 |
4. 滑动窗口 | 传输效率低、接收方处理不过来 | 允许批量发送未确认数据,并控制发送量 |
5. 拥塞控制 | 发送过快造成网络拥塞 | 根据丢包、RTT 等动态调整发送速率 |
举个例子
客户端通过 UDP 发送三个数据包:
这样就能在 UDP 上实现可靠、有序传输。
分享
