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

TCP挥手中TIME_WAIT存在的原因

四次挥手的一般过程如图所示:

在客户端收到FIN结束报文的时候不是立刻进入CLOSED状态,而是进入TIME_WAIT状态,一般等2MLS后进入关闭状态。

原因:

1.可靠地终止 TCP 连接。
2.保证让迟来的 TCP报文段有足够的时间被识别并丢弃。

第一个原因很好理解。假设图FIN+ACK报文段丢失,那么服务器将重发结束报文段。因此客户端需要停留在某个状态以处理重复收到的结束报文段(即向服务器发送确认报文段)。否则,客户端将以复位报文段来回应服务器,服务器则认为这是一个错误,因为它期望的是一个像 FIN报文段那样的确认报文段。

在 Linux系统上,一个TCP端口不能被同时打开多次(两次及以上)。当一个TCP连接处于TIME WAIT 状态时,我们将无法立即使用该连接占用着的端口来建立一个新连接。反过来思考,如果不存在 TIME WAIT 状态,则应用程序能够立即建立一个和刚关闭的连接相似的连接(这里说的相似,是指它们具有相同的正地址和端口号)。这个新的、和原来相似的连接被称为原来的连接的化身(incarnation)。新的化身可能接收到属于原来的连接的、携带应用程序数据的TCP报文段(迟到的报文段),这显然是不应该发生的。这就是TIMEWAIT 状态存在的第二个原因。

 另外,因为TCP报文段的最大生存时间是MSL,所以坚持2MSL时间的TIMEWAIT状态能够确保网络上两个传输方向上尚未被接收到的、迟到的TCP报文段都已经消失(被中转路由器丢弃)。因此,一个连接的新的化身可以在2MSL时间之后安全地建立,而绝对不会接收到属于原来连接的应用程序数据,这就是TIMEWAIT状态要持续2MSL时间的原因。

相关文章:

TCP挥手中TIME_WAIT存在的原因

四次挥手的一般过程如图所示: 在客户端收到FIN结束报文的时候不是立刻进入CLOSED状态,而是进入TIME_WAIT状态,一般等2MLS后进入关闭状态。 原因: 1.可靠地终止 TCP 连接。 2.保证让迟来的 TCP报文段有足够的时间被识别并丢弃。 …...

使用Docker部署jar包

vi DockerfileDockerfile内容 FROM java:8 ADD chery5G-admin.jar chery5G-admin.jar ENTRYPOINT ["java","-jar","chery5G-admin.jar"]上传jar包到Dockerfile文件同级目录 使用Dockerfile文件,将jar包制作为镜像 docker build -t…...

深入了解WebKit:结构简介

随着互联网的发展,网页浏览器已经成为我们日常生活中不可或缺的工具之一。而在众多浏览器中,WebKit引擎作为其中之一的重要角色,驱动着一系列流行的浏览器,例如Safari和一些移动端浏览器。那么,WebKit究竟是如何构建的…...

Pgsql怎样找到表中某个字段值重复的记录并删除冗余记录,只保留一条

背景 今天发现某个黄页爬取的数据有部分重复了,原本我用的公司详情页的url进行md5来作为主键做upsert入,但后面在核验数据时发现有些详情url虽是同一间公司的,但路由上有细微差别导致写入了重复的公司数据,所以要想办法清理掉重复…...

如何在HarmonyOS(鸿蒙操作系统)上进行应用开发

文章中提到的关键点包括: 学习ArkTS:作者建议初学者首先学习使用ArkTS编写Hello World程序,并可以通过TypeScript教程来快速掌握基础语法。对于有Flutter或React Native开发经验的开发者来说,页面布局会比较容易上手。 页面布局&…...

C++ typeid运算符介绍

在 C++ 中,typeid() 是一个运算符,用于获取表达式的类型信息。typeid() 运算符在 C++ 中是一个强大的工具,可以用于获取对象的类型信息、类型比较、多态类型判断、异常处理以及类型转换安全检查等场景中。 1. 类型比较: 可以使用 typeid() 来比较两个类型是否相同。 if …...

Android适配平板屏幕尺寸

一、划分手机和平板 人为判断方法: 大于6英寸的就是平板。小于6英寸的都是手机 平板尺寸: 6英寸、7英寸、10英寸、14英寸… Android系统支持多配置资源文件,我们可以追加新的资源目录到你的Android项目中。命名规范: 资源名字-限制符 l…...

汽车充电桩主板在出厂前需要做哪些检测?

