【面试题】什么是三次握手四次挥手呢?
三次握手和四次挥手是关于TCP协议的核心概念
三次握手(Three-way Handshake)
三次握手是建立TCP链接时客户端和服务器之间进行的协议交换过程,用于确保双方都准备好开始数据传输
- 客户端开始发送SYN: 客户端向服务器发送一个同步(SYN)信号,表示请求建立链接
- 服务器回应SYN-ACK:服务器收到客户端的请求后,回应一个同步确定信号(SYN-ACK)新号,表示同意建立链接,并等待客户端确定
- 客户端回应ACK:客户端收到服务器的回应后,发送确认(ACK)新号,表示链接已经建立
此时,客户端和服务器就建立了链接,可以开始传输数据了
四次挥手(Four-way Handshake)
四次挥手是关闭TCP连接时客户端和服务器之间进行的协议交换过程。由于TCP是全双工的(即数据可以同时双向传输),所以关闭连接时需要双方关闭自己的链接。
- 客户端发送FIN:客户端发送一个结束(FIN)新号,表示自己没有数据要发送了,但还可以接收服务器的数据
- 服务器回应ACK:服务器收到客户端的FIN请求后,回应一个ACK信号,表示服务器也没有数据要发送了
- 服务器发送一个FIN:服务器向客户端发送一个结束(FIN)信号,表示服务器也没有数据要发送了。
- 客户端回应ACK:客户端收到服务器的FIN信号后,发送一个确认(ACK)信号,表示链接关闭过程完毕。
四次挥手是关闭TCP链接的过程。客户端先发送结束信号(FIN),服务器确认后在发送结束信号,客户端最终确认后,链接彻底关闭。
总结:
- 三次握手:建立链接的过程,确保双方可以通信
- 四次挥手:断开链接的过程,确保双方都完成数据传输并安全关闭链接