过程
HostA发送一条请求消息,携带序列号seq=100。
HostB收到消息回复确认消息携带序列号 seq=300,确认信息ack等于101(101是HostA发送的seq+1)
第1次握手:发送FIN请求断开连接
HostA收到HostB的消息后,再给HostB发送一条消息,消息中携带信息ceq=101,ack=301,确认信息ctl=FIN,ACK(FIN表示终止,ack表示HoseA请HostB确认)。
第2次握手:发送ACK
HostB收到HostA请求断开的消息后,给HostA回复一条消息告诉HostA,他已经收到HostA请求断开的消息,回复消息中携带seq=301,ack=102 ctl=ACK.
第3次握手:发送FIN请求断开连接
接着,等HostB数据发送完毕之后,HostB会再给HostA发送一条信息,告诉HostA它的数据也发送完毕,可以断开链接了,发送的消息中携带seq=302,ack=102(因为相当于还是回复HostA发送的seq=101的那条信息,所以ack还是102),确认信息ctl=FIN,ACK.
第4次握手:发送ACK
HostA收到HostB发送的断开连接的消息后,给HostB发送一条确认信息,seq=102,ack=303,ctl=ACK,之后他们断开连接。
图例