QUIC。即Quick UDP Internet Connection,类似于SPDY,相同也是由Google公司在现有已存协议之上进行了扩展设计,而旨在降低网络延迟。之前我曾介绍过SPDY的相关信息,SPDY工作在应用层,而这里的QUIC工作在传输层。

尽管QUIC的名字暗示着它类似于一个被改动过的UDP协议,但它的目标却是优化或替换那些须要使用面向链接的应用程序中所採用的TCP协议。

由于光速不变。并且抛开网络繁忙这些额外总体因素(由于我们这里考虑的是局部,要做的目标也是局部优化,因此总体因素属于更上一层的研究)。那么在网络上,随意确定两端之间的往返时延RTTs(round trip times)基本上是固定的,因此,降低单个连接网络延迟的唯一办法就是让建立一条连接所需耗费的RTTs个数尽量的少。从这个需求能够看出。对于TCP协议本身而言。已经非常难做到相应的优化了,一方面是由于TCP所要求的握手协议、拥塞控制等固定了其所必须的RTTs个数。而还有一方面是由于TCP实现于操作系统协议栈内。要改变实际用户的操作系统必然是相当难的。

QUIC尝试解决那些SPDY无法涵盖的问题点。

首先是TCP对头堵塞。其次是TCP拥塞阀门堵塞,也就是这两个点导致的SPDY优势无法充分发挥。

这非常好理解。我们知道SPDY是跑在TCP协议之上的,假设瓶颈在TCP这一层,那么上层做再多的优化都是白搭。

另外。SPDY採用的SSL/TLS也会带来两个性能问题:1,恢复已断的开会话将引进一个额外的握手。而这纯粹仅仅是SSL/TLS协议的设计如此,并不是安全或其它什么特别的原因。

2,对历史数据包的解决须要按顺序进行,这将导致延迟数据包所带来的延迟影响更大。因此,QUIC一開始就被设计有类似于TLS加密这种功能,从而避免对SSL/TLS的使用,降低相应的开销。

在此之前。Googleproject师已经针对这些详细问题提出了一些解决方式。比方TCP Fast Open(TFO)可用于降低连接到曾经已经訪问过的同样server的RTTs。QUIC揉合了这些旧解决方式,以及一些新的方案,用于重点解决一个应用场景,即从同一台server。利用携带多个数据流的TLS加密连接数据传输的Web应用程序服务。

简单来看,QUIC的目标是在UDP协议之上提供一种可建立面向链接的服务。嗯,听上去不错,尽管我对详细细节也是茫然不清。但貌似看懂了它的意思是想针对详细的场景,结合传统TCP和UDP协议两者各自的长处。合二为一。

http://blog.chromium.org/2013/06/experimenting-with-quic.html

http://lwn.net/Articles/558826/

转载请保留地址:http://lenky.info/archives/2013/08/06/2337 或 

p=2337" style="color:rgb(41,112,166); text-decoration:none; font-family:Verdana,'BitStream vera Sans',Tahoma,Helvetica,sans-serif; font-size:12px; line-height:17px">http://lenky.info/?p=2337

QUIC简要的更多相关文章

  1. JavaScript权威设计--JavaScript函数(简要学习笔记十一)

    1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...

  2. JavaScript权威设计--JavaScript函数(简要学习笔记十)

    1.函数命名规范 函数命名通常以动词为前缀的词组.通常第一个字符小写.当包含多个单词时,一种约定是将单词以下划线分割,就像"like_Zqz()". 还有一种就是"lik ...

  3. [译]Angular2 和TypeScript -- 一次简要的预览

    原文链接:https://www.infoq.com/articles/Angular2-TypeScript-High-Level-Overview 作者:  Yakov Fain Posted o ...

  4. 内网劫持渗透新姿势:MITMf简要指南

    声明:本文具有一定攻击性,仅作为技术交流和安全教学之用,不要用在除了搭建环境之外的环境. 0×01 题记 又是一年十月一,想到小伙伴们都纷纷出门旅游,皆有美酒佳人相伴,想到这里,不禁潸然泪下.子曰:& ...

  5. markdown简要说明显示样式

    markdown 什么是markdown:     Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.   Markdown具有一系列 ...

  6. 简要介绍BASE64、MD5、SHA、HMAC几种方法。

    加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了.     言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书.     ...

  7. Java Reference简要概述

    @(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...

  8. 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词

    转载: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级 ...

  9. maven命令参考简要

    命令参考简要说明 mvn archetype:generate — 创建生成Tiny骨架工程 参数名 说明 groupId 用户项目的包目录,用户需要根据实际情况设置.比如com.abc artifa ...

随机推荐

  1. VSTO之旅系列(四):创建Word解决方案

    原文:VSTO之旅系列(四):创建Word解决方案 本专题概要 引言 Word对象模型 创建Word外接程序 小结 一.引言 在上一个专题中主要为大家介绍如何自定义我们的Excel 界面的,然而在这个 ...

  2. no copy constructor available or copy constructor is declared 'explicit'

    今天新写了一个类.然后对这个类使用STL中的vector,碰到错误: no copy constructor available or copy constructor is declared 'ex ...

  3. 读取生产环境go语言的最佳实践展示

    近期看了一篇关于go产品开发最佳实践的文章,go-in-procution.作者总结了他们在用go开发过程中的非常多实际经验,我们非常多事实上也用到了.鉴于此,这里就简单的写写读后感,兴许我也争取能将 ...

  4. JarSearch

    个人做的小工具分享给大家~~. 支持从压缩文件搜索文件,特别是根据部分类文件名在jar里查找文件,比较方便,效率也还不错. 也支持从目录查找 http://pan.baidu.com/s/1feYaM ...

  5. 编程算法 - 字典分词 代码(C)

    字典分词 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 给定字典, 给定一句话, 进行分词. 使用深度遍历(DFS)的方法. 使用一个參数string ...

  6. cocos2dx A* + tiledMap

    本文转自:http://blog.csdn.net/w18767104183/article/category/1757765 前面一章讲了cocos2dx 中使用A星算法 这章中讲 A*结合tile ...

  7. zTree实现地市县三级级联Service接口測试

    zTree实现地市县三级级联Service接口測试 ProvinceServiceTest.java: /** * @Title:ProvinceServiceTest.java * @Package ...

  8. log4net和一般的记录日志方法

    下载 http://files.cnblogs.com/crazyair/log4net.zip 1 在web项目中新建一个 Log4Net.config <?xml version=" ...

  9. osgi实战学习之路:3. osgi分层概念及相互合作demo

    源码下载 分层: modual: 主要作用于包级管理与共享代码 lifecycle: 主要作用于执行期间的模块管理与訪问osgi底层框架 service: 主要作用于多模块之间的相互通信 demo: ...

  10. java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

    Myeclipse 8.6使用tomcat7时间.执行javaweb如报告了以下错误项: java.lang.NoClassDefFoundError: org/apache/juli/logging ...