一、TCP与UDP区别
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。TCP通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。
3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。
4.每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信,也就是说 UDP 提供了单播,多播,广播的功能。
5、TCP对系统资源要求较多,UDP对系统资源要求较少。
二、 UDP格式与连接
从上面的动态图可以得知,UDP只会把想发的数据报文一股脑的丢给对方,并不在意数据有无安全完整到达。
三、TCP格式与连接
从上面的动态图可以得知,TCP建立连接与断开连接的执行过程。可以简单理解为下面这种情况:
前端面试问题
TCP 的建立连接称为三次握手:
A:您好,我是 A
B:您好 A,我是 B
A:您好 B
断开连接,也被称为四次挥手:
A:B 啊,我不想玩了
B:哦,你不想玩了啊,我知道了 这个时候,只是 A 不想玩了,即不再发送数据,但是 B
可能还有未发送完的数据,所以需要等待 B 也主动关闭。
B:A 啊,好吧,我也不玩了,拜拜
A:好的,拜拜
下面为TCP的首部格式:
三次握手
四次挥手
四、TCP可靠连接
TCP 的顺序问题、丢包问题、流量控制都是通过滑动窗口来解决的
拥塞控制时通过拥塞窗口来解决的
TCP 为什么是可靠连接?
通过 TCP 连接传输的数据无差错、不丢失、不重复、且按顺序到达。
TCP 报文头里面的序号能使 TCP 的数据按序到达
报文头里面的确认序号能保证不丢包,累计确认及超时重传机制
TCP 拥有流量控制及拥塞控制的机制