写点什么

Google 期望使用 QUIC 给互联网加速

  • 2014-02-25
  • 本文字数:1018 字

    阅读完需:约 3 分钟

QUIC(Quick UDP Internet Connections,发音’quick’)是一种基于 UDP 的多路传输协议,它的主要目标是实现零往返时间的连接开销。Google 的开发人员 Robbie Shade 在最近的一个视频中对 QUIC 做了介绍,主要有以下特性:

  • 拥有 SPDY 的所有优点(多路传输,支持优先级,等等)
  • 零往返时间连接
  • 数据包同步,有效降低数据丢包率
  • 转发问题连接,有效减少重发延迟
  • 自适应拥塞控制(对 TCP 友好),有效减少移动客户端重新连接的次数
  • 与 TLS 等效的加密措施
  • Chrome 支持与 Google 的 QUIC 通信

QUIC 能够处理传输可靠性、丢包或无序数据包等一系列 UDP 默认未处理的问题。QUIC 的多路传输指协议使用多个通道传输数据,所以当其中一个数据流丢包时,其他的通道并不会因此阻塞等待丢失的数据包,而这会发生在 SPDY 上,因为 SPDY 虽然是多路传输但是只有一个通道。Shade 说,QUIC 的方法解决了 TCP 传输的线端阻塞问题。

使用 QUIC 的一个主要优势是在客户端和服务器首次连接时不需要握手步骤,某种程度上与 TCP 快速开启(TCP Fast Open)类似。TCP 快速开启在 2011 年面世,但是目前尚没有大范围使用。根据 Shade 的说法,采用 TLS 时,在一次跨大西洋的连接中 TCP 握手要耗时 300ms,而 QUIC 可以将延迟降为 100ms。

QUIC 的另一个优势是通信通道的定义基于 ID 而不是 IP+ 端口,这使得切换网络后继续转发连接成为可能,例如从 WiFi 网络进入移动网络。

所有 QUIC 连接都使用特殊的机制进行加密,详见 QUIC 加密文档

当被问到为什么不使用 TCP+TLS,Shade 解释说,虽然 TCP 和 TLS 持续升级,但协议的迭代及部署非常慢,而 QUIC 是部署在客户端级别,而不是在内核级别,这样就能以更快的速度进行迭代,迭代周期由以年计算加速为以周计算。

根据 Shade 的介绍,将来 SPDY 能够运行在 QUIC 之上,使其比现在更好。将来 Google 实际使用 QUIC 的经验和教训可以合并到 TCP 中。

目前用户可以从 Chromium 项目中获取 QUIC 的客户端和服务器,google.com、GMail、YouTube 以及其他 Google 服务都在使用 QUIC。

资源: QUIC 相关视频 QUIC 相关幻灯片 QUIC ——协议的详细文档, QUIC 导线排列标准——线框标准, QUIC 加密 SPDY 指示器扩展

查看英文原文: Google Wants to Speed Up the Internet with QUIC


感谢吴海星对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-02-25 02:177192
用户头像

发布了 28 篇内容, 共 12.4 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

详解CAN总线:标准数据帧和扩展数据帧

不脱发的程序猿

汽车电子 通信协议 CAN总线 CAN协议 标准数据帧和扩展数据帧

基于electron+vue+element构建项目模板之【自定义标题栏&右键菜单项篇】

Java-fenn

Java

Alibaba架构师内部最新发布SpringCloud开发手册,Github限时开源

Geek_0c76c3

Java 数据库 spring 开源 架构

架构师的十八般武艺:安全架构

agnostic

安全架构

模块二

早安

极客时间架构师训练营

详解CAN总线:CAN节点硬件构成方案

不脱发的程序猿

嵌入式 汽车电子 CAN总线 CAN节点硬件构成方案 CAN节点

ESP32-C3入门教程 网络 篇(二、 Wi-Fi 配网 — Smart_config方式 和 BlueIF方式)

矜辰所致

wifi ESP32-C3 9月月更 BlueIF Smaart_config

【编程实践】出行无忧,利用Python爬取天气预报

迷彩

爬虫 爬虫教程 9月月更 Scarpy

架构师的十八般武艺:可观测性

agnostic

可观测性

[架构实战]学习笔记

爱学习的麦子

名震GitHub!字节跳动内部顶级数据结构刷题学习笔记根本停不下来

程序知音

Java 数据结构 算法 后端开发 数据结构与算法

Shell编程学习(一)

Studying_swz

Shell 初阶 9月月更

ESP32-C3入门教程 网络 篇(一、 Wi-Fi 使用入门 — 初始化及STA、AP模式)

矜辰所致

wifi ESP32-C3 9月月更

[架构实战] 课后作业

爱学习的麦子

架构营第一期作业

许四多

架构实战营模块八作业

zhihai.tu

大厂“毕业”半月,面试数十家公司,凭借这份面试总结涨获7家Offer,成功入职

程序员小毕

spring 程序员 程序人生 JVM Java 面试

Shell编程学习(二)

Studying_swz

Shell 脚本 9月月更

阿里高工内产的 SpringBoot 实战派手册仅发布一天霸榜Github

Geek_0c76c3

Java 数据库 开源 架构 开发

20 条 Chrome DevTools 使用建议,盲猜这几个你不知道~

掘金安东尼

前端 9月月更

VS Code settings.json 10 个高(装)阶(杯)配置!

掘金安东尼

9月月更

抽丝剥茧看时间序列预测

CnosDB

IoT 时序数据库 开源社区 CnosDB infra

竟拿到阿里45K高薪offer!只因他刷了这份阿里微服务天花板手册

Geek_0c76c3

Java 数据库 开源 架构 面经

评判优秀程序员标准:“高并发”,竟被一份Github万星笔记讲清楚了

Geek_0c76c3

Java 数据库 架构 开发 面经

MyBatisPlus学习

Geek_6689b6

入门 MyBatisPlus 9月月更

详解CAN总线:CAN总线报文格式—数据帧

不脱发的程序猿

汽车电子 CAN总线 CAN协议 CAN总线报文格式 CAN数据帧

JAVA代码审计之java反序列化

Java-fenn

Java

吃透阿里大佬分享的这份Java面试神技,3个月斩获8家offer

Geek_0c76c3

Java 数据库 开源 架构 开发

重磅来袭!腾讯T7手写高并发实战手册,GitHub热度一直不下

Geek_0c76c3

Java 数据库 spring 开源 架构

详解CAN总线:CAN协议分层结构及功能

不脱发的程序猿

CAN总线 CAN协议 CAN协议分层结构及功能

JS 模块化 - 02 Common JS 模块化规范

Java-fenn

Java

Google期望使用QUIC给互联网加速_Google_Abel Avram_InfoQ精选文章