一图搞懂TCP三次握手
TCP(三次握手,Three-Way Handshake)是建立可靠连接的重要过程,确保客户端和服务器之间能够可靠地进行数据传输。整个过程主要分为三个步骤:客户端发送 SYN 包、服务器响应 SYN-ACK 包、客户端确认 ACK 包。
1. 客户端发送 SYN 包
- 操作主体:客户端 (Client)
- 操作内容:客户端发起连接请求,发送一个 SYN(同步请求)包。
- 技术细节:
- SYN = 1:表示同步请求
- seq = x:客户端选择的初始序列号
- 目的:告知服务器客户端希望建立连接,并告知初始序列号。
2. 服务器响应 SYN-ACK 包
- 操作主体:服务器 (Server)
- 操作内容:服务器接收到客户端的 SYN 包后,向客户端发送 SYN-ACK 包作为响应。
- 技术细节:
- SYN = 1, ACK = 1:表示服务器确认连接请求,同时请求同步
- seq = y:服务器的初始序列号
- ack = x + 1:确认客户端的序列号
- 目的:确认客户端的请求,同时发送自己的连接请求序列号,保证双方同步。
3. 客户端确认 ACK 包
- 操作主体:客户端 (Client)
- 操作内容:客户端收到服务器的 SYN-ACK 包后,发送 ACK 包确认。
- 技术细节:
- ACK = 1:确认应答
- seq = x + 1:客户端序列号递增
- ack = y + 1:确认服务器序列号
- 目的:确认服务器已准备好,至此连接正式建立。
连接建立成功
通过上述三次握手(SYN → SYN-ACK → ACK),客户端和服务器双方完成了连接的初始化,双方的序列号同步完成,能够开始可靠的数据传输。
技术术语解释
| 缩写 | 含义 |
|---|---|
| SYN | 同步请求 (Synchronize) |
| ACK | 确认应答 (Acknowledgment) |
| seq | 序列号,用于标识数据顺序 |
| ack | 确认号,用于确认接收到的数据 |
总体来说,三次握手保证了:
- 双方都能确认对方存在
- 双方序列号同步
- 保证数据可靠传输的基础
这个机制是 TCP 可靠传输的关键步骤,也是网络通信中不可或缺的环节。
THE END
