TCP/IP详解 卷1:协议 学习笔记 第二十三章 TCP的保活定时器

2023-10-26

一个TCP连接建立,然后经过任意时间,且中间路由器可以崩溃和重启、电话线可以挂断再接通,而连接依然保持,只要两端主机没有被重启,这意味着两端不交换任何信息。然而许多时候一个服务器希望知道客户主机是否崩溃,许多实现提供的保活定时器可提供这种能力,rlogin和telnet服务器默认使用这个选项。

保活并不是TCP规范的一部分,理由如下:
1.出现短暂差错时(如中间路由器崩溃并重启时),可能释放掉一个非常好的连接。
2.耗费不必要的带宽。
3.分组计费时会在互联网上花掉更多钱。

许多人认为保活定时器应该由应用程序完成。

当个人计算机用户建立连接后,拔掉电源但没有注销时,会留下一个半打开的连接,此时服务器发送数据时会导致返回一个复位,但这是来自重新打开的客户端,如果客户已经消失,服务器上会留下一个永久等待的半打开连接,保活功能就是为了在服务端检测这种半打开的连接。

客户和服务器都能使用保活定时器,只要需要了解对方是否已经消失就可使用。

如果一个给定连接在两个小时内没有任何动作,则服务器向客户发送一个探查报文段,此时客户主机可能处于以下4个状态之一:
1.客户主机正常运行,并从服务器可达。此时客户的TCP响应正常,服务器就知道了对方正常工作。
2.客户主机已经崩溃,且已经关闭或正在重启。此时客户的TCP没有响应,服务器将在75秒后再次发送探查,共发送10个,如果没有收到一个响应,则服务器认为客户主机关机并终止连接。
3.客户主机崩溃,且已经重新启动。此时客户TCP会响应一个复位,使得服务器终止此连接。
4.客户主机正常运行,但从服务器不可达。这与状态2相同,TCP不能区分这两个状态。

第1种情况下,服务器的应用程序没有感觉到保活探查的发生,后3种情况下,服务器应用将收到来自它的TCP的差错报告,第2种情况下差错是“连接超时”之类的信息,第3种情况下差错是“连接被对方复位”,第4种情况看起来像是连接超时,也可根据是否收到与连接有关的ICMP差错来返回其他差错。

服务器不用关注客户主机正常关闭过程,系统被正常关闭时,所有应用进程被终止,这会使客户的TCP的在连接上发出一个FIN。

2小时的保活空闲时间可改变,但保活时间间隔是系统级变量,改变它会影响到所有使用该功能的用户。

另一端崩溃时保活定时器的例子:
在这里插入图片描述
tcpdump输出:
在这里插入图片描述
第4行开始是发送第1个保活探查的开端,发生在7200秒后,在第6行该保活探查报文段发送前,先观察到的是arp请求和应答,之后引出了接收端的响应(第7行),两小时后,第8~11行发生了同样的分组交换过程。

第6行和第10行的保活探查报文中的序号字段比下一个将要发送的序号小1(本例中,下一个应该发送的序号是14,但保活探查中发送的序号是13),但报文段中没有数据,因此tcpdump不能打印出序号字段,之后服务器对其进行响应,告诉客户下一个期望的序号是14。

一些基于4.2 BSD的旧实现不能对这些保活探查进行响应,除非报文段中包含数据。某些系统可配置成发送一个字节的无用数据来引出响应,这个无用数据是无害的,因为它不是所期望的序号的数据,接收方会将这个字节丢弃。某些系统在探查时先发送4.3 BSD格式的报文段(不包含数据),如果没有收到响应,切换成4.2 BSD格式的报文段再发一次。

拔掉电缆后,下一次的探查失败,失败的探查发生了十次,第12到21行中只出现了ARP请求,没有出现TCP报文段,因为主机没有响应ARP请求。交互式脚本返回给客户进程的差错码被TCP转换为连接超时,这正是实际所发生的。

另一端崩溃后又重新启动的保活探查的例子:
在这里插入图片描述
以下是去掉连接建立和窗口通告报文后的tcpdump的输出:
在这里插入图片描述
客户两小时后发送的第一个保活探查的响应是服务器的复位,客户进程随后打印出连接被对端复位。

