彻底理解服务器与客户端的三次握手和四次挥手

120 阅读2分钟

三次握手(Three-Way Handshake)和四次挥手(Four-Way Handshake)是在 TCP(Transmission Control Protocol)协议中用于建立和终止连接的过程。

三次握手 (Three-Way Handshake)

三次握手是在客户端和服务器之间建立 TCP 连接的过程。具体步骤如下:

(a) 客户端发送一个带有 SYN(同步)标志的报文给服务器,并随机生成一个初始序列号(ISN)作为起始的序号。

(b) 服务器接收到 SYN 报文后,回复一个带有 SYN/ACK(同步/确认)标志的报文给客户端。服务器也随机生成一个用于回复的初始序列号,并确认客户端的初始序号,同时将自己的初始序号+1。

(c) 客户端收到服务器的 SYN/ACK 报文后,向服务器发送一个带有 ACK(确认)标志的报文,确认收到了服务器的确认。客户端和服务器之间的连接已建立。

这个过程保证了客户端和服务器双方都同意建立连接,并且交换了初始序号,以便双方在后续的数据传输中准确地进行序号和确认的匹配。

四次挥手 (Four-Way Handshake)

四次挥手是在客户端和服务器之间终止 TCP 连接的过程。具体步骤如下:

(a) 客户端发送一个带有 FIN(终止连接)标志的报文给服务器,表示客户端不再发送数据。

(b) 服务器接收到 FIN 报文后,发送一个带有 ACK 标志的报文作为响应,表示确认收到客户端的终止请求。

(c) 服务器将自己的数据发送完毕后,发送一个带有 FIN 标志的报文给客户端,表示服务器也不再发送数据。

(d) 客户端接收到服务器的 FIN 报文后,发送一个带有 ACK 标志的报文作为响应,表示确认收到服务器的终止请求。

在四次挥手过程中,双方相互通知对方自己不再发送数据,并且等待对方的确认。这样可以确保双方都完成了数据的发送和接收,然后才真正断开连接。