![f3ec703dcb397416fdceac82e123320a.png](https://i-blog.csdnimg.cn/blog_migrate/c3a78ef08fa928c2ee0fa6af3c691f53.jpeg)
上篇文章跟大家介绍了TCP通信常见的前10个面试题,没看过的小伙伴可以点击下方链接进行查看,下面接着介绍后20个常见问题:
dotNet工控上位机:上位机面试必备——TCP通信灵魂二十问【上】zhuanlan.zhihu.com![e530bc2d5325fce3827d8f840f8e4f88.png](https://i-blog.csdnimg.cn/blog_migrate/6e35a4c4332d069d12bd87c1e1aa8403.jpeg)
11. 四次挥手中的TIME_WAIT状态?
首先要明确一点:主动关闭连接的一方,才会有TIME_WAIT状态。
之所以需要TIME_WAIT状态,主要是两个原因:
- 防止相同的端口重新连接时,服务器收到的是停留在网络间的数据包
- 保证被动关闭连接的一方能被正确的关闭,即保证最后的 ACK 能让被动关闭方接收,从而帮助其正常关闭
12. 为什么TIME_WAIT时间为2MSL?
MSL 是 Maximum Segment Lifetime,报文最大生存时间,它是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。比如如果被动关闭方没有收到断开连接的最后的 ACK 报文,就会触