这里填写标题
1. 为什么 UDP 有时比 TCP 更有优势
随着网络技术飞速发展, 网速已不再是传输的瓶颈, 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%。
3. TCP 设计过于冗余, 速度难以进一步提升
TCP 为了实现网络通信的可靠性, 使用了复杂的拥塞控制算法, 建立了繁琐的握手过程以及重传策略。由于 TCP 内置在系统协议栈中, 极难对其进行改进。
4. UDP 协议以其简单、传输快的优势, 在越来越多场景下取代了 TCP
4.1. 网页浏览
使用 UDP 协议有三个优点:
-
能够对握手过程进行精简, 减少网络通信往返次数;
-
能够对 TLS 加解密过程进行优化;
-
收发快速, 无阻塞。
4.2. 流媒体
采用 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 个关键点:
-
网络带宽需求较小, 而实时性要求高;
-
大部分应用无需维持连接;
-
需要低功耗;
5. 小结
如今全球将近 50% 的人都在使用互联网, 人们不断的追求更快、更好的服务, 一切都在变化, 在越来越多的领域, UDP 将会抢占 TCP 的主导地位。