4.12 TCP 连接,一端断电和进程崩溃有什么区别?
目录
TCP keepalive TCP 的保活机制
主机崩溃
进程崩溃
有数据传输的场景
客户端主机宕机,又迅速重启
客户端主机宕机,一直没有重启
TCP连接服务器宕机和进程退出情况总结
TCP keepalive TCP 的保活机制
TCP 保活机制需要通过 socket 接口设置 SO_KEEPALIVE 选项才能够生效
定义一个时间段,如果在这个时间段内(保活时间7200s,俩小时),没有任何连接相关的活动,启动TCP保活机制开始每隔一个时间段(75秒)发送一个探测报文,如果连续几个(9次)探测报文都没有得到响应,则认为TCP连接已经死亡。
主机崩溃
没开TCP keepalive的情况下,客户端宕机,服务端无法感知到客户端状态服务端的 TCP 连接将会一直处于 ESTABLISHED 连接状态,直到客户端重启。
在没有使用 TCP 保活机制且双方不传输数据的情况下,一方的 TCP 连接处在 ESTABLISHED 状态,并不代表另一方的连接还一定正常。
进程崩溃
TCP 的连接信息是由内核维护的,服务器进程崩溃内核需要回收该进程所有的TCP连接资源,内核发送第一次挥手FIN报文,后续的挥手过程也都是在内核完成,并不需要进程的参与。
所以服务端的进程退出了还是可以成功的和客户端完成TCP四次挥手的过程。
有数据传输的场景
客户端主机宕机,又迅速重启
只要有一方重启完成后,收到之前 TCP 连接的报文,都会回复 RST 报文,以断开连接
客户端主机宕机,一直没有重启
服务端超时重传报文的次数达到一定阈值后,内核就会判定出该 TCP 有问题,然后通过 Socket 接口告诉应用程序该 TCP 连接出问题了,于是服务端的 TCP 连接就会断开。
TCP连接服务器宕机和进程退出情况总结

拔掉网线后, 原本的 TCP 连接还存在吗?
拔掉网线这个动作并不会影响 TCP 连接的状态,要看拔掉网线后双方做了什么动作:
拔掉网线后,有数据传输
服务端向客户端发送的数据报文会得不到任何的响应,服务端触发超时重传机制,重传未得到响应的数据报文。
如果在服务端超时重传的过程中,把网线插回去了,客户端就会返回ACK响应报文。
如果没插回去,重传个一定次数默认15次,就断开连接了。
拔掉网线后没有数据传输
如果没有开启 TCP keepalive 机制,在客户端拔掉网线后,并且双方都没有进行数据传输,那么客户端和服务端的 TCP 连接将会一直保持存在。
而如果开启了 TCP keepalive 机制,在客户端拔掉网线后,即使双方都没有进行数据传输,在持续一段时间后,TCP 就会发送探测报文:
如果对端正常工作。TCP保活探测报文发送给对端,这样TCP保活时间会被重置等待下一个TCP保活时间到来。
如果对端主机宕机,探测报文不可达,TCP会报告该TCP死亡
拔网线总结:


