TCP/UDP专栏
一、前言
对于TCP协议 和 UDP协议,大家应该都有所耳闻,我们常用的网络通讯,比如浏览网页、软件聊天、以及正在收看的视频都是通过这两种协议来进行数据传输的,到底他们是如何工作的?这两种协议又有什么区别呢?
二、TCP/UDP 异同
1. TCP/UDP 相同点
TCP协议 和 UDP协议都工作在传输层协议,目的是在程序之间传输数据,数据可以是文本文件,可以是视频,也可以是图片,对于二者来说以上都是一堆二进制数,并没有太大区别;

2. TCP/UDP 区别
2.1 最大的区别:
- TCP:基于连接
- UDP:基于非连接
2.2 如何理解?
如果把人与人之间的通信,比喻为进程与进程的通信,我们基本有两种方式:写信、打电话,如果不考虑速度因素,这两种方式最大的区别是什么?

2.2.1 TCP是如何保证以上过程的?
分为三个步骤:三次握手,传输确认,四次挥手
三次握手

注意:TCP协议需要在不可靠的信道上,保证可靠的连接,现在就有几个问题需要去面对
-
丢包问题
-
乱序问题

四次挥手

2.2.2 UDP协议
首先UDP协议是基于非连接的, 发送数据就是简单的把数据包封装一下,然后从网卡发出去就可以了,数据包并没有状态上的联系,正因为UDP这种简单的协议处理方式,导致它的性能损耗非常少,对于CPU内存资源的占用也远小于TCP,但是对于网络传输过程中的丢包,udp协议并不能保证,所以udp在传输稳定性上要弱于tcp

2.3 总结

其中udp有一个重要的使用场景:隧道网络:VPN 、VXLAN

浙公网安备 33010602011771号