FIN_WAIT_1主动关闭连接的一方等待对方返回ACK包。若Socket在ESTABLISHED状态下主动关闭连接并向对方发送FIN包(表示己方不再有数据需要发送),则进入FIN_WAIT_1状态,等待对方返回ACK包,此后还能读取数据,但不能发送数据。在正常情况下,无论对方处于何种状态,都应该马上返回ACK包,所以FIN_WAIT_1状态一般很难见到。

FIN_WAIT_2主动关闭连接的一方收到对方返回的ACK包后,等待对方发送FIN包。处于FIN_WAIT_1状态下的Socket收到了对方返回的ACK包后,便进入FIN_WAIT_2状态。由于FIN_WAIT_2状态下的Socket需要等待对方发送的FIN包,所有常常可以看到。若在FIN_WAIT_1状态下收到对方发送的同时带有FIN和ACK的包时,则直接进入TIME_WAIT状态,无须经过FIN_WAIT_2状态。

TIME_WAIT主动关闭连接的一方收到对方发送的FIN包后返回ACK包(表示对方也不再有数据需要发送,此后不能再读取或发送数据),然后等待足够长的时间(2MSL)以确保对方接收到ACK包(考虑到丢失ACK包的可能和迷路重复数据包的影响),最后回到CLOSED状态,释放网络资源。

CLOSE_WAIT表示被动关闭连接的一方在等待关闭连接。当收到对方发送的FIN包后(表示对方不再有数据需要发送),相应的返回ACK包,然后进入CLOSE_WAIT状态。在该状态下,若己方还有数据未发送,则可以继续向对方进行发送,但不能再读取数据,直到数据发送完毕。

LAST_ACK被动关闭连接的一方在CLOSE_WAIT状态下完成数据的发送后便可向对方发送FIN包(表示己方不再有数据需要发送),然后等待对方返回ACK包。收到ACK包后便回到CLOSED状态,释放网络资源

tcp断开连接的几种状态相关推荐

  1. TCP协议连接的11种状态浅谈

    了解TCP的协议可以在很大程度上帮助我们分析服务器当前的TCP连接状态,同时也是排查一些网络故障的基础,首先来看一下TCP协议的三次握手与四次断开. TCP协议三次握手   1.客户端首先发起连接,也 ...

  2. TCP/IP详解 第十二章(9) TCP断开连接

    前言 不管面试 Java .C/C++.Python 等开发岗位, TCP 的知识点可以说是的必问的了. 任 TCP 虐我千百遍,我仍待 TCP 如初恋. 遥想小林当年校招时常因 TCP 面试题被刷, ...

  3. 修复AirPods不断与iPhone断开连接的10种方法

    在你的AIrPods与iPhone配合使用时,AIrPods是否经常会间歇性断开连接?其实很多人会碰到这种情况,原因很多,可能是由于故障和设置冲突带来的,以下方法可以解决大多数情况下AIrPods和i ...

  4. tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?

    用wireshark 抓包,看看tcp 断开连接的过程.  以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问. [求助]书上和网上的资料 ...

  5. 【性能优化】网络编程 - PHP - 使用TCP长连接的一种优化思路 - 学习/实践

    1.应用场景 主要了解学习如何基于PHP使用TCP长连接的一种优化思路. 2.学习/参考 文档阅读 PHP - CGI, Fast-FGI, PHP-FPM - 学习/实践 php使用tcp长连接的一 ...

  6. TCP连接的几种状态及转换

    一.TCP状态机是TCP连接的变化过程. Tcp在三次握手和四次挥手的过程,就是一个tcp的状态说明,由于tcp是一个面向连接的,可靠的传输,每一次的传输都会经历连接,传输,关闭的过程,无论是哪个方向 ...

  7. 理解tcp关闭连接中的time_wait状态

    首先看一下tcp关闭连接时的四次握手过程: 1.Client向Server发送FIN包,表示Client主动要关闭连接,然后进入FIN_WAIT_1状态,等待Server返回ACK包.此后Client ...

  8. 【漫画】TCP断开连接为什么是四次挥手,不是二次挥手/三次挥手?

    前情回顾:[漫画]TCP连接为什么是三次握手,而不是两次握手,也不是四次握手? 乔戈里和小萌一起去美食城吃了午饭 小萌:额...哦!这就是两次挥手,我这里就好比是服务端还有消息没发送完,乔哥你的客户端 ...

  9. TCP断开连接的四次握手

    过程 HostA发送一条请求消息,携带序列号seq=100. HostB收到消息回复确认消息携带序列号 seq=300,确认信息ack等于101(101是HostA发送的seq+1) 第1次握手:发送 ...

最新文章

  1. 【读书笔记】知易行难,多实践
  2. Glide源码(基于4.8版本)解析
  3. 基于蚁群算法的岸桥作业顺序研究
  4. PHP Warning: Xdebug MUST be loaded as a Zend extension
  5. 一场开发与视觉的对话引发的思考
  6. CentOS6.3中挂载NTFS移动硬盘的经历
  7. ST-LINK USB communication error解决方法
  8. 阿里扔给腾讯一个烫手山芋
  9. Android分辨率比例为1,修改android5.1系统分辨率
  10. 知识总结: Activity的四种启动模式
  11. 求输入的单词个数(单词间用空格隔开 不限空格个数) 首尾不能用空格
  12. java redis hash存取_我爱java系列---【redis中如何存取hash类型的值(key field value)】...
  13. mt6735通用recovery_MTK65XX通用线刷刷机工具驱动-MTK65xx刷机工具驱动及教程下载最新免费版-西西软件下载...
  14. 用户故事与敏捷方法 - 第二章 编写故事
  15. 三星c5怎么改系统语言,三星c5驱动|三星c5手机驱动下载 v1.5.55.0 官方版 - 比克尔下载...
  16. 【CC0素材网站大全】100个国外高品质免费可商用CC0的图片素材网站!包含大量摄影素材、创意素材、壁纸素材、图标网站等...
  17. 小学六年级数学教案:圆柱与圆锥
  18. 200多程序员报名杨超越编程大赛 直男及肥宅更喜欢杨超越??
  19. 7、TM4单片机学习之串口功能
  20. 低通采样定理 matlab,基于matlab的低通抽样定理仿真

热门文章

  1. Oracle分析函数FIRST_VALUE、LAST_VALUE
  2. 洛谷 P1318 积水面积
  3. mysql:视图,触发器,事务,存储过程,函数
  4. android 原色调渲染
  5. 历史命令history
  6. POJ 1741 Tree(树分治)
  7. tomcat常用的优化和配置
  8. c# list 求交使用注意点
  9. 概述Nod32的部署
  10. 这次是在没有外网yum仓库的情况下搭建内网yum仓库和无人值守pxe装机