为什么 UDP 有时比 TCP 更有优势

news/2024/5/17 18:51:01 标签: tcp, udp

这里填写标题

  • 1. 为什么 UDP 有时比 TCP 更有优势
  • 1. 网速的提升给 UDP 稳定性提供可靠网络保障
  • 2. 对比测试结果 UDP 性能优于 TCP
  • 3. TCP 设计过于冗余, 速度难以进一步提升
  • 4. UDP 协议以其简单、传输快的优势, 在越来越多场景下取代了 TCP
    • 4.1. 网页浏览
    • 4.2. 流媒体
    • 4.3. 实时游戏
    • 4.4. 物联网
  • 5. 小结

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 的主导地位。


http://www.niftyadmin.cn/n/1620954.html

相关文章

shell编程——如何实现命令行选项的各种个性功能

如何实现命令行选项的各种个性功能 在前面命令行选项的那些事中介绍了几种有"个性"的选项功能,包括: 选项依赖:例如"-a"或"--add"要依赖于"-m"或"--manage"选项选项互斥:例如&…

使用 OpenSSL 生成 HTTPS 证书

这里填写标题1. 使用 OpenSSL 生成 HTTPS 证书1. 生成 HTTPS 证书思路1.1 编辑根证书配置文件 ca.cnf1.2 编辑网站证书配置文件 ia.cnf2. 使用 OpenSSL 生成 CA 证书3. 利用 ca 根证书授权子证书4. Nginx 配置 HTTPS 访问5. Windows XP 下的测试1. 使用 OpenSSL 生成 HTTPS 证书…

免费和收费证书的区别

这里填写标题1. 免费和收费证书的区别1.1. 什么是免费证书1.2. 什么是付费证书1.3. 两者的共同点1.4. 两者的区别1.5. 适用范围1. 免费和收费证书的区别 1.1. 什么是免费证书 免费证书即为免费型 DV SSL 证书, 最多保护一个完整的域名 (如: buy.example.com, 或 next.buy.exa…

访谈:Kotlin在Pinterest的逆势生长

InfoQ最近采访了Pinterest核心UI团队的Android工程师Christina Lee,讨论了Pinterest对Kotlin的采用情况、Pinterest在采用过程中面临的挑战、从中总结的主要经验教训、从Java过渡到Kotlin的技巧,以及她即将在KotlinConf 2018上进行的演讲主题Representin…

Keepalived 和 ZooKeeper 选哪个

这里填写标题1. Keepalived 和 ZooKeeper 选哪个1.1. 什么是 Keepalived1.2. 什么是 ZooKeeper1.3. 选择哪个1.3.1. 从主被动的角度考虑1.3.2. 从负载的角度来考虑1.3.3. 从存储数据的角度1.3.4. 从业务的角度1. Keepalived 和 ZooKeeper 选哪个 1.1. 什么是 Keepalived Keep…

ListView刷新某一项Item

ListView现在已经很少被使用,但还是在这里列出来说一下,有时候我们仅仅需要改变listView的某个Item,如果调用adapter的notifyDataSetChanged()方法效率不高,并且可能会出现内容闪动,那么我们怎么刷新某一个特定的item呢…

Chrome comic

这里填写标题1. Chrome comic1234567891011121314151617181920212223242526272829303132333435363738391. Chrome comic 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

C语言第一节课知识归纳

目录 1.什么是C语言 2.第一个C语言程序 3.数据类型 4.变量,常量 5,字符串转义字符 1,什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易 的方式编译、处理低级…