从TCP协议的原理来谈谈rst复位攻击

2023-11-19

在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。

 

1、TCP是什么?

TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字:

port到port:IP层只管数据包从一个IP到另一个IP的传输,IP层之上的TCP层加上端口后,就是面向进程了,每个port都可以对应到用户进程。

可靠:TCP会负责维护实际上子虚乌有的连接概念,包括收包后的确认包、丢包后的重发等来保证可靠性。由于带宽和不同机器处理能力的不同,TCP要能控制流量。

字节流:TCP会把应用进程传来的字节流数据切割成许多个数据包,在网络上发送。IP包是会失去顺序或者产生重复的,TCP协议要能还原到字节流本来面目。

从上面我用PowerPoint画的TCP协议图可以看到,标志位共有六个,其中RST位就在TCP异常时出现,也是我这篇文章重点关注的地方。

 

2、通过三次握手建立连接

下面我通过A向B建立TCP连接来说明三次握手怎么完成的。

为了能够说清楚下面的RST攻击,需要结合上图说说࿱

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从TCP协议的原理来谈谈rst复位攻击 的相关文章

  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 在 Linux 上更快地分叉大型进程?

    在现代 Linux 上达到与 Linux 相同效果的最快 最好的方法是什么 fork execve combo 从一个大的过程 我的问题是进程分叉大约 500MByte 大 并且一个简单的基准测试只能从进程中实现约 50 个分叉 秒 比较最
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 无法从 jenkins 作为后台进程运行 nohup 命令

    更新 根据下面的讨论 我编辑了我的答案以获得更准确的描述 我正在尝试从詹金斯运行 nohup 命令 完整的命令是 nohup java jar home jar server process 0 35 jar prod gt gt var
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • chown:不允许操作

    我有问题 我需要通过 php 脚本为系统中的不同用户设置文件所有者权限 所以我通过以下命令执行此操作 其中 1002 是系统的用户 ID file put contents filename content system chown 100
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 所有平台上的java

    如果您想用 java 为 Windows Mac 和 Linux 编写桌面应用程序 那么所有这些代码都相同吗 您只需更改 GUI 即可使 Windows 应用程序更像 Windows 等等 如果不深入细节 它是如何工作的 Java 的卖点之
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include

