TCP的11种状态(还有一种CLOSING状态是两边同时发起close过程中才会有状态)
nup的36页
连接建立的三次握手、终止四次握手。
socket创建套接口,默认是主动套接口。服务器端是被动套接口;服务器端收到客户端的SYN_SENT之后,仍处于阻塞状态。
TIME_WAIT要保留2MSL时间--TCP报文段的最长生存时间的2倍(close发起的一方才会产生的状态,ack可能会丢失)
TCP两端同时打开的状态:
具体流程我们不在逐条消息进行介绍。注意上图中,TCP连接同时打开的时候与三次握手的主要区别如下
- 我们同时称呼A和B为Client,他们都执行主动打开的操作(Active Opener)。
- 同时两端的状态变化都是由CLOSED->SYN_SENT->SYN_RCVD->ESTABLISHED。
- 建立连接的时候需要四个数据包的交换,并且每个数据包中都携带有SYN标识,直到收到SYN的ACK为止
TCP两端同时关闭的状态 :CLOSING状态,不会进入到FIN_WAIT2状态
同时关闭相对于我们讲过的四次握手过程基本类似,注意两者状态转换的区别,同时关闭是由ESTABLISHED->FIN_WAIT_1->CLOSING->TIME_WAIT->CLOSED。同时关闭的流程如下:
主动close的端才会有TIME_WAIT状态