TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。
实际上在计算机网络中进行通信的真正实体是计算机上的应用进程
不同主机上的应用进程(端到端)提供直接通信服务,这是运输层的任务
TCP 和 UDP 的区别
连接
- TCP 是面向连接的协议,传输前需要先建立连接
- UDP 不需要连接,即刻传输数据
服务对象
- TCP 是一对一的两点服务,即一条连接只有两个端点。因为 TCP 必须在两点之间建立可靠连接
- UDP 支持一对一、一对多、多对多的交互通信
可靠性
- TCP 是可靠交付数据的,数据可以无差错、不丢失、不重复、按序到达。
- UDP 是尽最大努力交付,不保证可靠交付数据。但是我们可以基于 UDP 传输协议实现一个可靠的传输协议,比如 QUIC 协议。
拥塞控制、流量控制
- TCP 有拥塞控制和流量控制机制,保证数据传输的安全性。
- UDP 则没有,即使网络非常拥堵了,也不会影响 UDP 的发送速率。
首部开销
- TCP 首部长度较长,会有一定的开销,首部在没有使用「选项」字段时是
20
个字节,如果使用了「选项」字段则会变长的。
- UDP 首部只有 8 个字节,并且是固定不变的,开销较小。
传输方式