随机推荐

  • 容器适配器 -------------- stack 、queue、priority_queue的使用以及 为什么默认使用deque作为底层容器?

    什么是适配器 适配器是一种设计模式 设计模式是一套被反复使用的 多数人知晓的 经过分类编目的 代码设计经验的总结 该种模式是将一个类的接口转换成客户希望的另外一个接口 1 为什么将stack queue和priority queue称作为容
  • 第十六次CCF认证模拟试题(201903-2):二十四点(Java完整版)

    最近在练习算法 觉得CCF的算法题都还不错 就做了一下子 试卷原题 Java版解法 import java util ArrayList import java util Scanner public class Main public s
  • 不能不熬夜了

    我知道 熬夜不好 但是 现在 白天单位被鸟事所忙 没事磨洋工也得装个样子 看不了程序了 所以 只能把工作当作工作外 把业余当作工作了 况且 家庭压力太大
  • 如何用chrome查看post get及返回的数据

    chrome浏览器按下F12打开开发者工具 点击Network 找到过滤器 筛选XHR Method那一列会显示POST GET 转载于 https www cnblogs com yancongyang p 8142669 html
  • js调用angularjs的函数

    function test txm 获得对象 var appElement document querySelector ng controller MainCtrl 获得scope var scope angular element ap
  • 抖音短视频seo源码开发部署-技术分享(四)

    一 抖音短视频seo源码开发流程 抖音短视频SEO源码开发流程如下 1 分析需求 首先需要明确你的SEO目标 分析竞争对手 了解抖音短视频平台的规则 选定目标关键词和主题 2 编写代码 根据需求编写代码 并将其集成到你的应用程序或网站中 3
  • Association Class VS Full Class

    详细分析请见 http etutorials org Programming UML Chapter 6 Class Diagrams Advanced Concepts Association Class 1 关联类的必要性 关联类隔离了
  • X210开发板(S5PV210芯片)uboot中SD卡分区分析(init_raw_area_table函数)

    1 init raw area table函数调用关系 start s start armboot mmc initialize mmc init mmc startup init raw area table 2 struct raw a
  • visio画图常见问题解答

    使用visio画图有很多优点 与office相关产品完全兼容 可随时修改 操作简单等等 这里不再多说 我们在使用这一工具的时候常常会遇到一些小问题 但是这些小问题看似小 有的时候却会让我们折腾上半天 废话少说 现在把常见的几个问题的解决方案
  • java数组求和函数_Excel表格求和,难道你只会用SUM函数?(下)

    Excel求和函数 绝大部分人只会用SUM函数 今天再来分享4个求和函数 年前集齐8个求和函数年后开运 1 使用SUMXMY2函数返回两个数组中对应值差的平方和 SUMXMY2函数用于返回两数组中对应数值之差的平方和 函数语法 SUMXMY
  • 如何给keepalived配置vip(虚拟ip)

    首先为了测试机器 准备两台服务器 host1 172 28 23 73 host2 172 28 23 96 虚拟ip 172 28 23 100 第一步 在线安装keepalived中间件 sudo yum install y keepa
  • CMake Error: Cannot determine link language for target “test“.

    问题来源 project kinodyntest LANGUAGES CXX 先指定语言c add executable 后面传入的文件是 c 文件导致cmake报错 c 文件为 cpp
  • 论文笔记:STMARL: A Spatio-Temporal Multi-AgentReinforcement Learning Approach for Cooperative Traffic

    0 abstract 智能交通灯控制系统的开发对于智能交通管理至关重要 虽然已经做出了一些努力以孤立的形式来优化单个红绿灯的使用 但相关研究在很大程度上忽略了多路口红绿灯的使用受到空间影响的事实 以及历史交通状态的时间依赖性 为此 在本文中
  • 用microPython写一个ESP32的OLED的程序

    好的 我可以给你提供一些有关使用 MicroPython 在 ESP32 上编写 OLED 显示屏程序的指导 首先 你需要在 ESP32 上安装 MicroPython 固件 你可以使用 esptool 工具将 MicroPython 固件
  • iscsi多路径配置方式

    学习一个服务的过程 1 此服务器的概述 名字 功能 特点 端口号 2 安装 3 配置文件的位置 4 服务启动关闭脚本 查看端口 5 此服务的使用方法 6 修改配置文件 实战举例 7 排错 从下到上 从内到外 内容 实战 配置IP SAN多路
  • Linux升级命令yum update

    Linux升级命令有两个分别是yum upgrade和yum update 这个两个命令是有区别的 代码如下 yum y update 升级所有包同时也升级软件和系统内核 代码如下 yum y upgrade 只升级所有包 不升级软件和系统
  • Memcach基础使用

    memcache 基础课程 使用场景 memcache 服务器端的安装 推荐使用memcached memcached是memchache的升级版本 sudo su apt get install memcached usr bin mem
  • 02-12306验证码预处理(分割、转存dat、解析dat文件)

    import cv2 as cv import numpy as np import os import binascii temp path r F python StockAnalyzer test test avi img path
  • 决策分类树算法之ID3,C4.5算法系列

    一 引言 在最开始的时候 我本来准备学习的是C4 5算法 后来发现C4 5算法的核心还是ID3算法 所以又辗转回到学习ID3算法了 因为C4 5是他的一个改进 至于是什么改进 在后面的描述中我会提到 二 ID3算法 ID3算法是一种分类决策
  • 从TCP协议的原理来谈谈rst复位攻击

    在谈RST攻击前 必须先了解TCP 如何通过三次握手建立TCP连接 四次握手怎样把全双工的连接关闭掉 滑动窗口是怎么传输数据的 TCP的flag标志位里RST在哪些情况下出现 下面我会画一些尽量简化的图来表达清楚上述几点 之后再了解下RST