TCP客户/服务器程序交互过程图解

转载:http://blog.chinaunix.net/uid-26868581-id-3274453.html 










TIME_WAIT状态:
1.此状态大概2MSL时间。
2.如果最后一个ACK N+1丢失了,服务器会以为自己发的FIN N丢失了,需要重传,重传的时间是2MSL。原因是如果客户进入CLOSED状态并在2MSL之前关闭,那么客户将永远收不到FIN重传的报文段,服务器也永远收不到ACK,服务器不能关闭。
3.假定客户和服务器已经关闭了连接,经过短暂时间后又打开了一个连接,使用同样的socket端口地址,如果这2个连接相隔时间很短,那么从前一个连接来的重复报文段可能会收到这个连接,TCP规定2MSL时间内本地端口不能再被使用。
4.同样的,如果服务器终止了一个已经建立的连接,然后试图立即重启这个服务器程序在相同的端口上,服务器不能在2MSL时间内不能使用这个端口。

FIN_WAIT_2状态:
客户端发送完第一个FIN后,客户端来了确认,此时进入FIN_WAIT_2状态,但是!服务器得等到应用层收到EOF才能发送他的FIN,也就是说客户端可能由于一直在等待服务器的FIN而处在FIN_WAIT_2状态,使得另一端也一直处于CLOSE_WAIT状态。TCP对这个有超时的限制,具体不废话了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值