tcp 超时计时器

news2024/11/19 21:17:37

在 TCP(传输控制协议)中有以下四种重要的计时器:

  1. 重传计时器(Retransmission Timer)

    • 作用:用于处理数据包丢失的情况。当发送方发送一个数据段后,就会启动重传计时器。如果在计时器超时之前没有收到接收方对该数据段的确认(ACK),发送方就会认为这个数据段丢失了,进而重新发送这个数据段。
    • 示例:假设主机 A 向主机 B 发送一个数据段,发送后启动重传计时器,设置时间为 3 秒。如果 3 秒内没有收到主机 B 发送的 ACK 确认该数据段已接收,主机 A 就会重新发送这个数据段。
    • 原理细节:重传时间的计算是一个复杂的过程。它通常是根据往返时间(RTT,Round - Trip Time)来估算的。RTT 是指一个数据段从发送出去到收到对应的确认所经历的时间。最初,TCP 会对 RTT 进行一个初始估计,随着通信的进行,会不断根据实际的往返时间来更新这个估计值,从而动态地调整重传计时器的超时时间,使重传策略更加合理。
  2. 持续计时器(Persistent Timer)

    • 作用:主要用于处理零窗口大小通知的情况。当接收方的接收缓冲区已满,会向发送方发送一个窗口大小为 0 的通知。发送方收到这个通知后就会停止发送数据,直到接收方重新打开窗口。但是接收方可能由于某些原因(如进程繁忙等)无法及时发送新的窗口大小更新通知,这时候持续计时器就会起作用。当持续计时器超时,发送方会发送一个字节的数据段,接收方会在收到这个数据段后返回一个确认,这个确认中就包含了当前接收窗口的大小,这样发送方就可以根据这个窗口大小来判断是否可以继续发送数据。
    • 示例:主机 A 向主机 B 发送数据,主机 B 的接收缓冲区满了,给主机 A 发送窗口大小为 0 的通知。主机 A 收到通知后停止发送并启动持续计时器。假设持续计时器设置为 60 秒,60 秒后主机 A 发送一个字节的数据给主机 B,主机 B 收到后返回确认信息告知当前窗口大小,若窗口大小不为 0,主机 A 就可以继续发送数据。
    • 原理细节:这种机制可以有效地防止因为接收窗口长时间关闭而导致的死锁情况。持续计时器的值一般是通过系统设置的,并且可以根据网络环境等因素进行适当调整。
  3. 保活计时器(Keep - Alive Timer)

    • 作用:用于检测连接的对端是否还存活。在一个长时间没有数据交互的 TCP 连接中,发送方可以通过保活计时器来定期发送一个探测报文段,来检查连接是否还可用。如果连续发送多个探测报文段后都没有收到对方的响应,就可以认为连接已经中断,进而可以释放相关的资源。
    • 示例:有一个 TCP 连接在两个服务器之间建立,但是经过一段时间(比如 2 小时)没有数据传输。此时保活计时器开始工作,假设保活计时器设置为每 75 分钟发送一次探测报文段。发送方发送探测报文段后,如果在一段时间内没有收到对方的响应,经过几次尝试后,就可以判定连接失效,关闭连接并释放资源。
    • 原理细节:保活计时器的时间间隔和探测次数等参数通常是可以配置的。不同的操作系统可能有不同的默认设置。这个计时器的存在有助于及时清理那些实际上已经失效但没有被正常关闭的连接,节省系统资源。
  4. 时间等待计时器(Time - Wait Timer)

    • 作用:当 TCP 连接的一方主动关闭连接时,会进入 TIME - WAIT 状态,此时时间等待计时器开始计时。这个状态和计时器主要是为了确保连接的正常关闭,防止旧连接的重复数据包对新连接造成干扰。在 TIME - WAIT 状态下,该连接会停留一段时间,这个时间足以让网络中延迟的数据包全部到达目的地或者自然过期。
    • 示例:主机 A 主动关闭和主机 B 的 TCP 连接,主机 A 进入 TIME - WAIT 状态,时间等待计时器开始计时,假设计时时间为 2MSL(MSL 是最长报文段寿命,Maximum Segment Lifetime)。在这 2MSL 时间内,主机 A 会等待可能延迟的数据包到达,并且丢弃来自旧连接的迟到数据包,确保连接的干净关闭。
    • 原理细节:2MSL 的时间设置是基于网络数据包生存时间的考虑。一个数据段在网络中最多存活 MSL 时间,通过等待 2MSL 时间,可以保证在这个连接上发送的所有数据包都从网络中消失,避免对后续相同 IP 地址和端口组合的新连接产生影响。例如,如果没有这个等待时间,旧连接的延迟数据包可能会被新连接误认为是新的数据,从而导致数据混乱。
  5. 网络:TCP分割数据以及MSL、MTU、MSS的关系_tcp msl-CSDN博客

