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

news2024/11/19 8:30:09

一  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.coloradmin.cn/o/1081810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.(vue3.x+vite)style动态绑定的方式

前端技术社区总目录(订阅之前请先查看该博客) 效果浏览 代码如下: <template><div><div :style="{

改造Vue-admin-template登录

这是是将Vue-admin-template改为登录自己的&#xff0c;拿自己的数据&#xff0c;原作者是gitee花裤衩或者github devServer: {proxy: {/dev-api: {target: http://localhost:8035,changeOrigin: true,pathRewrite: {^/dev-api: }}} }, main.js如下 import Vue from vueimpor…

VMware虚拟机安装Linux教程(图文超详细)

1.安装VMware 官方正版VMware下载地址 https://www.vmware.com/ 双击安装 以上就是VMware在安装时的每一步操作&#xff0c;基本上就是点击 "下一步" 一直进行安装。 2.安装Linux VMware虚拟机安装完毕之后&#xff0c;我们就可以打开VMware&#xff0c;并在上面来…

validator库的使用详解

TOC 基本使用 前言 在做API开发时&#xff0c;需要对请求参数的校验&#xff0c;防止用户的恶意请求。例如日期格式&#xff0c;用户年龄&#xff0c;性别等必须是正常的值&#xff0c;不能随意设置。以前会使用大量的if判断参数的值是否符合规范&#xff0c;现在可以使用val…

电脑如何查看是否支持虚拟化及如何开启虚拟化

什么是虚拟化? Intel Virtualization Technology就是以前众所周知的“Vanderpool”技术&#xff08;简称VT&#xff0c;中文译为虚拟化技术&#xff09;&#xff0c;这种技术可以让一个CPU工作起来就像多个CPU并行运行&#xff0c;从而使得在一部电脑内同时运行多个操作系统成…

rabbitmq-----黑马资料

rabbit的三种发送订阅模式 消息从发送&#xff0c;到消费者接收&#xff0c;会经理多个过程&#xff1a; 其中的每一步都可能导致消息丢失&#xff0c;常见的丢失原因包括&#xff1a; 发送时丢失&#xff1a;生产者发送的消息未送达exchange消息到达exchange后未到达queueMQ…

使用Python进行食品配送时间预测

一般的食品配送服务需要显示交付订单所需的准确时间&#xff0c;以保持与客户的透明度。这些公司使用机器学习算法来预测食品配送时间&#xff0c;基于配送合作伙伴过去在相同距离上花费的时间。 食品配送时间预测 为了实时预测食物的交付时间&#xff0c;我们需要计算食物准…

[安洵杯 2019]easy_web - RCE(关键字绕过)+md5强碰撞+逆向思维

[安洵杯 2019]easy_web 1 解题流程1.1 阶段一1.2 阶段二2 思考总结1 解题流程 1.1 阶段一 1、F12发现提示md5 is funny ~;还有img标签中,有伪协议和base64编码 2、url地址是index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=   这就有意思了,这里的img明显是编码后的…

如何给苹果ipa和安卓apk应用APP包体修改手机屏幕上logo图标iocn?

虽然修改应用文件图标是一个简单的事情&#xff0c;但是还是有很多小可爱是不明白的&#xff0c;你要是想要明白的话&#xff0c;那我就让你今天明白明白&#xff0c;我们今天采用的非常规打包方式&#xff0c;常规打包方式科技一下教程铺天盖地&#xff0c;既然小弟我出马&…

阿里云华中1(武汉)本地地域公网带宽价格表

阿里云华中1&#xff08;武汉&#xff09;地域上线&#xff0c;本地地域只有一个可用区A&#xff0c;高可用需要多可用区部署的应用&#xff0c;不建议选择本地地域&#xff0c;可以选择上海或杭州地域&#xff0c;阿里云服务器华中1&#xff08;武汉&#xff09;地域公网带宽价…

windows下开启Telnet功能并访问百度

