QUIC(更新中... ...)

news/2024/9/18 9:00:37/文章来源:https://www.cnblogs.com/1234roro/p/18303377

 

本文档只记录我个人认为应该着重进行一下笔记的部分。

RFC

QUIC 基本内容介绍在RFC 9000,加密的实现在9001,丢包检测和拥塞机制在9002。

简介

是由Google开发的一种基于UDP的传输层协议,旨在提高网络传输的性能和安全性。关键要素:UDP 443端口,将TLS 1.3内置在QUIC协议报文中,提升了握手过程的安全性。同时,利用了TLS 1.3的0-RTT和1-RTT连接机制,提升了传输效率。

一些概念

连接、流、帧、报文,他们到底什么样的层级关系?

1-RTT和0-RTT

TLS 1.3的1-RTT(首次连接一定用这个)和0-RTT(主要用于重连)连接机制。

 1-RTT连接建立

  • 概念:1-RTT连接是指客户端发送ClientHello后,服务器响应ServerHello,客户端在接收到这个响应后,才可以发送应用数据。这个过程需要一次往返时间(1-RTT)。
  • 适用场景:1-RTT适用于首次建立连接或者未能使用0-RTT的情况。
  • 安全性:1-RTT提供了完整的握手过程,确保了更高的安全性,适用于对安全性要求较高的应用场景。

 0-RTT连接建立

  • 概念:在0-RTT连接中,客户端可以在发送ClientHello消息的同时,开始发送应用数据。这意味着客户端不需要等待服务器的响应就可以开始传输数据,从而显著减少延迟。
  • 适用场景:0-RTT通常用于重连场景,而不会用于首次建立连接的场景。前提是客户端之前已经与服务器建立过安全连接,并且服务器支持0-RTT。
  • 安全性:尽管0-RTT能减少延迟,但由于初始消息未经过完整的握手过程,因此存在重放攻击的风险。TLS 1.3对0-RTT数据的使用有一定的限制,以降低风险。比如:1)0-RTT仅适用于那些在之前的连接中已经确定的应用数据。这些数据必须是在之前的会话中被接受并理解的内容,服务器不应对新类型的数据进行处理;2)服务器需要确认哪些客户端可以使用0-RTT;3)客户端必须带着session ticket。

QUIC也是有序的,为什么说QUIC在拥塞机制上,可以避免TCP的队头阻塞问题?

TCP拥塞机制:会有队头阻塞的问题,是比较好理解的。就是一个TCP连接,只有一条流,这个流一共有1,2,3,4...100号的数据包,这时候2丢了,那么3,4...100号的数据包,哪怕已经送到了服务器,服务器也不处理,它要等客户端重传了2,才会处理,这就是队头阻塞。当然更坏的情况是,随机丢了不止一个数据包,比如2丢了,15丢了,25丢了等等,那对应的后面都要等等等;

QUIC拥塞机制:不会有队头阻塞,这只是个相对的说法。对于QUIC来说,它一个QUIC连接里,可以传送很多条流(多路复用)。每一个流里面其实也是有序的,后面的先到了,前面的没到,那也一样要队头阻塞。但是QUIC一个连接同时发了很多的流,每个流都出现队头阻塞的概率是很低的,同时,每个流的使命也是独立的。这样的话,总有一些流已经先存在服务器并且有效处理了,就不用像TCP一样,2没到,等2,2到了,处理3,4,发现5又没到,又要等待5到了,才能继续处理7,8。从这个意义上说,避免了队头阻塞。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/744172.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读:使用集合预测网络进行联合实体和关系提取

github代码:http://github.com/DianboWork/SPN4RE 目的从本质上讲,句子中提到的关系三元组是集合的形式,它没有元素之间的内在顺序,并表现出排列不变的特征。(多个三元组的抽取顺序,对抽取结果没有影响) 然而,以前基于 seq2seq 的模型需要事先使用一些启发式全局规则将…

打造个人贴身助理-小白必备AI技能

打造个人贴身助理-小白必备AI技能 将你的公众号接入AI智能体 登录后台开启开发者功能coze 后台创建 bot 登录 Coze 国内官网地址:https://www.coze.cn。点击右上角【开始使用】。 创建智能体 点击左上角【创建Bot】配置选择模型配置人设和插件发布到自己的公众号成功发布进入公…

免费可视化工具如何打造动态销售管理看板?

在这个数据驱动的时代,销售管理不再仅仅依赖于传统的报表和口头汇报,而是越来越倾向于直观、动态的可视化展示。可视化工具的出现,无疑为中小企业乃至大型企业提供了强大的助力,帮助销售团队构建高效、直观的销售管理看板,让数据说话,决策有据可依。今天要说的是,如何利…

jmeter分布式实战

一、原理(jdk和jmeter版本必须一致)二、配置执行机slave 修改配置文件:JMETER_HOME/bin/jmeter.properties 中如下信息即可完成配置执行机远程启动端口(默认为 1099) server_port=1029 server.rmi.localport=1029 server.rmi.ssl.disable改为true 启动执行机服务器: 管理…

Microsoft Office 自定义安装部署工具 | Mocreak

软件简介: Mocreak 是一款一键自动化下载、安装、部署正版 Office 的办公增强工具。该工具完全免费、无广告、绿色、无毒、简约、高效、安全。 软件特点: 一键快速下载、安装、部署最新版 Microsoft Office 软件。提供简约、高效,且可自定义的图形界面,提升部署效率。支持将…

旋转相册

做自己的太阳,成为别人的光!

Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”

1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置” @目录1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”2. 拦截器3. Spring MVC 中的拦截器的创建和基本配置3.1 定义拦截3.2 拦截器基本配置3.3 拦截器的高级配置4. Spring M…

docker化 spring boot 项目参数传入

例如有如下参数: spring.rabbitmq.host = localhost spring.rabbitmq.port = 5672 spring.rabbitmq.username = guest spring.rabbitmq.password = guest resolute.rabbitmq.publishQueueName = resolute-run-request resolute.rabbitmq.exchange = resolute通过环境变量传入,…

vscode --- 编辑框禁止差异对比

如上图,编辑框差异对比太花哨,可关闭

[极客大挑战 2020]Greatphp 1

原生类反序列化 <?php error_reporting(0); class SYCLOVER {public $syc;public $lover;public function __wakeup(){if( ($this->syc != $this->lover) && (md5($this->syc) === md5($this->lover)) && (sha1($this->syc)=== sha1($this-…

mysql备份还原——binlog查看工具之show binlog的使用

(4.8)mysql备份还原——binlog查看工具之mysqlbinlog及show binlog的使用 关键词:show binlog,mysql binlog查看,二进制文件查看,binlog查看工具,binlog查看方法0、使用show master status; 使用它可以直接查看binlog日志信息;总结:指定文件:show binlog events in b…