另一端不可达时,保活探查的例子,这个例子中,客户没有崩溃,而是断开连接链路中的一个SLIP连接:
在这里插入图片描述
以下是去掉连接建立和窗口通告报文后的tcpdump输出的结果:
在这里插入图片描述
两小时后,发出的第一个保活探查是正常的(第4、5行),但在下一个探查前,断开SLIP链路,第6行的保活探查是来自路由器的ICMP网络不可达差错,这是一个软差错,差错的接收者没有终止这个连接,在发送主机最终放弃之前,一共发送了9个保活探查,每次发送间隔75秒,之后返回给应用一个没有到达主机的路由差错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TCP/IP详解 卷1:协议 学习笔记 第二十三章 TCP的保活定时器 的相关文章

  • 在职状态下继续学习的心得体会

    本来平时记录的都是一些技术点的学习和使用 今天打算记录一下学习方法 当然不一定适合所有人 因人而异 仅供参考 学习这件事 对于IT行业来说 真的是活到老学到老 技术的更新迭代速度非常快 而且总是有那么一些公司特别的卷 没办法 改变不了外因
  • 网络安全现状:揭秘白帽黑客的真实收入

    前言 作为一个网络安全行业五年打工仔 今天就来看看黑客的收入和方向怎么样 一个黑客年薪是多少呢 外界普遍认为黑客是高收入群体 那么你想过黑客是怎么获得收入的吗 黑客分为白帽黑客和黑帽黑客 处于黑白两道的黑客会的技术都有些相似 但是却是对立的
  • 通过一个寒假能学会黑客技术吗?看完你就知道了

    一个寒假能成为黑客吗 资深白帽子来告诉你 如果你想的是学完去美国五角大楼内网随意溜达几圈 想顺走一点机密文件的话 劝你还是趁早放弃 但是成为一名初级黑客还是绰绰有余的 你只需要掌握好渗透测试 Web安全 数据库 搞懂web安全防护 SQL注
  • 一个网工(网络工程师)七年的职业血泪史....

    前言 一个工作了七年的老网工 上家公司待了五年 现在这家公司也快三年了 分享一些我自己学习网络安全路上的一些经历 也算是帮大家少走些弯路 一 如何学习网络安全 1 不要试图以编程为基础去学习网络安全 不要以编程为基础再开始学习网络安全 一般
  • 从外卖员到程序员,自学3年终于转行成功,三面“拿下”拼多多

    前言 先来自我介绍 老家农村 家里好不容易把我送到大城市读书 大学非985 211 但在我们老家 能出一个本科大学生也是非常不容易的 因为农村信息的相对闭塞 我对大学专业一无所知 加上分数并非前茅 最后被调剂一个我并不喜欢的专业 这里就不透
  • 6类典型场景的无线AP选型和部署方案

    你们好 我的网工朋友 前段时间刚给你们来了篇解决无线频繁断网的技术文 解决无线频繁断网 这个办法值得收藏 不少朋友私聊 说想再聊聊无线AP的选型和部署方案 这不就安排上了 无线网络覆盖项目中 无线AP的合理选型和部署非常重要 在设计施工中
  • 内网穿透的应用-使用Net2FTP轻松部署本地Web网站并公网访问管理内网资源

    文章目录 1 前言 2 Net2FTP网站搭建 2 1 Net2FTP下载和安装 2 2 Net2FTP网页测试 3 cpolar内网穿透 3 1 Cpolar云端设置 3 2 Cpolar本地设置
  • 这些专利知识你知道吗?

    专利作为一种重要的知识产权保护形式 专利不仅成为了企业核心竞争力的重要组成部分 也成为了国家创新发展的重要支撑 专利是指国家专利主管机关授予发明创造申请人的一种专有权 这种专有权具有独占性 排他性和法律强制性 能够为持有者带来经济利益和竞争
  • 基于成本和服务质量考虑的不确定性下,电动汽车充电网络基础设施需求预测和迭代优化的分层框架研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • Web 安全漏洞之 OS 命令注入

    什么是 OS 命令注入 上周我们分享了一篇 Web 安全漏洞之 SQL 注入 其原理简单来说就是因为 SQL 是一种结构化字符串语言 攻击者利用可以随意构造语句的漏洞构造了开发者意料之外的语句 而今天要讲的 OS 命令注入其实原理和 SQL
  • 2024年网络安全十10大发展趋势发布

    2023年网络安全十10大发展趋势发布 近日 中国计算机学会 CCF 计算机安全专委会中 来自国家网络安全主管部门 高校 科研院所 大型央企 民营企业的委员投票评选出2023年网络安全十大发展趋势 福利 趋势一 数据安全治理成为数字经济的基
  • HPE Aruba Networking:五大网络现代化策略助力实现校园数字化转型

    作者 Aruba中国区技术销售总监 俞世丹 全球数字化进程日益加深 科技已成为加速教育行业发展的重要驱动力 人工智能 大数据 云计算 物联网 虚拟现实等新兴技术的快速发展 正在深刻改变着教育的形态和模式 为了更好地满足学校师生个性化教育教学
  • 利用CHAT写实验结论

    问CHAT 通过观察放置在玻璃表面上的单个水滴 人们可以观察到水滴充当成像系统 探究这样一个透镜的放大倍数和分辨率 CHAT回复 实验报告标题 利用玻璃表面的单一水滴观察成像系统的放大倍数和分辨率 一 实验目的 通过对比和测量 研究和探索玻
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • 计算机Java项目|基于SSM的微课学习系统

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • 为什么我强烈推荐大学生打CTF!

    前言 写这个文章是因为我很多粉丝都是学生 经常有人问 感觉大一第一个学期忙忙碌碌的过去了 啥都会一点 但是自己很难系统的学习到整个知识体系 很迷茫 想知道要如何高效学习 这篇文章我主要就围绕两点 减少那些罗里吧嗦的废话 直接上干货 CTF如
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • 肿瘤的转录调控:Cell子刊揭示原发性肝癌中转录因子活性的全基因组图谱|国自然热点

    转录调控的研究历史比较长 相关研究在近十年来仍一直增长 也是近年来高分文章的焦点之一 在2023年最佳国自然 中标 研究热点 转录调控中标率高达189 作为国自然热点之一的肿瘤微环境的研究在近几年也一直处于上升趋势 转录调控在肿瘤发生 发展
  • 2023下半年软考「单独划线」合格标准公布

    中国计算机技术职业资格网发布了 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告 2023下半年软考单独划线地区合格标准各科目均为42分 01 官方通告 关于2023年度下半年计算机软件资格考试单独划线地区合格标准的通告
  • 【安全】网络安全态势感知

    文章目录 一 态势感知简介 1 概念 2 形象举例 3 应具备的能力 二 为什么要态势感知 为什么网络安全态势感知很重要 三 态势感知系统的功能 四 如何评估态势感知的建设结果 五 什么是态势感知的三个层级 四 业界的态势感知产品 1 安全

