Google 打算用 QUIC 协议替代 TCP/UDP
有句话叫做一流企业定标准、二流企业做品牌、三流企业卖技术、四流企业做产品。Google 似乎在冲着一流企业的目标迈进。去年,Google 已经从以 SPDY 为基础的 HTTP 协议 16年 来的首个更新 HTTP/2正式定稿中尝到了甜头。最近 Google 又开始考虑更进一步,用改进版的 UDP 协议 QUIC 给 web 提速。根据它近日公布的性能评估,这一融合了 UDP 与 TCP 优势的协议似乎提升效果明显。
QUIC 是 Quick UDP Internet Connection 的简称,是 Google 制定的一种基于 UDP 的低时延的互联网传输层协议。我们知道,TCP/IP 协议族是互联网的基础。其中传输层协议包括 TCP 和 UDP 协议。与 TCP 协议相比,UDP 更为轻量,但是错误校验也要少得多。这意味着 UDP 往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上 TCP。通常游戏、流媒体以及 VoIP 等应用均采用 UDP,而网页、邮件、远程登录等大部分的应用均采用 TCP。

Google 想到能否把这两种协议的优势结合起来,同时实现低时延和高可靠并将其应用到更高安全的协议上,于是就有了 QUIC。
以往典型的安全 TCP 连接(TCP+TLS)往往需要在发送与接收端先进行 2、3 轮的握手通信才能正式开始数据传输。而利用 QUIC 协议,如果双方此前通信过的话马上就可以对话(即便双方此前未通信过时延也只有 100 毫秒,是 TCP+TLS 用时的 1/3)。此外,QUIC 还增加了拥塞控制和自动重传等功能,所以可靠性上要比 UDP 更高。
从目标来看,QUIC 跟 SPDY(HTTP/2 基础)很多方面是类似的,但是后者仍然基于 TCP,所以仍然会存在部分相同的时延问题。
不过这样也许你会问为什么 Google 不干脆改进 TCP?根据 Google 的解释,不这么做的原因是 TCP 往往直接内置到了操作系统内核当中,这是 Google 所无法控制的。所以他们就拿 UDP 改良版来开刀,以期更快地测试性能改进效果。

