写点什么

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:177143
用户头像

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

关注

评论

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

十八般武艺玩转GaussDB(DWS)性能调优(二):坏味道SQL识别

华为云开发者联盟

数据库 sql 性能调优 GaussDB 算子

架构师训练营第六周课后练习

薛凯

架构师训练营 W02 作业

Geek_f06ede

架构师训练

架构训练营-week6-作业

于成龙

CAP 架构训练营

Java程序员必会的三个技能:Spring+MySQL+并发编程

Java架构师迁哥

LeetCode题解:78. 子集,迭代,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

架构作业 -- CAP原理

Nick~毓

全网首发,做第一人纯源码讲解RabbitMQ实践,收藏吧

小Q

Java 学习 架构 面试 RabbitMQ

第五周作业

icydolphin

极客大学架构师训练营

第二周作业

Griffenliu

Double Kill!! 数据联邦修炼之路

脑极体

第六周作业

alpha

极客大学架构师训练营

渣渣2本学历CRUD一年半,决定改变现状,努力学习两个月成功拿到美团30k offer

Java架构之路

Java 程序员 架构 面试 编程语言

数据库JDBC:Statement查询

正向成长

JDBC sql查询 SQL光标

云小课|云数据库RDS实例连接失败了?送你7大妙招轻松应对

华为云开发者联盟

数据库 网络 ssl RDS实例 端口

架构师训练营 W02 总结

Geek_f06ede

架构师训练

架构师训练营第二周学习总结

邢永春

架构师训练营第二期 - 第二周作业

john_zhang

极客大学架构师训练营

架构师训练营第 1 期第 6 周作业

好吃不贵

极客大学架构师训练营

阿里五位MySQL封神大佬耗17个月总结出53章性能优化法则

996小迁

Java MySQL 大数据 架构 面试

架构师训练营 1 期第 6 周:技术选型(二) - 作业

piercebn

极客大学架构师训练营

一个90后码农的真实经历,希望大家可以不留遗憾;

Java架构师迁哥

玩转华为云开发|老板万万没想到:刚入职的我一人就搞定人脸识别开发

华为云开发者联盟

软件开发 模块化流程 人脸识别 API 华为云

第1周 架构方法-作业

SuGeek

RabbitMQ之路由和通配符模式,附源码注释讲解

小Q

Java 学习 架构 面试 RabbitMQ

架构师训练营第 1 期第 6 周学习总结

好吃不贵

极客大学架构师训练营

架构师训练营第二周作业

邢永春

Week2 - 框架设计

evildracula

学习 架构

第六周

等燕归

第二周总结

Griffenliu

【Java】变量声明在循环体内还是循环体外你选哪一个咧?

root

Java 变量声明

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