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