首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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

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对这个有超时的限制,具体不废话了。
继承事业,薪火相传
返回列表