计算机网络微课堂第026讲 可靠传输的实现机制 — 回退N帧协议(有字幕有背景音乐版)_哔哩哔哩_bilibili

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

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

相关文章

《Probing the 3D Awareness of Visual Foundation Models》论文解析——多视图一致性

一、论文简介 论文讨论了大规模预训练产生的视觉基础模型在处理任意图像时的强大能力,这些模型不仅能够完成训练任务,其中间表示还对其他视觉任务(如检测和分割)有用。研究者们提出了一个问题:这些模型是否能够表示物体…

【论文阅读】WaDec: Decompiling WebAssembly Using Large Language Model

论文阅读笔记:WaDec: Decompiling WebAssembly Using Large Language Model 1. 来源出处 论文标题: WaDec: Decompiling WebAssembly Using Large Language Model作者: Xinyu She, Yanjie Zhao, Haoyu Wang会议: 39th IEEE/ACM International Conference on Automated Softwar…

【数字孪生】从Abaqus到Unity有限元应力云图

从abaqus到unity: 目录 1. 数据准备 1.1 abaqus中提取element rpt文件 element rpt文件格式: 1.2 abaqus中提取node rpt文件: node rpt文件格式: 2. python预处理以上数据: 2.1 提取node rpt中的节点坐标及应力…

一次需升级系统的wxpython安装(macOS M1)

WARNING: The scripts libdoc, rebot and robot are installed in /Users/用户名/Library/Python/3.8/bin which is not on PATH. 背景:想在macos安装Robot Framework ,显示pip3不是最新,更新pip3后显示不在PATH上 参看博主文章末尾 MAC系统…

MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择

文章目录 MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择一、MySQL 主备基础原理(一)主备关系与数据同步(二)主备切换流程 二、主备延迟分析(一)主备延迟的定义与计算&#xff08…

跨越网络边界:IPv6与零信任架构的深度融合

2024年,工信部发布了《关于开展“网络去NAT”专项工作 进一步深化IPv6部署应用的通知》,加速了国内网络由IPv4向IPv6的转型步伐。未来,各行各业将逐步去NAT,逐步向IPv6迁移。在此过程中,网络安全解决方案和产品能力将面…

Linux—ln(link files)命令使用方法(How to create links on Linux)

Linux—ln(link files)命令使用方法 在 Linux 系统中工作时,需要在不同的目录中使用相同的文件时,不必在每个目录下都复制一份文件,这样不仅浪费磁盘空间,还会导致文件管理上的混乱。 ln(link files) 便是…

我要成为算法高手-位运算篇

目录 1. 判断字符是否唯一2. 消失的数字3. 两整数之和4. 只出现一次的数字II5. 消失的两个数字 前情提要:如果对一些常见的二进制位运算不熟悉,请看这篇文章: 常见的位运算 1. 判断字符是否唯一 面试题 01.01. 判定字符是否唯一 - 力扣&…

1Panel 推送 SSL 证书到阿里云、腾讯云

本文首发于 Anyeの小站,点击链接 访问原文体验更佳 前言 都用 CDN 了还在乎那点 1 年证书钱么? 开句玩笑话,按照 Apple 的说法,证书有效期不该超过 45 天。那么证书有效期的缩短意味着要更频繁地更新证书。对于我这样的“裸奔”…

