首页 > 编程知识 正文

tcp连接的释放有几次握手过程,tcp连接的释放需要多少个rtt

时间:2023-05-04 21:01:57 阅读:251198 作者:3561

Tcp连接的释放

​ TCP连接的释放过程通常称为 四次握手。

​   第一步:客户机打算关闭连接,向其TCP发送连接释放报文段,并停止发送数据,主动关闭TCP连接,该报文段的终止位FIN=1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1,FIN报文段即使不携带数据,也消耗一个序号。(TCP是全双工的,即可以想象为一条TCP连接上有两条数据通路,发送FIN的高大的凉面不能再发送数据,即关闭了其中一条数据通路,但对方还可以发送数据)。

​   第二步:服务器收到连接释放报文段后即发送确认,确认号ack=u+1,序号seq=v,等于他前面已传送过的数据的最后一个字节的序号加上1。此时,从客户机到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。但服务器若发送数据,客户机仍要接收,即从服务器到客户机这个方向的连接并未关闭。

​   第三步:若服务器已没有要向客户机发送的数据,就通知TCP释放连接,此时其发送FIN=1的连接释放报文段。设该报文段的序号为w(在半关闭状态下服务器可能有发送了一些数据),还须重复上次已发送的确认号ack=u+1。

​   第四步:客户机收到连接释放报文段后,必须发出确认。把确认报文段中的确认位ACK置为1,确认号ack=w+1,序号seq=u+1。此时TCP连接还未释放,必须经过时间等待计时器设置的时间2MSL(最后时间段寿命)后,客户机才进入CLOSED状态。

​   释放连接总结:

​ ① FIN=1,seq=u

​ ② ACK=1,seq=v,ack=u+1

​ ③ FIN=1,ACK=1,seq=w,ack=u+1

​ ④ ACK=1,seq=u+1,ack=w+1

Docker发布镜像到DockerHub

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。