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

TCP 三次握手建立连接详解

文章目录

  • 一、三次握手流程
    • 1、第一次握手
    • 2、第二次握手
    • 3、第三次握手
  • 二、引申问题
    • 1、报文丢失,会发生什么?
      • 1.1、第一次握手丢失
      • 1.2、第二次握手丢失
      • 1.3、第三次握手丢失
    • 2、为什么 ISN(Initial Sequence Number,初始序列号) 不固定
    • 3、为什么只有第三次握手的时候可以携带数据
    • 4、为什么是三次握手,而不是两次、四次

一、三次握手流程

在这里插入图片描述
一开始,客户端和服务端都处于 CLOSED 状态(CLOSED 是一个假想的起始点, 并不是真实状态),先是服务端主动监听某个端口,处于 LISTEN 状态

1、第一次握手

在这里插入图片描述
客户端会随机初始化序号(client_isn),然后将其填入 TCP 首部的「序列号」字段中,接着把 SYN 标志位设成 1,最后发送 SYN 报文给服务端,该报文不包含应用层数据,之后客户端处于 SYN_SENT 状态

2、第二次握手

在这里插入图片描述
服务端收到客户端的 SYN 报文后,也随机初始化自己的序号(server_isn),然后将其填入 TCP 首部的「序列号」字段中,其次将 client_isn + 1 填入 TCP 首部的「确认应答号」字段中,接着把 SYN 和 ACK 标志位都设成 1,最后发送 SYN+ACK 报文给客户端,该报文也不包含应用层数据,之后服务端处于 SYN_RCVD 状态

3、第三次握手

在这里插入图片描述

  • 客户端收到服务端的 SYN+ACK 报文后,将 server_isn + 1 填入 TCP 首部的「确认应答号」字段中,接着把 ACK 标志位设成 1,最后发送该报文给服务端,这次报文可以携带客户端到服务端的数据,之后客户端处于 ESTABLISHED 状态
  • 服务端收到客户端发来的报文后,也进入 ESTABLISHED 状态

二、引申问题

1、报文丢失,会发生什么?

1.1、第一次握手丢失

1.2、第二次握手丢失

1.3、第三次握手丢失

2、为什么 ISN(Initial Sequence Number,初始序列号) 不固定

3、为什么只有第三次握手的时候可以携带数据

4、为什么是三次握手,而不是两次、四次

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-B. 错误代码与解决方案
  • AWS技术助力企业满足GDPR合规要求
  • MATLAB 中常用的微分函数介绍
  • 武汉科技大学人工智能与演化计算实验室许志伟课题组参加2025中国膜计算论坛
  • 网络运维过程中的常用命令
  • 安装npm:npm未随Node.js一起安装
  • 深度学习基础知识
  • 5月13日日记
  • 【行为型之策略模式】游戏开发实战——Unity灵活算法架构的核心实现策略
  • python三方库sqlalchemy
  • 【IDEA】注释配置
  • 【SSL部署与优化​】​​如何为网站启用HTTPS:从Let‘s Encrypt免费证书到Nginx配置​​
  • 服务器数据恢复—XFS文件系统分区消失的数据恢复案例
  • 网络互联技术深度解析:理论、实践与进阶指南
  • PYTHON训练营DAY25
  • vs_code 调试python文件
  • URP相机如何将场景渲染定帧模糊绘制
  • 最优化方法Python计算:有约束优化应用——近似线性可分问题支持向量机
  • 自定义列甘特图,原生开发dhtmlxgantt根特图,根据数据生成只读根特图,页面展示html demo
  • MySQL视图:虚拟表的强大功能与应用实践
  • 思想史家陈谷嘉逝世,曾为岳麓书院当代复兴奠定重要基础
  • 第78届戛纳电影节开幕,罗伯特·德尼罗领取终身成就奖
  • 王毅集体会见加勒比建交国外长及代表
  • “降息潮”延续,多家民营银行下调存款利率
  • 新华时评:中美经贸会谈为全球经济纾压增信
  • 科创板年内第3家!健信超导IPO获受理,拟募资8.65亿