23种设计模式-访问者(Visitor)设计模式

文章目录 一.什么是访问者模式?二.访问者模式的结构三.访问者模式的应用场景四.访问者模式的优缺点五.访问者模式的C实现六.访问者模式的JAVA实现七.代码解释八.总结 类图: 访问者设计模式类图 一.什么是访问者模式? 访问者模式(…

JavaScript——DOM编程、JS的对象和JSON

一、DOM编程 DOM(Document Object Model)编程:就是使用document对象的API,完成对网页HTML文档进行动态修改,以实现网页数据,和样式动态变化效果的编程。 (一)DOM获取元素的多种方法 1.查找元素的函数 getElementById("id值…

Pr:音频过渡

Adobe Premiere Pro 自带一组共三个音频过渡 Audio Transitions效果。 对音频剪辑之间应用交叉淡化 Crossfade过渡,操作方式类似于应用视频过渡效果。 对于交叉淡化,要保证前剪辑的出点之后及后剪辑的入点之前有足够的预留内容(也称“手柄”&…

大数据-226 离线数仓 - Flume 优化配置 自定义拦截器 拦截原理 拦截器实现 Java

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

stm32启动过程解析startup启动文件

1.STM32的启动过程模式 1.1 根据boot引脚决定三种启动模式 复位后,在 SYSCLK 的第四个上升沿锁存 BOOT 引脚的值。BOOT0 为专用引脚,而 BOOT1 则与 GPIO 引脚共用。一旦完成对 BOOT1 的采样,相应 GPIO 引脚即进入空闲状态,可用于…

如何在项目中用elementui实现分页器功能

1.在结构部分复制官网代码&#xff1a; <template> 标签: 这是 Vue 模板的根标签&#xff0c;包含所有的 HTML 元素和 Vue 组件。 <div> 标签: 这是一个普通的 HTML 元素&#xff0c;包裹了 el-pagination 组件。它没有特别的意义&#xff0c;只是为了确保 el-pagi…

15-大模型 RAG 经验篇

一、LLMs 已经具备了较强能力了&#xff0c;存在哪些不足点? 在 LLM 已经具备了较强能力的基础上&#xff0c;仍然存在以下问题&#xff1a; 幻觉问题&#xff1a;LLM 文本生成的底层原理是基于概率的 token by token 的形式&#xff0c;因此会不可避免地产生"一本正经…

数据结构-二叉树及其遍历

🚀欢迎来到我的【数据结构】专栏🚀 🙋我是小蜗,一名在职牛马。🐒我的博客主页​​​​​​ ➡️ ➡️ 小蜗向前冲的主页🙏🙏欢迎大家的关注,你们的关注是我创作的最大动力🙏🙏🌍前言 本篇文章咱们聊聊数据结构中的树,准确的说因该是只说一说二叉树以及相…

Iview DatePicker 仅允许选择当前月份及以后的月份

iview DatePicker之前月份禁用且下月可用 html代码 <DatePicker type"month" :options"options4" :value"dialogForm.estimatedStartTimeWithCreate" on-change"monthTime($event, loadDateStart)" placeholder"请选择时间&q…

r-and-r——提高长文本质量保证任务的准确性重新提示和上下文搜索的新方法可减轻大规模语言模型中的迷失在中间现象

概述 随着大规模语言模型的兴起&#xff0c;自然语言处理领域取得了重大发展。这些创新的模型允许用户通过输入简单的 "提示 "文本来执行各种任务。然而&#xff0c;众所周知&#xff0c;在问题解答&#xff08;QA&#xff09;任务中&#xff0c;用户在处理长文本时…

【GPTs】Ai-Ming:AI命理助手,个人运势与未来发展剖析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | GPTs应用实例 文章目录 &#x1f4af;GPTs指令&#x1f4af;前言&#x1f4af;Ai-Ming主要功能适用场景优点缺点 &#x1f4af;小结 &#x1f4af;GPTs指令 中文翻译&#xff1a; defcomplete_sexagenary&#xff08;年&a…