首页
学习
活动
专区
圈层
工具
发布

QUIC协议原理浅解

导语 | QUIC,HTTP3 的传输层实现,是近年来诞生的非常强悍的传输协议,它利用 UDP 解决了当前基于 TCP 协议的 HTTP 的许多问题,提升了在弱网环境下的网络通信体验,下面让我们来一探究竟...一 、QUIC究竟是什么 1. 什么是QUIC?...QUIC(Quick UDP Internet Connection)是谷歌推出的一套基于 UDP 的传输协议,它实现了 TCP + HTTPS + HTTP/2 的功能,目的是保证可靠性的同时降低网络延迟...(4)HTTP3 —— HTTP Over QUIC HTTP 是建立在 TCP 协议之上,所有 HTTP 协议的瓶颈及其优化技巧都是基于 TCP 协议本身的特性,HTTP2 虽然实现了多路复用,底层...连接迁移 (1)TCP的连接重连之痛 一条 TCP 连接是由四元组标识的(源 IP,源端口,目的 IP,目的端口)。什么叫连接迁移呢?

4.8K41

QUIC网络协议简介

【前言】 QUIC 全称 Quick UDP Internet Connection, 是谷歌公司研发的一种基于 UDP 协议的低时延互联网传输协议。...六、实现与升级更灵活 TCP协议栈是写在操作系统内核以及中间设备固件上的,对其更新升级,耗费的时间是以年为周期。 基于UDP协议栈的QUIC协议在应用层实现。...图片1.jpg 当访问支持QUIC的网站时,可以打开开发者工具,在Protocol列可以查看其具体的协议,如下图所示: 图片1.jpg 这里显示的http/2+quic/39表示采用的是QUIC的版本号是...从这里也可以看出,QUIC是在HTTP2基础上提供的一个增强的协议。如果QUIC无法访问,浏览器就会无缝fallback回HTTP2,保证用户的访问。...而即使是Google自身,也在不断的对QUIC进行升级和改进,因此短期内QUIC不会称为一个成熟稳定的网络协议。

