当前位置: 首页 > news >正文

tcp的三次握手

http 和 https 都是是基于 TCP 的请求,https 是 http 加上 tls 连接。TCP 是面向连接的协议。

对于 http1.1 协议chrome 限制在同一个域名下最多可以建立 6 个 tcp 连接,所以如果在同一个域名下,同时有超过 6 个请求发生,那么多余的会进入排队等待状态,直到有请求完成,当前总请求数小于 6 就会建立tcp连接

http2 实现了多路复用,所有就不存在只能同时有 6 的 tcp 链接的限制了,对于 http1.1 和 http2 的区别,请参考这篇文章,http1.0、http1.1、http2、http3 的区别详解-CSDN博客

浏览器的网络进程发起网络请求的第一步就是建立 TCP 连接了,这是个老生常谈的面试题,关于 TCP 的三次握手和断开连接的四次挥手。

这个三次握手背了那么多次都记不住?很难吗,其实就是3个请求而已,超级简单的啊,其中2个请求是客户端发起的,一个是服务端发起的,加起来一共3个,毫无难度的,而为 tcp 连接是浏览器发起的,也就是客户端发起的,所以客户端发起的请求肯定比服务端的多一个。

其实我们需要背诵的重点就是3个缩写单词,一个是SYN 同步标志,一个应答信号ACK,还有一个是 ISN 初始序列号,客户端和服务端都分别发送了同步标志和应答序列号

  1. 第一次握手(SYN):

    • 客户端向服务器发送一个带有 SYN(同步)标志的数据包,表示请求建立连接。
    • 客户端选择一个初始的序列号(ISN,Initial Sequence Number),并指定一些连接参数(如最大报文段大小)。
    • 状态变化:客户端进入 SYN-SENT 状态,等待服务器的响应。【已发送状态】
  2. 第二次握手(SYN + ACK):

    • 服务器接收到客户端的 SYN 请求后,向客户端回送一个带有 SYN 和 ACK(确认)标志的数据包,表示同意建立连接。
    • 服务器也选择一个自己的初始序列号,并确认客户端的 ISN。
    • 服务器还可以在这个阶段发送一些连接参数。
    • 状态变化:服务器进入 SYN-RECEIVED 状态。【已接受状态】
  3. 第三次握手(ACK):

    • 客户端接收到服务器的 SYN + ACK 响应后,向服务器发送一个带有 ACK 标志的数据包,表示已经收到服务器的确认。
    • 状态变化:客户端进入 ESTABLISHED 状态,服务器也进入 ESTABLISHED 状态。【已建立连接状态】
    • 此时,双方都已确认对方的能力,并可以开始进行数据传输。
http://www.lryc.cn/news/284811.html

相关文章:

  • unity 矩阵探究
  • MySQL---单表查询综合练习
  • Python项目——搞怪小程序(PySide6+Pyinstaller)
  • MySQL练习题
  • vue-项目打包、配置路由懒加载
  • 词语的魔力:语言在我们生活中的艺术与影响
  • android List,Set,Map区别和介绍
  • Mysql 编译安装部署
  • 【目标检测】YOLOv5算法实现(九):模型预测
  • centos宝塔远程服务器怎么链接?
  • C语言练习day8
  • 蓝凌OA-sysuicomponent-任意文件上传_exp-漏洞复现
  • C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法
  • C++播放音乐:使用EGE图形库
  • C++中const和constexpr的区别:了解常量的不同用法
  • 高级架构师是如何设计一个系统的?
  • 力扣:474. 一和零(动态规划)(01背包)
  • 【复现】Apache Solr信息泄漏漏洞_24
  • 《WebKit 技术内幕》之五(4): HTML解释器和DOM 模型
  • 记录一个sql:查询商品码对应多个商品的商品码
  • Linux内核--网络协议栈(三)sk_buff介绍
  • 尝试解决githubclone失败问题
  • VUE表单中多个el-upload上传组件共享回调函数解决方案
  • Opencv4快速入门笔记
  • three.js 点按钮,相机飞行靠近观察设备
  • 什么情况下物理服务器会运行出错?
  • 配置免费的SSL
  • (2)(2.1) Andruav Android Cellular(一)
  • [GN] Vue3.2 快速上手 ---- 核心语法(终章)_3
  • 在k8s上部署ClickHouse