TLS握手中的RTT

文章目录

  • TLS 1.2 握手过程中的 RTT 次数
  • TLS 1.3 1-RTT 初次
  • TLS1.3 0-RTT 握手过程
  • 总结

TLS 1.2 握手过程中的 RTT 次数

TLS 1.2 握手通常需要2 RTT 才能完成。具体步骤如下:

  1. 第一次 RTT

    • 客户端发送 ClientHello:客户端生成一个随机数(Client Random)并发送 ClientHello 消息。
    • 服务器响应 ServerHello:服务器生成一个随机数(Server Random),选择加密套件,发送 ServerHello 消息,可能还包括 CertificateServerKeyExchangeCertificateRequestServerHelloDone 消息。
  2. 第二次 RTT

    • 客户端响应 ServerHelloDone:客户端发送 ClientKeyExchangeChangeCipherSpecFinished 消息。
    • 服务器完成握手:服务器接收 ClientKeyExchangeChangeCipherSpecFinished 消息,并发送 ChangeCipherSpecFinished 消息。
      在这里插入图片描述

TLS 1.3 1-RTT 初次

TLS 1.3 握手过程中通常只需要 1 个 RTT 即可完成

  1. 第一次 RTT

    • 客户端发送 ClientHello:客户端生成一个随机数(Client Random),发送 ClientHello 消息,其中包括支持的加密套件列表、协议版本等信息,并附带公钥信息用于密钥交换。如果是 0-RTT 握手,还可以包含早期数据。
    • 服务器响应 ServerHello:服务器生成一个随机数(Server Random),选择加密套件,发送 ServerHello 消息,可能包括 EncryptedExtensionsCertificateCertificateVerifyFinished 消息。
  2. 客户端完成握手

    • 客户端发送 Finished:客户端接收服务器的 ServerHello 消息后,立即发送 Finished 消息,完成握手。

TLS1.3 0-RTT 握手过程

  • 零往返时间:在传统的握手过程中,客户端需要等待至少一个往返时间(RTT)才能发送数据。但是在 0-RTT 握手中,客户端可以在发送 ClientHello 消息的同时发送应用数据,而不需要等待服务器的响应。这意味着从客户端开始握手到发送数据的过程中,不需要等待任何往返,故称为 0-RTT
  1. 0-RTT 数据发送

    • 客户端发送 ClientHello 和早期数据:客户端发送 ClientHello 消息,并附带早期数据和之前会话的会话票据。
  2. 服务器处理 ClientHello 和早期数据

    • 服务器响应 ServerHello:服务器验证会话票据,恢复会话密钥,发送 ServerHello 消息,处理早期数据,并发送 Finished 消息。
  3. 客户端完成握手

    • 客户端发送 Finished:客户端接收 ServerHello 消息后,发送 Finished 消息,完成握手。

在 0-RTT 握手过程中,客户端可以在握手开始时就发送应用数据,从而实现 0 个 RTT 的数据传输延迟。

总结

  • TLS 1.2:通常需要 2 个 RTT 才能完成握手。
  • TLS 1.3:通常只需要 1 个 RTT 即可完成握手。
  • TLS 1.3(0-RTT):支持 0 个 RTT 数据传输(在之前已有会话的情况下)。

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

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

相关文章

Pytest和Unitest框架对比

在学到自动化的时候,很多同学都遇到了Pytest和Unitest框架,有的人是两个都学,但是学的不精只是知道分别怎么用.不了解两个区别是什么.有的是犹豫到底要学习那个框架.其实要做好自动化测试,是有必要了解不同框架之间的差异化的. Pytest 特点: Pytest采用了更简洁、更灵活的语法…

Linux - 探秘 Linux 的 /proc/sys/vm 常见核心配置

文章目录 PreLinux 的 /proc/sys/vm 简述什么是 /proc/sys/vm?主要的配置文件及其用途参数调整对系统的影响dirty_background_ratio 和 dirty_ratioswappinessovercommit_memory 和 overcommit_ratiomin_free_kbytes 实例与使用建议调整 swappiness设置 min_free_kb…

移动展厅:便捷高效的展示新模式—轻空间

在现代社会,移动展厅作为一种创新的展示模式,逐渐成为各行业的重要工具。凭借其便捷高效的特点,移动展厅为企业和组织提供了全新的展示解决方案。 快速部署与灵活性 移动展厅采用气膜结构,能够在短时间内快速部署。这种高效的搭建…

【非常实验】如何在移动设备上运行 Docker?

本章就从在 DevOps 中最基本但也是最强大的工具 Docker 开始。最近,我在尝试更多Termux的可能性,于是就想着试试Docker适不适合arm架构。 我用的是天玑9000芯片,而不是高通,所以显示不出来 Qualcomm。所以我决定从在手机上运行 docker 开始,但这可能吗?让我们一起来看看吧…

什么是超级智能?

“超级智能”可以理解为将多个人的智能、机器智能以及环境智能融合在一起。这个定义强调了跨越不同领域和系统的综合与协同,以实现更强大和高效的智能能力。 多个人的智能融合指的是将多个个体的知识、经验和创造力结合起来。通过协作和信息共享,能够集思…

