客户A和服务器B都处于建立连接的状态,此时客户A主动与服务器B发出断开连接的请求: 第一步:客户A会发送一个序号为Seq=u的报文给服务器B,此时控制位中的断开位FIN=1,即请求与服务器B断开连接。(PS:此时客户A处于等待断开连接的状态,服务器B的数据传送未结束)
第二步:服务器B需要先将数据传输全部传输结束才能同意断开连接,服务器B会进行下面两步操作:
2.2 服务器B会回复一个报文序号为v的报文给客户A(Seq=1)
需要客户A能回复一个报文序号为u+1的报文给服务器B(确认号ack-u+1)
此时服务器B与客户A仍处于建立连接的状态所以控制位的确认位ACK=1
2.3 服务器B同意了客户A的断开连接请求:服务器B会回复一个同意断开连接的报文:
服务器B发出的报文的序号为w(Seq=w)
需要客户A回复一个报文序号为u+1的报文给服务器B(Ack=u+1)
此时的控制位中,断开位FIN=1,确认位ACK=1(2个控制位表示同意断开连接)
第三步:客户A接收完服务器传输的数据后,收到了服务器B的同意断开连接请求,这个时候客户A会发送一个确认报文给服务器B:
按照服务器B要求,客户A回复了一个报文序号为u+1的报文给服务器B(Seq=u+1)
控制位中确认位为1(ACK=1)
需要服务器B回复客户A一个报文序号为w+1的报文给客户A(此时客户A与服务器相当于完全断开连接,所以客户A最后发送的报文将会被服务器B拒收,服务器B将不再回复客户A)
Original: https://www.cnblogs.com/fengxia6/p/16661795.html
Author: 风夏呀
Title: TCP传输层协议 特性
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/577792/
转载文章受原作者版权保护。转载请注明原作者出处!