[socket] 断开连接时,time_wait状态的解释和验证:
来源:互联网 发布:gta5和看门狗2 知乎 编辑:程序博客网 时间:2024/06/08 06:24
time_wait状态的解释和验证:
在TCP同步双工断开连接中,假设没有time-wait这个状态,那么在最后一个FIN N发送时,主动关闭方接到后,返回ack N+1.那么这个时候如果N+1这个包在没有正确达到,那么对方会一直处于LAST ACK的状态,而发送方因为没tim_wait这个状态,已经认为是正确发送了就退出了,造成接收方一直等待。 加入time_wait后,time_wait本身这个值也代表这个一个包在网络上能生存的时间,接收方就可以简单认为在这个时间内没收到N+1的包就可以认为
这次断开是失败的,那么要重新发送FIN N的序列号。而这个时候time_wait端也要将状态改为接
收这个FIN的状态,以进行下一次发送
对重复连接的socket连接:设想下,假设没这个time_wait,你刚退出这个套接字,四次断开还未
完成,你或许在CLOSE_WAIT就退出了,然后又马上连接,发出你的ACK。这个后果是很严重的,而
对方可能认为你还处于刚才的四次断开状态呢。。
第一无法验证。对第二个验证如下:在客户端bind一个sockaddr_in,指定端口。在断开时,马上再次连接,发现连接不起来
这个时候端口处于
- 127.0.0.1:9005 127.0.0.1:9000 TIME_WAIT
- [socket] 断开连接时,time_wait状态的解释和验证:
- TCP断开连接时的2MSL的time_wait状态
- socket:close_wait状态和time_wait状态问题
- socket:close_wait状态和time_wait状态问题
- 回顾一下TCP/IP连建立断开,以及常见大量的TIME_WAIT和CLOSE_WAIT状态原因
- TCP连接状态:CLOSE_WAIT和TIME_WAIT
- TCP连接TIME_WAIT和CLOSE_WAIT状态
- Socket中的TIME_WAIT状态
- Socket中的TIME_WAIT状态
- Socket中的TIME_WAIT状态
- Socket中的TIME_WAIT状态
- socket中的TIME_WAIT状态
- Socket中的TIME_WAIT状态
- TCP连接终止前的TIME_WAIT状态
- netstat下time_wait状态的tcp连接
- TIME_WAIT状态的连接过多是什么原因?
- socket的TIME_WAIT状态的原因及解决办法和避免的办法
- Linux socket断开连接的怪异
- [socket] 大量time wait 解决办法
- shell编程学习笔记
- mtk编译命令详解
- 系统架构师、项目经理、系统分析师
- 『转』初探OSGi 的全文
- [socket] 断开连接时,time_wait状态的解释和验证:
- GDB中 打印出链表的值
- javaeye上 admob讨论
- C#值类型与引用类型(Value Type and Reference Type)
- 开源VOIP代理、客户端和开发库一览
- 人生如棋,落子不悔
- Asp.net中的JavaScript使用之二服务器控件的客户端事件
- 2010年上半年软考可以查询高级资格的考试成绩啦!
- opencore Init的调用流程