三次握手
TCP是指传输控制协议,它提供了两台计算机之间可靠无差别的数据传输。
三次握手是客户端和服务器连接时的三次交互,可以简单描述为确认、连接、可靠。
-
第一次握手,客户端向服务器端发出连接请求,然后等待服务器确认。
-
第二次握手,服务器接收到客户端的连接请求之后,向客户端回应一个消息,通知客户端收到了连接请求。
-
第三次握手,客户端再次向服务器发送确认消息,确认连接。
三次握手可以保证连接的可靠性,从而保证数据传输的安全。
四次挥手
建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。
TCP 连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务端均可主动发起挥手动作。
-
第一次挥手,客户端向服务器端发送断开连接请求,停止再发送数据,主动关闭TCP连接,等待服务端的确认,客户端进入终止等待状态。
-
第二次挥手,服务器端收到断开连接请求后,向客户端回应一个确认消息,此时服务端处于关闭等待状态。(此时的TCP处于半关闭状态,客户端到服务端的连接释放。客户端收到服务端的确认后,进入终止等待状态,等待服务端发出的连接释放报文段)
-
第三次挥手,如果服务端也想断开连接了,和客户端的第一次挥手一样,发给客户端断开连接请求,此时服务器处于最后确认状态。
-
第四次挥手,客户端收到服务端的连接释放报文段后,对此发出确认报文段。此时客户端处于时间等待状态。需要过一阵子以确保服务端收到自己的确认报文段之后才会进入关闭状态,服务端收到 确认报文段之后,就处于关闭连接了,处于关闭状态。