首页 >> 大全

网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势

2023-10-24 大全 34 作者:考证青年

本文观点仅作参考,请根据自已系统的应用场景合理地选择数据传输协议即可,无需盲目崇拜大牛言论。

1、前言

对于即时通讯开者新手来说,在开始着手编写IM或消息推送系统的代码前,最头疼的问题莫过于到底该选TCP还是UDP作为传输层协议。本文延续《网络编程懒人入门》系列文章的风格,通过快速对比分析 TCP 和 UDP 的区别,来帮助即时通讯初学者快速了解这些基础的知识点,从而在IM、消息推送等网络通信应用场景中能准确地选择合适的传输层协议。

随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单、传输快的优势,在越来越多场景下取代了TCP,如网页浏览、流媒体、实时游戏、物联网。本文作为《网络编程懒人入门》系列文章的第5篇,将为您快速梳理UDP协议在某些场景下对比TCP协议所具有的优势。

另外,即时通讯网的文章:《简述传输层协议TCP和UDP的区别》、《为什么QQ用的是UDP协议而不是TCP协议?》、《移动端即时通讯协议选择:UDP还是TCP?》,更详细地阐述了类似的内容,可以为您提供更多的参考。

2、系列文章

本文是系列文章中的第5篇,本系列文章的大纲如下:

本站的《脑残式网络编程入门》也适合入门学习,本系列大纲如下:

如果您觉得本系列文章过于基础,可直接阅读《不为人知的网络编程》系列文章,目录如下:

关于移动端网络特性及优化手段的总结性文章请见:

3、参考资料

《TCP/IP详解 - 第11章·UDP:用户数据报协议》

《TCP/IP详解 - 第17章·TCP:传输控制协议》

《TCP/IP详解 - 第18章·TCP连接的建立与终止》

《TCP/IP详解 - 第21章·TCP的超时与重传》

《通俗易懂-深入理解TCP协议(上):理论基础》

《通俗易懂-深入理解TCP协议(下):RTT、滑动窗口、拥塞处理》

入门的编程__如何快速入门编程

《理论经典:TCP协议的3次握手与4次挥手过程详解》

《理论联系实际:抓包分析TCP 3次握手、4次挥手过程》

《技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)》

《计算机网络通讯协议关系图(中文珍藏版)》

《高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少》

《高性能网络编程(二):上一个10年,著名的C10K并发连接问题》

《高性能网络编程(三):下一个10年,是时候考虑C10M并发问题了》

《高性能网络编程(四):从C10K到C10M高性能网络应用的理论探索》

《简述传输层协议TCP和UDP的区别》

《UDP中一个包的大小最大能多大?》

《为什么QQ用的是UDP协议而不是TCP协议?》

《移动端即时通讯协议选择:UDP还是TCP?》

4、网速的提升给UDP稳定性提供可靠网络保障

CDN服务商报告从2008年到2015年7年时间,各个国家网络平均速率由1.5Mbps提升为5.1Mbps,网速提升近4倍。网络环境变好,网络传输的延迟、稳定性也随之改善,UDP的丢包率低于5%,如果再使用应用层重传,能够完全确保传输的可靠性。

5、对比测试结果UDP性能优于TCP

为了提升浏览速度,基于TCP提出了SPDY协议以及HTTP/2。在上实验基于UDP的QUIC协议,传输速率减少到100ms以内。

网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势_1.png

6、TCP设计过于冗余,速度难以进一步提升

TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程以及重传策略。由于TCP内置在系统协议栈中,极难对其进行改进。

7、UDP协议以其简单、传输快的优势,在越来越多场景下取代了TCP 7.1、网页浏览

使用UDP协议有三个优点 :

7.2、流媒体

采用TCP,一旦发生丢包,TCP会将后续包缓存起来,等前面的包重传并接收到后再继续发送,延迟会越来越大。基于UDP的协议如实时音视频开源工程是极佳的选择。

2010年 通过收购 IP ,获得了(网页实时通信Web Real-Time )技术,用于提升网页视频速率。关于的介绍,请见:《访谈标准之父:的过去、现在和未来》,更多文章点此进入。

7.3、实时游戏

对实时要求较为严格的情况下,采用自定义的可靠UDP协议,比如Enet、(用户有 sony game、)等,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。

采用UDP的经典游戏如FPS游戏Quake、CS,著名的游戏引擎采用的也是。

7.4、物联网

2014年旗下的Nest建立 Group,推出了物联网通信协议,完善物联网通信。

网络编程懒人入门(五):快速理解为什么说UDP有时比TCP更有优势_3.jpg

采用UDP有3个关键点:

8、本文小结

如今全球将近50%的人都在使用互联网,人们不断的追求更快、更好的服务,一切都在变化,在越来越多的领域,UDP将会抢占TCP的主导地位。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了