TCP连接状态分析

                                 TCP连接状态

 
 

TCP连接

Client主动发送SYN,请求连接,然后进入SYN_SENT状态,等待回复。

Server收到SYN后,回复ACK+SYN,然后进入SYN_RCVD状态。

Client收到ACK+SYN后,再回复个ACK,然后进入ESTABLISHED状态。

最后Server收到ACK后,也进入ESTABLISHED状态。至此,完成建立连接。

TCP连接状态 - qurui - qr__compaq 的博客

TCP断开

Client收到应用层的关闭信号后,发送FIN包给Server,然后client进入FIN_WAIT-1状态(等待Server的回应)。

Server收到FIN后,通知应用层关闭连接,并回复给Client一个ACK,然后Server进入CLOSE_WAIT状态(等待应用层关闭连接)。

Client收到ACK后,进入FIN_WAIT-2状态(什么也不做,等待Server的FIN)。

Server等待应用层关闭连接后,发送FIN,然后进入LAST_ACK状态(等待Client的ACK)。

Client收到FIN后,发送ACK,然后进入TIME_WAIT状态,等待2个MSL时间后关闭连接。

Server收到ACK后关闭连接。

MSL是什么?

maximum segment life time,TCP报文最大生存时间,RFC 793中规定MSL为2分钟。那2个MSL就是4分钟,TIME_WAIT状态要持续4分钟,然后关闭连接。


为什么要有TIME_WAIT状态?

如果Client回复的ACK丢失,Server将重发FIN,这是就需要Client能够响应并重发ACK,否则Client会发送RST,结果server认为发生错误。TCP作为可靠的协议,就必须确保两端都已关闭连接,所以Client必须进入TIME_WAIT状态并且等待时间要足够长。
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值