TCP 和 UDP 的区别
-
TCP 是面向连接的协议
-
TCP 通过三次握手来建立连接
所谓的建立连接,就是会在客户端和服务端之间去维护这个连接,具体建立一定数据结构来维护双方的交互状态,保证双方的连接是一个可靠的连接
-
TCP 是面向字节流的协议
-
TCP 具有拥塞控制和流量控制
-
TCP 是一个有状态的服务,它关注数据包的收发是否成功,数据的收发对象等
-
-
UDP 是一个面向无连接的协议
UDP 它不能保证不丢失,也不能保证按时到达;它不管包是否到达和网络状况到底如何
- UDP 是一个面向 IP 包的协议
- UDP 是一个无状态的服务,它只管发送就行,不会根据网络情况进行发包的拥塞控制,无论网络丢包情况如何,它还是继续发送。
- UDP 不会建立连接,无需握手,虽然也有端口号,但是监听在这个地方,谁都可以传数据给它,它也可以给任何人数据,甚至可以同时给多人数据
-
UDP 使用场景
- 需要资源少,网络情况比较好的内网,对于丢包不敏感的应用
- 不需要一对一沟通,建立连接,而是可以广播的应用,谁都可以给它传数据,它也可以给任何人传数据,甚至可以同时给多人数据
- 需要处理速度快,时延低,可以容忍少数丢包,但是要求即使网络拥塞,也不能减慢发送速度
- HTTP 3.0