一定要结合图文一起理解!!

文章目录

  • 文字描述
      • 传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话)
      • HTTP/3 基于 QUIC 的连接迁移(就像用带“通话ID”的手机)
      • 总结一下
  • 图文详解
    • HTTP2.0传统方式(吃完辣条重新连接)
    • HTTP3.0利用QUIC无需中断连接

文字描述

想象一下,你正在和一位朋友通电话。

传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话)

在HTTP/2和更早的版本中,网络连接就像是用座机打电话

  1. 连接的标识:一部座机由它的电话号码(比如 010-88888888)来唯一确定。在计算机网络中,一个TCP连接由一个“四元组”来标识:

    • 源IP地址 (你家的地址)
    • 源端口号 (你家里的哪部分机)
    • 目标IP地址 (你朋友家的地址)
    • 目标端口号 (你朋友家的哪部分机)

    这四个信息组合在一起,就像一个完整的通话线路。只要其中任何一个信息变了,网络就会认为“这不是原来的那个通话了”,连接就会中断。

  2. 网络切换时会发生什么?
    假设你正在家里用座机和朋友聊天,聊到一半你突然要出门,于是你挂掉座机,拿出手机重新拨打给你朋友。

    在这个过程中:

    • “你家的地址”变了:你的网络从家里的Wi-Fi切换到了外面的4G/5G移动网络。你的IP地址(相当于电话号码)从 192.168.1.10 (Wi-Fi) 变成了 100.x.x.x (运营商网络)。
    • 连接中断:服务器(你的朋友)看到来电的“号码”变了,它会认为这是一个全新的、不相关的连接请求。之前的那个“通话”(数据传输)就彻底中断了。
    • 必须重新开始:你需要重新建立一个新的连接(重新拨号),然后可能还要告诉服务器你刚才传输到哪里了,过程非常繁琐和缓慢。这就是为什么在地铁里信号切换时,视频会卡住、游戏会掉线。

HTTP/3 基于 QUIC 的连接迁移(就像用带“通话ID”的手机)

HTTP/3使用了一种名为QUIC的新协议,它引入了一个绝妙的设计:连接ID (Connection ID)。这就像给每一次通话分配了一个独一无二的“通话识别码”

  1. 连接的标识:现在,连接不再仅仅依赖于那四个会变的地址信息,而是主要由这个**固定不变的“连接ID”**来识别。把这个ID想象成一个聊天软件(比如微信、LINE)里的通话房间号。

  2. 网络切换时会发生什么?
    现在,你正在家里用手机,连着Wi-Fi和朋友进行微信语音通话。聊到一半你出门了,手机自动从Wi-Fi切换到了4G/5G网络。

    在这个过程中:

    • 你的IP地址变了:你的网络环境变了,IP地址确实也变了。
    • 但“通话ID”没变:你的手机会立刻通过新的4G/5G网络向服务器发送一个数据包,这个包里包含了那个始终不变的“连接ID”
    • 服务器识别并恢复连接:服务器收到这个包,一看IP地址是新的,但它会检查里面的“连接ID”。“哦!是刚才那个ID为 ABC12345 的通话!只是换了个地方联系我而已。” 服务器立刻就知道了这是同一次通话,于是无缝地将数据流切换到你的新IP地址上。
    • 连接不会中断:对你和服务器来说,这次通话(数据传输)只是换了个“信号塔”,但通话本身从未挂断。视频继续播放,下载继续进行,几乎感觉不到任何卡顿。

总结一下

特性HTTP/2 (基于TCP)HTTP/3 (基于QUIC)比喻
连接标识四元组 (IP地址 + 端口号)连接ID (Connection ID)电话号码 vs. 通话房间号
网络切换连接中断,必须重新建立连接无缝迁移,不会中断挂掉座机,用手机重拨 vs. 微信通话自动切换网络
核心逻辑地址变了,连接就断了地址可以变,只要ID不变,连接就还在认号码不认人 vs. 认房间号不认地址

