5--TCP的状态

来源:互联网 发布:淘宝2017今日成交量 编辑:程序博客网 时间:2024/06/09 17:43

         TCP的状态用来描述主机处于何种逻辑次序当中。



三次握手时:

1.  刚开始时,客户端和服务器端没用建立连接,双方的状态都是closed。同时服务器端开着监听。

2.  客户端发起连接请求,SYN_SEND。这是客户端的第一个报文,该报文sequence number(序列号),没有acknowledge number(确认号),而且TCP首部的标志位中SYN = 1,ACK = 0。

3.  服务器端接收到客户端的连接请求,此时服务器端的状态为SYN_RECV,然后服务器端发送ack,这是三次握手的第二个报文,该报文有服务器端发出,该报文的标志位中SYN = 1,ACK = 1。发送第二个报文的同时,从服务器端到客户端的通信链路建立起来(ESTABLISHED)。

4.  客户端接收到服务器传来的第二个报文,此时客户端的状态为RCV SYN, ACK,然后发送第三个报文,该报文的SYN = 0,ACK = 1。同时从客户端到服务器端的通信链路建立起来。

 

 

 

断开连接时:

1.      在断开连接之前,客户端和服务器端的状态都是established。

2.      客户端发送FIN报文,开始断开连接,同时客户端进入FIN_WAIT1状态。

3.      服务器端接收到FIN后,进入CLOSE_WAIT状态,同时发送ACK,确认断开请求(REV FIN, SEND ACK)。

4.      客户端接收到ACK之后,状态由FIN_WAIT1进入FIN_WAIT2。

5.      服务器端发送完ACK之后,接着发送FIN,这样就关闭了服务器端到客户端的通信链路,同时服务器端进入LAST_ACK状态。

6.      客户端接收到来自服务器端的FIN后,发送ACK,同时客户端进入TIME WAIT状态(REV FIN, SEND ACK),并且关闭了客户端到服务器端的通信链路。

7.      服务器端接收到客户端的ACK之后,整个通信链路关闭。


0 0