计算机网络(5.16)运输层- TCP的连接释放(四次握手)
TCP 连接释放过程比较复杂。
数据传输结束后,通信的双方都可释放连接。 TCP连接释放过程是四报文握手。
TCP 的连接释放:采用四报文握手
数据传输结束后,通信的双方都可释放连接。
现在A的应用进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。
A把连接释放报文段首部的FIN = 1,其序号 seq = u,等待B的确认。
B发出确认,确认号 ack = u + 1, 而这个报文段自己的序号 seq = v。
TCP服务器进程通知高层应用进程。
从A到B这个方向的连接就释放了,TCP连接处于半关闭状态。B若发送数据,A仍要接收。
若B已经没有要向A发送的数据, 其应用进程就通知TCP释放连接。
A 收到连接释放报文段后,必须发出确认。
在确认报文段中ACK=1,确认号ack=w+1, 自己的序号seq=u+1。
TCP连接必须经过时间2MSL后才真正释放掉。
A 必须等待2MSL 的时间
第一,为了保证A发送的最后一个ACK报文段能够到达B。
第二,防止“已失效的连接请求报文段”出现在本连接中。A在发送完最后一个ACK报文段后,再经过时间2MSL(最长报文段寿命Maximum Segment Lifetime),就可以使本连接持续的时间内所产生的所有报文段,都从网络中消失。这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。