三次握手,四次挥手基本概念及其抓包演示

news2024/11/18 17:45:35

目录

1.tcp三次握手

2.tcp四次挥手

3.思考问题(面试常考)

3.1 三次握手时可能出现什么攻击?

3.2 为什么是三次握手,可不可以是两次,为什么?

​编辑3.3 四次挥手的过程可以用三次完成吗?

4.抓包演示三次握手四次挥手


1.tcp三次握手

tcp协议特点:面向连接的,可靠的,流式服务,

udp协议特点:无连接的,不可靠的,数据报服务

TCP协议提供的是:面向连接的,可靠的,字节流服务.使用TCP协议通信的双方必须先建立连接,才能开始数据的读写.双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输.TCP连接是全双工的,双方的数据可以通过一个连接进行读写,完成数据交换之后,通信双方都必须断开连接以释放系统资源.

三次握手发生在发起链接 connect 的时候:

tcp协议报头:

6位标志位包含如下几项:
URG标志:表示紧急指针(urgent pointer)是否有效,

ACK标志:表示确认号是否有效.我们称携带ACK标志的TCP报文段为确认报文段

PSH标志:提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中).

RST标志:表示要求对方重新建立连接,我们称携带RST标志的TCP报文段为复位报文段

SYN标志:表示请求建立一个连接.我门称携带SYN标志的TCP报文段为同步报文段

FIN标志:表示通知对方本端要关闭连接了.我们称携带FIN标志的TCP报文段为结束报文段

2.tcp四次挥手

什么时候开始挥手?服务器或者客户端执行close的时候;

刚好被动断开方收到要关闭的报文的时候也执行了close;也就是双方同时close,那么此时四次挥手也就演变为了三次挥手.否则,一定是需要四次挥手的.

3.思考问题(面试常考)

3.1 三次握手时可能出现什么攻击?

1.SYN洪泛攻击(SYN Flood Attack)客户端不断向服务器端发送连接请求,而不执行三次握手的第三步操作,就是只完成了三次握手的前两步操作,存在大量的半开连接,消耗服务器的连接资源。

防御:服务器端在分配资源时检查一下客户端是否是合法用户

2.DDOS攻击(分布式拒绝服务)

随着技术的进步,服务器端分配资源的时候会判断是否合法,以防止洪泛攻击,DDOS攻击是伪造合法用户。

3.2 为什么是三次握手,可不可以是两次,为什么?

不可以,原因1:因为容易受到攻击,参考第一问;如果不考虑攻击的话,原因:为了防止已经失效的连接请求报文段突然又传到了服务器端,具体如下:


3.3 四次挥手的过程可以用三次完成吗?

可以,第二步和第三步合在一起(没有时间差)。刚好被动断开方收到要关闭的报文的时候也执行了close;也就是双方同时close,那么此时四次挥手也就演变为了三次挥手.否则,一定是需要四次挥手的.

4.挥手时,可能受到什么攻击?

第三步容易受到攻击,第三步发FIN的时候,是被动断开,主动断开方最先发送结束报文想要断开链接,发送后主动方进入到TIME_WAIT状态(持续大概两分钟),在此期间,被动方不同意断开连接,不停的发FIN。主动方就认为,被动方没有收到ACK,这个连接就一直存在,无法断开。但是这种情况需要封装底层报文,一般不会这么做,除非是专门做攻击。

4.抓包演示三次握手四次挥手

使用tcpdump可以抓包观察TCP连接的建立与关闭.该命令需要管理员权限,格式如下:

(假设两个测试用的主机IP地址为192.168.6.104和192.168.6.146)

sudo tcpdump -i ens33 -nt '(src 192.168.6.104 and dst 192.168.6.146) or (src 192.168.6.146 and dst 192.168.6.104 )'

ens33表示是虚拟机 

注意:这里如果是用回环地址测试,可以这样写:sudo tcpdump -i lo

三次握手抓包过程:

四次挥手抓包过程:

抓包数据的Flag含义:

S:SYN;同步;表示开始会话请求

F:FIN ;结束; 结束会话

R:RST;复位;中断一个连接

P:PUSH;推送: 数据包立即发送

U:URG;紧急

E:ECE;显式拥塞提醒回应

W:CWR;拥塞窗口减少

. :没有Flag(除上面四种类型外的其他情况,有可能是 ACK 也有可能是 URG)

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

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

相关文章

Vue3 ElementPlus-table组件(合计)合并列

在使用ElementPlus的table组件的时候&#xff0c;我们通常会处理合计&#xff0c;当遇到合计行需要合并列的时候&#xff0c;可以这样做。 核心就是获取标签&#xff0c;对标签的CSS样式进行设置&#xff0c;以达到合并单元格的效果。 Template <el-tablemax-height"ca…

UnityShader常用算法笔记(颜色叠加混合、RGB-HSV-HSL的转换、重映射、UV序列帧动画采样等,持续更新中)

一.颜色叠加混合 1.Blend混合 // 正常&#xff0c;透明度混合 Normal Blend SrcAlpha OneMinusSrcAlpha //柔和叠加 Soft Additive Blend OneMinusDstColor One //正片叠底 相乘 Multiply Blend DstColor Zero //两倍叠加 相加 2x Multiply Blend DstColor SrcColor //变暗…

力扣:链表篇章

1、链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#xff09;。 2、链表的类…

软件开发人员从0到1实现物联网项目:需求分析

