首先,三次握手是用来解决网络通道的“不可靠”的问题,第一次握手是客户端会向服务端发一包数据并且请求是否能与其进行连接,这包数据称为SYN包,如果对方同意连接则会回复一包数据为SYN+ACK包(第二次握手),随后客服端会回复服务器一个ACK包,最后连接成功,这就是第三次握手。
四次断开同样可以解决网络通道不可靠的问题从而达成安全断开。客户端和服务端都可以发起关闭请求连接。当客户端与服务器发起连接关闭请求,客户端会向服务端发起一包FIN包表示要关闭连接进入静止等待状态,这是第一次断开,服务端收到FIN包向客户端发送一包ACK包表示自己进入关闭状态,随后客户端进入静止等待状态这是第二次断开,服务端此时还可以发送未发送的数据,而客户端还可以继续接收数据,待服务端发送完数据后发送一包FIN包,进入最后确认状态,这是第三次断开,客户端收到后回复ACK包进入超时等待状态,经过超时时间后关闭连接而服务端收到ACK包后立刻断开连接这是第四次断开。