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

TCP/UDP协议深度解析(一):UDP特性与TCP确认应答以及重传机制

在这里插入图片描述


🔍 开发者资源导航 🔍
🏷️ 博客主页: 个人主页
📚 专栏订阅: JavaEE全栈专栏

前言

在网络通信的世界里,传输层协议如同交通规则,决定了数据包如何从源头抵达目的地。其中UDPTCP就像两个性格迥异的工程师:
🔹 ​UDP是"随性的自由派"——不建立连接、不做可靠性保证,却以极简的报文结构和低延迟,成为直播、游戏等实时应用的利器;
🔹 ​TCP则是"严谨的保守派",通过十大核心机制构建可靠性传输的"铜墙铁壁",但也付出了连接开销的代价。

本系列将带您深入TCP的精密设计,首期我们先从UDP的极简哲学切入,再重点解析TCP最基础的两个可靠性机制:
✅ ​确认应答(ACK)​​:每个数据包都有"电子回执"的奥秘
✅ ​超时重传(RTO)​​:动态计算的等待时间如何避免网络僵局

UDP

UDP(User Datagram Protocol,用户数据报协议)是传输层的核心协议之一,其设计目标是简单、高效、低延迟,适用于不需要可靠传输的场景。

UDP特性:无连接,不可靠传输,面向数据报以及全双工。

 那么它为什么是不可靠的呢?我们先从UDP的结构说起。😇

UDP协议构成

  • 源端口号 & 目的端口:五元组之一。
  • 长度:载荷+头部的总大小。
  • 校验和:用于检验数据是否出错。

UDP结构非常简单,由载荷和报头组成,报头存储了五元组以及长度校验和这些元素,但是它们的存储大小都仅有2字节,这也就导致了UDP长度的大小被限制在了0->65535之间,也就是64kb的大小

UDP出现的时期较早,换做当时来看64kb或许绰绰有余,但是现在非常小了,而这也就导致了UDP的适用范围远没有TCP广泛。

 那么当时如果传输大数据的时候有什么方案呢?🧐

1.应用层代码做拆包操作,一个大的应用层数据包拆成多个小的包,使用多个UDP数据报传输。❌缺点:工作量大,需要写大量的逻辑来实现分包组包功能,并且需要复杂的验证。

2.使用TCP协议,✅优点:没有数据包长度限制,原则上选简单,不容易出错的~

因此在传输较大的内容时,尽量避免使用UDP  。

 校验和

校验和是UDP的数据检验机制,用于检验数据否发生变化,在信息传输过程中光信号、电信号、电磁波可能会受到外界的干扰,可能会让高低电平/光信号发生改变,这种现象我们称为“比特翻转”。😊

检验流程:

  1. 发送之前把整个数据包代入进去计算一遍校验和。
  2. 把校验和放入UDP数据报里面一起传输过去。
  3. 接收方收到后重新计算一下校验和,如果不一致直接丢弃。

