TCP三次握手,四次挥手,SYN泛洪攻击

news2025/1/20 7:15:21

目录

一.三次握手

二.SYN泛洪攻击概念

 三.四次挥手


一.三次握手

 

当客户端调用connect连接服务器时,底层会发生“三次握手”,握手成功,建立连接,connect解阻塞,继续执行。

TCP报头:

三次握手过程:

客户端发出SYN请求,处于SYN_SENT状态完成第一次握手,服务器收到客户端的SYN请求,处于SYN_RCVD状态,并发出ACK以及SYN请求,完成第二次握手,客户端收到服务的SYN和ACK,处于连接状态ESTABLISH,并发出ACK请求,完成第三次握手。

二.SYN泛洪攻击概念

攻击者客户端 伪造大量客户端ip 向服务端发出SYN请求;由于伪造ip的真实客户端并没有向服务端发出过建立连接请求,因此会直接丢弃掉服务端发送过来的SYN-ACK包,不会回复服务端;这就导致服务端处于SYN-RCVD状态;大量的伪造SYN请求就会使服务器长时间处于SYN-RECVD状态(等到客户端的ACK确认,没有受到ACK确认则忙于重新发送SYN-ACK包),服务器的半开连接队列被占满,从而阻止其他合法用户进行访问,甚至致使服务器崩溃;

 

 三.四次挥手

 当客户端调用close,激发底层发出FIN请求,完成第一次挥手。服务器收到客户端的FIN,立马发出ACK报文完成第二次挥手。服务器应用层调用close,激发底层发出FIN请求,完成第三次挥手,客户端收到服务器的FIN请求,发出ACK应答完成第四次挥手。

1.等待2MSL的意义:保证客户端最后发送的ACK能够到达服务器,帮助其正常关闭。

由于这个ACK报文段可能会丢失,使得处于LAST_ACK状态的服务器得不到对已发送FIN报文段的确认,从而会触发超时重传。服务器会重发FIN报文段,客户端能保证在2MSL时间内收到来自服务器的重传FIN报文段,从而客户端重新发送ACK应答报文段,并重置2MSL计数。

2、为什么要四次挥手?

释放 TCP 连接时之所以需要四次挥手,是因为 FIN 释放连接报文和 ACK 确认接收报文是分别在两次握手中传输的。 当主动方在数据传送结束后发出连接释放的通知,由于被动方可能还有必要的数据要处理,所以会先返回 ACK 确认收到报文。当被动方也没有数据再发送的时候,则发出连接释放通知,对方确认后才完全关闭TCP连接。

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

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

相关文章

P16 电路定理——巧妙-灵性-智慧

1、诺顿定理的证明 诺顿定理的证明, 回忆戴维南定理的证明是,在a,b两端加上一个电流源,再根据叠加定理,就解电压Uab。 对偶原理: 在a,b两端加上一个电压源u,再根据叠加定理求A中的独立源作用是给到a&#x…

下一代计算:嵌入AI的云/雾/边缘/量子计算

计算系统在过去几十年中推动了计算机科学的发展,现在已成为企业世界的核心,提供基于云计算、雾计算、边缘计算、无服务器计算和量子计算的服务。现代计算系统解决了现实世界中许多需要低延迟和低响应时间的问题。这有助于全球各地的青年才俊创办初创企业…

【学会动态规划】环形子数组的最大和(20)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…

用友时空KSOA SQL注入漏洞[2023-HW]

用友时空KSOA SQL注入漏洞 一、 产品简介二、 漏洞分析三、 影响范围四、 复现环境五、 漏洞复现小龙POC检测脚本:批量SQL注入源码 六、 修复建议**临时缓解方案**升级修复方案 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供…

vue3+vite+pinia

目录 一、项目准备 1.1、Vite搭建项目 1.2、vue_cli创建项目 二、组合式API(基于setup) 2.1、ref 2.2、reactive 2.3、toRefs 2.4、watch和watchEffect 2.5、computed 2.6、生命周期钩子函数 2.7、setup(子组件)的第一个参数-props 2.8、setup(子组件)的第二个参数…

springboot父服务下创建子服务,依赖管理

