一定要结合图文一起理解!!
文章目录
- 文字描述
-
-
- [传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话)](#传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话))
- [HTTP/3 基于 QUIC 的连接迁移(就像用带"通话ID"的手机)](#HTTP/3 基于 QUIC 的连接迁移(就像用带“通话ID”的手机))
- 总结一下
-
- 图文详解
文字描述
想象一下,你正在和一位朋友通电话。
传统方式:HTTP/2 基于 TCP 的连接(就像打固定电话)
在HTTP/2和更早的版本中,网络连接就像是用座机打电话。
-
连接的标识 :一部座机由它的电话号码 (比如
010-88888888
)来唯一确定。在计算机网络中,一个TCP连接由一个"四元组"来标识:- 源IP地址 (你家的地址)
- 源端口号 (你家里的哪部分机)
- 目标IP地址 (你朋友家的地址)
- 目标端口号 (你朋友家的哪部分机)
这四个信息组合在一起,就像一个完整的通话线路。只要其中任何一个信息变了,网络就会认为"这不是原来的那个通话了",连接就会中断。
-
网络切换时会发生什么?
假设你正在家里用座机和朋友聊天,聊到一半你突然要出门,于是你挂掉座机,拿出手机重新拨打给你朋友。
在这个过程中:
- "你家的地址"变了 :你的网络从家里的Wi-Fi切换到了外面的4G/5G移动网络。你的IP地址(相当于电话号码)从
192.168.1.10
(Wi-Fi) 变成了100.x.x.x
(运营商网络)。 - 连接中断:服务器(你的朋友)看到来电的"号码"变了,它会认为这是一个全新的、不相关的连接请求。之前的那个"通话"(数据传输)就彻底中断了。
- 必须重新开始:你需要重新建立一个新的连接(重新拨号),然后可能还要告诉服务器你刚才传输到哪里了,过程非常繁琐和缓慢。这就是为什么在地铁里信号切换时,视频会卡住、游戏会掉线。
- "你家的地址"变了 :你的网络从家里的Wi-Fi切换到了外面的4G/5G移动网络。你的IP地址(相当于电话号码)从
HTTP/3 基于 QUIC 的连接迁移(就像用带"通话ID"的手机)
HTTP/3使用了一种名为QUIC的新协议,它引入了一个绝妙的设计:连接ID (Connection ID) 。这就像给每一次通话分配了一个独一无二的"通话识别码"。
-
连接的标识:现在,连接不再仅仅依赖于那四个会变的地址信息,而是主要由这个**固定不变的"连接ID"**来识别。把这个ID想象成一个聊天软件(比如微信、LINE)里的通话房间号。
-
网络切换时会发生什么?
现在,你正在家里用手机,连着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无需中断连接