相关文章:
4.12 TCP 连接,一端断电和进程崩溃有什么区别?
目录 TCP keepalive TCP 的保活机制 主机崩溃 进程崩溃 有数据传输的场景 客户端主机宕机,又迅速重启 客户端主机宕机,一直没有重启 TCP连接服务器宕机和进程退出情况总结 TCP keepalive TCP 的保活机制 TCP 保活机制需要通过 socket 接口设置 S…...
十二、pikachu之URL重定向
文章目录 1、URL重定向概述2、实战3、URL跳转的几种方式:3.1 META标签内跳转3.2 javascript跳转3.3 header头跳转 1、URL重定向概述 不安全的url跳转问题可能发生在一切执行了url地址跳转的地方。如果后端采用了前端传进来的(可能是用户传参,或者之前预埋…...
贝叶斯公式中的动词 命名技巧
一项血液化验有95%的把我诊断某种疾病,但是,这项化验用于健康人也会有1%的“伪阳性”结果(即如果一个健康人接受这项化验,则化验结果乌镇此人患有该疾病的概率是0.01)。如果该疾病的患者事实上只占总人口的0.5%,若某人化验结果为阳…...
ctfshow-web13 文件上传
0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 首先看到是一个上传页面,测试其他无果,遂进行目录遍历,发现upload.php.bak文件 可以看到这里的限制条件,大小,以及内容,这里可以使用.use…...
Python项目开发案例————学生信息管理系统(附源码)
一、学生信息管理系统 本文使用Python语言开发了一个学生信息管理系统,该系统可以帮助教师快速录入学生的信息,并且对学生的信息进行基本的增、删、改、查操作;还可以实时地将学生的信息保存到磁盘文件中。 1.1 需求分析 为了顺应互联网时代…...
2023-08-25力扣每日一题
链接: 1448. 统计二叉树中好节点的数目 题意: 判断根节点到每个节点X的过程中,如果没有值大于X,则该节点为好节点,求好节点数量 解: 由于求根节点到其他节点的路径,则使用dfs算法ÿ…...
Vue3中的计算属性和属性监听
compute计算属性 Vue3中可以通过 compute进行监听计算属性,他返回的是一个ref的对象,也就是说 通过compuye这种方式计算属性实际上是进行了ref的操作 import { computed } from vue const user reactive({firstName: A,lastName: B }) // 只有getter的…...
微信开发之一键修改群公告的技术实现
简要描述: 设置群公告 请求URL: http://域名地址/setChatRoomAnnouncement 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必…...
【git】工作场景中常用的git命令
工作场景中常用的git命令 1. 必备改名改邮箱拉代码下来并且创建新分支git commit回滚某个文件删除分支 工作场景中常用的git命令,记录下来方便调取 1. 必备 改名改邮箱 一般与他人合作,至少你提交的名字得被人熟知或者遵循规范,因此需要更改…...
Vue路由(详解)
目录 路由原理 路由到底有什么作用? 路由安装和使用(vue2) 路由跳转 跳转实例: 路由的传值和取值 传值实例: 查询参和路由参的区别: 嵌套路由 嵌套实例: 路由守卫 守卫实例࿱…...
打开软件提示msvcp140.dll丢失的解决方法,msvcp140主要丢失原因
今天,我将为大家介绍一种非常常见的问题——msvcp140.dll丢失。这个问题可能会导致许多应用程序无法正常运行,甚至崩溃。但是,请不要担心,我会为大家提供5种解决方法,帮助大家轻松解决问题。 首先,我们来看…...
关于路由器和DNS解析的一些新理解
其实我本人对于交换机和路由器这些网络硬件是比较感兴趣的,也在一点一点的学习相关知识,每次解决一个问题,就让我对一些事情有新的思考。。 今天前台同事,的机器突然上不了网,,和领导一起去看了一波&#…...
vscode 与 C++
序 具体流程的话,官方文档里都有的:C programming with Visual Studio Code 浏览器下载一个mingw64,解压,配置环境变量vscode里安装c相关的插件没了 第一步只看文字,可能有点抽象,相关视频: …...
水果flstudio好用吗?中文版FL21最新版本如何下载
FL Studio21版是一款功能强大的音乐制作软件,广泛应用于电子音乐、流行音乐、电影配乐等领域。它提供了丰富多样的音频合成和编辑工具,使音乐制作变得更加灵活多样。无论是初学者还是专业音乐制作人,都可以通过直观的界面和丰富的音频特效来实…...
PHP is_array()函数详解,PHP判断是否为数组
「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 is_array 一、基本使用二、空数组三、同时判断多个…...
面试题-React(三):什么是JSX?它与常规JavaScript有什么不同?
在React的世界中,JSX是一项引人注目的技术,它允许开发者在JavaScript中嵌套类似HTML的标签,用于描述UI组件的结构。本篇博客将通过丰富的代码示例,深入探索JSX语法,解析其在React中的用法和优势。 一、JSX基础语法 在…...
纯前端实现图片上传七牛云
首先安装下依赖: npm install qiniu-js crypto-js 然后封装一下 uploaderHelper.ts import * as qiniu from qiniu-js; // ts-ignore import CryptoJS from crypto-js// 请求接口上传图片 export function uploadFile(file: File) {const uptoken getToken(你的…...
win10+wsl2+Ubuntu20.2+Pycharm+WSL解释器
目的:创建一个ubuntu系统下的python解释器,作为win平台下的pycharm的解释器。 这样做的好处是可以直接在win系统里操作文件,相比于linux方便一点,而且也不用对wsl的子系统进行迁移。 一、安装前准备 1. 设置-Windows更新-window…...
EL与JSTL
目录 EL EL语法 EL运算符 JSTL JSTL标签分类 JSP脚本:代码结构混乱、脚本与HTML 混合易出错、代码不易维护。 EL表达式:优化程序代码,增加程序可读性。 EL EL语法 EL表达式 ${ EL 表达式 } EL操作符 操作符“ . ” 获取对象的属性&a…...
【Linux】动态库和静态库
动态库和静态库 软链接硬链接硬链接要注意 自定义实现一个静态库(.a)解决、使用方法静态库的内部加载过程 自定义实现一个动态库(.so)动态库加载过程 静态库和动态库的特点 软链接 命令:ln -s 源文件名 目标文件名 软链接是独立连接文件的,他…...
英雄联盟自动化助手:5分钟告别繁琐操作,专注游戏策略的终极方案
英雄联盟自动化助手:5分钟告别繁琐操作,专注游戏策略的终极方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否…...
XC7Z010-2CLG400I Xilinx Zynq-7000 FPGA
XC7Z010-2CLG400I 可以理解为一颗“ARM 处理器 FPGA 可编程逻辑”合在一起的 SoC。它属于 Xilinx (赛灵思 AMD )Zynq-7000 家族里的 Z-7010 器件,核心特点就是把 双核 Arm Cortex-A9 MPCore 处理系统(PS) 和 7 系列可编程逻辑&am…...
告别Visio!用WPF+MVVM打造属于你自己的业务流程设计器(附完整源码)
基于WPFMVVM构建企业级业务流程设计器的实战指南 在当今企业数字化转型浪潮中,业务流程管理系统(BPM)已成为提升运营效率的核心工具。传统Visio等绘图工具虽然功能强大,但往往难以与企业内部系统深度集成,且缺乏动态交互能力。本文将带你从零…...
电机PID调参总翻车?试试VOFA+这个“示波器”功能,实时对比目标与实际值
电机PID调参实战:用VOFA实现波形可视化诊断 调试电机PID控制器时,最令人头疼的莫过于面对一堆抽象数据却无法直观理解系统行为。传统方法依赖串口打印数值或简单示波器观察,往往需要反复修改参数、重新烧录程序,效率低下且容易错过…...
华为云Stack网络排障实战:用ovs-appctl命令追踪VXLAN隧道里的数据包(附详细命令解析)
华为云Stack网络排障实战:VXLAN隧道数据包追踪与流表解析 在云计算的复杂网络环境中,VXLAN技术已经成为构建大规模虚拟网络的核心方案。作为华为云Stack的运维工程师或网络管理员,掌握VXLAN隧道中的数据包追踪技术至关重要。本文将深入探讨如…...
LinkSwift:九大网盘直链下载的终极解决方案,快速获取真实下载地址
LinkSwift:九大网盘直链下载的终极解决方案,快速获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘…...
GO-Surf:基于神经特征网格的快速高保真三维表面重建技术解析
1. 项目概述:从点云到高保真表面的跨越在三维视觉与机器人领域,从一组稀疏的RGB-D图像序列中,快速、高质量地重建出物体的完整表面模型,一直是一个核心且富有挑战性的任务。传统的基于体素或点云的方法,要么在精度上难…...
RWKV vs. LLaMA2:在论文审稿任务上,我为什么第一版选了它(以及为什么后来放弃了)
RWKV与LLaMA2在论文审稿任务中的技术选型反思 当面对一个需要处理长文档的AI审稿系统时,模型选型往往成为决定项目成败的关键因素。2023年第三季度,我们在构建论文审稿GPT第一版时,做出了一个在当时看来合理但事后证明值得商榷的决策——选择…...
如何高效使用Display Driver Uninstaller:显卡驱动清理终极指南
如何高效使用Display Driver Uninstaller:显卡驱动清理终极指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uni…...
Python异步编程模式:从同步到异步的演进
Python异步编程模式:从同步到异步的演进 引言 在Python开发中,异步编程模式是构建高性能应用的关键。作为一名从Rust转向Python的后端开发者,我深刻体会到异步编程在处理高并发场景时的优势。本文将深入探讨Python中的异步编程模式及其最佳实…...
