【网络】详解TCP协议的延时应答、捎带应答、异常处理

【网络】详解TCP协议的延时应答和捎带应答

  • 一. 延时应答
    • 模型
  • 二. 捎带应答
    • 模型
    • 再谈四次挥手
  • 三. 异常处理
    • 1.一方出现进程崩溃
    • 2.一方出现关机(正常流程关机)
    • 3.一方出现断电
    • 4.网线断开

一. 延时应答

也是基于滑动窗口,想要尽可能的去提高效率。延时应答就是说,接收方收到数据之后,不立即返回ACK,而是要有一定的延迟。主要目的是为了给程序一些消耗数据的时间,使得返回的窗口尽可能大。

延时应答也不仅仅以时间为唯一的判断标准:

  • 数量限制:每隔N个包就应答⼀次(可以减少返回ACK的次数,提高效率);
  • 时间限制:超过最⼤延迟时间就应答⼀次;

具体的数量和时间可以自己进行定义。

模型

在这里插入图片描述
这个模型展示了每两个数据包返回一个ACK的延时应答。

二. 捎带应答

基于延时应答,为了进一步的提高效率,引入了捎带应答的机制。不同于延时应答要增大窗口的目的,延时应答主要是去尽可能的合并一些能合并的数据包,从而提高效率。

模型

在这里插入图片描述
正常来说,服务器收到request之后会立即返回ACK,而response需要经过计算才能返回。但因为TCP有延时应答的特征,正好弥补了这个时间空隙。从而可以合并这两个数据包一起返回(合并只需要将response报文中的ACK标志位设置为1)。

再谈四次挥手

之前谈到四次挥手的中间两次有可能会合并,那什么时候会合并呢?在了解了延时应答和捎带应答这样的机制后,我们就应该知道,如果ACK(系统内核控制)和FIN(socket.close()控制)时间相差较短,满足了延时应答以及捎带应答合并两个报文的条件,就可以合并。

三. 异常处理

1.一方出现进程崩溃

TCP连接的生命周期,可以比进程长一些,即使出现进程崩溃,也能完成四次挥手断开连接。

2.一方出现关机(正常流程关机)

当主机触发关机操作时,会强制结束所有的进程,也会触发四次挥手,断开连接。关机的一方会向对方发送FIN,对端也会向关机的一方发送FIN,如果这个过程进行的比较快,就能正常完成。但是如果不快,对端发送的FIN就收不到ACK了(已经关机)。此时就会超时重传,重传几次没有结果,就会单方面释放连接。

3.一方出现断电

  1. 接收方断电:发送方就会 发现突然没有ACK了,就要重传,重传几次还是不行,就会尝试“复位”连接(RST),此时的RST也不会有回应,单方面断开连接。
  2. 发送方断电:接收方在阻塞等待发送方的信息,但是发送方断电了,那接收方就一直在等待吗?其实不然,接收方会周期性的发送“心跳包”(不携带数据的特殊的包)来确认发送方是否还存活。如果意识到对方挂了,也会单方面的释放连接。

4.网线断开

这就是 3 中 1 和 2 的结合了。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用Java爬虫API,轻松获取taobao商品SKU信息

在电子商务的世界里,SKU(Stock Keeping Unit,库存单位)是商品管理的基础。对于商家来说,SKU的详细信息对于库存管理、价格策略制定、市场分析等都有着重要作用。taobao作为中国最大的电子商务平台之一,提供…

制药企业MES与TMS的数据库改造如何兼顾安全与效率双提升

*本图由AI生成 在全球制造业加速数字化转型的浪潮中,一家来自中国的、年营业额超过200亿元的制药企业以其前瞻性的视角和果断的行动,成为该行业里进行国产化改造的先锋。通过实施数据库改造试点项目,该企业实现了其关键业务系统MES&#xff0…

IEC104规约的秘密之九----链路层和应用层

104规约从TCP往上,分成链路层和应用层。 如图,APCI就是链路层,ASDU的就是应用层 我们看到报文都是68打头的,因为应用层报文也要交给链路层发送,链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

【初阶数据结构】归并排序 - 分而治之的排序魔法

文章目录 前言1. 什么是归并排序?1.1 归并排序的步骤 2. 归并排序的代码实现2.1 归并排序代码的关键部分讲解2.1.1 利用递归2.1.2 将拆解的数组的元素放到一个临时空间中进行重新排序2.1.3 将在临时空间中排好的数组复制到目标数组中 3. 归并排序的非递归写法 前言 …

CTFHub | HTTP协议 - 请求方式 | 题解实操

CTFHUB 的 HTTP 请求方式题目为参与者带来了独特的挑战和学习机会。在这个题目中,要求参与者使用特定的方式请求来获取 flag。这不仅考验了参与者对 HTTP 请求方法的理解和掌握程度,还促使他们探索不同的工具和技术来解决问题。 题目背景设定在网络安全…

关于MyBatis-Plus 提供Wrappers.lambdaQuery()的方法

实例&#xff1a; private LambdaQueryWrapper<XXX> buildQueryWrapper(XXXBo bo) { Map<String, Object> params bo.getParams(); LambdaQueryWrapper<XXX> lqw Wrappers.lambdaQuery(); lqw.eq(bo.getOrgId() ! null, XXX::getOrgId, bo.getOrgId()); lq…

拼三角问题

