Chinaunix首页 | 论坛 | 博客
  • 博客访问: 505242
  • 博文数量: 257
  • 博客积分: 1666
  • 博客等级: 上尉
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-02 23:02
文章分类

全部博文(257)

文章存档

2013年(2)

2012年(255)

分类:

2012-07-16 12:39:42

1.建立连接部分。
2.等待数据传输部分
3.关闭连接部分:
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对这个有超时的限制,具体不废话了。
阅读(629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~