详谈三次握手

news2024/11/23 2:42:42

作者:爱塔居

专栏:计算机网络

作者简介:大三学生,希望和大家一起进步

 

 经过三次的对话,这两个火柴人才确认了双方都能够说话,都能听见。三次握手也是一样的,只要这样才能确认双方的接受与发送能力是否正常。

 1.第一次握手:客户端给服务器发一个SYN报文,并指明客户端的初始化序列号ISN(c)。此时,客户端处于SYN_Send状态

2.第二次握手:服务器收到客户端的SYN报文之后,会以自己的SYN报文作为应答,并且也是指定了自己的初始化序列号ISN(s),同时会把客户端的ISN报文+1作为ACK的值,表示自己已经收到了客户端的SYN,此时服务器处于SYN_REVD的状态

3.第四次握手:客户端收到SYN报文之后,会发送一个ACK报文,也是将服务器的ISN+1作为ACK的值,表示已经收到了服务端的SYN报文,此时客户端处于establised状态。

4.服务器收到ACK报文之后,也处于setablised状态,双方建立连接。

 【注意】

🍬1.ISN是动态生成的。

三次握手的一个重要功能便是客户端和服务端交换ISN,以便于对方知道接下来接受数据的时候,如何按序列号组装数据。如果ISN是固定的,攻击者就会很容易就猜出后续的确认号。

🎀2.半连接序列和全连接序列

服务器第一次收到客户端的SYN之后,就会处于SYN——RCVD状态,此时双方还没有完全建立连接,服务器就会把此种状态下请求连接放在一个队列里,这种队列就称为半连接状态。

全连接序列就是已经完成三次握手,建立起连接的就会放在全连接队列。如果队列满了,就可能会出现丢包的现象。

🍒3.携带数据

第一次、第二次握手不能携带数据,第三层握手可以携带数据。

如果第一次握手能携带数据,如果有人恶意攻击服务器,每次在第一次握手中的SYN报文中放入大量的数据,因为攻击者不理会服务器的接受、发送能力是否正常,疯狂重复发送SYN报文,就会使服务器花费很多时间、内存空间来接受这些报文。当第三次的时候,对于客户端,已经建立连接了,接受、发送能力也正常,所以就能携带数据。

🥝4.出现差错的情况

两种情况:

①丢包

主机A发送数据给B之后,可能因为网络拥堵等原因,数据无法到达主机B;

如果主机A在一个特定时间间隔内没有收到B发来的确认应答,就会进行重发。 

 ②ACK丢失了

没有接收到确认应答,会重新发送的机制,会使一方收到很多重复的数据。TCP协议需要能够识别出那些包是重复的,并且把重复的包丢弃掉。利用前面的序列号,就能很容易做到去重的效果。

确认超时重传的时间:

超时时间的长短会受网络环境的影响,太长会影响整体重传效率,太短,会频繁发送重复的包。

TCP为了保证无论在任何环境下都能比较高性能的通信,会动态计算这个最大超时时间。

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

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

相关文章

文件操作--按数据块读写文件

函数fread()和函数fwrite()用于一次读取一组数据,即按数据块读写文件。fread()的函数原型为: unsigned int fread(void *buffer ,unsigned int size,unsigned int count ,FILE *fp);…

raid5故障导致LeftHand存储崩溃的服务器数据恢复案例

HP-LeftHand存储简介: HP LeftHand存储支持RAID5、RAID6、RAID10磁盘阵列,支持卷快照,卷动态扩容等。 服务端: 客户端: LeftHand存储分为三个层级:物理磁盘、逻辑磁盘、逻辑卷。多个物理磁盘组成一个逻辑的…

pdf文档加水印怎么弄?用这款软件很方便

在工作中,我们经常需要将PDF文件发送给他人,但无法保证文件内容不被窃取,因此需要添加水印来保证文件的安全性。如果你不知道如何给PDF文件添加水印,以下两款软件可以帮助你轻松实现,一起来看看吧! 方法一&…

火爆全网,自动化测试-Allure完美测试报告(详全)卷起来...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、allure简介 A…

网络协议与攻击模拟-17-DNS协议-报文格式

