讲一讲TCP的四次挥手?

限于喜欢 提交于 2020-02-16 01:03:17

讲一讲TCP的四次挥手?

第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。

第二次挥手:服务器端收到FIN后,发送一个ACK给客户端,确认序号为收到的序号+1(与SYN相同,FIN只占用一个序列号),服务器端进入COLSE_WAIT状态。

第三次挥手:服务器端发送一个FIN,用来关闭服务器端到客户端的数据传送,服务器端进入LAST_ACK状态。

第四次挥手:客户端接收到FIN后,客户端进入TIME_WAIT状态,接着发送一个ACK给服务器端,确认序号为收到的序号+1,服务器端进入CLOSED状态,完成四次挥手。
在这里插入图片描述
面试题:
为什么要有TIME_WAIT状态?
确保有足够的时间让对方收到ACK包,避免新旧连接混淆。

什么情况下服务器会出现大量的CLOSE_WAIT状态?
当很多客户端大量请求然后关闭Socket连接,服务器方忙于读或写,没有及时关闭连接。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!