当前位置: 首页 > article >正文

TIME_WAIT 尽可能客户端先断开,服务的不要主动断开

、LISTENING状态   FTP服务启动后首先处于侦听(LISTENING)状态。

2、ESTABLISHED状态   ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3、CLOSE_WAIT

对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

4、TIME_WAIT 尽可能客户端先断开,服务的不要主动断开

我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。


http://www.kler.cn/a/1259.html

相关文章:

  • 哈利·波特是谁?大型语言模型中的近似取消学习
  • 【Rust自学】11.1. 编写和运行测试
  • Spring Boot中的依赖注入是如何工作
  • windows及linux 安装 Yarn 4.x 版本
  • 左值引用(Lvalue Reference)和右值引用(Rvalue Reference)详解
  • 软路由如何实现电脑手机一机一IP
  • 杨氏矩阵(详解)
  • I.MX6ULL_Linux_驱动篇(29) GPIO驱动
  • Spring和MaBatis整合(xml版与纯注解版)
  • 【C++】入门知识之 函数重载
  • 【UML】软件需求说明书
  • Shell自动化管理 for ORACLE DBA
  • 单片机能运行操作系统吗?
  • GPT-4,终于来了!
  • JVM高频面试题
  • 对象的动态创建和销毁以及对象的复制,赋值
  • 深入剖析Linux——进程信号
  • SpringCloud五大核心组件
  • Python每日一练(20230318)
  • 深入理解 Go slice 扩容机制
  • Redis基础篇
  • Spring 事务(编程式事务、声明式事务@Transactional、事务隔离级别、事务传播机制)
  • Spring事务和事务传播机制
  • 插件化架构设计(2):插件化从设计到实践该考量的问题汇总
  • 菱形继承和C++相关问题
  • React 用一个简单案例体验一遍 React-dom React-router React-redux 全家桶