TCP 的特点
1. 面向连接
使用 TCP 协议进行数据传输之前,必须先建立 TCP 连接,在传送数据完毕后,必须释放已经建立的连接。
2. 只提供一对一通信
每条 TCP 连接只能有两个端点,只能是点对点的。
3. 提供可靠的数据传输
通过 TCP 连接传送的数据,无差错,不丢失,不重复,并且按序到达。
4. 全双工通信
TCP 允许通信双方的应用进程在任何时候都能发送数据。
5. 面向字节流
补充
- TCP 提供一种面向连接的、可靠的字节流服务
- 在一个 TCP 连接中,仅有两方进行彼此通信。
- 广播和多播不能用于 TCP
- TCP 使用校验和,确认和重传机制来保证可靠传输
- TCP 给数据分节进行排序,并使用累积确认保证数据的顺序不变和非重复
- TCP 使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小进行拥塞控制
注意:TCP 并不能保证数据一定会被对方接收到,因为这是不可能的。TCP 能够做到的是,如果有可能,就把数据递送到接收方,否则就(通过放弃重传并且中断连接这一手段)通知用户。因此准确说 TCP 也不是 100% 可靠的协议,它所能提供的是数据的可靠递送或故障的可靠通知。
来源于:https://hit-alibaba.github.io/interview/basic/network/TCP.html