问题描述
- 求网络大牛解决疑难杂症,为何断开连接后,不出现time_wait状态
-
我们都知道,tcp/ip协议断开连接是4次挥手,主动断开的一方,最后会进入time_wait状态,等待2MSL后变成CLOSED,但是我在本地做了一个php网页,代码逻辑就是先sleep,3秒钟然后输出几个字符,但是查看网络状态时,压根找不到time_wait的状态:以下是通过natstat命令,查看到机器上的状态
1.在服务器sleep的时候,建立连接的双方都是ESTABLISHED
2.网页输出之后,大约过3秒钟,就是我第二次的网络状态,80端口进入FIN_WAIT_2,
58410端口(这次发起请求的浏览器端口),为CLOSE_WAIT状态
3.又过了大约10秒钟,就是我第三次查看状态,双方的连接消失了
按照tcp/ip上面的写法,现在主动断开连接的一方会进入time_wait状态,可是这里却没有,求教这是为什么?
(本地环境为wamp2.4,win7 64位,测试浏览器为ie8)
解决方案
你想学习这方面首先你最好别用浏览器,浏览器是代替你做了socket连接,而不是你的php代码做连接。
另外socket连接状态和网卡工作效率有关系,time_wait状态仅仅表示等待等待,到底等待什么,如果实在没有可等待的了,就close了,从客户端和服务端的网卡硬件上删除标识位。
时间: 2024-09-23 21:44:47