tcp的状态变迁图
状态转换图中状态的描述:
- CLOSED:无连接是活动的或正在进行
- LISTEN:服务器在等待进入呼叫
- SYN_RECV:一个连接请求已经接受,等待确认
- SYN_SENT:已发出请求SYN。
- ESTABLISHED:正常数据传输状态
- FIN_WAIT1:主动关闭,等待应答ACK
- FIN_WAIT2:已接受关闭应答ACK
- ITMED_WAIT:等待所有分组死掉
- CLOSING:两边同时尝试关闭
- TIME_WAIT:2MSL等待状态
- LAST_ACK:等待所有分组死掉
TIME_WAIT状态称为2MSL等待状态,当TCP执行主动关闭的时候并发出最后一个ACK,该连接必须在TIME_WAIT状态停留的时间为2倍的MSL。这样可以让TCP再次发送最后的ACK以防这个ACK丢失。(当最后一个ACK丢失后,另一端会重发FIN,所以这端会再次发送ACK)。