【计算机网络】TCP的连接释放
TCP的连接释放俗称TCP的四次挥手,即客户端与服务器端之间传输4次报文段。 其具体的释放过程如图: 在释放之前,双方都处于连接(ESTABLISHED)状态。若客户端A进程已经没有数据向服务器B进程发送了,并且乡释放连接,则便向B发送连接释放报文段,其中FIN=1,序号seq=u(之前发送数据的最后一个字节的序号为u-1),这个报文表示:我已经没有数据要发送了,我要结束TCP连接了,所以告诉你一声。发送后便进入FIN-WAIT-1状态。 当B收到 A的连接释放请求报文段后立即发送确认报文段,此报文段中ACK=1,并将确认号ack=u+1,自己的序号seq=v(最后一个数据的序号+1)。此报文段表示我知道你没有数据要发送了,但我还不确定我有没有数据要发送给你。此时B进入CLOSE-WAIT(关闭等待)状态。此时TCP处于半关闭状态,即A没有数据向B发送了,B有可能向A发送数据。 当A收到B发送的确认报文段后,进入FIN-WAIT-2状态。此状态期间可以继续接受B发送来的数据。 当B也没有发送的数据后,应用程序便通知B释放TCP连接,此时B向A发送确认连接释放报文段,并FIN=1,ACK=1,确认号ack=u+1,序号seq=w。之后B便进入LAST-ACK状态。 当A收到B的确认连接释放报文段后,立即发送一个确认报文段,此时ACK=1,seq=u+1,ack+w+1。进入TIME