Tcp连接状态说明


CLOSED:无连接是活动的或正在进行
 LISTEN:服务器在等待进入呼叫
 SYN_RECV:一个连接请求已经到达,等待确认
 SYN_SENT:应用已经开始,打开一个连接
 ESTABLISHED:正常数据传输状态
 FIN_WAIT1:应用说它已经完成
 FIN_WAIT2:另一边已同意释放
 ITMED_WAIT:等待所有分组死掉
 CLOSING:两边同时尝试关闭
 TIME_WAIT:另一边已初始化一个释放
 LAST_ACK:等待所有分组死掉

TIME_WAIT:

1.防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)
2.可靠的关闭TCP连接。在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。另外这么设计TIME_WAIT 会定时的回收资源,并不会占用很大资源的,除非短时间内接受大量请求或者受到攻击。

你可能感兴趣的:(Tcp连接状态说明)