浅学三次握手

news2024/9/23 9:30:50

 

 数据要完成传输,必须要建立连接。由于建立TCP连接的过程需要来回3次,所以,将这个过程形象的叫做三次握手。

299701d5179d45d18709864815f69d07.png


结合上面的图来看更清楚。

先说三次握手吧,连接是后续数据传输的基础。就像我们打电话一样,必须保证我和对方都拿着电话在听,才能保证我们两个说的话对方能够接收到。

 

 

三次握手大概就是这个意思:

张三想跟李四聊聊天,于是张三拨通了李四的手机号,李四听到铃声响起,按了接听按钮。张三:Hi,李四,是你吗?唠两块钱的呀!

李四:Hi,张三,是我,可以唠。

张三:好,我确定是你了,接下来我要开始和你唠了。

看上去多少有点儿死板,但程序上确实就是这样的。

 

 

1、第一次握手

首先客户端发起连接请求,向服务器发送 TCP段,段中包含了目标端口和本机端口,设置 SYN 标志位为1,序号为 x,也就是初始序号 ISN,如果是第一个连接,很有可能就是 0。当然,此时服务器对应的端口要处于监听状态。此时,客户端进入 SYNC_SENT 状态,等待服务器的确认。

 

2、第二次握手

服务端收到客户端发来的 SYN 段,对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1),这就是确认序号。同时,服务端还要发送 SYN 请求信息,将SYN位置为1,Sequence Number为 y(服务端的TCP段序号)。服务器端将上述所有信息放到一个TCP段(即SYN+ACK段)中,一并发送给客户端,此时服务器进入SYN_RECV状态。

 

3、第三次握手

客户端接收到服务端发来的 SYN+ACK 段后,发送一个 ACK 给服务端,将 Acknowledgment Number 设置为 y+1。此时客户端进入 ESTABLISHED(已连接)状态,服务端接收到此 TCP段,也将进入 ESTABLISHED 状态,也就标志着三次握手结束,连接成功建立。

f2b66b521df146e194f7119411a5c944.png

 

三次握手完成之后,连接就建立了,之后就可以愉快的传输数据了。

 

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

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

相关文章

工作是为了什么

如果经常和总监及以上的领导聊天,就会发现他们与咱们一线程序员的最大不同,并不是编程技能多高深精通,而是分析问题、认知世界的方式。 程序员只关注工作领域的“一亩三分地”,实质上是放弃了自己成长的机会,在工作的…

软件测试——非功能测试

工作职责: 1.负责产品系统测试,包括功能测试、性能测试、稳定性测试、用户场景测试、可靠性测试等。 2.负责测试相关文档的编写,包括测试计划、测试用例、测试报告等。 3.负责自动化测试框架、用例的维护。 岗位要求: 1.熟练…

解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码

使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久,网上的方法基本上都试过了,终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法&#xff1a…

53 传输层

作用:负责数据能够从发送端传输接收端 再谈端口号 端口号(port)标识了一个主机上进行通信的不同的应用程序 在TCP/IP协议中,用“源IP”,“源端口号”,“目的IP”,“目的端口号”&#xff0c…

陶晶驰串口屏与arduino uno通信,远程控制arduino 2560上的LED

一 材料清单 arduino uno 1个 arduino 2560 1个 nrf24l01 2个 陶晶驰串口屏 1个 二 本文目的 通过串口屏触摸按键远程控制arduino 2560上的LED 点亮。 三 硬件接线 3.1 发射端接线 3.1.1uno和发射模块接线 nRF24L01 与Arduino UNO接线如…

你也想做一个Elemen-ui吧!!!——Blueの前端路

目录 前言 diglog组件 准备工作: 在diglog.vue中模仿element-ui搭建diglog框架 该组件需要完成的任务: title diglog.vue代码: App.vue代码: 效果: 自定义dialog的宽度和距离顶部的 App.vue代码:…

Windows 下 VMamba 安装教程(无需更改base环境中的cuda版本且可加速)

导航 Mamba 及 Vim 安装问题参看本人之前博客:Mamba 环境安装踩坑问题汇总及解决方法Windows 下 Mamba 的安装参看本人之前博客:Window 下Mamba 环境安装踩坑问题汇总及解决方法 (无需绕过selective_scan_cuda)Linux 下VMamba 安…

