tcp中close_wait状态出现的原因
来源:互联网 发布:js 控制transition 编辑:程序博客网 时间:2024/03/29 15:28
close_wait出现的原因: 就是某一方在网络连接断开后,对等方没有检测到这个错误(对方断开)而没有调 用 closesocket,导致了这个状态的出现.
模拟这样一个环境:服务器192.168.1.112:4500在接收到一个客户端的连接后,休眠五秒后,服务器关闭与客户 端通讯的socket后正常退出,而客户端在连接服务器后,等待用户输入字符后,发送给客户端。现在有这样几个问题:
1. 服务器在休眠五秒后,正常退出了,但是由于客户端还在等待用户输入,此时服务器端TCP的状态是什么?(FIN_WAIT_2),客户端的TCP状态是什么?(CLOSE_WAIT)
2. 服务器在休眠五秒后,正常退出了,在服务器退出后,如果客户端异常退出,那么服务器端TCP的状态是什么?客户端的TCP状态是什么?
在服务器正常退出后,客户端异常退出,那么客户端就会向服务器发送RST标志,然后客户端和服务器端的TCP状态都是CLOSED
3. 服务器在休眠五秒后,正常退出了,在服务器退出后,从客户端输入数据后,向服务器发送,此时服务器怎样处理这个数据?
客户端通过PSH标志向服务器段发送数据,能够发送成功,但因为服务器的TCP处于(FIN_WAIT_2)状态,此时服务器会向客户端发送一个RST标示,并且服务器端口状态和客户端的TCP状态都变为CLOSED。
4. 在服务器休眠的过程中,杀死服务器进程,服务器端TCP状态是什么?客户端的TCP状态是什么?
在服务器休眠的过程中,杀死服务器进程,此时服务器方会向客户端发送一个RST标志,服务器TCP状态是
CLOSED,客户端的TCP状态也是CLOSE.
在服务器休眠五秒后,如果不关闭与客户端通讯的Socket直接正常退出,此时,服务器方也向客户端发送了
RST标志。
对于上面的四个问题,必须注意到服务器正常断开的时候,向客户端发送的FIN根本不能被客户端的所正常处理,因为客户端正处于接收用户的输入。所以由于每次都是服务器主动断开,但是服务器TCP状态却有可能不能进入到Time_Wait状态。有兴趣的可以研究以下第三个问题,看看在什么情况下,服务器可以进入到Time_wait状态. (在服务器正常退出后,客户端也接着正常退出,服务器TCP就会进入到Time_wait状态)
- tcp中close_wait状态出现的原因
- TCP的CLOSE_WAIT状态
- TCP的CLOSE_WAIT状态
- CLOSE_WAIT生成的原因,解决方案及TCP各状态解释
- Linux socket通信出现CLOSE_WAIT状态的原因与解决方法
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- CLOSE_WAIT状态的生成原因
- TCP close_wait 状态的解释
- 研究TCP的close_wait状态
- TCP close_wait 状态的解释
- TCP close_wait 状态的解释
- 回顾一下TCP/IP连建立断开,以及常见大量的TIME_WAIT和CLOSE_WAIT状态原因
- java中final用法
- 旧的位置 重新的开始
- Windows API一日一练(33)ExtCreatePen函数
- 纯c语言实现动态分配多维数组的方法
- ATM交换技术
- tcp中close_wait状态出现的原因
- 2007-9-10
- 开始学习JAVA了
- 跨站漏洞解析-小韩网站编程安全系列一
- md5加密之纯C语言版
- 上传漏洞解析-小韩网站编程安全系列二
- 2006年度中国纳税百强排行榜正式发布
- 位操作--对优化算法有了个新的认识
- 祝老婆生日快乐!