【Multipath网络层协议】MPTCP工作原理
常见网络层多路径协议介绍
MPTCP(Multipath TCP)
- MPTCP 是在传统 TCP 基础上进行扩展的协议,它允许在源端和目的端之间建立多个 TCP子流,这些子流可以通过不同的网络路径传输数据。
例如,一台笔记本电脑同时连接了 Wi-Fi 网络和以太网网络,当使用 MPTCP进行数据传输时,它可以将数据分别通过 Wi-Fi和以太网这两条不同的路径发送到目标服务器,从而充分利用两条链路的带宽。
LISP(Locator/ID Separation Protocol)
- LISP 将 IP 地址的功能进行了分离,把 IP地址分为标识(ID)和位置(Locator)两部分。在实际网络中,比如一个大型企业拥有多个分支机构,每个分支机构都有自己的内部网络。通过LISP,企业可以将内部设备的标识(ID)与它们当前所在的位置(Locator)进行分离管理。当分支机构之间进行数据传输时,LISP可以根据网络的实时状态,将流量动态地分配到不同的链路(路径)上。
例如,如果一条链路出现拥塞,LISP 会自动将部分流量切换到其他可用的链路,实现负载均衡,提高网络的整体性能和可靠性。
- 在数据中心网络中,LISP 也可以发挥作用。数据中心内有大量的服务器和存储设备,它们之间的数据交互频繁。LISP可以根据服务器的负载情况和网络拓扑,合理地规划数据传输路径,避免某些链路或设备过度负载,提高数据中心的运行效率。
DIF(Data-Centric Networking/Information-Centric Networking)
- DIF 以数据为中心,不同于传统的以地址为中心的网络架构。在一个内容分发网络(CDN)场景中,DIF可以根据用户请求的数据内容,在网络中寻找距离用户最近且缓存有该数据的节点进行数据传输。
例如,当用户请求观看一部热门电影时,DIF 会在 CDN 的多个节点中查找,发现节点 A 和节点 B 都缓存了这部电影,且节点 A距离用户更近,延迟更低。此时,DIF 会选择从节点 A 传输数据给用户。如果在传输过程中节点 A 出现问题,DIF 可以迅速切换到节点 B继续传输,而不需要像传统网络那样重新建立连接和寻找路径。
- 在物联网(IoT)环境中,DIF 也具有优势。物联网设备数量众多,产生的数据种类和格式各异。DIF可以根据数据的类型和需求,选择合适的路径进行传输。例如,对于实时性要求较高的传感器数据(如温度、湿度等监测数据),DIF会优先选择低延迟的路径进行传输;对于一些非实时性的设备配置数据等,则可以选择更经济的路径传输。
MPTCP 的工作原理与优势
工作原理
1、子流建立:当源端和目的端要建立 MPTCP 连接时,首先进行初始的协商。双方通过发送带有 MPTCP 选项的 SYN 报文,来确定对方是否支持 MPTCP 协议以及可以建立的子流数量等参数。
例如,源端发送一个 SYN 报文,其中包含了自己支持的最大子流数量等信息,目的端收到后,如果也支持 MPTCP,会在返回的 SYN-ACK报文中确认相关参数,并可能提出自己的一些配置信息。之后,双方会像建立普通 TCP 连接一样,通过三次握手为每个子流建立独立的 TCP连接。比如,源端和目的端决定建立两个子流,那么就会分别为这两个子流进行三次握手,建立起两条独立的 TCP 连接。
2、数据传输:在数据传输阶段,MPTCP 会根据各个子流的状态信息(如带宽、延迟、丢包率等)来分割和分配数据。假设源端要发送一个大文件,MPTCP 会将文件数据分割成若干个数据块,然后根据当前各个子流的带宽情况,将数据块分配到不同的子流上传输。如果子流 1 的带宽较高,可能会分配更多的数据块给它;子流 2 的带宽较低,则分配相对较少的数据块。接收端会对来自不同子流的数据块进行重组,按照正确的顺序恢复出原始文件数据。
3、路径管理:MPTCP 会持续监测各个子流的状态。例如,通过定期发送探测报文来测量子流的延迟、丢包率等指标。当发现某个子流的丢包率过高(如超过了设定的阈值),或者链路断开时,MPTCP 会将原本通过该子流传输的数据转移到其他正常的子流上。同时,如果检测到新的可用路径,MPTCP 可以动态地建立新的子流来利用这条路径。比如,当移动设备连接到一个新的 Wi-Fi 网络时,MPTCP 可以迅速建立一个新的子流,将部分数据切换到这个新的路径上传输,以提高整体的传输效率。
优势
1、提高吞吐量:通过同时利用多个路径的带宽,MPTCP 能够显著提升数据传输速度。
例如,在一个实验环境中,一台设备同时连接了 100Mbps 的 Wi-Fi 网络和 100Mbps 的以太网网络,使用传统 TCP协议传输数据时,由于只能使用一条路径,最大传输速度只能达到 100Mbps。而使用 MPTCP 协议,将数据分别通过这两条路径传输,理论上最大传输速度可以达到 200Mbps(实际情况可能会因网络开销等因素略低),大大提高了数据传输的效率,满足了高清视频流、大数据文件传输等对带宽要求较高的应用需求。
2、增强可靠性:当某一条路径出现故障时,MPTCP 可以快速切换到其他路径,保证数据传输的连续性。
例如,在视频会议应用中,如果使用传统 TCP 协议,当网络链路突然中断(如 Wi-Fi信号弱导致连接断开),视频会议可能会出现卡顿甚至中断。而使用 MPTCP 协议,当 Wi-Fi 链路出现问题时,MPTCP可以迅速将数据切换到蜂窝网络路径上继续传输,用户几乎感觉不到视频会议的中断,提高了应用的可靠性和用户体验。
3、无缝切换:在移动场景中,MPTCP 能够实现设备在不同网络之间的无缝切换。
比如,当用户在地铁上使用手机观看在线视频时,手机可能会从一个基站的覆盖范围移动到另一个基站的覆盖范围,或者从地铁内的 Wi-Fi 网络切换到移动数据网络。使用 MPTCP协议,视频数据可以在不同网络之间无缝切换传输路径,而不需要重新建立连接,保证了视频播放的流畅性,用户不会因为网络切换而中断观看。
MPTCP 与传统 TCP 的对比
连接特性
- 传统 TCP
一个 TCP 连接只使用一条路径进行数据传输。在连接建立过程中,源端发送 SYN 报文,目的端返回 SYN-ACK 报文,源端再发送 ACK 报文,通过三次握手建立起一条端到端的连接。
例如,用户在浏览网页时,浏览器与 web 服务器之间建立的 TCP连接就是通过一条网络路径(如用户的家庭宽带网络)进行数据传输的,数据只能在这条路径上按照 TCP 的规则进行发送和接收。
- MPTCP
一个 MPTCP 连接可以包含多个 TCP 子流,这些子流可以通过不同的路径传输数据。在连接建立时,除了进行传统的 TCP 三次握手外,还需要额外协商 MPTCP 相关的参数。
例如,源端和目的端不仅要确定基本的 TCP 连接参数(如初始序列号等),还要协商可以建立的子流数量、子流的优先级等 MPTCP特有的参数。然后,为每个子流分别建立独立的 TCP 连接,这些子流可以同时在不同的网络路径(如 Wi-Fi 和移动数据网络)上传输数据。
性能表现
- 传统 TCP
在网络条件良好的情况下,传统 TCP 能够提供稳定的数据传输性能。
例如,在局域网环境中,网络带宽充足且稳定,使用传统 TCP 协议进行文件传输可以达到较高的速度。
但当网络出现拥塞(如在高峰时段网络带宽被大量占用)、链路故障(如网线断开)或路径变化(如移动设备切换网络)时,TCP 的性能会受到较大影响。
比如,当网络拥塞时,传统 TCP会通过慢启动、拥塞避免等机制来调整发送窗口大小,降低数据发送速率,导致传输速度大幅下降;当链路故障时,TCP连接可能会中断,需要重新建立连接,这会造成数据传输的中断和延迟。
- MPTCP
MPTCP 可以通过多路径传输和动态路径管理,在网络拥塞或路径故障时,仍然保持较高的吞吐量和较低的延迟。
例如,当一条路径出现拥塞时,MPTCP 会将数据转移到其他未拥塞的路径上,避免了因单条路径拥塞导致的整体性能下降。
在链路故障时,MPTCP 可以迅速切换到其他可用路径,保证数据传输的连续性,减少了数据传输的中断时间和延迟。通过合理地分配数据到不同的子流,MPTCP 还可以提高整体的带宽利用率,从而提升数据传输的性能。
应用场景
- 传统 TCP
适用于大多数对网络连接要求不高的应用场景,如简单的网页浏览、文件下载等。在这些场景中,单路径的 TCP 连接能够满足基本的需求,用户对网络性能的要求相对较低。
例如,用户浏览普通的新闻网页,网页内容较小,即使传统 TCP 连接在网络拥塞时速度有所下降,用户也可能不会明显感觉到影响。
- MPTCP
更适合对网络性能和可靠性要求较高的应用场景,如移动应用、实时通信(如 VoIP、视频会议)、云计算等。在移动应用中,设备经常需要在不同的网络之间切换,MPTCP 的无缝切换特性可以保证应用的连续性。在云计算场景中,服务器之间的数据交互频繁且数据量大,MPTCP 的高吞吐量特性可以提高数据传输效率,提升云计算服务的性能。
相关文章:
【Multipath网络层协议】MPTCP工作原理
常见网络层多路径协议介绍 MPTCP(Multipath TCP) MPTCP 是在传统 TCP 基础上进行扩展的协议,它允许在源端和目的端之间建立多个 TCP子流,这些子流可以通过不同的网络路径传输数据。 例如,一台笔记本电脑同时连接了 W…...
【网络安全】从NA到P1,我是如何扩大思路的?
未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 正文正文 在这篇文章中,我将向大家展示一个我发现的漏洞,该漏洞利用了一个硬编码的 Basic 认证头,获取了管理员权限。 首先,假设公司域名为“target.com”。 第一步是使用多种工具(如 Amass、subfinder、findoma…...
使用 Postman 访问 Keycloak 端点
1. 引言 在本教程中,我们将首先快速回顾 OAuth 2.0、OpenID 和 Keycloak。然后,我们将了解 Keycloak REST API 以及如何在 Postman 中调用它们。 2. OAuth 2.0 OAuth 2.0 是一个授权框架,它允许经过身份验证的用户通过令牌向第三方授予访问…...
[AI机器人] Web-AI-Robot机器人前瞻版--比奇堡海之霸凯伦
文章目录 简述开源Web-AI-Robot 项目-比奇堡-海之霸-凯伦 技术架构效果预览 简述 本项目配合前端项目bikini_bottom_karen_ui运行,来源于柒杉工作室(截止2025.2,目前我自己)。 打造一个只需要在浏览器上运行的AI智能机器人&#…...
FastAPI 学习笔记
简介: FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic&…...
CineMaster: 用于电影文本到视频生成的 3D 感知且可控的框架。
CineMaster是一种 3D 感知且可控的文本到视频生成方法允许用户在 3D 空间中联合操纵物体和相机,以创作高质量的电影视频。 相关链接 论文:cinemaster-dev.github.io 论文介绍 CineMaster是一种用于 3D 感知和可控文本到视频生成的新型框架。目标是让用…...
Linux上用C++和GCC开发程序实现两个不同PostgreSQL实例下单个数据库中多个Schema稳定高效的数据迁移到其它PostgreSQL实例
设计一个在Linux上运行的GCC C程序,同时连接三个不同的PostgreSQL实例,其中两个实例中分别有两个数据库中多个Schema的表结构分别与第三实例中两个数据库中多个Schema个结构完全相同,同时复制两个实例中两个数据库中多个Schema里的所有表的数…...
【Qt】ffmpeg照片提取、视频播放▲
目录 一、图像的成像原理: RGB成像原理: YUV成像原理: 二、多线程 三、ffmpeg解码(照片提取) 1.准备工作 (1)在工程文件夹里面新建三个文件夹 (2)在main函数中加…...
大语言模型中的 Token:它们是什么,如何工作?
引言 如果你使用过 ChatGPT 这样的 AI 工具,你可能会好奇:它是如何理解并生成文字的?大语言模型(LLM,Large Language Model)并不是直接处理整个句子或文章,而是拆分成一个个 Token(…...
如何评估所选择的PHP后端框架的性能?
大家在选择PHP后端框架的时候,如果想评估其性能如何,能不能扛得住你的项目?可以根据以下几点进行分析,帮助大家选择到更符合自己心目中的PHP后端框架。 1. 基准测试 基准测试是评估框架性能的基础方法,主要通过模拟高…...
从UNIX到Linux:操作系统进化史与开源革命
从UNIX到Linux:操作系统进化史与开源革命 一、操作系统:数字世界的基石 1.1 什么是操作系统? 操作系统(OS)是计算机系统的核心管理者,承担着三大核心使命: 硬件指挥官:直接管理C…...
神经网络 - 激活函数(Sigmoid 型函数)
激活函数在神经元中非常重要的。为了增强网络的表示能力和学习能力,激活函数需要具备以下几点性质: (1) 连续并可导(允许少数点上不可导)的非线性函数。可导的激活函数可以直接利用数值优化的方法来学习网络参数. (2) 激活函数及其导函数要尽可能的简单࿰…...
【AD】3-10 原理图PDF导出
文件—智能PDF 多页原理图导出 导出设置时选择工程,可自行选择导出一页或多页原理图,一般PCB不用导出...
Linux上用C++和GCC开发程序实现两个不同MySQL实例下单个Schema稳定高效的数据迁移到其它MySQL实例
设计一个在Linux上运行的GCC C程序,同时连接三个不同的MySQL实例,其中两个实例中分别有两个Schema的表结构分别与第三实例中两个Schema个结构完全相同,同时复制两个实例中两个Schema里的所有表的数据到第三个实例中两个Schema里,使…...
C进阶 自定义类型
目录 前言 一 结构体 二 结构体的存储 三 位段 四 枚举 五 联合体 总结 前言 我们之前学习的int char double ......都是内置类型,但是我们今天所学习的是自定义类型,比如联合体,结构体,枚举 一 结构体 结构体是一…...
010 rocketmq批量消息
文章目录 批量消息BatchProducer.javaBatchConsumer.java 批量消息 批量发送可以提⾼发送性能,但有⼀定的限制: topic 相同 waitStoreMsgOK 相同 (⾸先我们建设消息的iswaitstoremsgoktrue(默认为true), 如果没有异常,我们将始终收到"O…...
【华三】从零开始掌握SR技术:原理、架构与应用全解析
【华三】从零开始掌握SR技术:原理、架构与应用全解析 一、初识SR:路由技术的新革命1.1 传统网络的困扰:从真实案例看技术瓶颈1.1.1 企业网络运维之痛问题2:流量工程实现困难问题3:网络智能化缺失 1.2 SR的诞生意义&…...
安全模块设计:token服务、校验注解(开启token校验、开启签名校验、允许处理API日志)、获取当前用户信息的辅助类
文章目录 引言pom.xmlI 校验注解ApiValidationII token服务TokenService获取当前用户信息的辅助类III 域登录接口响应数据登陆用户信息引言 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO…...
考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码
考虑复杂遭遇场景下的COLREG,基于模型预测人工势场的船舶运动规划方法附Matlab代码 一、引言 1.1、研究背景和意义 随着全球航运业的迅猛发展,船舶交通密度不断增大,海上交通事故频发,严重威胁到海上航行的安全。国际海上避碰规…...
构建高效系统:API接口设计规范详解
在当今的数字化时代,应用程序接口(API,Application Programming Interface)已成为连接不同软件系统和服务的桥梁,是推动数字化转型的关键技术之一。无论是企业内部系统集成、第三方服务接入,还是面向开发者…...
【文献阅读】A Survey Of Resource-Efficient LLM And Multimodal Foundation Models
发表时间:二〇二四年九月二十三日 摘要 大型基础模型,包括大语言模型(LLMs)、视觉Transformer(ViTs)、扩散模型以及基于大语言模型的多模态模型,正在革新整个机器学习的生命周期,…...
mysql 全方位安装教程
下载 MySQL 【官网下载地址】 注意要选择较大的哪个安装包,小的安装包是一个安装器。 我们不用登录,直接下载 直接运行下载好的安装包 MySQL如果是 安装包安装, 可以图形化界面自主配置 如果是压缩包解压, 可以配置 配置文件, 可以解压安装到指定的…...
【Linux】Linux的进程控制
目录 1. 学习思维导图 2.进程创建(fork) 2.1 fork创建进程失败 3.进程终止 3.1 进程退出情况 3.1.1main函数 3.1.2 退出码 3.2 exit/_exit函数 1. exit() 函数 2. _exit() 函数 4.进程等待 4.1 实现进程等待的方法 wait/waitpid方法 区别&a…...
金融支付行业技术侧重点
1. 合规问题 第三方支付系统的平稳运营,严格遵循《非银行支付机构监督管理条例》的各项条款是基础与前提,其中第十八条的规定堪称重中之重,是支付机构必须牢牢把握的关键准则。 第十八条明确指出,非银行支付机构需构建起必要且独…...
Django模型管理器/QuerySet 常见的方法
模型管理器/QuerySet 常见的方法 get([**kwargs]) 方法 用途:获取满足条件的唯一对象。参数:关键字参数,指定查询条件。返回值:模型对象。异常:如果找到多个对象或未找到对象,将分别抛出 MultipleObjects…...
QT播放视频保持视频宽高比消除黑边
QT播放视频保持视频宽高比消除黑边 1、问题 在播放视频的时候,由于框架的大小发生变化,导致视频出现黑边很不好看。 因此需要像一种方法消除黑边 2、处理 1、读取视频的宽高比 2、设置视频的Widget的大小固定,Widget的宽高比和视频宽高比…...
在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思?
在Ubuntu中,某个文件的右下角有一把锁的标志是什么意思? 在 Ubuntu(或其他基于 GNOME 文件管理器的 Linux 发行版)中,文件或文件夹的右下角出现一把“锁”标志,通常表示 你当前的用户没有该文件/文件夹的写…...
聊聊Java的SPI机制
个人自建博客地址 什么是SPI呢? SPI全称Service Provider Interface,翻译过来就是服务提供者接口。调用方提供接口声明,服务提供方对接口进行实现,提供服务的一种机制,服务提供方往往是第三方或者是外部扩展。 下面…...
【 实战案例篇三】【某金融信息系统项目管理案例分析】
大家好,今天咱们来聊聊金融行业的信息系统项目管理。这个话题听起来可能有点专业,但别担心,我会尽量用大白话给大家讲清楚。金融行业的信息系统项目管理,说白了就是如何高效地管理那些复杂的IT项目,确保它们按时、按预算、按质量完成。咱们今天不仅会聊到一些理论,还会通…...
go并发编程
https://www.bilibili.com/video/BV16A4y1f7EX sync包工具 Mutex:同一时间只有一个goroutine持有锁,其它申请该锁的goroutine会被阻塞。RWMutex:允许多个协程同时读取共享数据,但写入时需要独占锁。WaitGroup:等待一组…...
使用Python开发以太坊智能合约:轻松入门与深度探索
使用Python开发以太坊智能合约:轻松入门与深度探索 随着区块链技术的快速发展,以太坊作为最为成熟和广泛使用的智能合约平台,成为了开发去中心化应用(DApp)的核心工具。智能合约不仅是区块链技术的基础,更…...
Python从0到100(八十九):Resnet、LSTM、Shufflenet、CNN四种网络分析及对比
前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…...
密码学(哈希函数)
4.1 Hash函数与数据完整性 数据完整性: 检测传输消息(加密或未加密)的修改。 密码学Hash函数: 构建某些数据的简短“指纹”;如果数据被篡改,则该指纹(以高概率)不再有效。Hash函数…...
设计模式Python版 备忘录模式
文章目录 前言一、备忘录模式二、备忘录模式示例1三、备忘录模式示例2 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式:…...
CES Asia 2025聚焦量子计算,多领域进展引关注
作为亚洲地区极具影响力的科技盛会,CES Asia 2025第七届亚洲消费电子技术贸易展(赛逸展)将在首都北京举办。本届展会以“创新、智能、互联”为主题,将全方位展示全球消费科技领域的最新成果与发展趋势。其中,量子计算作…...
MySQL索引深度剖析:从数据结构到实际应用
引言 在数据库系统中,索引是提高查询效率的关键技术之一。MySQL作为最流行的关系型数据库之一,其索引机制尤为重要。本文将剖析MySQL索引的数据结构、分类、创建方式以及实际应用场景,帮助读者更好地理解和应用索引技术。 主体部分 1. MyS…...
【deepseek】本地部署+RAG知识库挂载+对话测试
文章目录 前言一、Deepseek模型下载(以7B为例)二、RAG本地知识库挂载三、创建本地对话脚本四、结果展示 前言 本文主要涵盖Deepseek在ubuntu系统中的部署全流程,包括模型的下载、系统部署、本地文档向量化、向量列表存储、RAG知识库挂载、对话测试等内容 一、Deeps…...
Vue.js 组件开发全面详解及应用案例
Vue.js 的组件化开发是其核心特性之一,使得代码复用、维护和扩展变得更加容易。以下是关于 Vue.js 组件开发的全面解析,并附带一个实际应用案例。 一、组件基础概念 1. 什么是组件? 组件是 Vue 应用的基本构建块,封装了 HTML、C…...
java面试场景问题
还在补充,这几天工作忙,闲了会把答案附上去,也欢迎各位大佬评论区讨论 1.不用分布式锁如何防重复提交 方法 1:基于唯一请求 ID(幂等 Token) 思路:前端生成 一个唯一的 requestId(…...
MySQL数据库基本概念
目录 什么是数据库 从软件角度出发 从网络角度出发 MySQL数据库的client端和sever端进程 mysql的client端进程连接sever端进程 mysql配置文件 MySql存储引擎 MySQL的sql语句的分类 数据库 库的操作 创建数据库 不同校验规则对查询的数据的影响 不区分大小写 区…...
【wiki知识库】07.用户管理后端SpringBoot部分
目录 一、今日目标 二、??SpringBoot部分类的添加 2.1 使用逆向工程新增User模块 2.2 UserQueryParam添加 2.3 UserSaveParam添加 2.4 UserResetPasswordParam添加 2.5 UserQueryVo添加 2.6 SnowFlake工具类 三、??后端新增接口? 3.1 /user/list接口添加 3.2 /…...
千峰React:案例二
完成对html文档还有css的引入,引入一下数据: import { func } from prop-types import ./购物车样式.css import axios from axios import { useImmer } from use-immer import { useEffect } from reactfunction Item() {return (<li classNameacti…...
Junit框架缺点
JUnit 是 Java 生态中最流行的单元测试框架,广泛应用于单元测试和集成测试中。尽管它功能强大且易于使用,但也存在一些缺陷和局限性。以下是 JUnit 的主要缺点: 1. 功能相对固定 问题:JUnit 的核心功能相对固定,缺乏灵…...
计算机毕业设计SpringBoot+Vue.js公司日常考勤系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Python线程池知多少
目录 目标 Python版本 官方文档 概述 线程池 实战 创建线程池的基本语法 批量提交任务 生产者&消费者模型 目标 掌握线程池的基本概念和使用方法。 Python版本 Python 3.9.18 官方文档 concurrent.futures — Launching parallel taskshttps://docs.python.org/3…...
MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 6
从6到12章将会是重中之重,请一定好好看 第06章_索引的数据结构 1.为什么使用索引 索引是存储引擎用于快速找到数据记录的一种数据结构,就好比一本教课书的目录部分,通过目录中找到对应文章的页码,便可快速定位到需要的文章。MySQL中也是一…...
C++动态与静态转换区别详解
文章目录 前言一、 类型检查的时机二、安全性三、适用场景四、代码示例对比总结 前言 在 C 中,dynamic_cast 和 static_cast 是两种不同的类型转换操作符,主要区别体现在类型检查的时机、安全性和适用场景上。以下是它们的核心区别: 一、 类…...
面向AI 的前端发展及初识大模型
AI带来的开发范式迁移 随着AI的涌现,对前端的发展也有着非常大的影响,总结过去前端的发展路径,目前应该属于又一次的大规模的开发范式迁移阶段。上一个阶段是从jquery到React/Vue/Angular迁移(jquery之前的就不讨论了)…...
Java入门的基础学习
Java的基础语法知识 一 初始Java二 Java数据类型和变量1.字面常量2.数据类型基本数据类型引用数据类型 3.变量整型变量浮点型变量字符型变量布尔型变量 4.类型转化和提升类型转化类型提升 三 运算符1.算数运算符2.关系操作符3.逻辑运算符:&&,||&…...
万字详解 MySQL MGR 高可用集群搭建
文章目录 1、MGR 前置介绍 1.1、什么是 MGR1.2、MGR 优点1.3、MGR 缺点1.4、MGR 适用场景 2、MySQL MGR 搭建流程 2.1、环境准备2.2、搭建流程 2.2.1、配置系统环境2.2.2、安装 MySQL2.2.3、配置启动 MySQL2.2.4、修改密码、设置主从同步2.2.5、安装 MGR 插件 3、MySQL MGR 故…...