QUIC 简析

QUIC/HTTP3 协议简析 从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来。 HTTP、HTTP2 和 HTTP3 先和大家来回顾一下 HTTP 的历史,看看 HTTP3 相比 HTTP、HTTP2 都有哪些改进和升级的地方。 HTTP VS HTTP2 多路复用:多路复用时,多文件传输有时只需维护一个 TCP 连接。如果是 HTTP1 协议下,每份资源的传输对应一个 TCP 连接,一般最多只能开启 6 个 TCP 连接来传输多路数据,. 阅读详情

QUIC简析 一

QUIC - Quick UDP Internet Connection. QUIC 最初是Google公司为了改进HTTP/HTTPS通信所提出的架构于UDP之上的通信协议. 不过随着QUIC技术的演进, 它已经成为一种介于TCP和UDP之间的通用的传输协议. 自从2016年11月IETF QUIC WorkGroup第一次会议以来, QUIC的标准化进展十分迅速. 最新一次的会议将于今年3月在伦敦举行, 目前还开放注册: https://www.ietf.org/how/meetings/101/. 目前QUIC草案的版本号为9.

Key Advantage of QUIC

相比TCP, QUIC在技术上的优势十分明显:

  • 连接建立所需的时延
  • 改进的拥塞控制算法
  • 多路复用
  • 前向纠错/重传
  • 连接迁移

TCP协议运行于操作系统内核,其建立连接的过程需要3次握手, 如果是SSL/TLS, 则需要5次握手来建立连接。 其建立连接费时较长, 而QUIC连接建立的设计就大大简化了这一过程. QUIC发送数据有两种不同的方式, 0-RTT和1-RTT. 连接未建立即可发送数据.

TCP的拥塞控制灵活性较差, 而QUIC则不然, Google以TCP的拥塞控制作为Bench Mark, 为QUIC设计了更厉害的拥塞控制算法.

一个TCP连接为多个通讯所复用时, 其势必有Head-of-line-blocking问题, 而QUIC是架构与UDP之上的协议, 自然就规避了这个问题.

QUIC的通讯使用UDP, 数据重传和前向纠错技术被用来保障传输的可靠性.

QUIC使用64bits的Connection ID作为一个连接的唯一标识符, 可以在address和port都发 生变化的时候, 依然保持连接有效。 这是非常实用的特性, 传统的UDP和TCP都做不到!

Reference

draft-ietf-quic-transport-09

QUIC 和 TCP: 深入解析为什么 QUIC 更胜一筹 在过去的几节中,我们看到 TCP 有一些固有的限制,例如三次握手和队头阻塞。这些限制可以通过增强 TCP 或用新协议替换 TCP 来解决。尽管增强 TCP 听起来很简单,但 TCP 存在于与操作系统紧密结合的最底层。简单来说,TCP 的代码存在于内核层而不是用户空间。考虑到庞大的设备数量,要在内核空间实施更改可能需要很长时间才能影响到所有用户。因此,谷歌提出了一种新的协议QUIC,作为 TCP 的替代品。与 TCP 一样,QUIC 也是一个传输层协议。然而,它位于用户空间而不是内核空间。 阅读详情

相关推荐

QUIC协议分析-基于quic-go

QUIC是由谷歌设计的一种基于UDP的传输层网络协议,并且已经成为。HTTP/3就是基于QUIC协议的。QUIC只是一个协议,可以通过多种方法来实现,目前常见的实现有Google的quiche,微软的msquic,mozilla的neqo,以及基于go语言的quic-go等。由于go语言的简洁性以及编译的便捷性,本文将选用进行quic协议的分析,该库是完全基于go语言实现,可以用于构建客户端或服务端。

lingshengxiyou的博客 1989

QUIC 协议详解

本文尽量用通俗易懂的语言介绍了 QUIC 协议实现原理,目的是让大家对 QUIC 有一个基本的了解,当然,这只是 QUIC 协议的冰山一角,更详细具体的内部实现还需要深入研究标准文档和源码,如果文中有描述不对的地方,欢迎批评指正,多多交流。客户端发送的 5 个数据包(56789)服务器都收到了,并且回应了 5 个 ACK,但是第 5 个数据包的 ACK 丢失了,导致客户端的发送窗口无法向前移动,也就无法发送新的数据,这就是 TCP 层的队头阻塞问题。那拥塞窗口的大小是如何计算的?

优秀技术文章收录 5016

QUIC的Stream

不管单向还是双向,它的状态机的使用都是一样的,发端有发端的用法,收端有收端的用法QUIC 的发送端状态机状态设计足够简洁,它只有六个状态,且状态之间的转换也很清晰。去掉起始状态与两种结束状态,只有三个中间状态的有特定的行为Send 可以发送数据、重传数据,接收对端发来的数据ACK和流控通知Data Sent 只能发送重传数据,接收对端的数据ACKReset Sent 只接收对端的 Reset ACK。

wangkai6666的博客 1359

QUIC协议解析