Google 从去年开始就已经在 Chrome 浏览器上进行了实验,实际上目前 Chrome 到 Google 服务器的请求当中大概有一半已经在采用 QUIC 协议。数据表明 75%的连接均可利用 QUIC 的优势,哪怕预先建立的优化连接(Google 搜索)采用 QUIC 后页面加载性能仍然能提高 3 个百分点。而时延严重的一些 web 应用,在采用 QUIC 后的改进效果则要更加明显。比如有用户报告 YouTube 重新缓冲次数减少了 30%。
Google 希望 QUIC 的性能得当证明后能够移植到 TCP 和 TLS 上面,称未来打算将 HTTP2-over-QUIC 作为新的协议提交给 IETF。但是这显然需要与 IETF 的配合以及长期努力。这一套路跟 SPDY 很像,都是以 Chrome 为跳板展现协议原型和效果,然后再提出作为协议草案,但结果尚待观察。
Google 打算用 QUIC 协议替代 TCP/UDP的更多相关文章
- 网络协议HTTP TCP/UDP 浏览器缓存 Restful(十)
一 TCP网络协议 1 建立TCP连接:三次握手原则 客户端通过向服务器端发送一个SYN来创建一个主动打开,作为三次握手的一部分.客户端把这段连接的序号设定为随机数 A. 服务器端应当为一个合法的SY ...
- 31.网络协议介绍tcp/udp
网络协议 TCP:网络中传输数据的协议,打电话 解决了我可能在网络中找不到别人(数据无法传输到) 保证数据传输的稳定性,可靠性 保证数据的安全性,完整性 对方要有响应 尝试重新发送 UDP:传输数据的 ...
- 传输层协议之TCP/UDP
1.UDP UDP协议是面向无连接的,即不需要在正式传递数据前先链接双方,UDP协议只是数据报文的搬运工,不保证有序且不丢失的传递到对端,且UDP协议无任何控制流量的算法,UDP相对于TCP更加轻便. ...
- Google将向IETF标准提交QUIC协议提案
Google近期宣布,他们将向IETF提交实验性传输层网络协议QUIC的提案.此外,Google已经给出了QUIC协议优化页面加载时间的第一手数据. 自从2013年引入QUIC以来,Google一直在 ...
- IP封包协议头/TCP协议头/TCP3次握手/TCP4次挥手/UDP协议头/ICMP协议头/HTTP协议(请求报文和响应报文)/IP地址/子网掩码(划分子网)/路由概念/MAC封包格式
IP协议头IP包头格式: 1.版本号:4个bit,用来标识IP版本号.这个4位字段的值设置为二进制的0100表示IPv4,设置为0110表示IPv6.目前使用的IP协议版本号是4. 2.首部长度:4个 ...
- Java 网络编程(二) 两类传输协议:TCP UDP
链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951841.html 两类传输协议:TCP,UDP TCP TCP是Transfer C ...
- 网络协议-网络分层、TCP/UDP、TCP三次握手和四次挥手
网络的五层划分是什么? 应用层,常见协议:HTTP.FTP 传输层,常见协议:TCP.UDP 网络层,常见协议:IP 链路层 物理层 TCP 和 UDP 的区别是什么 TCP/UDP 都属于传输层的协 ...
- 运输层协议:TCP和UDP
运输层简介 运输层的通信实体不再是主机,而是主机中的进程.运输层的通信是一台主机的进程和另一台主机的进程进行数据交换. 运输层作用 运输层向上层的应用层提供通信服务 运输层为进程提供端到端的通信 运输 ...
- TCP/UDP端口列表
http://zh.wikipedia.org/wiki/TCP/UDP%E7%AB%AF%E5%8F%A3%E5%88%97%E8%A1%A8 TCP/UDP端口列表 本条目可通过翻译外语维 ...
随机推荐
- 3、发送第一个api请求
接口地址:https://www.v2ex.com/api/topics/latest.json Method: GET Authentication: None 我们打开postman,方法选择ge ...
- 内置Jetty配置JSP支持过程中的常见报错
目录 1. 常见报错及解决 1.1 JSP support not configured 1.2 JSTL标签解析 1.3 JSP编译 1.4 JSP实现依赖 1.5 EL表达式支持 2. 小结 1. ...
- 全球CMOS图像传感器厂商
近期,台湾地区的Yuanta Research发布报告,介绍了其对CMOS图像传感器(CIS)市场的看法,以及到2022年的前景预期. 从该研究报告可以看出,2018年全球CMOS图像传感器的市场规模 ...
- jQuery post使用变量作参数名
jQuery Query Post使用方法: $.post("test.php", { name: "John", time: "2pm" ...
- 1.springboot+ActiveMQ
1.项目结构如下 pom.xml文件如下 <dependencies> <dependency> <groupId>junit</groupId> &l ...
- ES6 学习 -- Class
Class的基本语法(1)// 定义类class Point { test() { console.log("hello test"); }}通过 new 定义好的类即可生成一个类 ...
- JS对象 向下取整floor() floor() 方法可对一个数进行向下取整。 语法: Math.floor(x)
向下取整floor() floor() 方法可对一个数进行向下取整. 语法: Math.floor(x) 参数说明: 注意:返回的是小于或等于x,并且与 x 最接近的整数. 我们将在不同的数字上使用 ...
- Windows服务调试状态下用Console启动
最近一直在用服务,发现服务也没有那么难调试. Windows服务调试状态下用Console启动:步骤分两步 第一步改Program,启动代码 static class Program { /// &l ...
- Linux内存 mem 和 swap
摘抄并用于自查 Linux mem/swap/buffers/cached区别 free命令相对于top,提供了更简洁的查看系统内存使用情况: # free -m mem:表示物理内存统计 buff/ ...
- python paramiko模块学习分享
python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...