论文阅读--Cross-view Transformers for real-time Map-view Semantic Segmentation

一种新的2D维度的bev特征提取方案,其通过引入相机先验信息(相机内参和外参)构建了一个多视图交叉注意力机制,能够将多视图特征映射为BEV特征。 cross view attention:BEV位置编码由根据相机标定结果(内参和…

ChatGPT原理和训练【 ChatGPT是由OpenAI开发】

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

oracle 外连接(+)和left join用法

案例1: select count(1) FROM TFUNDINFO A, TFUNDTYPE B WHERE A.VC_FUNDCODEB.VC_FUNDCODE() select count(1) FROM TFUNDINFO A, TFUNDTYPE B WHERE A.VC_FUNDCODEB.VC_FUNDCODE SELECT count(1): 这表示查询将返回一个计数,count(1)是一种常见的计数…

ANR灵魂拷问:四大组件中的onCreate-onReceive方法中Thread-sleep(),会产生几个ANR-

findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { sleepTest(); } }); sleepTest方法详情 public void sleepTest(){ new Handler().postDelayed(new Runnable() { Override public void run() { Button but…

Android MVP模式 入门

View:对应于布局文件 Model:业务逻辑和实体模型 Controllor:对应于Activity 看起来的确像那么回事,但是细细的想想这个View对应于布局文件,其实能做的事情特别少,实际上关于该布局文件中的数据绑定的操…

【转型指南】从软件测试到技术多面手

★ 导言 小艺是一位毕业于985的计算机硕士,工作多年,现在某大厂从事软件测试方面的管理工作。目前在工作中游刃有余,但面对技术的飞速变化和职业发展的不确定性,还是难免焦虑,正在积极思考如何进一步提升自己&#xff…

瑞_MongoDB_MongoDB副本集

文章目录 1 MongoDB副本集-Replica Sets1.1 简介1.2 副本集的三个角色1.3 副本集架构目标1.4 副本集的创建1.4.1 创建主节点1.4.2 创建副本节点1.4.3 创建仲裁节点1.4.4 初始化配置副本集和主节点1.4.5 查看副本集的配置内容 rs.conf()1.4.6 查看副本集状态1.4.7 添加副本从节点…

AIGC时代算法工程师的面试秘籍(2024.5.27-6.9第十五式) |【三年面试五年模拟】

写在前面 【三年面试五年模拟】旨在整理&挖掘AI算法工程师在实习/校招/社招时所需的干货知识点与面试方法,力求让读者在获得心仪offer的同时,增强技术基本面。也欢迎大家提出宝贵的优化建议,一起交流学习💪 欢迎大家关注Rocky…

ROS话题通信机制实操C++

ROS话题通信机制实操C 创建ROS工程发布方(二狗子)订阅方(翠花)编辑配置文件编译并执行注意订阅的第一条数据丢失 ROS话题通信的理论查阅ROS话题通信流程理论 在ROS话题通信机制实现中,ROS master 不需要实现,且连接的建立也已经被封装了,需要…

Applied Spatial Statistics(七):Python 中的空间回归

Applied Spatial Statistics(七):Python 中的空间回归 本笔记本演示了如何使用 pysal 的 spreg 库拟合空间滞后模型和空间误差模型。 OLS空间误差模型空间滞后模型三种模型的比较探索滞后模型中的直接和间接影响 import numpy as np impor…

【html】用html写一个博物馆首页

效果图&#xff1a; 二级导航&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><l…

江协科技51单片机学习- p14 调试LCD1602显示屏

前言&#xff1a; 本文是根据哔哩哔哩网站上“江协科技51单片机”视频的学习笔记&#xff0c;在这里会记录下江协科技51单片机开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了江协科技51单片机教学视频和链接中的内容。 引用&#xff1a; 51单片机入门教程-2…

RabbitMQ消息队列 安装及基本介绍

一.MQ介绍 Message Queue &#xff08;MQ&#xff09;是一种跨进程的通信机制&#xff0c;用于在系统之间进行传递消息。MQ作为消息中间件&#xff0c;可以进行异步处理请求&#xff0c;从而减少请求响应时间和解耦 1.1 应用场景 1.1.1 系统之间通过MQ进行消息通信&#xff0…

leetcode 二分查找·系统掌握 x的平方根

题目&#xff1a; 题解 这题可以使用~01~泛型查找在0~x/2的范围内查找答案。 int mySqrt(int x) {long l0,rx,mid;while(l<r){mid(lr1)>>1;if(mid*mid>x)rmid-1;else lmid;}//因为一定有答案所以不用判定是否查找失败return l;}

Docker构建多平台镜像

docker的多架构镜像构建 目前很多服务器都是基于arm架构的&#xff0c;而现在大多数的docker镜像都是基于x86架构的。一种情况就是同样的代码编译成业务包做成镜像需要部署在不同架构的服务器上&#xff0c;这个时候我们就可以使用docker的多平台构建了。 以下操作是在centos7.…