三次握手四次挥手
2023-03-27 11:22:36
TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。在建立 TCP 连接时,需要进行三次握手;在断开 TCP 连接时,需要进行四次挥手。
三次握手
三次握手指的是,在建立 TCP 连接时,客户端和服务器之间需要进行三次通信,以确保双方都能正常收发数据。具体流程如下:
第一次握手:客户端发送 SYN 包(同步包)给服务器,并将自己的初始序列号随机选择并发送给服务器。
第二次握手:服务器接收到 SYN 包后,发送 SYN+ACK 包(同步应答包)给客户端,表示收到了客户端的请求,并将自己的初始序列号随机选择并发送给客户端。
第三次握手:客户端接收到 SYN+ACK 包后,发送 ACK 包(应答包)给服务器,表示收到了服务器的应答,并确认双方都能正常收发数据。
至此,TCP 连接建立成功,双方可以开始正常收发数据。
四次挥手
四次挥手指的是,在断开 TCP 连接时,客户端和服务器之间需要进行四次通信,以确保双方都能正常断开连接。具体流程如下:
第一次挥手:客户端发送 FIN 包(结束包)给服务器,表示客户端已经没有数据要发送给服务器了,但仍然可以接收服务器发送的数据。
第二次挥手:服务器接收到 FIN 包后,发送 ACK 包给客户端,表示已经收到了客户端的请求,但服务器仍然有数据要发送给客户端。
第三次挥手:服务器将所有数据发送完毕后,发送 FIN 包给客户端,表示服务器已经没有数据要发送了。
第四次挥手:客户端接收到 FIN 包后,发送 ACK 包给服务器,表示已经收到了服务器的请求,同时告诉服务器可以断开连接了。
至此,TCP 连接断开成功,双方都可以安全地关闭连接。