TCP和UCP的区别
1. TCP(Transmission Control Protocol,传输控制协议)
特点:
-
面向连接
- 通信前要先建立连接(三次握手),结束时四次挥手。
-
可靠传输
- 数据按顺序到达,对丢包、乱序、重复都有处理。
-
流量控制 & 拥塞控制
- 根据网络状况调节发送速度,保证稳定传输。
-
面向字节流
- 应用层发送的数据被当作连续的字节流。
-
传输速度较慢
- 因为保证可靠性,需要重传、确认等机制。
适用场景:
- 文件传输(FTP)、网页(HTTP/HTTPS)、邮件(SMTP/POP3)等需要可靠传输的场景。
2. UDP(User Datagram Protocol,用户数据报协议)
特点:
-
无连接
- 不需要建立连接,直接发送数据。
-
不保证可靠性
- 可能丢包、乱序、重复;不做重传。
-
传输速度快
- 因为没有确认、重传等机制。
-
面向报文
- 数据以独立报文(datagram)为单位发送。
-
开销小
- 头部信息简单(8 字节),节省网络资源。
适用场景:
-
实时性要求高但可以容忍丢包的场景:
-
视频直播、语音通话、在线游戏、DNS 查询。
对比总结
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接(三次握手) | 无连接 |
可靠性 | 高,保证数据完整、顺序 | 不保证 |
速度 | 较慢 | 快 |
传输方式 | 字节流 | 报文(数据报) |
流量控制 | 有 | 无 |
场景 | 文件传输、网页、邮件 | 视频、语音、游戏、DNS |