TCP/IP(九)TCP的连接管理(六)TIME_WAIT状态探究

一  TIME_WAIT探究

要明确'TIME_WAIT'状态在'tcp四次挥手'的阶段 

①  为什么 TIME_WAIT 等待的时间是 2MSL?

背景: 客户端在收到服务端'第三次FIN挥手'后,就会进入TIME_WAIT 状态,开启时长为2MSL的定时器1、MSL 是 Maximum Segment Lifetime '报文最大生存时间'2、2MSL 的'时间'是从客户端接收到 '第三次握手的'FIN 后发送 ACK '开始计时'的3、Linux 系统'停留'在 TIME_WAIT 的时间为'固定'的 '60' 秒4、客户端在收到服务端'重传的 FIN' 报文时,TIME_WAIT 状态的'等待时间'会'重置'回 2MSL

②  为什么需要 TIME_WAIT 状态? 

说明: 关于这个'知识点'了解即可TIME-WAIT 作用是'等待足够的时间'以确保'最后的ACK'能让'被动关闭方'接收,从而帮助其正常关闭

③  TIME_WAIT 过多有什么危害?

客户端和服务端 TIME_WAIT 过多,造成的影响是'不同'的服务端: 占用'系统'资源,比如文件描述符、内存资源、CPU 资源、线程资源等;客户端: 占用'端口'资源,端口资源也是有限的 --> '常见,服务器只安装某个服务'重点: ' TIME_WAIT 状态'的TCP连接不会'释放'占用的资源

nginx 服务产生大量的TIME_WAIT

④  如何优化 TIME_WAIT?

说明: 非必要不要'调整'这些参数

方式'1': 'net.ipv4.tcp_tw_reuse' 和 'tcp_timestamps'net.ipv4.tcp_tw_reuse = 1表示开启重用,允许将TIME-WAIT socket 重新用于新的TCP连接默认为0,表示'关闭'

方式'2': net.ipv4.tcp_max_tw_buckets  --> 'TIME_WAIT' 上限值 

方式'3':程序中使用 SO_LINGER  --> '了解即可'

⑤  服务器出现大量 TIME_WAIT 状态原因有哪些?

第'1'个场景: HTTP '没有'使用'长'连接说明: 现代'浏览器'和'web服务器'基本都遵从'HTTP/1.1'协议,所以这个'场景'了解即可

HTTP '短连接': 每次HTTP'请求响应'结束,都会'销毁、重建'TCP连接

第'2'个场景: HTTP '长连接超时'

说明: 如何'避免TCP 连接'资源浪费的情况,避免长时间'wait 空等待'

图谱: nginx 的 'keepalive_timeout  60s' 工作机制 --> '一次HTTP请求和响应'

第'3'个场景: HTTP 长连接的'请求数量'达到'上限'备注: 压测时最'明显'keepalive_requests  跟 'QPS' 有关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/159825.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】

文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…

跨境商城源码有哪些独特的功能和优势

1. 强大的跨境支付功能 跨境商城源码具备强大的跨境支付功能,支持多种支付方式,包括信用卡、支付宝、微信支付等。该功能遵循国际支付标准,能够确保支付过程的安全性和可靠性,为用户提供便捷的跨境购物体验。 2. 多语言和多货币支…

[GAMES101]透视投影变换矩阵中为什么需要改变z值

一、问题提出 在GAMES101-Lecture4 Transformation Matrices 一节中,闫老师介绍了正交投影和透视投影。 在讲透视投影变换矩阵 M p e r s p → o r t h o M_{persp→ortho} Mpersp→ortho​时,同学们对矩阵中的z分量是变化的还是不变的有很多争论。即下…

MySQL多表查询综合练习

1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TABLE sc…

Postgresql关于EOH的使用注意

