TCP断开连接过程详解

上次我们讲了TCP三次握手建立连接的过程,今天我们结合双方状态的改变来讲讲TCP断开连接的过程:TCP四次挥手。



数据传输结束后,通信的双方都可释放连接。现在A和B都处于ESTABLISHED状态。A的应用程序先向TCP发出连接释放报文段,主动关闭TCP连接。A把连接释放报文段的首部FIN置为1,序号seq=u,它等于前面已传送过的数据的最后一个字节的序号加1。这时A进入FIN-WAIT-1状态,等待B的确认。

B收到连接释放报文段后即发出确认,确认号是ack=u+1,而这个报文段自己的序号是v,等于B前面已传送过的数据的最后一个字节的序号加1。然后B就进入CLOSE-WAIT状态。TCP服务器进程这时通知高层应用进程,因为从A到B这个方向的连接释放了,这时的TCP连接处于半关闭状态,即A已经没有数据要发送了,但B若发送数据,A仍要接受。也就是说,从B到A这个方向的连接并未关闭。这个状态可以会持续一些时间。

A收到B的确认后,就进入FIN-WAIT-2状态,等待B发出的连接释放报文段。

若B已经没有要向A发送的数据,其应用进程就通知TCP释放连接。这时B发出的连接释放报文段必须使用FIN=1。现假定B的序号为w(在半关闭状态B可能又发送了一些数据)。B还必须重复上次已发送过的确认号ack=u+1。这是B就进入LAST-ACK状态,等待A的确认。

在A收到B的连接释放报文段后,必须对此发出确认。在确认报文段中把ACK置为1,确认号ack=w+1,而自己的序号是seq=u+1(前面的FIN报文消耗了1个序号)。然后进入TIME-WAIT状态。请注意,现在TCP连接还没释放掉。必须再经过2MSL后,A才进入到CLOSED状态。MSL叫最长报文段寿命,一般为2分钟。

当B收到A发出的确认,就进入CLOSED状态。由此可见B结束TCP连接的时间要比A早一些。等到2MSL结束后A也进入CLOSED状态,至此完成了TCP四次挥手断开连接全过程。

本文来源:网络教学基地原文地址:http://www.studynb1.com/wljc/404.html

(0)

相关推荐

  • 百度影音下载安装过程详解

    相信不少人都在使用百度影音,百度影音是很多人在线看电影的第一选择.因此,百度影音播放器官方下载是你值得拥有的!今天,小编就为大家带来百度影音下载安装过程详解. 第一步:双击运行百度影音安装程序. 百度 ...

  • Linux操作系统的开机过程详解

    Linux操作系统的开机过程详解,由于操作系统正在变得越来越复杂,所以开机引导和关机下电的过程也越来越智能化.从简单的DOS系统转移到 Windows NT系统,人们已经亲身感受到了这些变化--这已不 ...

  • tcp四种定时器详解

    大家都知道,定时器在TCP可靠传输的过程中起着举足轻重的作用。TCP在建立连接之后可能(保活keep-alive定时器是可选的)会启动四个定时器。 TCP使用四种定时器(Timer,也称为“计时器”) ...

  • X1刷机APP2SD过程详解

    团购的X1使用了几天了,很大的缺憾就是屏幕太普通,这是硬伤,我们没办法去解决.但系统也存在一定的问题,比如预装的软件太多,导致用户可用内存只有28MB,安装几个常用的程序,如QQ,UC,酷我,任务杀手 ...

  • win7系统netbios连接步骤详解

    第一、查看COMPUTER BROWSER 服务开启 第二、检查TCP/IP NETBIOS HELPER服务开启 第三、检查SERVER服务开启 第四、检查workstation 手动验证连接,打开 ...

  • Linux系统下配置squid代理服务器的过程详解

    简单记录一下Squid透明代理服务器的配置 环境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686 0.检查squid是否默认安装,没有安装的先安装 代 ...

  • linux根文件系统的挂载过程详解

    st1\:*{behavior:url(#ieooui) } 一:前言 前段时间在编译kernel的时候发现rootfs挂载不上.相同的root选项设置旧版的image却可以.为了彻底解决这个问题.研 ...

  • CentOS系统下软件包的制作方法和过程详解

    总的情况下Linux下软件安装主要有三种方式: 一种是源码安装,需要用户自己手动编译 另一种是RPM包(RedHat Linux Packet Manager),通过RPM命令就可以实现安装 还有一种 ...

  • DIY制作自己的CentOS ISO过程详解

    Centos6.3官方的DVD包过于庞大,里面集成了大量软件,但其中有许多软件在生产环境中根本用不上,冗余安装只会造成资源的浪费,本文档主要介绍了一个系统定制的基本方法,并特别指出在系统定制中会出现的 ...