节点梯 NODE LADDER // 中文网络协议 · 路由 · 测速基准 · 简讯知识库
协议 / PROTOCOLSREADING ESTIMATE: 6 MIN
RELEASED:

TCP与UDP怎么选:先看应用是否允许迟到的数据

SPECIFICATION ABSTRACT // 概要解析

传输协议选型需紧扣应用对丢包、乱序与时效性的容忍边界。文件传输需要绝对完整性,而实时音视频更重视传输时效,从应用交互语义出发才能作出科学的协议取舍。

CURATOR:Node Ladder Editorial
CONTENT:技术解读

选择TCP还是UDP,首先要问应用如何处理缺失、乱序和迟到的数据,而不是先比较协议名称。文件不能缺字节,实时语音却可能宁愿丢掉已经过期的一小段声音。传输方式只有放进应用目标、实现能力和网络限制中比较,才有实际意义。

可靠送达与及时送达不同

TCP向应用提供可靠、有序的字节流。应用通常不需要自行管理报文重传和重排,但必须接受缺失数据恢复可能带来的等待。UDP保留数据报边界,不提供同样的可靠有序服务;应用可以自行决定是否重传、丢弃、纠错或等待。

这不等于UDP必然不可靠。基于UDP构建的上层协议可以加入确认和恢复,例如QUIC的可靠流。也不等于TCP总是迟缓:在稳定路径上,它能够有效传输大量数据。把“底层采用UDP”直接翻译成“没有重传”,会误判许多实际协议。

用截止时间理解迟到数据

假设一个语音片段只对即将播放的时间点有价值,超过播放时刻再到达,可能无法改善听感。接收端可通过短暂缓冲等待网络波动,但缓冲越大,交谈双方感受到的延后也可能越明显。这里需要在连续播放与交互延迟之间取舍。

相反,一份压缩文件中的某个片段没有及时到达,等待它通常比直接交付损坏文件合理。用户关心最终内容完整,短暂停顿可能可以接受。同一个应用也可能同时具有两类需求,例如会议的语音需要及时性,聊天附件需要完整性,不能用一个协议标签概括所有流量。

代理是否支持UDP要逐段检查

应用发出UDP请求,不代表请求最终能通过代理链路。需要确认本地接入方式能接收该流量、客户端支持转发、节点配置允许、服务端能够访问目标,而且回包可以返回。只验证网页登录成功,无法证明这些环节全部成立。

系统代理通常由应用主动使用,并不自动接管所有网络行为。虚拟网卡模式可以扩大覆盖范围,但仍受规则、实现和系统权限影响。遇到游戏或通话失败时,应记录该请求是否进入客户端,以及命中了什么规则。分流检查可参阅客户端分流规则实战。

不建议为了验证UDP支持而直接对陌生服务器发送大量流量。使用自己有权限的服务或应用自带的诊断入口,并控制测试规模。请求无响应可能是目标不提供相应服务,而非链路不支持UDP;测试目标本身也需要确认。

性能比较必须匹配任务

比较文件下载时,应使用相同文件、相同目标和相同时间窗口,关注完成时间与完整性。比较语音时,应关注中断、延后和恢复,而不是只看每秒传输多少数据。吞吐量很低的应用仍可能对抖动敏感,高速下载结果不能替代实时体验测试。

网络上的丢包也有不同形态。间隔很远的丢失与一段连续中断,对应用恢复的影响不同。如果只记录平均丢包率,就可能无法解释“数字相同、体验不同”。进一步分析可以阅读连续丢包与随机丢包,将时间分布纳入观察。

在共享网络里,不受约束地提高发送速率可能挤占其他业务,并使自身排队更严重。UDP应用同样需要考虑拥塞控制,不能因为底层不负责重传,就认为可以持续以任意速率发送。增加带宽参数之前,先观察其他设备和上行链路是否受到影响。

常见说法应该如何修正

“UDP没有连接,所以一定更快”忽略了上层握手、加密、路径验证和应用处理。“TCP支持可靠传输,所以没有卡顿”忽略了恢复等待和缓冲。“支持UDP就支持所有游戏”则忽略了目标区服、认证服务、地址映射和应用协议差异。准确描述应限定到具体业务和环境。

协议选择还受服务端能力限制。客户端开关不能让不支持某种传输的服务端突然支持它。遇到兼容性问题,先核对官方说明和双方版本,再选择已确认可用的方式。不要把错误配置导致的连接失败纳入协议性能对比,否则比较对象从一开始就不成立。

可以为自己的主要任务写一张需求表:是否允许丢失、是否允许等待、是否需要双向持续通信、是否会切网、是否经过多层代理。根据需求筛选可用方案,再做小规模对照。最终目标是让应用在允许的时间内获得需要的数据,而不是让某个协议名字赢得抽象比赛。

把可用性作为第一道门槛

在公司、校园或酒店网络中,某些传输方式可能不可用,测试前应先遵守接入网络的规定。可用性验证通过后再谈性能,能够避免长时间围绕没有响应的路径调参。对于同一任务,可先记录默认方式能否完成,再记录替代方式的改善和额外成本。若替代方式需要更高耗电、更多流量或频繁重连,这些都应纳入选择。一次短测无法覆盖整天使用,最终仍应在日常时段观察。对无法解释的差异保留原始记录,不要用“某协议天生更强”替代进一步调查。

参考资料

INDEXED KEYWORDS // 标签索引:
NODE LADDER RESEARCH TEAM
网络协议、分流与测量方法编辑。来源和适用条件见正文;示例不代表本站实测。