在微服务中,我们会有一个父服务,下面建多个子服务。 1、创建子服务 2、子服务依赖父服务 引入父工程 3、父工程管理子服务 4、查看依赖正常 结束!! hy:25 知识是对灵魂的澄清。 -- 柏拉图《理想国》

29 深度玻尔兹曼机

文章目录 29 深度玻尔兹曼机29.1 背景介绍29.2 DBM的叠加方式 29 深度玻尔兹曼机 29.1 背景介绍 过去在解决BM问题的时候,提出过多种模型:RBM、SBN、DBN 其中RBM是一种有限制条件的,简化的BM,限制了隐藏层和观测层内部都没有连…

GEE学习05

修改输出绝对路径 和python里面一样,修改输出底图的路劲: Map3.save(r"C:\test\topo.html")1、浏览一下GEE帮助文档 https://developers.google.cn/earth-engine/guides 这个链接是国内外都可以正常访问的。 GEE指导主要是针对的JS&#xf…

Verdi_Annotate Macro功能

Verdi_Annotate Macro功能 介绍 When debugging designs that contain define macros, it is often helpfull to view a macro definition in the context of a macro reference. 在调试包含定义宏的设计时,在宏引用上下文中查看宏定义通常会很有帮助。 方法 Sh…

PDM/PLM系统建设

仅供学习使用,会随时更新 工程机械跨生命周期数据管理系统 来源:清华大学 浅论企业PDM/PLM系统建设成功经验 来源:e-works 作者:陈凡 https://articles.e-works.net.cn/pdm/article149572.htm 随着“中国制造2025”强基工程战略的…

髋关节 弹响

评估测试 https://www.bilibili.com/video/BV1A44y1j71Y/?spm_id_from333.880.my_history.page.click&vd_source3535bfaa5db8443d107998d15e88dc44 根据此视频整理所得 托马斯测试 第一种情况 如果你难于将膝关节拉到胸前,并感觉前面有骨性的挤压 说明你股…

六、Linux系统下,文件操作命令都有哪些?

总括: 创建文件/文件夹:touch; 查看:cat/more; 复制:copy; 移动文件/文件夹:mv; 删除:rm; 1、创建文件 (1)语法&#x…

VS2015项目中,MFC内存中调用DLL函数(VC6生成的示例DLL)

本例主要讲一下,用VC6如何生成DLL,用工具WinHex取得DLL全部内容,VC2015项目加载内存中的DLL函数,并调用函数的示例。 本例中的示例代码下载,点击可以下载 一、VC6.0生成示例DLL项目 1.新建项目,…

PAT 1079 Total Sales of Supply Chain

个人学习记录,代码难免不尽人意。 A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone involved in moving a product from supplier…

sleep以及如何正确终止线程

Thread.sleep()为什么要抛出中断异常或者放入try-catch中? 因为:在 sleep 的同时也要对外界情况有感知能力,也就是能够响应中断。比如在调用 interrupt() 的时候,其实就是想尽快地结束线程,所以,继续的 sl…

结构体指针变量的使用

1、结构体指针的引用 #include<iostream> using namespace std;struct Student {int num;char name[32]; }; int main() {struct Student stu {1,"张三"};struct Student* p &stu;system("pause"); return 0; } 2、通过结构体指针访问结构体…

使用Scanner接收用户输入

扫描输入的两种方式 Scanner主要提供了两个方法来扫描输入&#xff1a; &#xff08;1&#xff09;hasNextXxx()&#xff1a;是否还有下一个输入项&#xff0c;Xxx可以是Int&#xff0c;Long等代表基本数据类型的字符串。 如果只是判断是否包含下一个字符串&#xff0c;则直…

Spring Boot(六十四):SpringBoot集成Gzip压缩数据

1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springf…

Vue3 Axios网络请求简单应用

cd 到项目 安装Axios&#xff1a;cnpm install --save axios post传递参数 需要安装querystring 用于转换参数格式&#xff1a;cnpm install --save querystring 运行示例&#xff1a; 后台接口&#xff1a; GetTestData.java package com.csdnts.api;import java.io.IOExce…

Logic 2逻辑分析器捉到的CAN帧

代码开发环境 逻辑分析仪环境 MCU芯片环境&#xff1a;RH850/U2A16 逻辑分析器(LA)抓到的CAN帧 <完>