前端面试题(JS篇三)

一、|| 和 && 操作符的返回值? || 和 && 首先会对第一个操作数执行条件判断,如果其不是布尔值就先进行 ToBoolean 强制类型转换,然后再执行条件判断。 对于 || 来说,如果条件判断结果为 true 就返回第一个操作数的…

磁环编码器原理

目录 概述 1 编码器介绍 2 实现原理介绍 2.1 磁环功能分析 2.2 硬件实现方式 3 编码器参数 3.1 编码器精度 3.2 影响编码器精度的因素 4 角度计算方法 4.1 单对极编码器 4.2 磁游标编码器 4.2.1 游标方案实现原理 4.2.2 一个实例磁环分析 5 磁刻线编码器 概述 本…

算法题-二叉树

二叉树 二叉树的理论知识 二叉树的种类 满二叉树 满二叉树:如果一棵二叉树只有度为0的节点和度为2的节点,并且度为0的节点在同一层,则此二叉树为满二叉树(深度为k,有2^k-1个节点的二叉树)。 完全二叉…

PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题?一、了解长事务阻塞的原因&…

降Compose十八掌之『利涉大川』| Canvas

公众号「稀有猿诉」 原文链接 降Compose十八掌之『利涉大川』| Canvas 任何一个GUI框架都会提供大量的预定义的UI部件,让开发者构建UI页面,但有些时候预定义的部件无法满足需求,这时就需要定制,甚至是自定义绘制的内容。对…

快手ip地址为什么会乱跳城市

在数字化时代,网络IP地址已成为我们数字身份的一部分,它既是网络空间中的“门牌号”,也是我们在网络世界中的“身份证”。然而,近期有不少快手用户反映,他们的IP地址在使用过程中出现了乱跳城市的现象,引发…

用好六西格玛培训中的DOE工具,让产品和过程优化不再难——张驰咨询

在六西格玛培训中,试验设计(Design of Experiments,简称DOE)是一种至关重要的工具,它不仅有助于系统地规划和分析试验,还能显著提升产品和过程的改进效率。DOE通过最小化试验次数,同时最大化信息…

大数据基础:Hadoop之Yarn重点架构原理

文章目录 Hadoop之Yarn重点架构原理 一、Yarn介绍 二、Yarn架构 三、Yarn任务运行流程 四、Yarn三种资源调度器特点及使用场景 Hadoop之Yarn重点架构原理 一、Yarn介绍 Apache Hadoop Yarn(Yet Another Reasource Negotiator,另一种资源协调者)是Hadoop2.x版…

Windows安装PostgreSQL

PostgreSQL是一种功能齐全的对象-关系型数据库管理系统(ORDBMS),它以加州大学伯克利分校计算机系开发的POSTGRES项目为基础,经过多年的发展,已成为一个高度可扩展、支持多种数据类型、具备复杂查询能力的数据库系统。在…

MoonBit 全新语法:级联运算符

✨MoonBit 引入了 “..” 操作符,能够优雅地对可变 API 进行链式调用,同时保持可变 API 签名的整洁(依然返回 Unit)

昇思25天学习打卡营第19天|sea_fish

打卡第19天。本次学习的内容为生成式中的Diffusion扩散模型。记录学习的过程。 模型简介 什么是Diffusion Model? 如果将Diffusion与其他生成模型(如Normalizing Flows、GAN或VAE)进行比较,它并没有那么复杂,它们都…

PHP转Go系列 | ThinkPHP与Gin框架之OpenApi授权设计实践

大家好,我是码农先森。 我之前待过一个做 ToB 业务的公司,主要是研发以会员为中心的 SaaS 平台,其中涉及的子系统有会员系统、积分系统、营销系统等。在这个 SaaS 平台中有一个重要的角色「租户」,这个租户可以拥有一个或多个子系…

Text Control 控件教程:文本和表格相互转换

文档布局中的一项典型任务是将使用制表位创建的纯文本表格转换为完全格式化的表格。在本文中,我们将向您展示如何通过检测制表位并将其转换为包含位置的表格单元格,将纯文本表格转换为表格。 TX Text Control 是一款功能类似于 MS Word 的文字处理控件&…