文章目录 前言市场调研线下考察竞品参考 项目目标功能需求用户端功能需求商家功能需求系统管理功能需求 非功能需求性能安全性易用性扩展性可靠性 小结 前言 上文对实现自助棋牌室项目涉及到的技术做了调研&#xff0c;尤其是物联网技术。那接下来就是对需求进行一番分析了&am…

Swing不显示图片

文件在同一目录下&#xff0c;这样写运行不显示图片 把路径改为绝对路径 程序正常运行

ubuntu 23开机界面美化教程

效果 方法 GRUB开机界面美化 从上述网站中&#xff0c;查找GRUB Themes分类&#xff0c;并下载GRUB主题包&#xff08;tar.gz格式&#xff09;&#xff0c;如CyberSynchro.tar.gz&#xff1b; 解压下载得到的压缩包&#xff0c;得到CyberSynchro&#xff1b; 将CyberSynchro…

网络安全防御保护 Day7

1.因为FW1和FW2已处于双机热备状态&#xff0c;所以只需要对主设备进行配置即可。进入FW1的配置界面&#xff0c;选择“网络”界面&#xff0c;点击“IPsec”&#xff0c;进行IPsec通道的基本配置&#xff0c;这里选择的是“电信”链路。 2.完成上述配置后&#xff0c;进行待加…

springboot259交通管理在线服务系统的开发

交通管理在线服务系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装交通管理在线服务系统软件…

3505. 这也是一道排序题

一、题目 输入 10 7334774857 8461862436 540886577 5245195052 9194400521 5412986878 6694133363 1186771950 1405713915 7115286932 输出 -29430338967 二、思考 构造差分数组&#xff1a;C[i] A[i1] - A[i] 由题目条件可知&#xff1a;当A[i] A[i1] A[i-1] - A[i]时&am…

爱普生高稳定性温补晶振TG-5510CA和TG7050CMN的区别

爱普生之前同期推出过两款高精度温补晶振TCXO(TCXO)&#xff0c;即晶体振荡器TG-5510CA和TG7050CMN。同属性能优异的温补晶振&#xff0c;它们有相同点&#xff0c;也有不同之处。相同的比如&#xff1a;外形尺寸、可输出的频率范围等。不同点在&#xff1a;工作温度、频率/温度…

代码随想录刷题笔记-Day32

1. 最大子序和 53. 最大子数组和https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组&#xff1a;是数组中的一个连续…

实战案例——Kafka集群部署

1. 规划节点 IP主机名节点192.168.100.10zookeeper1集群节点192.168.100.20zookeeper2集群节点192.168.100.30zookeeper集群节点 2. 基础准备 使用ZooKeeper集群搭建的3个节点来构建Kafka集群&#xff0c;因为Kafka服务依赖于ZooKeeper服务&#xff0c; 所以不再多创建云主机…

Spring Boot Configuration Processor使用

一、功能介绍 spring-boot-configuration-processor的作用就是将自己的配置你自己创建的配置类生成元数据信息&#xff0c;这样就能在你自己的配置文件中显示出来非常的方便。在META-INF目录下生成spring-configuration-metadata.json文件&#xff0c;从而告诉spring这个jar包…

大模型GPU监控之nvitop

背景 在进行大模型训练的时候&#xff0c;往往需要用到多张GPU卡&#xff0c;如何实现多卡的管理和监控&#xff0c;这是一个比较好的话题&#xff0c;下面介绍一个小工具。 安装nvitop pip install nvitop nvitop -m full 监控界面

二次封装 element-plus的Table 表格组件,减少代码臃肿

为什么要二次封装element-plus的Table 表格组件&#xff0c;言简意赅&#xff1a;以后难免会在表格里面加一些统一的逻辑&#xff0c;可以在表格里面书写重复的方法或样式 封装后的使用方式 props 参数类型可选值默认值说明tableDataArray——表格数据tableConfigArray——表…

【MySQL | 第四篇】区分SQL语句的书写和执行顺序

文章目录 4.区分SQL语句的书写和执行顺序4.1书写顺序4.2执行顺序4.3总结4.4扩充&#xff1a;辨别having与where的异同&#xff1f;4.5聚合查询 4.区分SQL语句的书写和执行顺序 注意&#xff1a;SQL 语句的书写顺序与执行顺序不是一致的 4.1书写顺序 SELECT <字段名> …

小程序学习 1

pages/goods/search/home.wxml首页功能设定 1. loading入场 2. 下拉刷新 3. 搜索栏 4. 分类切换 5. 商品列表 6. 规格弹层 7. 加载更多 <view style"text-align: center; color: #b9b9b9" wx:if"{{pageLoading}}"><t-loading theme"circula…

springboot-整合mybatis

1.导入依赖 <!--整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version></dependency><!--mysql--><dependen…

如何在Windows中对硬盘进行分区?这里有详细步骤

本文介绍如何在Windows11、10、8、7、Vista和XP中对硬盘进行分区 如果这个过程听起来比你想象的要复杂一点,不要担心,因为事实并非如此。在Windows中对硬盘进行分区一点也不难,通常只需要几分钟。以下是操作方法。 注意:这些说明适用于Windows 11、Windows 10、Windows 8…

Linux文件系列: 深入理解缓冲区和C标准库的简单模拟实现

Linux文件系列: 深入理解缓冲区和C标准库的简易模拟实现 一.缓冲区的概念和作用二.一个样例三.理解样例1.样例解释2.什么是刷新? 四.简易模拟实现C标准库1.我们要实现的大致框架2.mylib.h的实现1.文件结构体的定义2.myfopen等等函数的声明3.完整mylib.h代码 3.myfopen函数的实…