资讯

展开

好好回答下 TCP 和 UDP 的区别

作者:快盘下载 人气:

写了这么多篇关于 TCP 和 UDP 的文章,还没有好好聊过这两个协议的区别,这篇文章我们就来开诚布公的谈一谈。

关于 TCP 和 UDP ,想必大家都看过一张这样的图。

好好回答下 TCP 和 UDP 的区别

在滑动窗口以外的部分是尚未发送的报文段和已经接受到的报文段,如果报文段已经收到确认则不可进行重发,此时报文段就可以从缓冲区中清除。

在收到确认的情况下,会将窗口滑动到确认应答中确认号的位置,如上图所示,这样可以顺序的将多个段同时发送,用以提高通信性能,这种窗口也叫做 ​​滑动窗口(Sliding window)​​。

UDP 发送的报文段不需要确认,也就没有窗口的概念,所以 UDP 传输效率比较高。

使用场景的差异

TCP 和 UDP 在效率、报文段、流量控制、连接管理上均存在差异,由于这些差异导致了应用场景要有不同的选择,由于 TCP 每个包都需要进行确认,因此 TCP 不适合告诉传输数据的场景,像是这种场景使用 UDP 就好了;像是 Ping 和 DNS Lookup,这类型的操作只需要一次简单的请求/返回,不需要建立连接,用 UDP 就足够了。比如 HTTP 协议需要考虑请求响应的可靠性,这种场景应该使用 TCP 协议,但是像 HTTP 3.0 这类应用层协议,从功能性上思考,暂时没有找到太多的优化点,但是想要把网络优化到极致,就会用 UDP 作为底层技术,然后在 UDP 基础上解决可靠性。

本人写的计算机网络系列文章

​​计算机网络基础知识​​​​TCP/IP 基础知识​​​​计算机网络应用层​​​​计算机网络传输层​​​​计算机网络网络层​​​​计算机网络数据链路层​​​​一文了解 ARP 协议​​​​一文了解 DNS 协议​​​​一文了解 ICMP 协议​​​​一文了解 DHCP 协议​​​​一文了解 NAT 协议​​​​Web 页面的请求流程,超详细​​​​什么是 Socket​​​​一文了解路由选择协议​​​​一文了解 HTTP/2.0​​​​一文了解 QUIC 协议​​​​一文了解 HTTP/3.0​​​​计算机网络自学指南​​​​计算机网络核心概念​​​​计算机网络发展史​​​​学计算机网络,看计算机自顶向下好还是谢希仁的计算机好​​

如果对你有帮助,大家可以点赞评论,你的支持就是我更新最大的动力。


作者:​​cxuan​​


本文版权归作者有,未经作者允许不能转载,否则追究法律责任的权利。

如果文中有什么错误,欢迎指出。以免更多的人被误导。


加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!