欢迎来到杀马特的主页&#xff1a;羑悻的小杀马特.-CSDN博客 目录 一题目&#xff1a; 二思路&#xff1a; 三解答代码&#xff1a; 一题目&#xff1a; 题目链接&#xff1a; 登录—专业IT笔试面试备考平台_牛客网 二思路&#xff1a; 思路&#xff1a;首先明白能组成三角形…

新生入门季 | 学习生物信息分析,如何解决个人电脑算力不足的问题?

随着生物信息学在科研和教育中的快速普及&#xff0c;越来越多的新生开始接触基因组测序、RNA分析等复杂计算任务。然而&#xff0c;在面对这些大规模数据时&#xff0c;个人电脑的算力往往显得捉襟见肘。你是否也在为自己的笔记本性能不足而苦恼&#xff1f; 这篇文章将为你提…

JavaWeb——Maven(4/8):Maven坐标,idea集成-导入maven项目(两种方式)

目录 Maven坐标 导入Maven项目 第一种方式 第二种方式 Maven坐标 Maven 坐标 是 Maven 当中资源的唯一标识。通过这个坐标&#xff0c;我们就能够唯一定位资源的位置。 Maven 坐标主要用在两个地方。第一个地方&#xff1a;我们可以使用坐标来定义项目。第二个地方&#…

FreeRTOS - 软件定时器

在学习FreeRTOS过程中&#xff0c;结合韦东山-FreeRTOS手册和视频、野火-FreeRTOS内核实现与应用开发、及网上查找的其他资源&#xff0c;整理了该篇文章。如有内容理解不正确之处&#xff0c;欢迎大家指出&#xff0c;共同进步。 1. 软件定时器 软件定时器也可以完成两类事情…

Spring AI Alibaba 接入国产大模型通义千问

整体介绍 本文是一个详细的例子&#xff0c;讲解了如何基于spring ai 来调用通义千问国产大模型&#xff0c;有详细的代码和配置&#xff0c;并且免费。 Spring AI&#xff1a;简化Java开发者构建AI应用的统一框架 在过去&#xff0c;Java 开发者在构建 AI 应用时面临的一大…

【ios】解决xcode版本过低无法真机调式的问题

最低要求和支持的 SDK&#xff1a;Xcode - 支持 - Apple Developer 我的Xcode版本是14.2 手机系统版本是iOS15.8.3 步骤一 在终端中运行 open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 步骤二 先去https://github.com/fi…

AI 设计工具合集

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏AI_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; ​ 前言: AI 视频&#xff0c;科技与艺术的精彩融合。它借助先进的人工智能技术&#xff0c;为影像创作带来全新可能。本书…

星海智算:【萤火遛AI-Stable-Diffusion】无需部署一键启动

部署流程 1、注册算力云平台&#xff1a;星海智算 https://gpu.spacehpc.com/ 2、创建实例&#xff0c;镜像请依次点击&#xff1a;“镜像市场”->“更换”->“AI绘画”->“萤火遛AI-Stable Diffusion”。 程序首次启动可能需要几分钟&#xff0c;待实例显示“运行…

2009年国赛高教杯数学建模A题制动器试验台的控制方法分析解题全过程文档及程序

2009年国赛高教杯数学建模 A题 制动器试验台的控制方法分析 汽车的行车制动器&#xff08;以下简称制动器&#xff09;联接在车轮上&#xff0c;它的作用是在行驶时使车辆减速或者停止。制动器的设计是车辆设计中最重要的环节之一&#xff0c;直接影响着人身和车辆的安全。为了…

MOE论文详解(4)-GLaM

2022年google在GShard之后发表另一篇跟MoE相关的paper, 论文名为GLaM (Generalist Language Model), 最大的GLaM模型有1.2 trillion参数, 比GPT-3大7倍, 但成本只有GPT-3的1/3, 同时效果也超过GPT-3. 以下是两者的对比: 跟之前模型对比如下, 跟GShard和Switch-C相比, GLaM是第一…

[WPF初学到大神] 1. 什么是WPF, MVVM框架, XAML?

什么是WPF? WPF(Windows Presentation Foundation) 包含XAML标记语言和后端代码来开发桌面应用程序的. 用VS新建项目有WPF(.Net Framework和.Net应用程序), 该怎么选? 首选 .NET 应用程序(.NET Core 或 .NET 5/6/7/8新版本)拥有更好的性能、跨平台Windows, Linux, Mac支…

电气自动化13:PLC控制硬件组成与工作扫描原理

1.PLC硬件组成&#xff1a; CPU&#xff08;中央处理器&#xff09; 存储器 系统程序存储器用户程序存储器分为&#xff1a;用户程序存储器&#xff08;程序区&#xff09;、功能存储器&#xff08;数据区&#xff09; 输入/输出&#xff08;I/O&#xff09;接口电路 电源 …

SpringBoot优雅下线

一&#xff0c;什么是优雅下线 当我们需要部署新版本代码的时候&#xff0c;需要重启服务&#xff0c;这个时候可能会出现一些问题&#xff0c;比如之前服务正在处理的请求还在处理&#xff0c;这个时候如果强制的停止服务&#xff0c;会造成数据丢失或者请求失败的情况。那么…

后端Web开发

一、Maven &#xff08;一&#xff09;、概述 视频中要用的是jdk11 &#xff08;二&#xff09;、 idea集成Maven 1.配置Maven环境 2.创建Maven项目 3.导入Maven项目 法一&#xff1a; 法二&#xff1a; &#xff08;三&#xff09;、依赖管理 1.依赖配置 2.依赖传递 3.依…