UDP 和 TCP 区别? 使用场景
1. UDP
2. TCP
3. 区别
答:
- UDP(User Datagram Protocol),用户数据包协议,是一个简单的面向数据报的通信协议,即对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层
也就是说无论应用层交给UDP多长的报文,它统统发送,一次发送一个报文。而对接收方,接到后直接去除首部,交给上面的应用层就完成任务
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位),标题短,开销小
特点如下:
- TCP(Transmission Control Protocol),传输控制协议,是一种可靠、面向字节流的通信协议,把上面应用层交下来的数据看成无结构的字节流来发送
可以想象成流水形式的,发送方TCP会将数据放入“蓄水池”(缓存区),等到可以发送的时候就发送,不能发送就等着,TCP会根据当前网络的拥塞状态来确定每个报文段的大小
TCP报文首部有20个字节,额外开销大
特点如下:
3. UDP与TCP两者的都位于传输层,如下图所示:
两者区别如下表所示:
可以看到,TCP 应用场景适用于对效率要求低,对准确性要求高或者要求有链接的场景,而UDP 适用场景为对效率要求高,对准确性要求低的场景
补充
补充:TCP 和 UDP 都在 OSI 第四层(传输层),前者是面向连接的可靠字节流,后者是无连接的数据报协议。
主要差异:
- 连接:TCP 三次握手建立连接、四次挥手关闭;UDP 直接发,不维护连接。
- 可靠性:TCP 有 ACK、重传、排序、去重;UDP 不保证送达、不保证顺序。
- 数据单位:TCP 是字节流(按需切分 / 合并);UDP 是数据报(一次发送一个完整报文)。
- 首部开销:TCP ≥ 20 字节;UDP 固定 8 字节。
- 流量 / 拥塞控制:TCP 有滑动窗口 + 拥塞控制;UDP 没有。
- 典型场景:TCP 适合 HTTP、HTTPS、SSH、文件传输、邮件;UDP 适合 DNS、视频会议、实时游戏、QUIC/HTTP3。
补充:QUIC 在 UDP 之上实现了类似 TCP 的可靠性,但把拥塞控制、加密握手都放到用户态,性能和灵活性更高。