Quick UDP Internet Connections,是一种新的默认加密的互联网通信协议,它提供了许多改进,旨在加速HTTP通信,同时使其变得更加安全,其最终目的是在web上代替TCP和TLS协议。QUIC 协议也是整合了 TCP 协议的可靠性和 UDP 协议的速度和效率。

hanms的博客 1342

QUIC协议初探-iOS实践

本文来自于腾讯Bugly公众号(weixinBugly), 作者:emilymmwang,未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/NbewZ1NU49qSjIcdFrpotw | 导语 本文主要介绍了QUIC协议,以及初步研究的过程,用实践证明了QUIC协议在iOS平台的可行性 1、QUIC介绍 (1)QUIC(Quick UDP

腾讯Bugly的专栏 8048

Python经常遇到导入xlwings就出错,如何解决

Python经常在导入xlwings时遇到错误。有人建议尝试重装或升级xlwings,但这些操作后仍然无法解决导入错误问题。

felix_8的博客 1740

QUIC详解

1. QUIC是什么 QUIC(全称Quick UDP Internet Connections)是谷歌公司制定的一种基于 UDP 协议的低时延互联网传输协议,它提供了多项改进,旨在加速HTTP传输并使其更加安全,目标是想最终取代TCP和TLS协议。 可以用一个公式大致概括如下: TCP + TLS + HTTP2 = UDP + QUIC + HTTP2’s API。 ...

Arlingtonroad的博客 1万+

BOSS直聘数据采集实战:八爪鱼工具高效爬取职位信息的完整指南

本文提供了一份使用八爪鱼采集器高效爬取BOSS直聘职位信息的完整实战指南。针对非技术用户,详细讲解了从软件安装、网址规律分析到流程配置、数据导出的每一步操作,并分享了提升采集稳定性的高级设置与避坑技巧,帮助用户轻松实现数据采集自动化。

weixin_29061509的博客 1474

QUIC协议原理详解

QUIC(Quick UDP Internet Connection)是谷歌推出的一套基于UDP的传输协议,它实现了TCP + HTTPS + HTTP/2的功能,目的是保证可靠性的同时降低网络延迟。众所周知UDP比TCP传输速度快,TCP是可靠协议,但是代价是双方确认数据而衍生的一系列消耗。其次TCP是系统内核实现的,如果升级TCP协议,就得让用户升级系统,这个的门槛比较高,而QUIC在UDP基础上由客户端自由发挥,只要有服务器能对接就可以。1.1 什么是QUIC。.........

Lce的专栏 1万+

AD9361 官方例程详解(一)

文章目录前言一、pandas是什么?二、使用步骤总结 前言 一、pandas是什么? 二、使用步骤 总结

weixin_44630490的博客 4万+

Labview程序框架介绍

当掌握LabVIEW基础知识并达到,理解单个小型模块程序会相对轻松。而若想进一步探索大型程序,就必然需要了解程序框架相关内容。LabVIEW常用的程序架构包括等。在多年工作中,我接触过的众多高级工程师所开发的大型程序,基本都基于这些架构搭建。接下来,将为大家详细介绍这些框架。

Misterlhw的博客 4619

QUIC协议深度解析:重塑互联网传输层的创新架构

在当今高速发展的互联网环境中,传统传输控制协议(TCP)已逐渐暴露出诸多性能瓶颈。由Google于2012年发起并主导设计的QUIC(Quick UDP Internet Connections)协议,旨在解决TCP的固有缺陷,满足现代网络应用对的迫切需求。QUIC并非简单的功能增强,而是从架构层面重新设计了互联网传输层,通过,实现了既保持UDP部署灵活性的同时,又获得了比TCP更优秀的性能表现。,以及。

深耕互联网架构与AI领域多年,专注大模型工程化、云原生架构、AI驱动系统,分享实战经验、前沿技术和架构方法论。每周产出深度长文+技术短文,涵盖大厂案例、论文解读与工程实践。拒绝水文,只讲干货。关注我,与一线架构师共同探索技术本质。 2165

以太网硬件核心:MAC、PHY、MII与交换机原理与实战排查

计算机网络通信的基础依赖于一套完整的硬件协议栈。在OSI模型中,数据链路层和物理层是实现设备间可靠、高效数据传输的基石。其核心原理在于将上层数据包封装成帧,并通过特定的介质访问控制与物理信号转换机制进行传输。这一过程的技术价值在于为上层应用提供了透明、稳定的通信信道,是互联网和所有局域网通信的物理承载。在嵌入式系统、网络设备开发及运维等应用场景中,深入理解底层硬件交互至关重要。本文将聚焦于以太网硬件的两大核心组件:负责逻辑成帧与流量控制的MAC控制器,以及负责数模转换与链路协商的PHY芯片。它们通过MII、

dgqvhtlwq472235338的博客 422

彻底搞懂HTTP

为了解决 HTTP/2 中 TCP 层的队头阻塞问题,HTTP/3 转而基于 QUIC 协议,而 QUIC 基于 UDP 而非 TCP。“粘包”(Sticky Packet) 并不是TCP协议本身的一个错误或问题,而是在使用TCP进行数据通信时,由于TCP是面向字节流的协议,开发者在使用过程中可能遇到的一种现象。很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

白帽阿叁的博客 145

Minio HTTPS证书配置实战:从申请到部署全流程

本文详细介绍了Minio HTTPS证书配置的全流程,从申请到部署,确保对象存储服务的安全性。内容包括证书类型选择、文件处理、服务配置调整及常见问题解决,帮助用户在生产环境中快速实现HTTPS加密传输,提升数据安全。

weixin_42638178的博客 431

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 447

QUIC的丢包处理

QUIC协议中重试数据包触发重新启动另一个连接,是为了确保安全性、可靠性、以及高效的数据传输通过这样的机制,QUIC能够有效防止重放攻击、提升握手效率、动态适应复杂网络环境以及确认客户端的可达性所有这些措施综合起来,使得QUIC比传统传输协议更加稳健和高效TCP协议没有内嵌专门的防重放攻击机制,但通过序列号随机化、时间戳选项、三次握手挑战验证等措施一定程度上减少重放攻击风险。现代传输协议如QUIC通过加密和多层防护机制提供了更强大的防护能力,确保连接的安全性和唯一性,适应动态复杂的网络环境。

wangkai6666的博客 1945

作为一名爬虫人如何实现千万级数据爬取?

爬虫门槛不高,高就高在往后余生的每一次实操都随时会让你崩溃!Bro

吴秋霖的博客 1万+

FFmpeg支持QUIC

本文介绍了基于Google的QUIC协议封装的bequic库(全平台支持),并集成到FFmpeg中,让FFmpeg可以通过QUIC协议播放视频。

sonysuqin的专栏 8197

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

QUIC学习总结

Quic项目介绍 对于Quic的基本下载和启动使用参考 https://www.jianshu.com/p/f17b4a015e27 。 Quic详细介绍 https://max.book118.com/html/2017/0202/87965079.shtm Quic官方文档 https://github.com/google/proto-quic 代码下载地址 https://github.c...

Hello 5963

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【quic协议】quic介绍及部分ns3-quic源码解析

介绍主要quic特性以及部分ns3-quic源码

m0_54984588的博客 1518

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

quic测评

1. QUIC协议概述 QUIC是由谷歌设计的一种基于UDP的传输层网络协议,并且已经成为IETF草案。HTTP/3就是基于QUIC协议的。QUIC只是一个协议,可以通过多种方法来实现,目前常见的实现有Google的quiche,微软的msquic,mozilla的neqo,以及基于go语言的quic-go等。 由于go语言的简洁性以及编译的便捷性,本文将选用quic-go进行quic协议的分析,该库是完全基于go语言实现,可以用于构建客户端或服务端。 QUIC的优势(参考) 0RTT快速连接 TC

weixin_42093700的博客 3465

QUIC的那些事 | QUIC概述

目录 TCP/UDP缺点 TCP的不足 UDP的不足 握手导致的连接成本 TCP的可靠成本 中间设备的僵化 依赖于操作系统的实现导致协议僵化 队头阻塞 QUIC的特点 QUIC原理 QUIC使用场景 QUIC报文格式概述 参考资料 QUIC(Quick UDP Internet Connection)是谷歌提出的一种基于UDP的低时延的互联网传输层协议。 QUIC解决...

u014023993的专栏 3531

QUIC的阻力

HTTP/3 标准化了,什么时候 QUIC 能插遍全球?没有那么快,甚至非常困难。我有很多传输协议优化的想法,偶尔也实现几个,但这是走火入魔了,没普遍意义。设计或优化一个协议很容易,但部署一个协议非常困难。TCP 的问题就在那里,如何解决它们显而易见,十个人能有十个方案。但让所有人同意你的新协议替换 TCP,需要动机,无论是技术的,还是经济的。最好的结果,大概率也是共存。部署 QUIC 的阻力:被提到最多的就是运营商对 UDP 不友好了。在绝大多数情况下,任何不友好都是在嫌弃管理成本太高。除非 QUIC 形

TCP/IP 1万+

C#中的QUIC实现

本文探讨了C#中QUIC协议实现的进展与核心特性。QUIC作为基于UDP的新型传输协议,具备内置加密、快速连接和多路复用等优势。.NET从5到9版本逐步完善QUIC支持,最终在.NET 9中实现稳定API。文章详细介绍了System.Net.Quic命名空间的核心类(QuicListener、QuicConnection和QuicStream)及其使用方法,包括服务端与客户端的实现示例,并分析了不同平台的依赖要求,帮助开发者在C#中构建高性能网络应用。

冰茶的博客 1419
上一篇: PCA在图像处理上的应用
下一篇: 30秒学习Keras
volvet
博客等级 码龄18年 129粉丝 83原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值