TCP连接是一种可靠的、面向连接的通信机制,用于在网络上两台设备之间有序且无差错地传输数据。以下是其核心要点:
1. 连接建立:三次握手
- 步骤:
- SYN:客户端发送带有
SYN
(同步)标志的数据包,包含初始序列号。 - SYN-ACK:服务器响应
SYN-ACK
(同步-确认),包含自己的初始序列号和对客户端序列号的确认。 - ACK:客户端发送
ACK
确认服务器的序列号,连接建立完成。
- SYN:客户端发送带有
- 作用:同步双方的初始序列号,确保双方具备收发能力,防止历史连接问题。
2. 连接标识
TCP连接由四元组唯一标识:
- 源IP地址、源端口
- 目标IP地址、目标端口
3. 关键特性
- 可靠性:
- 序列号与确认号:确保数据按顺序到达,丢失或错误的数据包会重传。
- 重传机制:超时或快速重传(如收到3次重复ACK)触发重发。
- 流量控制:通过滑动窗口动态调整发送速率,防止接收方缓冲区溢出。
- 拥塞控制:慢启动、拥塞避免等算法,根据网络状况调整发送速率。
4. 连接终止:四次挥手
- 步骤:
- FIN:一方发送
FIN
(终止)标志,表示不再发送数据。 - ACK:另一方确认
FIN
,但可能继续发送未完成的数据。 - FIN:另一方发送自己的
FIN
,表示准备关闭。 - ACK:最后一方的确认,连接完全关闭。
- FIN:一方发送
- 原因:全双工通信需独立关闭两个方向的传输。
5. 与UDP的区别
- TCP:面向连接、可靠、有序传输,适合文件传输、网页浏览等场景。
- UDP:无连接、不可靠、低延迟,适合视频流、实时游戏等。
6. 状态管理
- 建立阶段:
SYN_SENT
、SYN_RECEIVED
、ESTABLISHED
。 - 终止阶段:
FIN_WAIT
、CLOSE_WAIT
、LAST_ACK
、TIME_WAIT
。
总结:TCP连接通过三次握手建立可靠通道,利用序列号、确认应答、重传等机制确保数据传输的完整性和顺序性,并通过四次挥手优雅终止连接。其设计平衡了可靠性与效率,是互联网通信的基石。