1 TCP连接


主动关闭(active close)的一方
被动关闭(passive close)的一方

2 出现的场景

close_wati 主要发生在 **被动关闭方 **,当主动关闭方因为突然中断,或者请求失败时,会发送fin包(要分手)给被动关闭方,但是被动关闭方因为代码质量原因,无法彻底关闭所需资源,即无法回送fin包给主动关闭方,因此为一直处于close_wait状态。

注:
场景1.当服务器端连接mysql时(或者读写文件流时),突然mysql中断,这时,mysql会在中断后,发送fin包给服务器端,如果服务器端没有关流操作,那就会出现close_wait
场景2.当客户端(比如浏览器)请求服务器时,如果浏览器突然挂掉了,进程死了,那么它就会给服务器端发送fin包,后续和上面一样
场景3.当客户端(比如浏览器)请求服务器时,如果服务器端迟迟不响应给客户端,那么客户端也会给服务器端发送fin包,后续和上面一样

3 出现的原因

被动关闭方没有在代码中对请求进行异常处理。

4 解决办法

4.1 治标

修改Linux系统参数

4.2 治本

排查代码,被动关闭的一方没有对主动关闭方发出的fin包,进行彻底关闭资源,检查代码是否对打开的数据流未进行正常和异常情况下的关闭。

关于close_wait的理解相关推荐

  1. 【Unix 网络编程】TCP状态转换图详解

    TCP协议的三路握手和四次挥手.如下图所示,TCP通信过程包括三个步骤:建立TCP连接通道(三次握手).数据传输.断开TCP连接通道(四次挥手). 这里进一步探究TCP三路握手和四次挥手过程中的状态变 ...

  2. TCP通信过程大讨论

    转载地址:http://www.cricode.com/3568.html 本文通过两个图来梳理TCP-IP协议相关知识.TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道. ...

  3. 老夫整理的Java面经+题目(阿里、腾讯、头条、京东、IBM等等)佛渡有缘人

    # 简介 经过招聘季每个人都会有相当多的面试经历,对我来说把这些写出来一方面是为了学习,另外一方面也希望能够为之后求职的同学提供一定的借鉴意义 我的笔试经历会把主要记得的题目列出来 我的面试经历详细介 ...

  4. Linux网络与进程管理

    本文主要介绍了网络与进程的相关内容以及在Linux上如何进行网络与进程管理,包括以太网介绍,TCP/IP,网络分层模型,IP地址的规划:同时介绍了Linux内核在进程管理方面的相关机制 文章目录 一. ...

  5. 《TCP三次捂手、四次挥手和状态转换详解》

    前言: 本文将讲解TCP三次捂手建立连接,到四次挥手断开连接的过程,并且配合TCP状态转换图解释.解释SYN .seq .ack.FIN的含义和关系.建议读者先理解三捂和四挥后在结合状态转换图看,网络 ...

  6. 关于close_wait状态的理解

    关于close_wait状态的理解 以web服务器产生大量的close_wait状态为例 1.close_wait状态介绍: 客户端主动关闭连接,服务器接收到客户端的FIN,但是还没有发送自己的FIN ...

  7. 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT

    https://my.oschina.net/fdhay/blog/638631 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 2016-02-18 大房 大房说 本文是我将最 ...

  8. python close_wait_线上大量CLOSE_WAIT原因深入分析

    这一次重启真的无法解决问题了:一次 MySQL 主动关闭,导致服务出现大量 CLOSE_WAIT 的全流程排查过程. 近日遇到一个线上服务 socket 资源被不断打满的情况.通过各种工具分析线上问题 ...

  9. 通俗大白话来理解TCP协议的三次握手和四次分手

    最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就把看过的一些比较好 ...

最新文章

  1. 干货 | 浅谈 Softmax 函数
  2. Structure-from-Motion Revisited
  3. shell脚本[] [[]] -n -z 的含义解析
  4. Java枚举enum以及应用:枚举实现单例模式
  5. Java实现单链表的反转
  6. 浅学习使用Ribbon 和 Feign的理解和使用
  7. mysql gman do_使用MySQL UDFs来调用gearman分布式任务分发系统
  8. 数字盲打怎么练_数字键盘区的功能及指法技巧
  9. sm2和sm4加密算法浅析
  10. @Cacheable(sync=true) only allows a single cache on
  11. linux tahoma字体,Linux字体安装与简单美化(实践篇)(转)
  12. Qt小例子学习52 - 卡片游戏
  13. 海思SD3403/SS928开发(三)红外DC接入
  14. CodeForces - 940E Cashback (DP+思维模型)
  15. Ty-Mysql函数笔记
  16. Maven配置 settings.xml 配置阿里云镜像
  17. 即将开学,为校园网络安全助力
  18. travisscott多高_175人民币买件T恤,TravisScott有多抠门?
  19. 5分钟让免费的 Linux KVM 虚机管理跟 VMWare 一样好用
  20. python获取IP地址方法

热门文章

  1. 数据库中varchar类型 最大长度是多少?
  2. 日本东京奥运会组委会称:存在伪造其工作人员的电子钓鱼邮件
  3. 压敏电阻的规格型号用途标号等总结
  4. Random Forests原理
  5. 2022年 软件工程专业 计算机组成原理 运算器实验报告
  6. 木桶理论在现实中有什么指导意义
  7. 原生Js调用Fetch Api请求接口(新的Ajax解决方案)
  8. 中国金融集成电路(IC)卡电子钱包存折卡片规范
  9. 小区IP网络广播背景系统解决方案-基于局域网、专网或广域网传输
  10. 北风网 从C++起步到MFC实战VC++软件工程师高端培训(服务器...