- 1. 为什么 UDP 有时比 TCP 更有优势
- 1. 网速的提升给 UDP 稳定性提供可靠网络保障
- 2. 对比测试结果 UDP 性能优于 TCP
- 3. TCP 设计过于冗余, 速度难以进一步提升
- 4. UDP 协议以其简单、传输快的优势, 在越来越多场景下取代了 TCP
- 4.1. 网页浏览
- 4.2. 流媒体
- 4.3. 实时游戏
- 4.4. 物联网
- 5. 小结
随着网络技术飞速发展, 网速已不再是传输的瓶颈, UDP 协议以其简单、传输快的优势, 在越来越多场景下取代了 TCP。
1. 网速的提升给 UDP 稳定性提供可靠网络保障CDN 服务商 Akamai(NASDAQ: AKAM) 报告从 2008 年到 2015 年 7 年时间, 各个国家网络平均速率由 1.5Mbps 提升为 5.1Mbps, 网速提升近 4 倍。网络环境变好, 网络传输的延迟、稳定性也随之改善, UDP 的丢包率低于 5%, 如果再使用应用层重传, 能够完全确保传输的可靠性。
2. 对比测试结果 UDP 性能优于 TCP为了提升浏览速度, Google 基于 TCP 提出了 SPDY 协议以及 HTTP/2。Google 在 Chrome 上实验基于 UDP 的 QUIC 协议, 传输速率减少到 100ms 以内。
-
Google 采用 QUIC 后连接速率能有效提升 75%。
-
Google 搜索采用 QUIC 后页面加载性能提升 3%。
-
YouTube 采用 QUIC 后重新缓冲次数减少了 30%。
TCP 为了实现网络通信的可靠性, 使用了复杂的拥塞控制算法, 建立了繁琐的握手过程以及重传策略。由于 TCP 内置在系统协议栈中, 极难对其进行改进。
4. UDP 协议以其简单、传输快的优势, 在越来越多场景下取代了 TCP 4.1. 网页浏览使用 UDP 协议有三个优点:
-
能够对握手过程进行精简, 减少网络通信往返次数;
-
能够对 TLS 加解密过程进行优化;
-
收发快速, 无阻塞。
采用 TCP, 一旦发生丢包, TCP 会将后续包缓存起来, 等前面的包重传并接收到后再继续发送, 延迟会越来越大。基于 UDP 的协议如 WebRTC 是极佳的选择。
2010 年 google 通过收购 Global IP Solutions, 获得了 WebRTC(网页实时通信, Web Real-Time Communication) 技术, 用于提升网页视频速率。
4.3. 实时游戏对实时要求较为严格的情况下, 采用自定义的可靠 UDP 协议, 比如 Enet、RakNet(用户有 sony online game、minecraft) 等, 自定义重传策略, 能够把丢包产生的延迟降到最低, 尽量减少网络问题对游戏性造成的影响。采用 UDP 的经典游戏如 FPS 游戏 Quake、CS, 著名的游戏引擎 Unity3D 采用的也是 RakNet。
4.4. 物联网2014 年 google 旗下的 Nest 建立 Thread Group, 推出了物联网通信协议 Thread, 完善物联网通信。
采用 UDP 有 3 个关键点:
-
网络带宽需求较小, 而实时性要求高;
-
大部分应用无需维持连接;
-
需要低功耗;
如今全球将近 50% 的人都在使用互联网, 人们不断的追求更快、更好的服务, 一切都在变化, 在越来越多的领域, UDP 将会抢占 TCP 的主导地位。



