若要关闭连接,应设置数据段报头中的 FIN(结束) 控制标志。为终止每个单向 TCP 会话,需采用包含 FIN 数据段和 ACK 数据段的二次握手。因此,若要终止 TCP 支持的整个会话过程,需要实施四次交换,以终止两个双向会话。注意:在本部分中,为了更容易理解,采用了客户端和服务器端进行说明。实际上,终止的过程可以在任意两台完成会话的主机之间展开。

 
1. 当客户端的数据流中没有其它要发送的数据时,它将发送带 FIN 标志设置的数据段;
 
2. 服务器发送 ACK 信息,确认收到从客户端发出的请求终止会话的 FIN 信息;
 
3. 服务器向客户端发送 FIN 信息,终止从服务器到客户端的会话;
 
4. 客户端发送 ACK 响应信息,确认收到从服务器发出的 FIN 信息。
当会话中的客户端没有其它要传输的数据时,它将在数据段报头中设置 FIN 标志。然后,会话中的服务器端将发送包含 ACK 标志设置的一般数据段信息,通过确认号确认已经收到所有数据。当所有数据段得到确认后,会话关闭。
 
另一方向的会话采用相同的方式关闭。接收方在数据段的报头中设置 FIN 标志,然后发送到发送方,表明没有其它需要发送的数据。返回的确认信息确定已接收所有数据,随即该方向的会话关闭。
 
也可以通过三次握手方式关闭连接。当客户端没有其它要传输的数据时,它将向服务器发送 FIN 信息。如果服务器也没有其它要传输的数据,它将发送同时包含 FIN 和 ACK 标志设置的响应信息,将两步并作一步。最后,客户端返回 ACK 信息。