可靠的UDP协议--QUIC协议

news/2024/5/18 15:59:47 标签: QUIC, UDP, 可靠性传输

QUIC是一种新的传输 方式,与TCP相比可以减少延迟。 表面上,QUIC与在UDP上实现 的TCP + TLS + HTTP /2非常相似。由于TCP是在操作系统内核和中间件固件中实现的,所以对TCP进行重大改变几乎是不可能的。但是,由于QUIC是建立在UDP之上的,所以没有这样的限制。

QUIC相比于上述介绍的HTTP、HTTPS和HTTP2协议最大的不同就在于,其传输层采用的是UDP协议而不是TCP协议,因此其具备的特性有以下几点:

  • 0-RTT 建联(首次建联除外)
  • 类似TCP的可靠传输
  • 类似TLS的加密传输,支持完美前向安全
  • 用户空间的拥塞控制,最新的BBR算法
  • 支持h2的基于流的多路复用, 但没有TCP的HOL问题
  • 前向纠错FEC
  • 类似MPTCP的Connection migration

那在实际环境中,如何知道哪些访问使用了HTTP2、哪些访问使用了QUIC协议呢?

这里就要提到chrome的一个插件——HTTP/2 and SPDY indicator,当下载该插件并成功访问后,我们就可以看到浏览器地址栏右侧会多一个⚡️标志:
在这里插入图片描述
访问百度时,这个⚡️标志是白色的,当我们访问YouTube时:在这里插入图片描述
会发现标志变为蓝色,鼠标移到该标志时,提示HTTP2已经使能,这说明在YouTube上面已经开始使用HTTP2协议了,在chrome浏览器中输入chrome://net-internals/#http2就可以看到具体哪些网站使用了HTTP2和QUIC在这里插入图片描述


http://www.niftyadmin.cn/n/1278760.html

相关文章

快速学习-ElasticJob失效转移

ElasticJob 不会在本次执行过程中进行重新分片,而是等待下次调度之前才开启重新分片流程。 当作业执行过程中服务器宕机,失效转移允许将该次未完成的任务在另一作业节点上补偿执行。 失效转移需要与监听作业运行时状态同时开启才可生效。 概念 失效转…

快速学习-ElasticJob弹性调度

弹性调度 弹性调度是 ElasticJob 最重要的功能,也是这款产品名称的由来。 它是一款能够让任务通过分片进行水平扩展的任务处理系统。 分片 ElasticJob 中任务分片项的概念,使得任务可以在分布式的环境下运行,每台任务服务器只运行分配给该…

TCP和UDP区别以及报文头

UDP(用户数据报协议) UDP特点 UDP只在IP数据报服务的基础上增加了少量的功能:复用与分用、对整个报文的差错检测。 UDP是无连接的 通信前不需要建立连接,通信结束也无需释放连接。 UDP是不可靠的 它是尽力而为交付,…

Hibernate内置的几个经典通用API

Hibernate API地址:http://docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/criterion/Projections.html Hibernate 学习地址:http://my.oschina.net/u/274427/blog/68528 本文参考地址:http://blessht.iteye.com/blog/1327883 A:…

快速学习-ElasticJob的FAQ

1. 阅读源码时为什么会出现编译错误? 回答: ElasticJob 使用 lombok 实现极简代码。关于更多使用和安装细节,请参考 lombok 官网。 2. 是否支持动态添加作业? 回答: 动态添加作业这个概念每个人理解不尽相同。 ElasticJob-Lite 为 ja…

netty中的EventLoopGroup 和 EventLoop

当系统在运行过程中,如果频繁的进行线程上下文切换,会带来额外的性能损耗。多线程并发执行某个业务流程,业务开发者还需要时刻对线程安全保持警惕,哪些数据可能会被并发修改,如何保护?这不仅降低了开发效率…

Filter 配置说明

1.在web.xml 文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册&#xff0c;并设置它所能拦截的资源。 123456789101112131415<filter> <!-- 用于为过滤器指定一个名字&#xff0c;该元素的内容不能为空。 --><filter-name>fil…

快速学习-ElasticJob线程池策略

线程池策略&#xff0c;用于执行作业的线程池创建。 SPI 名称详细说明JobExecutorServiceHandler作业执行线程池策略 已知实现类详细说明CPUUsageJobExecutorServiceHandler根据 CPU 核数 * 2 创建作业处理线程池SingleThreadJobExecutorServiceHandler使用单线程处理作业