先问应用需要什么交付方式

不同任务对数据的处理要求不同。有的任务需要完整、按顺序取得内容,有的应用会自行决定怎样处理迟到或丢失的数据。理解协议时,先看它提供什么机制,而不是只问哪个更快。同一个应用还可能有多种实现路径,实际表现受到网络环境和软件支持影响。仅知道节点名称中出现某种协议,并不足以判断它能否满足你的具体任务。

TCP 提供有序的字节流

TCP 为使用它的双方提供有序字节流,并通过相应机制处理传输中的可靠交付问题。它关注的是流中的数据,不替应用理解文件、消息或业务含义。应用仍需要自己的协议来说明内容怎样组织。观察到一次 TCP 连接建立成功,也不能推出登录、下载或其他业务已经完成。网络排查时,应把传输连接与应用层结果分开记录。

UDP 交付数据报,上层承担更多安排

UDP 保留数据报边界,本身不提供 TCP 那样的有序可靠字节流。应用或上层协议可以在它之上实现需要的机制。因此,把 UDP 简化成“一定更快”或“一定不可靠”都容易遗漏实际应用的设计。若某任务需要 UDP,还要确认应用、客户端、本地接入和后续路径均支持对应行为,不能由一个开关或服务宣传词自动推定整条链路具备能力。

QUIC 不是裸 UDP 的另一个名字

QUIC 使用 UDP 承载,并在其上提供连接、可靠传输及其他机制。理解这一点,有助于避免把 UDP 的基础属性直接套到 QUIC 应用上。是否使用 QUIC 还取决于客户端、服务端和网络条件,不能只靠用户选择某个节点决定。协议具有设计目标,并不意味着任何实现、任何地点和任何任务都能得到相同改善。

区分应用协议与代理传输

浏览器访问目标时采用的协议,与代理客户端连接远端节点时采用的传输方式,可能属于不同层。两者的名称出现在同一张设置页或日志中,也不代表可以相互替代。若要判断某项能力,先说明检查的是哪一段。例如应用请求是否进入客户端、客户端是否支持对应转发,以及目标端是否接受这种访问,都是需要分别确认的问题。

调整设置前先保存可回退状态

需要排查协议兼容时,先记录原配置和当前错误,再选择一个低影响任务观察。每次修改一个相关条件,并检查是否影响原本正常的任务。不要为了追求一个协议名称而打开所有高级选项,也不必以大量传输证明理论优势。最终选择应基于实际任务与支持范围;没有观察依据时,可以解释机制,但不应编造速度、稳定性或延迟结论。

延伸阅读:数字很漂亮,页面却很慢:把等待拆成三个阶段 · 应用里的代理类型怎么填:先找到它要连接的本地入口。