随机推荐

  • 【c语言】两个栈实现一个队列

    两个栈实现一个队列 核心思想 模拟出队列先进先出的数据结构 假设有两个栈input和output input模拟栈的数据插入 当需要模拟出队列操作时 input栈中的A B C D会按照D C B A的顺序进入栈output 只要outpu
  • TensorRT部署(图像分类)之engine生成及反序列化推理(第二讲)

    1 日志文件类创建 class TRTLogger public nvinfer1 ILogger public virtual void log Severity severity nvinfer1 AsciiChar const msg
  • adams怎么打开自带模型_少了这套Enscape专属模型库,你装的Enscapen废了一半

    文末领取此套Enscape离线资源库 真实植物 Enscape 我们一直都在用 大家也都很熟悉 而且Enscape作为渲染界的劳模 几乎可以保持月更的节奏 其操作简单 容易上手 渲染真实越来越多的被使用 虽然Enscape很好用 比Lumi
  • SAP MM学习笔记17-在库品目评价中的标准原价 S 和移动平均价格 V

    SAP中有2种价格 标准原价 S 和 移动平均价格 V 1 标准原价 S 2 移动平均价格 V 在MM03 会计1 Tab中 现行评价区域中 有原价管理区分 比如下面这个物料 100 100 它的原价管理区分是 S 它的合计额 就是 标准原
  • getch()、_sleep() 函数的正确用法

    前段时间由于需要 写了一段代码 用到了函数 getch 但是当时出错了 提示该标识符未被定义 一时无解 后来又有一个朋友 问我怎么将一个字符串中的字符以一种动态的方式进行输出 我当时告诉他的是使用 sleep 函数 也没有细想 后来发现 根
  • 反汇编 之thiscall约定

    thiscall是C 中的非静态类成员函数的默认调用约定 对象的每个函数隐含接收this参数 采用thiscall约定时 函数的参数按照从右到左的顺序入栈 被调用的函数在返回前清理传送参数的栈 include
  • jetson orin+livox mid-70+imu+云台相机联合标定和数据采集

    将之前无人机上的x86多源数据采集和联合标定算法重建在新板子jetson orin上 解决之前多传感器采集数据时间戳没对齐的问题 1 准备工作 安装ros环境 推荐小鱼 http fishros com fish home 大佬的包避免了自
  • 王昊奋:大规模知识图谱技术

    主讲嘉宾 王昊奋 主持人 阮彤 承办 中关村大数据产业联盟 嘉宾简介 王昊奋 华东理工大学讲师 上海交通大学计算机应用专业博士 对语义搜索 图数据库以及Web挖掘与信息抽取有浓厚的兴趣 在博士就读期间发表了30余篇国际顶级会议和期刊论文 长
  • TCP&UDP测试工具的使用

    一 TCP服务测试 1 在电脑上打开测试工具 2 该测试工具分为客户端和服务器两类 首先创建一个服务端 3 默认端口号点击确定 4 点击启动服务器 此时我们可以通过外部客户端与该服务器相连 5 在此 我们重新打开一次软件 模拟客户端并与服务
  • pandas基础入门之数据修改与基本运算

    1 数据复制 直接赋值 直接赋值的话 只是复制的元数据 行列索引 但是元素还是存储在相同内存位置 对元素进行修改会影响另外一个 import pandas as pd import numpy as np df pd DataFrame n
  • 偏微分方程 基础知识(线性偏微分方程+常系数线性偏微分方程)

    偏微分方程 指含有多元未知函数 u u x x
  • python爬虫connection error报错time read out

    TOC python 爬虫 ConnectionError HTTPConnectionPool host port 80 Read timed out python 爬虫 ConnectionError HTTPConnectionPoo
  • RocketMQ 安装和启动

    一 前言 系统环境 CentOS Linux release 7 9 2009 Core RocketMQ版本 4 7 1 我们会部署一套 RocketMQ 最小化的单机环境 包括一个 RocketMQ Namesrv 和 Broker 服
  • 【Transformer系列(1)】encoder(编码器)和decoder(解码器)

    前言 这个专栏我们开始学习transformer 自推出以来transformer在深度学习中占有重要地位 不仅在NLP领域 在CV领域中也被广泛应用 尤其是2021年 transformer在CV领域可谓大杀四方 在论文的学习之前 我们先
  • 第二章:25+ Python 数据操作教程(第十四节PYTHON 中的循环通过示例进行解释)持续更新中

    本教程通过几个实际示例介绍了在 python 中执行循环的各种方法 阅读本教程后 您将熟悉循环的概念 并将能够在现实世界的数据整理任务中应用循环 目录 什么是循环 现实世界中的循环示例 For 循环 Python 语法和示例 带 else
  • user-cf的理解-初衷

    使用user cf的初衷 以前的推荐算法 往往是基于内容标签的推荐 比如 用户喜欢了 数据挖掘导论 这本书 而这本书有 数据挖掘 这个标签 那么就给这个用户推荐 其他的 数据挖掘 类的图书 标签就像媒介一样 即是物品 即item 的属性 又
  • 互联网晚报

    今日看点 哪吒汽车第10万台量产车下线 仅用42个月 2022年首家银行理财子公司 浦银理财正式开业 京东成全国首批支持第三方商家接入数字人民币的企业 亚虹医药在科创板挂牌上市 A股迎来 泌尿生殖肿瘤第一股 刘慈欣 三体 英文版权以125万
  • 骚操作-CSDN浏览器助手已上线(就是个Chrome插件...)

    目录 概述 一 插件安装 1 进入csdn插件官网 2 本地下载csdn插件测试包 3 安装csdn插件测试包 4 解压csdn插件测试包并上传 5 开启csdn插件 6 查看插件信息 7 在新标签页中打开插件 二 功能测试 2 1 功能测
  • 图解!2023年国家社科基金年度项目

    9月4日 全国哲学社会科学工作办公室公示了2023年国家社科基金年度项目 其中重点项目有397项 一般项目有3185项 学术点滴 将重点项目和一般项目合并 利用DIKW软件统计和可视化 在国家社科基金年度项目中华东师范大学 中国人民大学 四
  • TCP/IP详解 卷1:协议 学习笔记 第二十三章 TCP的保活定时器

    一个TCP连接建立 然后经过任意时间 且中间路由器可以崩溃和重启 电话线可以挂断再接通 而连接依然保持 只要两端主机没有被重启 这意味着两端不交换任何信息 然而许多时候一个服务器希望知道客户主机是否崩溃 许多实现提供的保活定时器可提供这种能