TCP的连接需用三个分组才可以建立,而终止一个连接则需要四个分组!为什么呢?
①某个应用进程首先调用close,称为主动关闭(Active Close)。这一端的TCP于是发送一个FIN分组,表示数据发送完毕。
②接收到FIN的另一端执行被动关闭(Passive Close)。这个FIN由TCP确认,并作为文件结束符传送给接收方应用进程,因为FIN意味着应用进程在此连接上再也接收不到额外的任何数据。
③一段时间后,接收到文件结束符的应用进程调用close,关闭其套接口。这导致它的TCP也发送一个FIN。
④接收到这个FIN的原发送方TCP对它进行确认。因此,每个方向都需要一个FIN和ACK,所以终止TCP连接需要四个分组 |