充电桩主板作为核心组件承载着充电桩的关键功能,其性能和稳定性直接影响着用户充电体验、桩企产品合规和市场竞争力,以及主板厂商的品牌知名度。因此,对充电桩主板进行全面的测试尤为重要。 下面将详细介绍充电桩主板检测的内容,包…...

关于Renesas R7 的选项字节开关看门狗

Renesas看门狗的模式是在选项字节中进行配置的,OPBT0的寄存器说明如下, 关于看门狗模式 : 和看门狗喂狗方式: 我们选择关闭看门狗(也就是配置31位为软件触发看门狗开始,然后不启动就相当于关闭&#xff09…...

redis bigKey问题

bigKey的产生 1、使用String存储了大文件的二进制。 2、使用集合没有考虑到数据的规模,或者规模的增长。 3、哈希中冗余了大量键值对。 bigKey问题 1、操作大key时会阻塞线程:redis是单线程。 2、网络阻塞:在网络中占用大量网络流量。 …...

二手车商的套路

https://www.dongchedi.com/article/7126394624675578405 https://www.dongchedi.com/article/7126394624675578405 现在,有越来越多的人去了解二手车,二手车相对于新车来说,更加的亲民划算。很多新车需要四五十万,而二手车有可…...

c++ 根据ip主机号和子网掩码随机生成ip

在C中&#xff0c;可以使用以下方法根据给定的IP地址和子网掩码来随机生成IP地址。这里使用了库来生成随机数&#xff0c;以及<arpa/inet.h>库来处理IP地址。 #include <iostream> #include <random> #include <arpa/inet.h>std::string random_ip(co…...

事务的隔离级别

事务由哪些特性 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&#xff0c;要么全部完成&#xff0c;要么全部不完成&#xff0c;不会结束在中间某个环节&#xff0c;而且事务在执行过程中发生错误&#xff0c;会被回滚到事务开始前的状态&#xf…...

性能优化角度

1.启动角度 2.数据缓存角度比如历史信息联想 3.内存释放角度 4.配合并要求后端进行接口API整合 5.耗时较多需求&#xff0c;根据业务情况进行线程异步处理 6.通过开源的loop监控sdk日志埋点&#xff0c;可监控线程对应环路的休眠/唤醒时间间隔&#xff0c;优化卡顿 7.尽量避免离…...

Vue3 使用ElementUI 显示异常

element提供的样例不能正常显示,需要进行配置 1.npm install element-plus --save 2.main.js // main.ts import { createApp } from vue import ElementPlus from element-plus //全局引入 import element-plus/dist/index.css import App from ./App.vue const app = crea…...

从0开始复习python~

//&#xff0c;int() , abs(), divmod() ,float() ,complex() ,pow(), ** , bool() ,or , and , len() , range() , str() , 其中 for i in xxx: else: xxxxx; 有点意思... # 地板除&#xff0c;向下取整 print(-3//2) # 只保留整数部分 print(int(3.72)) # 绝对值 print…...

从零开始搭建后端信息管理系统(新手小白比如)

如果你是新手小白&#xff0c;首先我们要进行一些准备工作&#xff0c;安装一些基础软件&#xff0c; 备注一下&#xff1a;这里安装的vue环境的后台管理系统&#xff0c;不同的后台管理系统&#xff0c;需要安装不同的插件 准备工作&#xff1a; 安装 Visual Studio Code …...

CentOS 7详细介绍。

CentOS 7是CentOS项目发布的开源类服务器操作系统&#xff0c;自2014年7月7日正式发布以来&#xff0c;它已成为企业级Linux发行版本的佼佼者。CentOS 7不仅继承了其前身的优势&#xff0c;还在性能、安全性和易用性方面进行了显著的提升。以下是对CentOS 7的详细介绍。 一、C…...

JavaScript:nodeType节点/文档碎片对象模型-DcoumentFragment

1伪数组转真数组的方式: 伪数组转真数组的多种方式&#xff1a; 1 Array.from 2 Array.prototype.slice.call(list) 3 [...list] const list1 document.getElementsByTagName(p)//检查list1 是不是 Array数组 的实例 --> false --伪数组console.log(list1 instanceof …...

JDK安全剖析之安全处理入门

0.前言 Java 安全包括大量 API、工具以及常用安全算法、机制和协议的实现。Java 安全 API 涵盖了广泛的领域&#xff0c;包括加密、公钥基础设施、安全通信、身份验证和访问控制。Java 安全技术为开发人员提供了编写应用程序的全面安全框架&#xff0c;还为用户或管理员提供了…...

墨语灵犀镜像灰度发布:Kubernetes滚动更新无感升级实践

墨语灵犀镜像灰度发布&#xff1a;Kubernetes滚动更新无感升级实践 1. 引言&#xff1a;优雅升级的艺术挑战 在现代应用部署中&#xff0c;如何实现平滑无感的服务升级一直是个技术难题。特别是对于「墨语灵犀」这样注重用户体验的深度翻译工具&#xff0c;任何服务中断或体验…...

OpenClaw多语言支持:GLM-4.7-Flash跨语言任务处理

OpenClaw多语言支持&#xff1a;GLM-4.7-Flash跨语言任务处理 1. 为什么需要多语言自动化助手 上周我需要整理一份包含中英日三语的会议纪要时&#xff0c;突然意识到一个问题&#xff1a;传统自动化工具往往只擅长处理单一语言环境。当我尝试用Python脚本批量处理日语邮件时…...

STM32光敏电阻传感器实战:从硬件接线到代码调试全流程(附避坑指南)

STM32光敏电阻传感器实战&#xff1a;从硬件接线到代码调试全流程&#xff08;附避坑指南&#xff09; 在智能家居和环境监测项目中&#xff0c;光照强度检测是一个基础但关键的功能模块。光敏电阻因其成本低廉、使用简单&#xff0c;成为许多开发者的首选传感器。本文将带你从…...

基于OFA的智能写作助手:图文内容自动生成与问答

基于OFA的智能写作助手&#xff1a;图文内容自动生成与问答 1. 引言 你有没有遇到过这样的情况&#xff1a;手头有一堆产品图片&#xff0c;却不知道怎么写吸引人的商品描述&#xff1b;或者看到一张复杂的图表&#xff0c;想要快速提取关键信息却无从下手&#xff1b;又或者…...

Kubernetes 自动扩缩容最佳实践

Kubernetes 自动扩缩容最佳实践 一、前言 哥们&#xff0c;别整那些花里胡哨的。Kubernetes 自动扩缩容是保证应用高可用和成本优化的关键&#xff0c;今天直接上硬货&#xff0c;教你如何配置和优化自动扩缩容。 二、扩缩容类型对比 类型适用场景优势劣势HPA水平扩缩容响应…...

乙巳马年春联生成终端部署教程:Docker镜像构建+GPU算力适配详解

乙巳马年春联生成终端部署教程&#xff1a;Docker镜像构建GPU算力适配详解 1. 引言&#xff1a;从创意到部署&#xff0c;开启你的AI春联创作之旅 想象一下&#xff0c;你只需要输入几个简单的愿望词&#xff0c;比如“如意”或“飞跃”&#xff0c;一扇威严的皇家红门就在屏…...

Arduino Nano与SSD1306实战:从静态位图到动态动画的完整实现

1. Arduino Nano与SSD1306 OLED屏入门指南 如果你手头正好有一块Arduino Nano开发板和SSD1306驱动的OLED屏幕&#xff0c;想要实现从静态图片显示到动态动画的效果&#xff0c;那这篇文章就是为你准备的。我最近在做一个智能家居项目时&#xff0c;正好用到了这个组合&#xff…...

Vue3 + Cornerstone3D:从零构建支持本地Nifti文件上传与四视图联动的医学影像查看器

1. 为什么选择Vue3Cornerstone3D开发医学影像查看器 医学影像处理一直是前端开发中颇具挑战性的领域&#xff0c;特别是当需要处理专业格式如Nifti时。我在实际项目中尝试过多种技术方案后&#xff0c;发现Vue3和Cornerstone3D的组合特别适合快速构建高性能的医学影像应用。 …...

Jenkins与GitHub集成指南:从凭据配置到自动化构建的全流程

Jenkins与GitHub深度集成实战&#xff1a;构建企业级自动化流水线 在DevOps实践中&#xff0c;持续集成与持续交付(CI/CD)已成为现代软件开发的核心环节。Jenkins作为最流行的开源自动化服务器&#xff0c;与GitHub的深度集成能够显著提升团队协作效率。本文将带您从零开始构建…...

NumPy 应用实例:用户行为数据分析(归一化和标准化处理)

在用户行为分析中&#xff0c;常常需要同时处理多个特征&#xff0c;例如访问次数、消费金额、停留时长、收藏数量等。这些特征虽然都能反映用户活跃程度或消费倾向&#xff0c;但它们的单位、量纲和取值范围通常并不一致。如果直接将原始数据用于综合评分或相似度计算&#xf…...