题43图为TCP协议断开连接过程的示意图,请说明T1至T5时刻,发送方或接收方应完成的工作。
答:TCP断开连接的过程如下:
(1)发送完最后一个数据段后,A在T1时刻发送一个FIN段,请求断开A到B的连接,其状态由ESTABLISHED进入FIN_WAIT_1,在这一状态下,只能接收B发送过来的数据,而不再发送数据。
(2)B收到A的FIN段后,在T2时刻向A发送一个ACK段,ACK段可以封装应用层数据(如果有)。B状态由ESTABLISHED进入CLOSE_WAIT,在这一状态下,B仍然可以发送数据,但不再接收数据。当A收到ACK后,其状态由FIN_WAIT_1进入FIN_WAIT_2,仍然可以接收来自B的数据。此时的TCP连接已经关闭了A向B方向的数据传输,也称为半关闭。
(3)T3时刻,当B向A发送完最后一个数据段后,B向A发送FIN段,同样,该FIN段也不携带应用层数据。B状态由CLOSE_WA1T进入LAST_ACK,此时B也不再发送数据。
(4)当A收到B发送的FIN段后,A在T4时刻向B发送ACK段,其状态由FIN_WAIT_2进入TIME_WAIT,等待2MSL时间,然后进入CLOSED状态,最终释放连接。
(5)T5时刻,B在收到最后一次ACK段后,状态由LAST_ACK进入CLOSED,最终释放连接。P117-118