TCP
协议官方定义 维基百科介绍
UDP
协议官方定义 维基百科介绍
可参考:
TCP、UDP 协议的区别的详细分析
基于 TCP、UDP 协议编程差异
TCP/IP 协议是一个协议簇,包括很多协议。命名为 TCP/IP 协议的原因是 TCP 和 IP 这两个协议非常重要,应用很广。
TCP 和 UDP 都是 TCP/IP 协议簇里的一员。
TCP,Transmission Control Protocol 的缩写,即传输控制协议。
- 面向连接,即必须在双方建立可靠连接之后,才会收发数据
- 信息包头 20 个字节
- 建立可靠连接需要经过3次握手
- 断开连接需要经过4次挥手
- 需要维护连接状态
- 报文头里面的确认序号、累计确认及超时重传机制能保证不丢包、不重复、按序到达
- 拥有流量控制及拥塞控制的机制
UDP,User Data Protocol 的缩写,即用户数据报协议。
- 不建立可靠连接,无需维护连接状态
- 信息包头 8 个字节
- 接收端,UDP 把消息段放在队列中,应用程序从队列读消息
- 不受拥挤控制算法的调节
- 传送数据的速度受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制
- 面向数据报,不保证接收端一定能收到
区别:
- TCP 面向连接;UDP 不建立可靠连接
- TCP 信息包头 20 个字节;UDP 8 个字节
- TCP 只能一对一的传输;UDP 支持一对一、一对多、多对一、多对多的传输
- TCP 需要维护连接状态;UDP 无
- TCP 拥有流量控制及拥塞控制的机制;UDP 不关注网络状况
- TCP 通过流模式传输数据;UDP 通过数据报模式传输数据
- TCP 保证数据正确性、不丢包、不重复、有序性;UDP 只最大交付,不保证可靠性
- TCP 适合网络负担不大、可靠性要求高的场景;UDP 适合网络负担重响应高、客户端较多、可靠性要求不高的场景