面试题:请讲一下四次挥手的过程?
1.客户端发送FIN数据包给服务器,表示客户端不再发送数据给服务器,想要断开这个方向的连接。
2.服务器收到客户端的FIN包之后,发送ACK包给客户端,对收到的FIN包进行收到确认。
3.服务器完成对客户端数据的发送之后,主动发送FIN包给客户端,想要断开这个方向的连接。
4.客户端收到服务器发来的FIN包之后,发送ACK包给服务器,进行收到确认。
在客户端发送ACK包给服务器端之后,客户端会等待一会儿,确保服务器收到之后,再断开连接。这样客户端和服务器之间的连接就断开了,以上就是四次挥手的全过程。
为什么是四次?
因为TCP是全双工通信。一个方向连接的关闭,需要发送方主动发送一次请求,接收方确认一次。所以一个方向的连接关闭,需要两次挥手。
两个方向都关闭,所以需要四次挥手!