AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

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

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

关注

评论

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

机器学习项目是如何开发和部署的?

陆道峰

人工智能 学习

关于软件测试的三点思考

卓然

软件测试 测试 测试的价值 联现技术咖

Python deepcopy一个优化

么么哒

Python

券商也“网红”,证券行业IT服务运维发展按下“快进键”

博睿数据

运维 APM 证券 券商 行情

写给产品经理的信(5):谈谈项目管理(青铜-王者)

punkboy

产品 极客时间,项目管理 项目管理 产品经理 项目

地铁上看书的老外引发的思考

小天同学

写作 读书 个人感想 日常思考

偏头疼告诉我的,我想告诉每一个人

zkback

最香远程开发解决方案!手把手教你配置VS Code远程开发工具,工作效率提升N倍

程序员柠檬

Linux 后台开发 vscode 后端

GitHub 上十个好用的软件

彭宏豪95

GitHub 效率 工具

“新基建”方兴未艾,Smartbi Mining如何为产业数字化转型赋能?

infoq小陈

这场大数据+AI Meetup,一次性安排了大数据当下热门话题

Apache Flink

大数据 flink 流计算 实时计算

Server Queue 提高 QPS

风含叶

Python kafka 后端 队列

只用CSS实现响应式Full-Width img 2种方法

寇云

CSS css3

前端工程化之创建项目

春生

大前端 全栈工程师

做好领路人——写给技术新人的导师建议

南方

管理 新人

重学 Java 设计模式:实战原型模式

小傅哥

Java 设计模式 小傅哥 复杂代码优化 重构

自定义列表样式

寇云

CSS css3

团队与领导力健康检查 | 体检表

Bob Jiang

团队建设

git | IDEA 中如何压缩提交(压缩commit后再push 图文演示)

YoungZY

开发者工具 IDEA 开发工具

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (十一)JUnit概述

编程道与术

Java 编程 软件测试 TDD 单元测试

如何通过样本数据推断其分布

张利东

Python

为什么第三方联调应该先行?

大伟

如何设计数据中台

数据社

大数据 数据中台 数据仓库

纯CSS“返回顶部”特效

寇云

CSS css3

一款开源且具有交互视图界面的实时 Web 日志分析工具!

JackTian

开源 GoAccess 实时 Web 日志分析工具 交互式查看器

互联网省份数据大揭秘,看看哪些地方是互联网的戈壁滩?

非著名程序员

程序员 互联网 IT

HTML中实现合并单元格

JDoe

html

python实现·十大排序算法之基数排序(Radix Sort)

南风以南

Python 排序算法 基数排序

自定义构造python白名单__builtins__

么么哒

Python

为什么要学习 Markdown?究竟有什么用?

JackTian

markdown markdown语法 markdown编辑器

写代码没几天,遇到一堆报错,我该怎么办

刘早起😶

Python 程序员 程序人生

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