原标题:不为人知的网络编程(三):关闭TCP连接时为什么会TIME_WAIT、CLOSE_WAIT
1、前言
最近一段时间一直在学习阅读mina和nio的源码,也发现了一些问题无法解决,然后重读了一下tcp协议,收获颇多。(这就是带着问题去读书的好处)
这次就和大家分享一下我们的netframework服务总会抛出一个“connet reset by peer”的原因吧。通过抓包工具分析,主动关闭方直接发送了一个RST flags,而非FIN,就终止连接了。
如下图所示:
2、为什么调用sokcet的close时只通过一次握手就终结连接了?
要分析这个原因那就得从关闭连接程的四次握手,有时也会是三次握手,说起。
如下图所示:
大家都知道tcp正常的关闭连接要经过四次握手,如下所示: