TCP 与 UDP 有何区别,代理连接该怎么看
各自特点:可靠字节流与独立数据报
TCP 面向连接,向应用交付可靠、顺序一致的字节流。它借助序号发现数据缺失,用校验和检查错误,再通过重传补回数据。TCP 还包含拥塞控制机制。
UDP 按数据报传送,不需要握手。它自身不承诺数据一定抵达,也不保证先发先到或消除重复。应用若需要这些能力,就不能仅靠 UDP 提供。
| 比较项 | TCP | UDP |
|---|---|---|
| 传输形式 | 字节流 | 数据报 |
| 是否面向连接 | 是 | 否,无握手 |
| 可靠性 | 提供可靠交付机制 | 不保证送达 |
| 数据顺序 | 按发送顺序交付 | 不保证先后顺序 |
| 丢失后的处理 | 通过重传纠正 | 协议自身没有送达保证 |
这些差别描述的是传输机制,不能直接换算成某条代理连接的速度。TCP 有可靠性机制,也不能据此推断某个应用的实际等待时间;UDP 不等重传的特性,同样不能证明它在所有场景都更合适。
代理里为什么要分:支持 UDP 还要看如何承载
应用使用的传输协议,与代理怎样转送流量,是两个需要分开确认的问题。某种代理能处理 UDP,并不意味着它采用与其他代理相同的转发方式。
| 代理协议 | 与 TCP、UDP 有关的能力 |
|---|---|
| Shadowsocks | 能处理 TCP,也能处理 UDP |
| Trojan | 定义了 CONNECT 和 UDP ASSOCIATE |
| SOCKS5 | 包含 UDP ASSOCIATE |
| VMess | 定义了 UDP 模式 |
| Snell | 把 UDP 流量放在 TCP 中转发 |
| WireGuard | 传输使用 UDP |
Snell 的情况尤其能说明区别:它可以承载 UDP 流量,但转发所用的传输仍是 TCP。看到“支持 UDP”,还需要继续确认其具体机制。
截至 2026-11-08,mihomo 的 Snell 说明将 UDP 支持范围列为 v3、v4、v5;Shadowsocks 配置另有 udp-over-tcp 字段,默认值为 false。这是具体协议的配置条件,不能推广成所有代理都适用的开关规则。字段含义应分别查阅 Snell 配置文档和 Shadowsocks 配置文档。
需要了解相关代理机制,可继续阅读SOCKS5 的协议说明或 WireGuard 的传输特点。
游戏与视频的影响:先确认应用实际用了什么
时间敏感的应用,有时宁可接受部分数据丢失,也不愿等待重传;需要自行检查错误的应用,也可以使用 UDP。这是 UDP 适用场景的解释,不能据此断言某款游戏或视频应用一定使用 UDP。
游戏、视频各自采用 TCP 还是 UDP,以及两者的具体分布,官方没有说明。仅凭“玩游戏”或“看视频”,不足以判断应选哪一种代理协议。
理解影响时,可以抓住一个区别:TCP 会为可靠、有序的交付执行重传;UDP 自身不提供这些保证。应用怎样利用这些机制,还要看应用本身。
排查思路:把流量类型、承载方式与字段分开看
遇到连接问题,可以沿着下面的顺序核对:
- 确认应用需要传送的是 TCP 流量还是 UDP 流量;应用名称不能代替这一信息。
- 查看所用代理是否具备相应能力,并确认 UDP 是怎样被转发的。
- 检查该协议的配置条件。例如 Snell 有版本限制,Shadowsocks 的
udp-over-tcp有明确默认值。 - 将协议支持与实际表现分开判断。支持 UDP 本身不能证明延迟更低,也不能证明丢包更少。
FlClash 的 UDP 开关位置、TUN 对 UDP 的具体处理方式,以及延迟和丢包实测数据,官方没有说明。因此,不能据此编出界面操作步骤或性能结论。遇到其他连接问题,可查看连接相关常见问题。
截至 2026-11-08,上述 mihomo 字段与支持范围以当日文档为依据;文档调整后,应重新核对对应协议页。
第三方整理,与项目方无关。