
过程
当主机A需要关闭连接,传递完剩余数据以后,发送一个数据包并将FIN标志位置1,假设此时序列号为x;
机器B收到机器A的数据包以后,向机器A发送数据包,将ACK置1,表示已经收到A的断开连接请求,并将确认号置为x+1,假设序列号为u。
当机器B发送完剩余数据以后,机器B向机器A发送一个数据包,将FIN置1,确认号为x+1,序列号为w。
当机器A收到这个数据包以后,向机器B发送一个数据包,将ACK置1,将确认号置为w+1,序列号为x+1。
FIN报文采用自动重发机制,发送若干次如果都没有收到回应,将发送一个将RST标志位置1的数据包给对方,然后强制关闭。
发送FIN的一方需要在收到ACK以后再等待2MSL再关闭连接,防止发送的ACK丢包。
网友评论