注意通常拿到的指针不是EOH头 EOH是一种扩展数据结构,之前有几篇博客讨论过了,最近在改相关代码加深了一些理解。 EOH目前支持ER_methods、EA_methods两套实现,分别是record类型展开和数组类型展开。 在内存中的样子大概是(EA为…

Java基础20问(1-5)

1.Java面向对象和面试过程的区别? 面向过程是将一个问题拆解成几个步骤,依次实现每一个步骤,比如实现一个冒泡排序的算法,是为了解决某个非常具体的问题。 而面向对象也是将一个问题拆解成几个步骤,但是先不去实现&a…

scratch身高统计 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch身高统计 一、题目要求 1、准备工作 2、功能实现 二、案例分析

二维码智慧门牌管理系统:构建未来社区管理新典范

文章目录 前言一、系统概述二、系统优势三、多领域应用四、未来展望 前言 在科技的迅猛发展下,我们的生活正朝着智能化迈进。最近,备受瞩目的“二维码智慧门牌管理系统”为社区管理带来了一场革命,通过建立标准要素之间的关系,重…

207、SpringBoot 整合 RabbitMQ 实现消息的发送 与 接收(监听器)

目录 ★ 发送消息★ 创建队列的两种方式代码演示需求1:发送消息1、ContentUtil 先定义常量2、RabbitMQConfig 创建队列的两种方式之一:配置式:问题: 3、MessageService 编写逻辑PublishController 控制器application.properties 配…

同为科技(TOWE)关于风力发电雷电防护的解决方案

风能作为一种可再生清洁能源,是国家新能源发展战略的重要组成部分。我国风能开发潜力高达2.510GW以上,近年来风力发电机组逐年增加,截止到2022年,全国风电装机容量约3.5亿千瓦,同比增长16.6%。然而,由于风力…

FPGA project : flash_continue_write

本实验学习了通过spi通信协议,驱动flash;完成连续写操作。 连续写: 本质上还是页编程指令,两种连续写的方式: 1,每次只写1byte的数据。 2,每次写满1页数据,计算剩余数据够不够写…

RabbitMQ的5种模式——再探RabbitMQ的模式,简单、工作,发布订阅(广播),路由、主题 页面分析

前言 RabbitMQ作为一款常用的消息中间件,在微服务项目中得到大量应用,其本身是微服务中的重点和难点,有不少概念我自己的也是一知半解,本系列博客尝试结合实际应用场景阐述RabbitMQ的应用,分析其为什么使用&#xff0…

手机市场或迎复苏,芯片测试与封测供应链积极应对 | 百能云芯

低迷不振的手机供应链,终于迎来曙光?半导体封测供应链传出从10月开始,手机系统大厂终于开始有明显的库存回补动作,锁定如联发科等一线手机SoC从业者的「旧款芯片」备货。 测试厂如京元电、测试界面的雍智等接获备战指示&#xff0…

深圳寄包裹到德国

深圳,作为全球最发达的城市之一,以其高效的物流服务在全球范围内享有盛名。如果你正在寻找一种方式将包裹从深圳寄送到德国,那么本文将为你提供详细的步骤和建议。 第一步:了解国际邮寄的基本信息 首先,你需要了解包裹…

C++基本语法【恩培学习笔记(一)】

文章目录 1、C程序结构1.1 C程序的基本组成部分1.2 预处理指令1.3 注释1.4 main() 主函数1.5 命名空间 namespace 2、 C的变量和常量2.1 变量2.2 变量的声明2.3 变量的类型 3、C 数组和容器3.1 数组(array)3.2 容器(vector) 4、C …

多模态大模型升级:LLaVA→LLaVA-1.5,MiniGPT4→MiniGPT5

Overview LLaVA-1.5总览摘要1.引言2.背景3.LLaVA的改进4.讨论附录 LLaVA-1.5 总览 题目: Improved Baselines with Visual Instruction Tuning 机构:威斯康星大学麦迪逊分校,微软 论文: https://arxiv.org/pdf/2310.03744.pdf 代码: https://llava-vl.…

10.2手动推导linux中file, cdev, inode之间的关系

是时候可以手动推导一下linux里面基类父类和子类的关系了 代码放最后把 简单说明版 详细流程 第一步注册驱动 cdev结构体能看做是一个基类,那么链表里面都是字符设备驱动的cdev连载一起,啥串口,lcd的,通过cdev->list_head连接 那cdev结构体里有主次设备号 第一步 使用r…

探索未来:硬件架构之路

文章目录 🌟 硬件架构🍊 基本概念🍊 设计原则🍊 应用场景🍊 结论 📕我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作…

矿区井下智慧用电安全监测解决方案

一、背景 矿区井下作业具有复杂的环境和较高的危险性,对于用电安全的要求尤为严格。传统的管理模式和监测方法往往无法实时、准确地掌握井下用电情况,对安全隐患的排查与预防存在一定局限性。因此,引入智慧用电安全监测解决方案&#xff…

【LeetCode刷题(数组and排序)】:存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2: 输入:nums [1,2…