所以,HTTP/3的连接迁移之所以能做到连接不中断,关键就在于它引入了“连接ID”这个概念,将“我是谁”(连接ID)和“我在哪”(IP地址)这两个信息解耦(分离开)。 这样,即使你的位置(IP地址)不断变化,服务器依然能通过那个不变的身份ID认出你,从而维持住连接。这对于移动设备越来越多的今天,体验提升是革命性的。

图文详解

HTTP2.0传统方式(吃完辣条重新连接)

在这里插入图片描述

HTTP3.0利用QUIC无需中断连接

在这里插入图片描述

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

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

相关文章

让工作效率翻倍的终极神器之被工具定义的编程时代(VS Code + GitHub Copilot + JetBrains全家桶)

目录一、引言:被工具定义的编程时代二、背景:传统开发模式的效率瓶颈2.1 认知负荷过载2.2 工具链断层三、效率翻倍工具链深度解析3.1 智能代码编辑器:从打字机到智能助手3.2 版本控制大师:Git的隐藏技能3.3 自动化脚本&#xff1a…

docker部署单机gitlab

环境准备: 证书: acme.sh --issue --dns dns_ali -d gitlab.chandz.com -d *.chandz.comcp /root/.acme.sh/gitlab.chandz.com_ecc/* /data/docker-data-volume/gitlab/ssl/目录: mkdir -p /data/docker-data-volume/gitlab cd /data/docker-…

【K8S】在 Kubernetes 上配置安装 Nginx Ingress 控制器指南

文章目录架构概览先决条件部署方案选择方案一:手动 YAML 部署核心组件详解方案二:Helm快速部署(生产推荐)验证部署DNS配置策略方案A:单域名映射方案B:通配符映射(推荐)应用实战&…

SHA-256算法详解——Github工程结合示例和动画演示

近日笔者在学习区块链的相关知识,接触到SHA-256算法,这里做一个知识梳理和总结。 强烈推荐大家自行去学习下面链接github上的工程,作者的动画演示和解释做的非常出色,逻辑非常清晰,B站搬运的对应的油管的讲解视频也放…

C语言模块化编程思维以及直流电机控制(第四天)

👨‍💻个人主页:开发者-削好皮的Pineapple! 👨‍💻 hello 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 削好皮的Pineapple! 原创 👨‍&#x1f4…

【PTA】数据结构与算法0001:1025 反转链表

文章大纲写在前面测试用例ac代码学习代码知识点小结写在前面 实现思路 结构体封装数据 根据order重新排序k区间值迭代翻转 n整除k,则最后地址输出"-1"非整除,最后剩余区间,原序输出。最后地址输出"-1" 题目有难度&…

深入解析 .NET 泛型:从原理到实战优化

在现代软件开发中,代码复用性和性能优化是开发者永恒的追求。.NET 泛型作为一项强大的语言特性,不仅能够帮助我们消除重复代码,还能显著提升代码的类型安全性和运行效率。本文将带你全面了解 .NET 泛型,从基本概念到高级用法&…

Excel 处理软件 内容复制工具:工作表批量复制 + 合并拆分简洁操作零门槛

各位办公小能手们!今天给你们介绍一款超牛的软件——Excel内容复制工具。软件下载地址安装包 这可是专门为了让Excel数据处理效率蹭蹭往上涨而设计的辅助软件呢!它的主要功能可多啦,能批量复制工作表,还能把好多表格合并到同一个…

【机器学习实战笔记 14】集成学习:XGBoost算法(一) 原理简介与快速应用

《XGBoost算法》 推荐的学习路径: 【快速实现XGBoost、跑通代码】- 第一部分 【快速掌握XGBoost应用、达到自由调参水平】- 第一部分~第三部分 【快速掌握XGBoost原理、面试得以通关】- 第一部分1 第二部分1.2、2.2 第四部分 目录《XGBoost算法》一 XGBoost的基…

.NET AI 模板

引言 随着人工智能技术的快速发展,AI应用开发已成为开发者必备的技能之一。然而,对于许多.NET开发者来说,如何快速上手AI开发仍然是一个挑战。微软推出的.NET AI模板预览版正是为了解决这一问题而生,为开发者提供了构建智能聊天应…

EFK9.0.3 windows搭建

背景 最近某个功能要使用到ELK(ElasticSearch、Logstash、Kibana)采集日志,对数据进行分析,网上百度了一下,目前推荐不使用Logstash而使用Filebeat ,即EFK。 下载链接 Elasticsearch Kibana Filebeat 安装前提 …

上海新华医院奉贤院区:以元宇宙技术重构未来医疗生态

引言:当医疗遇上元宇宙在数字化转型的浪潮中,上海新华医院奉贤院区以"智慧医院"为定位,率先构建了"元宇宙医院"雏形。通过AI大模型、三维影像分析、AR手术导航等前沿技术的深度融合,医院正在打造一个覆盖全周…

知识竞赛答题pk小程序用户操作手册

知识竞赛答题 PK 小程序用户操作手册 一、注册与登录 用户首次使用答题pk小程序需上传头像,输入昵称,并选择加入团队。如果是企业内部人员使用可开启白名单功能。二、进入答题 PK 模式 登录后,在小程序首页,您可以看到 “单人挑战…

等大小谱聚类

聚类是一种将具有相似特征的数据点进行分组的方法。它广泛应用于探索性数据分析,并已被证明在模式识别、市场和客户细分、推荐系统、数据压缩以及生物数据分析等许多应用中都发挥着重要作用。 尽管聚类算法种类繁多,但没有一种能够生成点数均衡的聚类。…

〔从零搭建〕数据湖平台部署指南

🔥🔥 AllData大数据产品是可定义数据中台,以数据平台为底座,以数据中台为桥梁,以机器学习平台为中层框架,以大模型应用为上游产品,提供全链路数字化解决方案。 ✨杭州奥零数据科技官网&#xff…

Java 导出pdf 写出demo 1、需要设置自定义页眉和文字 2、可以插入表格 3、可以插入图片

以下是一个使用 iText 7 库实现 PDF 导出的 Java 示例&#xff0c;包含自定义页眉、文字、表格和图片功能&#xff1a; 添加 Maven 依赖 <dependencies><!-- iText 7 Core --><dependency><groupId>com.itextpdf</groupId><artifactId>ite…

Ntfs!LfsReadRestart函数分析得到Ntfs!LFS_RESTART_PAGE_HEADER

第一部分&#xff1a;0: kd> p Ntfs!LfsPinOrMapData0x8c: f71797f6 ff15a40016f7 call dword ptr [Ntfs!_imp__CcPinRead (f71600a4)] 0: kd> t nt!CcPinRead: 80bf9a5a 6a2c push 2Ch 0: kd> kc# 00 nt!CcPinRead 01 Ntfs!LfsPinOrMapData 02 N…

skywalking-agent-docker镜像

FROM centos:7.9.2009 USER root# 定义 Arthas 目录环境变量 ENV ARTHAS_HOME/opt/arthas# 更改 YUM 源并清理缓存 RUN mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak && \rm -rf /etc/yum.repos.d/* && \curl -o /etc/yum.rep…

数据库开发运维的集成:弥合开发与运维之间的鸿沟

在传统的软件开发工作流程中&#xff0c;数据库变更往往是事后才考虑的问题。应用程序代码遵循定义明确的开发运维实践&#xff0c;包括版本控制、自动测试和持续部署&#xff0c;而数据库变更则经常是由数据库管理员手动执行的高风险操作。这种脱节造成了瓶颈&#xff0c;带来…

PiscTrace应用:从 YOLO-Pose 到深蹲与引体向上计数:实时健身动作分析与实现

随着健身行业的发展&#xff0c;越来越多的智能应用涌现&#xff0c;用于帮助健身者更好地记录和分析运动情况。特别是在体能训练中&#xff0c;俯卧撑和引体向上是两个非常常见的动作&#xff0c;它们通常用来锻炼上半身力量和耐力。为了使训练更加科学和高效&#xff0c;实时…