UDP校验和运算比较简单,例如使用CRC方式进行校验(循环冗余校验)把每个字节(除了校验和位置的部分之外都当做一个整数当做累加,即使溢出也没关系,继续加最终结果,crc校验和。

如果数据到对端,数据出现错误,再次计算,就会和第一个校验和不一样。

⚠️极特殊情况:经过多次翻转后,校验和和数据反转后恰好一致(例如+1又-1)。

本来比特翻转就是小概率事件,如果恰好两个翻转抵消了影响,小之又小,因此我们可以忽略这种情况。

总结 

上述内容基本涵盖了UDP的大多数机制,而它不可靠也是因为其简陋机制造成的:

  • 不确认​UDP发送数据后,不会等待接收方的确认(ACK)。如果数据在传输中丢失(如网络拥塞、路由错误、校验和失败等),发送方无法感知,也不会重传。
  • 不重传​:即使检测到丢包(如通过应用层监控),UDP本身也不会自动重传数据。重传逻辑需由应用层自行实现(如QUIC协议在UDP上实现了重传)。
  • 无顺序保证:UDP数据报可能因网络路径不同而乱序到达,但协议本身不会对数据包排序。接收方可能收到乱序数据,需应用层处理(如音视频流中的时间戳)。

TCP协议

TCP(Transmission Control Protocol,传输控制协议)是互联网核心协议之一,属于传输层,旨在提供可靠的、面向连接的数据传输服务。😎

 TCP可靠传输的两个核心机制:确认应答,超时重传。

TCP协议构成

TCP协议在组成上要复杂的多。

  • 源端口号 & 目的端口号:传输层的核心内容,属于五元组之一。
  • 序号 & 确认序号:用于确认应答。
  • 四位首部长度:长度指的是除了数据之外的长度,虽然取值是0-15,但是它的一个单位代表四个字节,不必担心不够用的情况。
  • 保留部分:考虑到以后可能需要扩展,现在先不用提前占个位置。
  • 六位标志位:代表TCP的一些特定功能。
  • 窗口大小:用于滑动窗口的实现以及控制流量大小。
  • 校验和:和UDP的校验和同样的作用,用于检验是否发生“比特翻转”。
  • 选项:补充内容,可有可无。

确认应答

UDP的不可靠性之一就是没有确认对方是否收到的机制,如果过程中发生丢包的情况无法获知,而TCP在这方面可谓是下足了功夫👍。

TCP协议要求在发送信息后接收方要发送一个“应答报文”给发送方,如果发送方没有收到这个“应答报文”,则代表这个数据发生了丢包情况。

TCP的标记为ack为1就代表它是一个应答报文,应答报文不携带业务数据。

 如果仅依靠这些机制会出现一种情况,如果你一次发送了好多信息,发送方如何知道那个收到了,那个没收到?😟

 因此我们需要引入其他机制,而TCP的做法是给传输的数据进行编号。TCP连接建立时,发生方随机生成初始序列号,每次发送数据后:序列号按数据字节数递增。

在发送数据时发送一个序号,接收方发送ack确认报文的时候也会根据这个序号发送一个确认序号。 

发送方在发送数据时将本次要发送字节流的第一个字节当做本次的序号,例如:1001-1008,本次序号为1001。

而接受方接收到数据后将本次接收到的字节流的结尾序号+1当做确认序号,例如:1001-1008,确认序号为1009。

 确认序含义:该序号前面的序号都已经收到,接下来你从这个序号开始发送。

除此之外如果出现了后发先至的问题(由于网络路径不同导致的),接受方也可以根据接受到的序号来进行重新排序,确保应用层读到的数据顺序是正确的😆。


确认应答机制是TCP的丢包检验机制,仅有检验机制肯定是不行的,还需要有重传机制,下面我将介绍两种常见的重传机制。

快速重传

当 TCP ​发生丢包(例如中间某个数据段丢失)但后续的新数据被成功接收时,接收方返回的 ​确认序号(ACK)​ 会 ​停留在最后一个按序接收的字节序号,而不会确认新数据(即使新数据已收到)。

而发送方收到 ​3 个重复的 ACK(即发送方连续收到对同一序号的确认),就会触发快速重传机制。

ack丢失情况

如果在数据传输过程中发生了ack丢失的情况,但是后续的ack却收到了,则会覆盖前面丢失的ack。

快速重传仅针对谁丢了,就重传谁,其他已经收到的数据无需重传,适用于少量丢包(如单个数据段丢失)。

超时重传

超时重传是 TCP 可靠性传输的核心机制之一,用于在数据包(或 ACK)丢失无法通过快速重传(Fast Retransmit)恢复时,通过计时器触发数据包的重传。它的设计目标是在网络不可靠的情况下保证数据最终到达接收方

​如果发送方发送数据后,在 RTO(Retransmission Timeout)时间内没有收到任何对应的 ACK,那么就认为发生了严重的网络问题,发送方会将这些未收到ack的数据全部重新发送过去。 

RTO 不是固定值,而是基于 RTT(Round-Trip Time,往返时间)​ 动态计算,如果发现超时后,会延长这个时间,延长达到一定次数后就会放弃此次传输。

 在重发过程中,可能会出现接收方收到同一份数据的情况,接收方会对接受的数据进行去重操作。


下期预告


在 ​​《TCP/UDP协议深度解析(二):TCP连接管理全解》​​ 中,我们将深入探讨:
✅ ​三次握手​ 的隐藏细节——为什么不是两次或四次?
✅ ​四次挥手​ 的漫长告别——TIME_WAIT状态的真正意义

相关文章:

TCP/UDP协议深度解析(一):UDP特性与TCP确认应答以及重传机制

🔍 开发者资源导航 🔍🏷️ 博客主页: 个人主页📚 专栏订阅: JavaEE全栈专栏 前言 在网络通信的世界里,传输层协议如同交通规则,决定了数据包如何从源头抵达目的地。其中UDP和TCP就…...

Linux线程概念及常用接口(1)

目录 1. Linux线程概念 什么是线程 线程的优点 线程的缺点 线程异常 线程用途 2. Linux进程VS线程 进程和线程 关于进程线程的问题 3. Linux线程控制 POSIX线程库 创建线程 线程ID及进程地址空间布局 线程终止 线程等待 为什么需要线程等待? 4. 分离线程 1. Linux线…...

Qt+OPC开发笔记(三):OPC客户端订阅特点消息的Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/148868209 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…...

《美化生活》投稿简介

《美化生活》杂志是国家新闻出版署批准的正规期刊,是面向全国发行的文学艺术刊。本刊坚持“传播新理念,交流新经验”办刊方针,坚持“指导消费、丰富生活、美化心灵、雅俗共赏”的宗旨,以其丰富的内容,融学术性与技术性…...

如何为虚拟机上的 Manjaro Linux启用 VMware 拖放功能

如果你的Manjaro 发行版本是安装在 VMware Workstation Player 上使用的 ,而且希望可以通过拖放功能将文件或文件夹从宿主机复制到客户端的Manjaro 里面,那么可以按照以下的步骤进行操作,开启拖放功能。 在 VMware 虚拟机上安装 Manjaro 后&…...

VIVADO导出仿真数据到MATLAB中进行分析

VIVADO导出仿真数据到MATLAB中进行分析 目录 前言 一、导出仿真数据需要编写的RTL代码 二、MATLAB读入txt文件中的数据 三、需要注意的点 总结 前言 在使用 Xilinx Vivado 进行 FPGA 开发时,如何将 RTL 仿真生成的数据导出,进行进一步分析与可视化&…...

Harmony状态管理@Event

ArkUI Event装饰器:实现子组件向父组件通信的规范方式 概述 Event装饰器是ArkUI框架中用于规范组件间通信的重要工具,特别是在需要子组件向父组件请求更新Param变量的场景下。它通过回调机制实现数据的双向同步,是组件化开发中不可或缺的一…...

算力服务器选型

算力服务器选型需结合应用场景、算力需求及扩展性,核心要素如下: 应用定位: AI 训练 / 推理:优先高算力 GPU(如 NVIDIA A100、H100,或 RTX4090),搭配多核 CPU(如 Intel …...

基于目标驱动的分布式敏捷开发

研究结论 风险对项目目标的影响 时间目标:需求管理不当(如需求优先级不明确、多产品负责人需求冲突)、架构变更导致的返工、跨站点协调问题(如第三方依赖、通信基础设施不足)是影响项目时间的主要风险因素。质量目标&…...

大数据在UI前端的应用拓展:用户行为分析的深度挖掘

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在当今数字化时代,大数据已成为推动各行业发展的核心动力之一。对于 UI 前端而言&…...

elk+filebeat收集springboot项目日志

目录 步骤 1: 安装和配置Elasticsearch 步骤 2: 安装和配置Logstash(可选) 步骤 3: 安装和配置Filebeat 步骤 4: 安装和配置Kibana 要使用ELK(Elasticsearch, Logstash, Kibana)堆栈和Filebeat来收集Spring Boot项目的日志&am…...

华为云Flexus+DeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例

华为云FlexusDeepSeek征文 | 华为云MaaS平台上的智能客服Agent开发:多渠道融合应用案例 🌟 嗨,我是IRpickstars! 🌌 总有一行代码,能点亮万千星辰。 🔍 在技术的宇宙中,我愿做永不…...

SQL关键字三分钟入门:UPDATE —— 修改数据

在数据库操作中,除了添加新记录外,我们还需要经常修改已有的记录。例如: 更新用户的个人信息;调整订单的状态;更改产品的价格。 这时候就需要用到 SQL 中非常基础但极其重要的关键字 —— UPDATE! 它是用…...

用Rust写平衡三进制加法器

1、三进制加法器的发展 最初的平衡三进制加法是采用了三选一结构(github原文),这位大佬也很厉害,他是硬件都弄了出来的,也写了虚拟机,甚至用这三态多路复用器弄出了可以存状态的硬件,但我没有去看了,因为当…...

【AI时代速通QT】第三节:Linux环境中安装QT并做测试调试

目录 引言 一、Linux QT开发环境的核心要素 1.1 编译器(g)与构建工具(make) 1.2 搞定 OpenGL 依赖 二、核心步骤——安装 Qt Creator 2.1 获取官方在线安装器 2.2 赋予文件执行权限 2.3 运行图形化安装向导 三、Linux上创…...

论文阅读:2025 arxiv Qwen3 Technical Report

https://arxiv.org/pdf/2505.09388 https://www.doubao.com/chat/9918384373236738 文章目录 论文翻译Qwen3技术报告摘要1 引言 论文翻译 Qwen3技术报告 Qwen团队 摘要 在这项工作中,我们介绍了Qwen模型家族的最新版本Qwen3。Qwen3包含一系列大型语言模型&…...

Vue3+el-table-v2虚拟表格大数据量多选功能详细教程

Vue3el-table-v2虚拟表格大数据量多选功能详细教程 本教程基于 Element Plus 组件库的 el-table-v2(假设你使用虚拟滚动表格),实现大数据量场景下的多选功能,并包含了全选、反选、已选行展示、清除选择等完整交互。 一、项目背景与…...

开源跨平台的轻量 C# 编辑器

NetPad一个基于.NET 开源、跨平台的 C# 编辑器,目的是创建一个开源的、支持 Web 的跨平台替代方案,从而为开发者提供便利的编程环境并为非 Windows 环境下的开发者提供一个可替代 LINQPad 的实用工具。它以.NET SDK 作为基础运行时环境,利用E…...

QT多线程

使用多线程的好处 假如当前窗口要进行一段非常复杂的逻辑处理,在单线程的情况下,是无法操控界面UI的,点击界面UI没有响应。此时就要用到多线程。 注意: 1、默认的线程在Qt中称之为窗口线程,也叫主线程,负…...

了解公共部门中的数据网格:支柱、架构和示例

作者:来自 Elastic Elastic Platform Team 想想那些像公共健康记录、城市规划模型等项目背后的所有数据。政府机构一直在产生大量数据。当数据分散在云平台、本地系统或像卫星和应急响应中心这样的专业环境中时,情况变得更加复杂。找到信息变得困难&…...

关于一维数组和字符串的详细讲解(从属于GESP三级)

本章内容 一维数组基础 字符串基础 就像打磨一串符号,每个位置都要精准对待,才能串起完整的风景。坚持下去,小细节终将成就大格局。 一、⼀维数组基础 1 📚 定义 典型写法 说明 易错/拓展 int a[5]; 编译期长度常量&#x…...

【驱动设计的硬件基础】PCI和PCI-E

打开电脑主机,你会看到主板上一排长短不一的插糟:矮胖的 PCI 插糟还插着古老的声卡,旁边细长的 PCI-E 插糟则牢牢卡住显卡、高速网卡等核心设备。这些看似普通的插糟,其实是计算机硬件沟通的 "高速公路",承载…...

【学习记录】Git Base使用-免密连接代码仓库

github(JL765)和gitee(JL765/git-test01)都可以用于管理代码 在windows中,可以通过Git Base软件(Git - Downloading Package)和仓库进行连接 下载略过 github登录 ssh -T gitgithub.com # 成…...

android脱糖

前言 另外一篇相关文章:https://androidblog.blog.csdn.net/article/details/148574130 通过sourceCompatibility 和targetCompatibility可以实现低版本写代码高版本输出(详情可查看我的另一篇文件中的:验证各种Java版本 > 一、纯Java项…...

DVWA Brute Force漏洞深度分析与利用指南

DVWA简介 DVWA(Damn Vulnerable Web Application)是一个基于PHP/MySQL的脆弱性Web应用平台,专为安全专业人员设计,用于测试技能和工具。它包含十大安全模块,其中Brute Force(暴力破解)是最基础…...

Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录

目录 🔧Docker 报错“x509: certificate signed by unknown authority”的排查与解决实录 📌 问题背景 🧪 排查过程 步骤 1:确认加速器地址是否可访问 步骤 2:检查 Docker 是否真的使用了镜像加速器 步骤 3&…...

采用ArcGIS10.8.2 进行插值图绘制

一、最终成果图展示 二、软件下载 链接: 百度网盘 请输入提取码 密码:azay 三、软件安装 1、在安装之前需要关闭电脑的防火墙及杀毒软件 设置-隐私和安全性-Windows安全中心-防火墙和网络保护 2、软件解压 (1)【ArcGIS_Desktop_1082_180......】“以管理员身份运行”…...

国产安路FPGA纯verilog视频图像去雾,基于暗通道先验算法实现,提供5套TD工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产安路FPGA相关方案推荐本博主已有的图像处理方案 3、设计思路框架工程设计原理框图输入Sensor之-->GC0308摄像头输入Sensor之-->OV7725摄像头输入Sensor之--…...

利用大型语言模型增强边缘云 AI 系统安全性

大家读完觉得有帮助及的关注和点赞!!! 抽象 随着边缘计算和云系统在 AI 驱动应用中的广泛应用,如何在确保数据隐私的同时保持高效性能已成为一个紧迫的安全问题。本文提出了一种基于联邦学习的数据协作方法,以提高边缘…...

微信小程序中 rpx与px的区别

在微信小程序中的rpx比px方便的多 <!--pages/welcome/welcome.wxml--> <!--rpx替换px--> <image style"width:200rpx;height: 200rpx"src"/images/avatar/3.png"></image> <text>你好&#xff0c;冻梨</text> <but…...

解锁阿里云AnalyticDB:数据仓库的革新利器

AnalyticDB&#xff1a;云数据仓库新势力 在数字化浪潮中&#xff0c;数据已成为企业的核心资产&#xff0c;而云数据仓库作为数据管理与分析的关键基础设施&#xff0c;正扮演着愈发重要的角色。阿里云 AnalyticDB 作为云数据仓库领域的佼佼者&#xff0c;以其卓越的性能、创…...

告别水印烦恼,一键解锁高清无痕图片与视频!

在这个数字化飞速发展的时代&#xff0c;无论是设计小白还是创意达人&#xff0c;都可能遇到这样的困扰&#xff1a;心仪的图片或视频因水印而大打折扣&#xff0c;创意灵感因水印而受限。别急&#xff0c;今天就为大家带来几款神器&#xff0c;让你轻松告别水印烦恼&#xff0…...

前端面试记录

前言&#xff1a;面试题永远是刷不完的&#xff0c;即使刷了一大堆下次面试又忘记了&#xff0c;重要的是组织自己的语言&#xff0c;保持自信&#xff0c;不给自己制造面不过的心理负担&#xff0c;对刷过的题要有个大致印象&#xff0c;好在答题的时候能够多多少少说出点贴近…...

RAG实战基础篇/windows电脑快速部署qwen3:14B

现阶段&#xff0c;在本地部署ollama非常简单&#xff0c;准备好一个有GPU的电脑&#xff0c;十分钟轻松部署qwen3:14b。实现本地的大模型部署。 我这里为了方便起见&#xff0c;直接使用windows电脑下载一个ollama。 访问ollama GIthub地址&#xff1a;ollama开源地址 直接…...

Java SE - 图书管理系统模拟实现

目录 1.设计框架2. 实现用户类3.实现书和书架类4.登录界面的实现5.实现menu方法6.测试菜单选择7.实现一个IFun接口7.1 查找功能的实现7.2 展示功能的实现7.3 增加功能的实现7.4 删除功能的实现7.5 退出功能的实现7.6 借阅功能的实现7.7 归还功能的实现 8.实现IFuntion类型的数组…...

华为HN8145V光猫改华为蓝色公版界面,三网通用,xgpon公版光猫

咸鱼只卖20多元一个&#xff0c;还是xgpon的万兆猫&#xff0c;性价比不错哦 除了没有2.5G网口&#xff0c;其他还行。 改成公版光猫后&#xff0c;运营商是无法纳管光猫&#xff0c;无法后台修改光猫数据及超密。 华为 HN8145V 光猫具有以下特点&#xff1a; 性能方面 高速接…...

【ARM 嵌入式 编译系列 7.5 -- GCC 打印链接脚本各段使用信息】

文章目录 Overview1 在 linker script 中定义符号2 编译并生成 ELF 文件3 使用 nm awk 输出各段地址及大小&#xff08;含单位&#xff09;4 实际输出示例5 进阶建议 Overview 在 GCC 编译生成 elf 后 打印出出数据段的开始地址及结束地址&#xff0c;bss 段的开始地址和结束…...

在大数据求职面试中如何回答分布式协调与数据挖掘问题

在大数据求职面试中如何回答分布式协调与数据挖掘问题 场景&#xff1a;小白的大数据求职面试 小白是一名初出茅庐的程序员&#xff0c;今天他来到一家知名互联网公司的面试现场&#xff0c;面试官是经验丰富的老黑。以下是他们之间的对话&#xff1a; 第一轮提问&#xff1…...

小白成长之路--nginx基础配置(一)

文章目录 一、概述1.1 Nginx 特点1.2 Nginx 作用1.3Nginx工作原理 二、Nginx服务搭建2.1安装2.2 目录结构2.3 配置文件作用2.4 nginx,conf配置文件详解2.5 核心命令2.6 Nginx信号三.Nginx3.1启动 总结 一、概述 Nginx 是开源、高性能、高可靠的 Web服务器 和反向代理服务器&am…...

基于 SpringBoot+JSP 的医疗预约与诊断系统设计与实现

摘要 本研究针对传统医疗预约与诊断流程中存在的效率低下、信息不透明、患者等待时间长等问题&#xff0c;设计并实现了一个基于 SpringBootJSP 的医疗预约与诊断系统。系统采用 B/S 架构&#xff0c;整合了用户管理、科室管理、医生排班、预约挂号、在线问诊、检查检验、诊断…...

C++语言发展历程-2025

C语言发展历程-2025 前言 C是一种高级编程语言&#xff0c;由Bjarne Stroustrup于1979年在贝尔实验室创建&#xff0c;是C语言的扩展和改进版。 C从最初的C with class&#xff0c;经历了C98、C03、C11、C 14、C17、C20、C23多次标准化改造&#xff0c;成为一门多范式、高性…...

Zynq + FreeRTOS + YAFFS2 + SQLite3 集成指南

Zynq FreeRTOS YAFFS2 SQLite3 集成指南 一、系统架构设计 #mermaid-svg-qvuP6slyza89wsiT {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-qvuP6slyza89wsiT .error-icon{fill:#552222;}#mermaid-svg-qvuP6slyz…...

Python基础之函数

代码仓库地址&#xff1a;gitgithub.com:Liucc-123/python_learn.git 函数介绍 函数是组织好的、可重复使用的&#xff0c;用来实现单一、或相关功能的代码段。 函数可以提高应用的模块性和代码的可重复性。python 有许多内置的函数比如 print 打印函数&#xff0c;python 也…...

Python异步爬虫编程技巧:从入门到高级实战指南

Python异步爬虫编程技巧&#xff1a;从入门到高级实战指南 &#x1f680; &#x1f4da; 目录 前言&#xff1a;为什么要学异步爬虫异步编程基础概念异步爬虫核心技术栈入门实战&#xff1a;第一个异步爬虫进阶技巧&#xff1a;并发控制与资源管理高级实战&#xff1a;分布式…...

Redis哨兵模式深度解析与实战部署

Redis哨兵模式深度解析与实战部署 文章目录 Redis哨兵模式深度解析与实战部署一、Redis哨兵模式理论架构详解1.1 哨兵模式的核心架构组成基础架构拓扑图 1.2 哨兵节点的核心功能模块1.2.1 监控模块&#xff08;Monitoring&#xff09;1.2.2 决策模块&#xff08;Decision Makin…...

【软考高级系统架构论文】论边缘计算及其应用

论文真题 边缘计算是在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的分布式开放平台(架构),就近提供边缘智能服务。边缘计算与云计算各有所长,云计算擅长全局性、非实时、长周期的大数据处理与分析,能够在长周期维护、业务决策支撑等领域发挥优势;…...

触摸屏(典型 I2C + Input 子系统设备)从设备树解析到触摸事件上报

触摸屏&#xff08;典型 I2C Input 子系统设备&#xff09;从设备树解析到触摸事件上报 以下是架构图&#xff0c;对触摸屏&#xff08;典型I2C Input子系统设备&#xff09;从设备树解析到触摸事件上报的全流程详细拆解&#xff0c;包含文字讲解和配套流程图&#xff1a; 注…...

Java中==与equals()方法的深度解析

作为Java后端开发者&#xff0c;我们经常会遇到需要比较两个对象是否相等的情况。在Java中&#xff0c;运算符和equals()方法都可以用于比较&#xff0c;但它们之间存在着本质的区别。 1. 运算符 是一个比较运算符&#xff0c;它的行为取决于比较的类型&#xff1a; 1.1 比较…...

qt常用控件--02

文章目录 qt常用控件--02toolTip属性focusPolicy属性styleSheet属性补充知识点按钮类控件QPushButton 结语 很高兴和大家见面&#xff0c;给生活加点impetus&#xff01;&#xff01;开启今天的编程之路&#xff01;&#xff01; 今天我们进一步c11中常见的新增表达 作者&…...

AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法(一)

环境&#xff1a; AI-Sphere-Butler VBCABLE2.1.58 Win10专业版 豆包桌面版1.47.4 ubuntu22.04 英伟达4070ti 12G python3.10 问题描述&#xff1a; AI-Sphere-Butler之如何将豆包桌面版对接到AI全能管家~新玩法&#xff08;一&#xff09; 聊天视频&#xff1a; AI真…...