二、DNS 查询 客户机想要访问www.baidu.com,根据自己的 TCP / IP 参数,向自己的首选 DNS 服务器发送 DNS 请求 首选 DNS 收到客户机的请求后,会去查询自己的区域文件,找不到www.baidu.com的 IP 地址信息(将请求转发到…

天池大赛中药说明书实体识别挑战冠军方案开源(二)部署运行实战 附详细操作说明

目录 Introduction 导言环境搭建环境 Github地址项目目录说明使用步骤下载预训练模型更改部分代码模型训练参数设置BERT-CRF模型训练BERT-SPAN模型训练BERT-MRC模型训练 运行训练预测复赛 test 文件 (上述模型训练完成后) 参考资料其它资料下载 Introduc…

Rdkit|化学指纹(fingerprint)

github:地址 文章目录 Rdkit|化学指纹(fingerprint)化学指纹(fingerprint)RDKFingerprintMorgan指纹提供的指纹信息存储在字典中 MACCS指纹AtomPair指纹TopologicalTorsion指纹参考 Rdkit|化学指纹(fingerprint&#x…

使用楔形步进体模进行X射线骨密度测定

来源:投稿 作者:洪棋 编辑:学姐 骨密度(BMD)被广泛应用于骨折风险的预测和骨质疏松症的常规识别。双能x线骨密度仪(DXA)在临床上广泛用于测量脊柱、髋关节和前臂的骨密度(aBMD)。放射学骨密度测定法(Radiographic absorpometry, RA)是最早的骨…

最全Linux Shell详细教程

一、环境准备 我们在这里就在本地测试学习,因此我在这里先不建议大家这么着急去买服务器来学,这样比较费钱,等我们学好这些基础之后,再去上手服务器,那将是手到擒来。 本地学习工具:虚拟机 如果你没有该工…

ES6~ES13新特性(一)

1 ECMA新描述概念 2 let、const的使用 3 let、const和var区别 4 块级作用域的使用 5 模板字符串的详解 6 ES6函数的增强用法 一个执行上下文关联两个环境。词法环境和变量环境。 词法环境是由let和const创建;变量环境是由var创建的。 let-const的基本使用、不能…

网络安全现状,一个黑客真实的收入

前言 上次带大家了解了什么是黑客,黑客是干嘛的,今天就来看看黑客的收入和方向怎么样。 一个黑客年薪是多少呢? 外界普遍认为黑客是高收入群体,那么你想过黑客是怎么赚钱的吗?黑客分为白帽黑客和黑帽黑客&#xff0…

R语言实现SMOTE与SMOGN算法解决不平衡数据的回归问题

本文介绍基于R语言中的UBL包,读取.csv格式的Excel表格文件,实现SMOTE算法与SMOGN算法,对机器学习、深度学习回归中,训练数据集不平衡的情况加以解决的具体方法。 在之前的文章Python实现SMOGN算法解决不平衡数据的回归问题&#x…

源码安装 gcc遇到的问题

1、需要的工具和库的安装1 见https://gcc.gnu.org/install/preprequisites.hml 2、源码下载和依赖的工具的源码的下载 在https://gcc.gnu.org/mirrors.html中选择一个镜像源的链接打开,下边以日本的源(http://ftp.tsukuba.wide.ad.jp/software/gcc/)为例。 2.1 …

MySQL数据库的备份与还原、视图基础操作

一、备份与还原 1、使用mysqldump命令备份数据库中的所有表 mysqldump -uroot -p#$%#*#^* booksDB authorbook authors books > /backup/db/booksDB.spl 2、备份booksDB数据库中的books表 mysqldump -uroot -p*&*&……%¥#¥% booksDB books …

FreeRTOS(任务调度)

任务调度 什么是任务调度? 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务。 FreeRTOS中开启任务调度的函数是 vTaskStartScheduler() ,但在 CubeMX 中被封装为 osKernelStart() 。 FreeRTOS的任务调度规则是怎样的? FreeRTOS…

QT禁用窗口【关闭】按钮的实现方法

QT禁用窗口关闭按钮的实现方法,直接在窗体类构造函数的内部写入setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint)即可实现,案例如下: #include "form.h" #include "…

apache 安装配置 基础篇(三) 之 虚拟机、主服务等、默认虚拟主机、serverpath、DocumentRoot Directory

apache虚拟主机类型有两种 1、基于名称的虚拟主机 2、基于地址或IP地址的虚拟主机 基于名称的虚拟主机 但是如果不用域名(host)就没有办法区分了,而执行第一个匹配的网站了(第一个虚拟主机所处理) ## httpd-vhosts.conf 添加如下代码&…

选择合适的软件,提升工作计划效率

在快节奏的工作环境中,日程安排变得尤为重要。有许多不同的软件可用于帮助管理日程,但哪个软件最适合您的需求?在本文中,我们将介绍几种适合工作安排的软件。 1.Google Calendar Google日历是一种功能强大、易于使用且免费的日历应…

Orange pi3初调试

因为树莓派沦为理财产品1年前出手殆尽后,现在唯一一个B性能不足一直没动力调试,沦为吃灰工具。 偶然之间多多给推了个orange产品预售,看了下pi3的参数,这不和赚了差价的3B一个性能吗?果断定了个预售款,在差…

机器学习洞察 | 挖掘多模态数据机器学习的价值

在过去的数年里,我们见证了机器学习和计算机科学领域的很多变化。人工智能应用也愈趋广泛,正在加速融入人们的日常生活之中。机器学习作为技术核心,也在持续地发展进化,在更多领域发挥出越来越重要的作用。**机器学习会有哪些新的…