TCP的连接释放——四报文握手(四次挥手)

首先也先了解几个概念:
终止位FIN(FINis, 意为“完”,“终”)
用来释放一个连接。当FIN=1时,表明此报文段的发送方的数据已经发送完毕,并要求释放传输连接。

时间MSL(Maximum Segment LifeTime)
最长报文段寿命,RFC793建议为2分钟。但对于现在的网络MSL=2分钟可能太大,因此TCP允许不同的实现可根据具体情况使用更小的MSL值。

释放过程:

A和B都处于ESTABLISHED状态,通信的双方都可以释放连接。

  1. A进程先向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。FIN=1,其序号seq=u(前面已传数据最后一字节序号+1),A进入FIN-WAIT-1(终止等待1)状态,等待B的确认。
  2. B收到连接释放报文段后发出确认,确认好ack=u+1,而这个报文段自己的序号seq=v(B前面已传数据最后一字节序号+1)。B进入COLSE-WAIT(关闭等待)状态。此时A到B方向的连接已经释放,而B到A这个方向的连接未关闭,因此TCP连接处于半关闭状态。而A收到B的确认后,进入FIN-WAIT-2(终止等待2)状态,等待B发出的连接释放报文段。(在半关闭状态B可能又发送了一些数据,若B已经没有要向A发送的数据,则进入下一步。
  3. B进程通知TCP释放连接。B发出连接释放报文段中,FIN=1,seq=w(半关闭状态可能又发送了一些数据,这些数据的最后一字节序号+1),重复上次的确认号ack=u+1。此时B进入LAST-ACK(最终确认)状态,等待A的确认。
  4. A在确认报文段中ACK=1,确认号ack=w+1,自己的序号seq=u+1,进入TIME-WAIT(时间等待)状态。2MSL后,即建议的4分钟后,A才进入到CLOSED状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值