六:TCP连接终止
TCP为应用层提供全双工服务,意味着在终止连接时,需要关闭连接两端。与建立连接是的三次握手协议,类似的,终止连接需要四次握手,这四次握手的流程是:
1客户端发送FIN终止连接报文
2服务器端发送ACK确认报
3服务器端发送FIN终止连接报文
4客户端发送ACK确认
对比连接建立的三次握手,注意到步聚2与步聚3没有合并成一个报文,原因是由于服务器端关闭连接是由应用层触发的。
上图就是终止连接时对应的四次握手协议,
序号1190为客户端发往服务器的FIN报文, 序号1191为服务器端的回应,序号1192为服务器端的FIN报文,序号1193为客户端的回应。
若服务器端未触发步聚3,客户端过一段时间后会发送一个RST报文,强制复位连接,此时服务器端不会回应ACK报文。如下图所示:
序号278732为客户端发送的连接复位报文