10K21
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    QUIC网络协议简介

    【前言】 QUIC 全称 Quick UDP Internet Connection, 是谷歌公司研发的一种基于 UDP 协议的低时延互联网传输协议。...六、实现与升级更灵活 TCP协议栈是写在操作系统内核以及中间设备固件上的,对其更新升级,耗费的时间是以年为周期。 基于UDP协议栈的QUIC协议在应用层实现。...添加描述 当访问支持QUIC的网站时,可以打开开发者工具,在Protocol列可以查看其具体的协议,如下图所示: 添加描述 这里显示的http/2+quic/39表示采用的是QUIC的版本号是39。...从这里也可以看出,QUIC是在HTTP2基础上提供的一个增强的协议。如果QUIC无法访问,浏览器就会无缝fallback回HTTP2,保证用户的访问。...而即使是Google自身,也在不断的对QUIC进行升级和改进,因此短期内QUIC不会称为一个成熟稳定的网络协议。

    6.2K22

    Quic 协议详解--包格式

    前言 上一篇Quic 协议详解--简介>中简单的讲述了讲述了Quic的一些特性,本篇将讲述quic的包类型与格式。...标示一个连接 Quic Version : 32位 表示Quic 协议版本.只有当PUBLIC_FLAG_VERSION 被设置才会存在这个字段。...client需要去验证 握手过程中的server提供的版本列表和版本协议包中的列表是匹配的。server也需要验证,握手过程中client的版本,server确实不支持。...0是无效的stream id,1为握手保留,当使用http2 over quic stream id为3 也是保留的。 每个方向的stream id 都必须是单调递增的。...quic协议的任意一方都可以正常的终止一条流,有如下三种方式终止流: 1,正常终止:因为stream是双向的,所以它可以半关闭和关闭,当一方发送了一个Frame并且在此Frame中置位Fin,该stream

    12.1K70

    QUIC协议的演进之路

    本篇文章描述了QUIC协议是如何克服其他版本HTTP的限制脱颖而出的。...HTTP/3通过使用基于UDP的传输协议QUIC解决了这一问题。 HTTP/3是自HTTP/2之后最新且最主要的HTTP版本。...因为HTTP/3本身就是为QUIC协议设计的,所以也被描述为基于QUIC的HTTP/2。HTTP/3的目标是通过使用谷歌的QUIC协议提供快速、可靠安全的网络连接。...握手时间 因为需要TCP和TLS 握手,所以更慢 QUIC协议直接处理数据流,所以更快 QUIC是一种新的多路传输层网络协议标准,建立在 UDP 之上。...下一次,在QUIC 0-RTT模式中,客户端立即开始与服务器的数据传输,不需要等待握手完成。 然而,0-RTT也有设计上的缺陷:允许重放攻击。 我们为什么要用QUIC?

    82440

    科普:QUIC 协议原理分析

    为什么需要 QUIC  从上个世纪 90 年代互联网开始兴起一直到现在,大部分的互联网流量传输只使用了几个网络协议。...QUIC 核心特性 连接建立延时低 0RTT 建连可以说是 QUIC 相比 HTTP2 最大的性能优势。那什么是 0RTT 建连呢?这里面有两层含义。 传输层 0RTT 就能建立连接。...从拥塞算法本身来看,QUIC 只是按照 TCP 协议重新实现了一遍,那么 QUIC 协议到底改进在哪些方面呢?主要有如下几点: 可插拔 什么叫可插拔呢?就是能够非常灵活地生效,变更和停止。...那 QUIC 多路复用为什么能避免上述问题呢? QUIC 最基本的传输单元是 Packet,不会超过 MTU 的大小,整个加密和认证过程都是基于 Packet 的,不会跨越多个 Packet。...image.png 连接迁移  一条 TCP 连接 [17] 是由四元组标识的(源 IP,源端口,目的 IP,目的端口)。什么叫连接迁移呢?

    9.5K111

    Quic 协议详解-开篇简介

    前言 Quic如此牛逼,一篇肯定是不能做到详解的,所以后面将会写几篇来对quic进行一个阐述。这些文章都是自己对https://www.chromium.org/quic官网的翻译与理解。...1,什么是quic quic(Quick UDP Internet Connection) 是基于udp 的 多路复用流传输协议,由谷歌开发。相比于传统TCP,它减少了传输延时。...对于client 与 server 的第一次建立连接,是需要1 rtt 去获取相关信息来完成握手的。...比如对于每一个包,不管是原始包还是重传包,都带有一个新的序列号(seq),这使得Quic能够区分ACK是重传包还是原始包,从而避免了TCP重传模糊的问题。...6, 连接迁移 Quic 的连接标识是一个 64bit 的 connection ID, 由client 随机产生。

    7.5K41

    什么是WebSocket协议?

    WebSocket 是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术,一种基于 TCP 连接上进行全双工通信的协议,相对于 HTTP 这种非持久的协议来说,WebSocket 是一个持久化网络通信的协议...协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。...先说一下为什么需要 WebSocket 协议? 在 Web 应用架构中,连接由 HTTP/1.0 和 HTTP/1.1 处理。...HTTP 是客户端/服务器模式中 请求一响应 所用的协议,在这种模式中,客户端(一般是浏览器)向服务器提交 HTTP 请求,服务器响应请求的资源(例如 HTML 页面)。...什么是websocket协议? Websocket其实是一个新协议,借用了HTTP的协议来完成一部分握手,只是为了兼容现有浏览器的握手规范而已。

    1K10

    什么是网络协议

    通俗理解“协议”假设你和朋友约好一起去吃饭,你们会提前约定好时间、地点、吃什么,甚至谁来买单。...协议的通俗例子打电话的“协议”当你给朋友打电话时,其实也遵循了一套“协议”:拨号:你必须按照正确的电话号码拨号,否则电话打不到对方。接听:对方听到铃声后会接听电话,然后你们才能开始说话。...网络协议的通俗解释假设你在网上购物,这个过程就涉及很多协议:如何找到网站你输入网址(比如www.taobao.com),浏览器会通过DNS协议(域名解析协议)找到对应的服务器地址(IP地址)。...如何与网站“对话”浏览器通过HTTP协议(超文本传输协议)向网站发送请求:“我想看看商品页面。”网站收到请求后,会按照协议返回商品页面的内容。这就像是你问朋友:“今天吃什么?”朋友回答:“吃火锅。”...如何传输数据数据在互联网中传输时,会通过TCP/IP协议(传输控制协议/互联网协议)。TCP协议会确保数据不会丢失,IP协议会告诉数据应该传到哪里。这就像是快递员把包裹安全送到你手中。

    45710

    什么是 SSLTLS 协议?

    本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。...互联网是开放环境,通信双方都是未知身份,这为协议的设计带来了很大的难度。而且,协议还必须能够经受所有匪夷所思的攻击,这使得SSL/TLS协议变得异常复杂。...这就是为什么通常一台服务器只能有一张数字证书的原因。 对于虚拟主机的用户来说,这当然很不方便。...至于为什么一定要用三个随机数,来生成"会话密钥",dog250解释得很好: "不管是客户端还是服务器,都需要随机数,这样生成的密钥才不会每次都一样。...由于SSL协议中证书是静态的,因此十分有必要引入一种随机因素来保证协商出来的密钥的随机性。

    50610

    什么是WebSocket协议?

    此外,还简要介绍了针对WebSocket的安全攻击,以及协议是如何抵御类似攻击的。 二、什么是WebSocket HTML5开始提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。...2、需要学习哪些东西 对网络应用层协议的学习来说,最重要的往往就是连接建立过程、数据交换教程。当然,数据的格式是逃不掉的,因为它直接决定了协议本身的能力。好的数据格式能让协议更高效、扩展性更好。...因为ws握手阶段采用的是http协议,因此可能ws连接是被一个http服务器处理并返回的,此时客户端可以通过Sec-WebSocket-Key来确保服务端认识ws协议。...九、数据掩码的作用 WebSocket协议中,数据掩码的作用是增强协议的安全性。但数据掩码并不是为了保护数据本身,因为算法本身是公开的,运算也不复杂。...那么为什么还要引入掩码计算呢,除了增加计算机器的运算量外似乎并没有太多的收益(这也是不少同学疑惑的点)。 答案还是两个字:安全。

    1.8K30

    课程论文:万字长文详解QUIC协议,为什么有了TCP我们还需要QUIC?

    QUIC是一种创新的传输层协议,它在建立连接的时间上进行了显著优化,通常在0到1个往返时间(RTT)内完成。...以下是QUIC协议优化的两个关键方面: 使用UDP减少延迟:QUIC协议基于UDP构建,避免了TCP所需的三次握手过程,从而减少了通常需要1.5个RTT的建立连接的延迟。...建立时延低 0RTT 建连可以说是 QUIC 相比 HTTP2 最大的性能优势。那什么是 0RTT 建连呢?这里面有两层含义。 传输层 0RTT 就能建立连接。...从拥塞算法本身来看,QUIC 只是按照 TCP 协议重新实现了一遍,那么 QUIC 协议到底改进在哪些方面呢?主要有如下几点: 可插拔 什么叫可插拔呢?就是能够非常灵活地生效,变更和停止。...那 QUIC 多路复用为什么能避免上述问题呢? QUIC 最基本的传输单元是 Packet,不会超过 MTU 的大小,整个加密和认证过程都是基于 Packet 的,不会跨越多个 Packet。

    1.3K10
    领券