- 第一次握手:首先客户端向服务端发送一个带有 SYN 连接请求标志,以及随机生成的序号 seq=x 的报文,等待服务端确认。
- 第二次握手:服务端收到报文后返回一个 seq=y,ACK=x+1 的报文给客户端以确认连接请求。
- 第三次握手:客户端收到确认后,检查ACK是否为 x+1,如果正确则发送带有 ACK=y+1 的报文给服务端。服务端检查ack是否为 y+1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态,完成三次握手,随后客户端与服务端之间可以开始传输数据了。
四次挥手过程,客户端和服务端都可以先开始断开连接。
- 第一次挥手:客户端发送带有 FIN 标识,seq=M 的报文给服务端,请求通信关闭。
- 第二次挥手:服务端收到信息后,回复 ACK=M+1 的报文给客户端,答应关闭通信请求。
- 第三次挥手:服务端发送带有 FIN 标识,seq=N 的报文给客户端,也请求关闭通信。
- 第四次挥手:客户端回应 ACK=N+1 给服务端,答应关闭服务端的通信请求。