QUIC简单介绍

QUIC简单介绍

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

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 或 http://lenky.info/?p=2337

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118194.html原文链接:https://javaforall.net

(0)
上一篇 2021年12月9日 下午5:00
下一篇 2021年12月9日 下午6:00


相关推荐

  • github最受欢迎语言(android开源框架)

    内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新ViewPager图表(Chart)菜单(Menu)浮动菜单对话框空白页滑动删除手势操作RecyclerViewCardColorDrawableSpinner布局模糊效果TabBarAppBar选择器(Picker)跑马灯日历时间主题样式ImageView通知聊天视图Head

    2022年4月13日
    55
  • 1.8K标星!一站式 AI 内容聚合神器,把全网优质科技资讯装进口袋!

    1.8K标星!一站式 AI 内容聚合神器,把全网优质科技资讯装进口袋!

    2026年3月16日
    19
  • 电脑如何进行截图识别

    电脑如何进行截图识别使用电脑的时候,我们经常会用到很多快捷键,就比如说截图,当我们把需要的文字内容截图之后,如何才能顺手把截图中的文字转换成word文字呢,下面小编分享一个简单的方法,在把文字内容截图之后直接可以转换成文字的方法。使用工具:迅捷OCR文字识别软件;操作方法:第一步:大家可以通过浏览器搜索关键词“OCR文字识别软件”找到该文字识别软件;第二步:在电脑上运行文字识别软件,点击左边功能栏中的“截图识别”功…

    2022年6月5日
    79
  • FileInputStream类

    FileInputStream类FileInputStream类如果用户的文件读取需求比较简单,则可以使用FileInputStream类,该类是InputStream的子类,提供了基本的文件读取功能。FileInputStream类的常用构造方法如下:Ø FileInputStream(Stringname):使用给定的文件名name,创建一个FileInputStream对象。Ø FileInput

    2022年5月18日
    42
  • 数据库连接池怎么实现_java数据库连接池原理

    数据库连接池怎么实现_java数据库连接池原理数据库连接池1.数据库连接池是干什么的假如我们有个应用程序需要每隔10秒查询一次数据库,我们可以用以下方式方法1:每次查询的时候都新建一个数据库连接,查询结束关闭数据库连接。由于数据库连接的建立是一个非常耗费资源的过程,所以这种每次都新建连接的方式非常浪费资源,不可取。方法2:在最开始的新建一个数据库连接,后续过程中一直使用这个数据库连接进行查询,直到最后关

    2025年11月12日
    8
  • java中的值传递和引用传递的区别?

    java中的值传递和引用传递的区别?1 值传递概念 值传递是指在调用函数时将实际参数复制一份传递到函数中 这样在函数中如果对参数进行修改 将不会影响到实际参数 实例 publicclassM publicstatic String args intnum 10 实际参数 test num System ou

    2026年3月16日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号