Telnet 是一个实用的远程连接命令&#xff0c;采用的是 TCP/IP 协议。它为用户提供了在本地计算机上完成远程主机工作的能力&#xff0c;在终端使用者的电脑上使用 Telnet 程序&#xff0c;用它连接到服务器。终端使用者可以在 Telnet 程序中输入命令&#xff0c;这些命令会在服…

并购交易:纽交所上市公司Alamo Group宣布收购皇家卡车设备公司

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;纽交所上市公司Alamo Group(ALG)周二宣布已收购皇家卡车设备公司(Royal Truck & Equipment)。 皇家卡车设备公司在2022年的年收入接近4000万美元&#xff0c;截至2023年8月底&#xff0c;该公…

Linux python运维

Python 是一种高级编程语言&#xff0c;它具有简单易学、可移植性强、丰富的第三方库等特点&#xff0c;因此成为了广泛应用于各个领域的编程语言之一。而在 Linux 系统中&#xff0c;Python 的使用也十分普遍。本文将介绍如何在 Linux 系统中执行 Python 脚本并传入参数&#…

Ajax使用流程

Ajax在不刷新页面的情况下&#xff0c;进行页面局部更新。 Ajax使用流程&#xff1a; 创建XmlHttpReqeust对象发送Ajax请求处理服务器响应 1. 创建XmlHttpReqeust对象 XmlHttpReqeust对象是Ajax的核心&#xff0c;使用该对象发起请求&#xff0c;接收响应 不同的浏览器创建…

【网路安全 --- Linux,window常用命令】网络安全领域,Linux和Windows常用命令,记住这些就够了,收藏起来学习吧!!

一&#xff0c;Linux 1-1 重要文件目录 1-1-1 系统运行级别 /etc/inittab 1-1-2 开机启动配置文件 /etc/rc.local /etc/rc.d/rc[0~6].d## 当我们需要开机启动自己的脚本时&#xff0c;只需要将可执行脚本丢在 /etc/init.d 目录下&#xff0c;然后在 /etc/rc.d/rc*.d 中建…

集成学习的小九九

集成学习&#xff08;Ensemble Learning&#xff09;是一种机器学习的方法&#xff0c;通过结合多个基本模型的预测结果来进行决策或预测。集成学习的目标是通过组合多个模型的优势&#xff0c;并弥补单个模型的不足&#xff0c;从而提高整体性能。 集成学习的主要策略 在集成…

docker 部署 xxl-job SpringBoot 整合 xxl-job 执行任务

概述 XXL-JOB是一个轻量级的分布式任务调度平台&#xff0c;具有以下特点&#xff1a; 调度模块&#xff1a;负责管理调度信息&#xff0c;发出调度请求&#xff0c;支持可视化和动态的操作&#xff0c;监控调度结果和日志&#xff0c;支持执行器Failover 执行模块&#xff1…

地产三维实景vr展示的功能及特点

随着科技的不断发展&#xff0c;VR(虚拟现实)技术也越来越成熟。VR技术的广泛应用&#xff0c;已经逐渐渗透到各个领域&#xff0c;其中引人注目的就是虚拟展馆。虚拟展馆是一种利用VR技术构建的线上展示空间&#xff0c;让观众可以在家中就能参观展览&#xff0c;带来了极大地…

ctfshow萌新计划web1-5(正则匹配绕过)

目录 web1 web2 web3 web4 web5 web1 题目注释相当于已经审计了代码 存在一个对id的检测&#xff0c;并且告诉我们flag在id100 这里讲三个方法 &#xff08;1&#xff09;payload&#xff1a;?id10*100 &#xff08;2&#xff09;使用or来绕过 payload&#xff1a;?…

Jetpack:005-文本组件的扩展

文章目录 1. 概念介绍2. 使用方法2.1 可以选择的文本2.2 可以点击的文本2.3 多种形式的文本 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中文本组件的使用方法&#xff0c;本章回中主要介绍 文本组件的扩展。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧…