既然UDP更快,为啥这么多年一直用TCP ?

既然UDP更快,为啥这么多年一直用TCP ?

TCP主要是给在用IP网络通信的主机上运行的应用程序之间,提供一种可靠、有序且经过错误检查的八位字节流传递。

TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。

02 啥是UDP?

如果是那种不需要靠数据流服务的应用程序,就可以使用UDP(用户数据报协议),它和TCP(传输控制协议)不同,前者强调降低延迟,后者强调可靠有序。

UDP (User Datagram Protocol)的全称是用户数据电报协议。

它是一种无连接、不可靠、面向报文的协议,提供不可靠的用户数据报服务,1980 年发布的 RFC 768 定义了 UDP 协议。

如果你想给女朋友发一句消息,你会发现通过UDP发,和TCP发,是有两种截然不同的过程。

用TCP和女朋友聊天的过程我之前写过,感兴趣的朋友可以戳链接回顾一下:《鏈煡閿欒》

用UDP的话,会是什么样的画面?

如果你想给女朋友发一句:“我想你了”,UDP只会把这消息消息交给IP层,原封不动。

也就是说,它的目的就是将数据包发出去,尽最大努力的交付。

和TCP的传输的“三次握手”不同,UDP是个直爽性子,争取一步到位。这就会导致消息的不稳定和不确定性。

女朋友到底收到没?不知道。

发消息的时候信号好吗?不知道。

女朋友收到消息之后什么反应?不知道。

一问三不知,所以UDP相对“不那么可靠”。

UDP虽然不可靠,但是它胜在“快”,不需要你谨小慎微的建立连接,然后再发数据,也不需要每一个包都ACK之后再发送下一个。

快,是这个时代的主旋律,从这个角度,UDP还是有很大的用武之地的。

我在看美女直播,想给美女打赏,慢了怎么行?

我在玩游戏放大招,慢了怎么搞?

所以啊,UDP和TCP各有各的好。

再附上一张图,横向对比一下两种协议的区别:

之前在网络上刷到过一个段子,也能很生动形象的区别二者:

《假如用TCP和UDP送快递》

TCP:您好,TCP快递,请问您在家吗,如果在家我现在送过去,请您当面签收一下,如果不在家,我们再约时间哦~

UDP:喂,快递放小区门口了,丢了我不管啊,886。

现在,你能区分这俩兄弟了不?

02 话说回来,为什么TCP仍然占据主要地位?

既然UDP快,为什么不直接都用UDP,这个问题,相信你在看完上半部分,应该会有一个明确的答案,那就是:

UDP不靠谱啊。

是的,虽然不靠谱,但是快,所以对延迟特别敏感的应用,比如视频、语音通话,在线会议等,都会用到UDP技术。

速度快,所以延迟小,这是很多人对UDP的认识。

再加上其实UDP更快不是一个普适性的结论,对于大多数人来说在UDP上搞一个可靠的传输协议绝大多数还不如TCP。

在可靠性非常差的时候,大家都先选择先解决可靠性而已。只能在传输层补齐物理层和链路层的不足。

就像你做一个大型项目,当然,能在ddl之前把项目完美完成并交付给甲方是很体现能力的一件事情,但这个事情的前提是“完美完成”。

很多人做项目很难做到完美,能完成就很难得。而越大的项目就越不可控,越不可控就越要细分颗粒度,把控到位,这样才具有“稳定”输出细节,得到相对理想的完成项目的结果。

UDP明显不具备“稳定”的功能,而相反,TCP的“谨慎”,才是它一直处于主流地位的真正原因。

加上由于TCP有拥塞控制、流量控制。网络设备和运营商更喜欢TCP。

在互联网时代,快速是一个很重要很亮眼的标签,但稳定输出,才是根本基石和一切之本。

TCP如此,工作亦如是。

最后,想要系统学习TCP/IP的小友,也欢迎私聊我,网络基础其实在HCIA/CCNA认证课程中就有系统涉及到。

原创:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部返回搜狐,查看更多

相关文章

365现金app下载 梆硬哥GOD

梆硬哥GOD

⏱️ 08-01 👁️ 1708
beat365手机版官方网站正规 春天的对联

春天的对联

⏱️ 08-22 👁️ 9985
beat365手机版官方网站正规 支付宝如何删除卡包里面的券 过期卡券的删除方法