TCP的四次挥手的目的是什么?
三次握手是为了建立TCP连接
四次挥手是为了断开TCP连接
TCP四次挥手由谁发起?
由客户端或服务端任一方执行close来触发。
简单描述一下TCP四次挥手的过程
- 第一次挥手:客户端发送FIN请求来关闭客户端到服务端的数据传送(并不代表不能交互)功能,来告诉服务端,客户端已准备好关闭连接了。
- 第二次挥手:服务端收到FIN请求后,返回ACK确认请求,告诉客户端你的请求我收到了,但是我还有数据正在传输,请等待服务端像客户端发送FIN请求。
- 第三次挥手:服务端完成数据传输,向客户端发送FIN请求,请求关闭连接。
- 第四次挥手:客户端收到FIN请求后,向服务端发送ACK确认请求,服务端收到请求后就断开连接。客户端在等待了2MSL后没有收到服务端的请求则客户端也关闭连接。
四次挥手中的专业术语
关键名词 | 含义 |
---|---|
FIN | finall 关闭连接 |
ACK | acknowledgement 确认 |
MSL | Maximum Segment Lifetime 最大分段生存期,可译为“最长报文段寿命” |
四次挥手交互图
三次握手与四次挥手中涉及的状态
根据四次挥手的过程,向大家抛出几个问题
- 为什么建立连接需要三次握手,而断开连接需要四次挥手?
- 为什么在第四次挥手时,客户端需要等待2MSL?
- 三次握手建立连接后,怎么样保证连接保持正常呢?
- 如果在三次握手后,或者在四次挥手过程中某一方突然挂掉会引起什么问题?如何解决?
大家先根据问题自己思考一下,如有别的问题也一并留言,下期解答