TCP三次握手,即需要三个步骤才能链接的机制。其作用是为了确认双方是否具有接收和发送的能力,便于为后续的可靠性传输做准备。
第一次握手:客户端会向服务端发送一个SYN报文(SYN:连接请求或接收报文段),并指明客户端的初始化序列号ISN(X)。
第二次握手:当服务器收到客户端的SYN报文后,会发送SYN报文作为回复,并且指定自己的初始化序列号ISN(Y)。同时会把客户端的ISN+1作为确认ACK的值。(ACK:确认报文段)
第三次握手:客户端收到服务器端的SYN报文后,会发送一个ACK报文,把服务器的ISN+1作为AVCK的值。
服务器收到ACK报文后,二者都处于Establied状态时,则三次握手完成。
四次断开,即TCP的断开需要四个步骤。
第一次断开:客户端发送一个FIN报文(FIN:连接中止位),并停止发送数据,主动关闭TCP连接。此时客户端处于 FIN_WAIT1 状态,等待服务端的确认。
第二次断开:服务端收到 FIN 之后,会发送 ACK 报文,并把客户端的序号值+1作为ACK的值,表明已经收到客户端的报文了,此时服务端处于 CLOSE_WAIT 状态。此时TCP处于半关闭状态,客户端到服务端的连接释放。
第三次断开:服务器断开连接,则步骤与第一次断开的步骤一样,使服务端处于 LAST_ACK 的状态,等待客户端的确认。
第四次断开:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把服务端的序列值 +1 作为自己 ACK 报文值
等待足够的时间以确保远程TCP接收到连接中断请求的确认,这样整个步骤便结束了。