TCP四次挥手过程

TCP通过三次握手建立连接,通过四次挥手来释放连接,对于三次握手的过程之前学习的时候就记录过http://www.jianshu.com/p/afa438cb7d73

接下来学习一下释放连接的过程
我们假设现在有客户A和服务器B已经建立了TCP连接,现在需要客户A需要释放掉这个连接。怎么办?

TCP四次挥手过程_第1张图片
四次挥手
第一次挥手

首先客户A的进程会向其TCP连接发出连接释放的报文段并停止发送数据,主动关闭TCP连接。A的释放连接请求的报文中FIN1,序号=u,等于前面传送的数据的最后一个字节序号加1,连接释放报文是没有长度的,但是会占用一个序号。

第二次挥手

B收到连接释放报文段后立即发出确认,确认号ack=u+1,然后B进入了CLOSE_WAIT(关闭等待)状态。这个时候A--> B方向的连接就已经断开了,这个时候的TCP连接处于半关闭状态,A是没有数据要发送给B了,但是B如果放松数据给AA仍然要接收。

第三次挥手

A收到B的确认后,就进入FIN_WAIT_2(终止等待2)状态,等待B发出连接释放请求。
如果B也没有数据要向A发送,这是B发出连接释放报文,是FIN=1,这是B进入LAST_ACK(最后确认状态),等待A确认。

第四次挥手

A收到B的连接释放请求报文后,必须对此发送确认,将确认报文的ACK1,并进入TIME_WAIT状态(时间等待)状态。这时的TCP连接还没有释放掉,必须经过时间等待计数器设置时间2MSL后,A才进入CLOSED状态,这是一个完整的TCP连接才算释放掉。
关于TCP的四次挥手

你可能感兴趣的:(TCP四次挥手过程)