DDos系列攻击原理与防御原理

七层防御体系

静态过滤

命中黑名单

  • 对确定是攻击的流量直接加入黑名单(源地址命中黑名单直接丢弃,缺乏机动性和扩展性)

畸形报文过滤

畸形报文攻击

  • TCP包含多个标记位,排列组合有规律

• 现象:TCP标记位全为1

  • 报文被分片后,重组计算无法进行
  • 攻击者使用源地址为127.0.0.0网段的地址,对攻击主机发起流量,被攻击主机对127.0.0.0回应报文,导致某些系统处理127.0.0.0的地址会出错,导致系统访问缓慢。

扫描窥探报文过滤

扫描窥探攻击

  • 探测网络中存在的某些主机的IP地址以及开放的端口号,为进一步的攻击提供前提条件
  • 防御手段:监控某个目的主机在单位时间内端口和地址变化的阈值。

源合法认证检测机制

虚假源流量

  • 通过大量伪造的地址去想被攻击主机发起流量

基于会话检测机制

异常连接威胁

  • 报文在交互过程中,某些标记不符合协议工作机制的报文进行拦截
  • 防范手段:检测报文序列号、确认号等信息从而判断是否是异常连接。

特征识别过滤

具有明显攻击特征的流量

  • 针对操作系统或者应用程序的漏洞流量进行丢弃,需要防火墙能对协议特征进行识别。

流量整形

突发流量

DDoS攻击防范技术

1、首包丢弃

有些攻击是不断变换源IP地址或者源端口号发送攻击报文,通过首包丢弃,可以有效拦截这部分流量。首包丢弃与源认证结合使用,防止虚假源攻击。

处理过程:(根据三元组实现)

(1)、开启首包丢弃功能后,SYN、TCP、DNS、UDP、ICMP各类流量超过阈值后,设备会丢弃报文首包。

(2)、基于三元组(源IP地址、源端口和协议)来匹配报文,并通过报文的时间间隔来判断首包。

(3)、当报文没有匹配到任何二元组时,认为该报文是首包,将其丢弃。

(4)、当报文匹配到某三元组,则计算该报文与匹配该三元组的上一个报文到达的时间间隔。

(5)、如果时间间隔低于设定的下限,或者高于设定的上限,则认为是首包,将其丢弃:如果时间间隔落在配置的上限和下限之间,则认为是后续包,将其放行。

2、阻断和限流

通过服务学习或经验发现网络中根本没有某种服务或某种服务流量很小,则可以分别采用阻断和限流方法来防御攻击。

(1)阻断:在自定义服务策略中表示将匹配自定义服务的报文全部丢O弃;在默认防御策略中表示将自定义服务以外的此协议报文全部丢弃。

(2)限流:在自定义服务策略中表示将匹配自定义服务的报文限制在0阌值内,丢弃超过闽值的部分报文;在默认防御策略中表示将自定义服务以外的此协议报文限制在阈值内,丢弃超过阈值的部分报文。

3、静态指纹过滤

通过配置静态指纹,对命中指纹的报文进行相应的处理,从而对攻击流量进行防御。

(1)、TCP/UDP/自定义服务可基于载荷(即报文的数据段)提取指纹。

(2)、DNS报文针对域名提取指纹。

(3)、HTTP报文针对通用资源标识符URI(Uniform Resource Identifier)提取指纹。

  • TCP源检测技术能探测访问者是否是真实可用的源,UDP不包含三次握手,基于UDP的DDoS攻击需要使用“指纹”来实现防范,UDP的DDoS报文载荷内容相对固定
  • DNS协议的流量重要又特殊,工作在两种传输层协议之上(既可以用TCP又可以用UDP),通常就是根据DNS行为来做防御处理

基于TCP的DDoS攻击

TCP正常建立连接和断开连接的过程

• 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

(1)第一次握手:建立连接时,客户端发送SYN包(SYN=J)到服务器,并进入SYN SENT状 态,等待服务器确认。

(2)第二次握手:服务器收到SYN包,必须发出ACK包(ACK=J+1)来确认客户端的SYN包,同时自己也发送一个SYN包(SYN=K),即SYN-ACK包,此时服务器进入SYN RCVD状态。

(3)第三次握手:客户端收到服务器的SYN-ACK包,向服务器发送确认包ACK(ACK=K+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。如果服务器发出的SYN-ACK包异常,客户端会发送一个RST包给服务器,服务器重新回到LSTEN监听状态。

• TCP采用四次握手来关闭一个连接。第一次握手:客户端发送FIN包(FIN=M)到服务器,表示客户端没有数据要向服务器发送了,同时进入FIN WAIT 1状态,等待服务器确认。第二次握手:服务器收到FIN包,必须发送ACK包(ACK=M+1)来确认客户端的FIN包,但服务器数据还没传完,所以不发送FIN包,此时服务器进入LAST WAIT状态。第三次握手:当服务器没有数据要向客户端发送时,服务器发送FIN包(FIN=N)到客户端,并进入LAST ACK状态,等待客户端最终确认。第四次握手:客户端收到FIN包,发出ACK包(ACK=N+1)来确认服务器的FIN包,进入TIME WAIT状态,等待连接完全断掉。此包发送完毕,服务器进入CLOSED状态完成四次握手,双方连接断开。

  • TCP的确认机制+1规律太好找,容易被伪造,就进行了一个伪随机的确认,每一次发送的序列号+这一个报文的PDU,就是下一次发送报文的序列号,只能建立会话的这两台主机才能找到这个规律。

4、SYN Flood攻击(TCP握手第一个报文)

  • 攻击者会大量伪造源地址是假的(第一次SYN攻击),如果没有抗DDos设备,服务器回第二个握手连接,这个时候服务器会缓存大量的TCP半开连接(消耗服务器资源)
  • 防御机制:基于传输层协议的源合法性验证技术

• 利用TCP协议原理,针对TCP类Flood进行检测和防御。用户进行TCP连接,清洗设备回应经过构造的SYN-ACK报文,通过用户的反应来判断此用户是否正常。主要用于来回路径不一致的情况下。

• 只是抗DDos设备把流量抗下来了,链路带宽还是会受到影响的,DDos只能是把危害降到最低,不能完全解决。

5、SYN-ACK Flood攻击(TCP握手第二个报文)

  • 被攻击对象接收大量SYN-ACK,会检查自己会话表,是自己哪个会话响应报文,这个查会话表对服务器性能有影响。
  • 防御机制:清洗设备基于目的地址对SYN-ACK报文速率进行统计,当SYN-ACK报文速率超过阈值时,启动源认证防御

6、ACK Flood攻击(TCP握手第三个报文)

  • 如果端系统在收到一个ACK报文时,如果目的端口未开放,那么端系统会直接向源IP发送RST报文。如果端系统的相关端口是对外开放的,那么其在收到ACK报文时,首先会检查这个ACK报文是否属于TCP连接表中的一个已有连接(这个过程会对端系统主机CPU资源造成一定的消耗),如果是的话,则正常处理如果不属于任何一个已有连接,那么端系统会向源IP发送RST报文

  • 攻击原理:攻击者利用僵尸网络发送大量的ACK报文,冲击网络带宽,造成网络链拥塞;同时被攻击服务器接收到攻击报文后需要检查会话以确认报文是否属于某个会话,如果攻击报文数量庞大,服务器处理性能耗尽,从而拒绝正常服务。
  • 防御原理:
  • (1)、当ACK报文速率超过阈值时,启动会话检查。
  • (2)、如果清洗设备检查到ACK报文没有命中会话,则有两种处理模式:  
    • 1)、“严格模式”:直路部署组网中建议采用”严格模式”。如果清洗设备没有检查到已经建立的会话,直接丢弃报文。
    •  2)、“基本模式”:旁路部署动态引流时,对于引流前已经建立的会话,清洗设备上会检查不到会话,此时建议采用“基本模式”,即当连续一段时间内ACK报文速率超过阈值时,启"基本模式动会话检查,设备会先让几个ACK报文通过,建立会话,然后对会话进行检查确定是否丢弃报文。
  • (3)、如果清洗设备检查到ACK报文命中会话,则检查会活创建原因。
  • (4)、如果会话是由SYN或SYN-ACK报文创建的,则允许该报文通过。
  • (5)、如果会话是由其他报文创建的(例如ACK报文),则查看报文检查结果,列号正确的报文允许通过,不正确的报文则被丢弃。
  • (6)、载荷检查是清洗设备对ACK报文的载荷进行检查,如果载荷内容全一致(载荷内容全为1等),则丢弃该报文。
  • (7)、只有启用了"会话检查”,才能启用”载荷检查”,对会话检查通过的报文进行载荷检查。

7、FIN/RST Flood攻击(存在故意捣乱行为)

  • FIN断开TCP连接RST进行TCP重连
  • 攻击原理

  • 防御FIN/RST攻击的方法就是进行会话检查

防御原理:当FIN/RST报文速率超过阈值时,启动会话检查。

(1)、如果清洗设备检查到FIN/RST报文没有命中会话,直接丢弃报文。

(2)、如果清洗设备检查到FIN/RST报文命中会话,则检查会话创建原因。

(3)、如果会话是由SYN或SYN-ACK报文创建的,则允许该报文通过。

(4)、如果会话是由其他报文创建的(例如ACK报文),则查看报文检查结果,序列号正确的报文允许通过,不正确的报文则被丢弃。

基于UDP的DDoS攻击

8、UDP Flood关联TCP类服务攻击

  • 当UDP流量与TCP类服务有关联时,通过防御TCP类服务来防御UDP Flood。
  • 攻击原理:攻击者通过僵尸网络向目标服务器发起大重的UDP报文,这种UDP报文通常为大包且速率非常快,从而造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。
  • 防御原理

• 针对TCP流量进行源检测,源认证通过后,后续这个源地址发送的UDP报文进行放行。

  • 很多流量都是由手机端发起的,手机端应用先用TCP做身份验证后再用UDP交互数据。

• UDP与TCP流量关联

9、载荷检查和指纹学习

  • 使用载荷检查和指纹学习方法防御具有规律的UDPFlood攻击。
  • 大多数UDP的DDoS载荷比较固定单一
  • 攻击原理攻击者通过僵尸网络向目标服务器发起大量的UDP报文,这种UDP报文通常为大包且速率非常快,从而造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。
  • 防御原理:

  • (1)、载荷检查:当UDP流量超过阈值时,会触发载荷检查。如果UDP报文数据段内容完全一样,例如数据段内容都为1,则会被认为是攻击而丢弃报文。
  • (2)、指纹学习:当UDP流显超过阈值时,会触发指纹学习,指纹由清洗设备动态学习生成,将攻击报文的一段显著特征学习为指纹后,匹配指纹的报文会被丢弃。
  • UDP包通常比较大,速度比较快,可以针对UDP报文做限速,一个服务器既能支持TCP服务又支持UDP服务,TCP和UDP其中一个过多都会影响另一方。

基于DNS的DDoS攻击

DNS交互过程

  • 1、客户端访问某个域名,发送DNS请求信息(带有解析的域名信息)。
  • 2、本地DNS服务器收到请求后,先在自己缓存中找对应IP地址:  
    • 1)、本地缓存有的话直接回应解析过程就完毕了。
    • 2)、本地缓存没有的话,缓存服务器就不是对应域的解析服务器(不负责对请求域名做解析),DNS服务器会向上级授权服务器为用户提交域名解析请求。授权服务器有的话会针对缓存服务器回应DNS请求,缓存服务器会记录这个域名的DNS信息,把应答结果告诉用户。

• 这个过程会发生很多攻击比如:1、客户端发起大量乱七八糟的域名解析请求,缓存服务器本地没有就会都丢给授权服务器。

  • DNS是互联网中很重要的基础服务
  • 如果DNS受到了DDoS,无法进行域名解析,客户端就无法访问域名的业务。

当用户上网访问某个网站时,会向DNS缓存服务器发出该网站的域名,以请求其IP地址,当DNS缓存服务器查找不到该域名与IP地址对应关系时,它会向授权DNS服务器发出域名查询请求,为了减少Interet上DNS的通信量,DNS缓存服务器会将查询到的域名和IP地址对应关系存体在自己的本地缓存中。后续再有主机清求该域名时,DNS缓存服务器会直接用缓存区中的记录信息回应,直到该记录老化,被删除。

1、缓存服务器比较常见的攻击包括:

(1)、DNS Request Flood攻击

(2)、DNS Reply Flood攻击

(3)、未知域名攻击

(4)、DNS缓存投毒攻击

(5)、异常DNS报文攻击

2、授权服务器比较常见的攻击包括:

(1)、DNS Request Flood攻击

(2)、未知域名攻击

(3)、DNS缓存投毒攻击

10、DNS Request Flood攻击

  • 攻击原理:。针对缓存服务器攻击。针对授权服务器攻击DNS Request Flood攻击源可能是虚假源,也可能是真实源针对不同类型的攻击源,采取的防御方式也不同。
  • DNS这种协议,工作可以基于TCP也可以基于UDP。TCP:可以判断是真实还是虚假。UDP:不太好判断是真实还是虚假。

• 使用UDP的场景

• 默认情况下解析DNS是用UDP解析,UDP解析速度快,效率高。DNS本身报文也小。

• DNS主辅同步技术,避免DNS单点失效,主DNS和辅DNS进行数据库同步的时候使用TCP。

  • 针对虚假源攻击防御

• 基本模式:抗DDoS设备让客户端和自己使用TCP进行解析,发TCP的RST让客户端与真实DNS服务器进行重连使用“基本模式”

• 这样正常客户端会使用TCP和DNS服务器建立会话,会导致DNS服务器维护大量会话,消耗资源。

• 增强模式:抗DDoS设备将真实客户端的TCP报文转发给DNS服务器的时候使用UDP报文方式进行,DNS服务器发UDP的应答给抗DDoS,抗DDoS的设备相当于做了代理(TCP和UDP之间代理)。

• 这样的话缓存都让抗DDoS设备抗下来了。

  • 针对真实源攻击防御

• 针对真实源攻击:如果是真实源攻击,经过上述防御过程后,通过的DNS报文还很大,则可以继续采用以下方式进行防御:

1、DNS请求报文限速

        (1)、指定域名限速

        (2)、源IP限速

2、Anti-DDoS设备还支持对异常DNS报文的检查,根据预定义的规则分别从以下三个方面进行检测:

        (1)、DNS报文的格式

        (2)、DNS报文的长度

        (3)、DNS报文的TTL

HTTP&HTTPS类报文攻击防御

HTTP类型报文攻击与防御

  • 防御HTTP Flood攻击的方法包括源认证、目的IP的URI检测和指纹学习。
  • 攻击原理:攻击者通过代理或僵尸向目标服务器发起大量的HTTP报文,请求涉及数据库操作的URI或其它消耗系统资源的URI,造成服务器资源耗尽,无法响应正常请求。
  • 防御原理:
  • (1)、HTTP Flood源认证
  • (2)、目的IP的URI检测
  • (3)、指纹学习

11、HTTP慢速攻击

  • 攻击原理:HTTP慢速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后尽量长时间保持该连接,不释放,达到对HTTP服务器的攻击。

• (1)、HTTP愠速攻击是利用HTTP现有合法机制,在建立了与HTTP服务器的连接后,尽是长时间保持该连接,不释放,达到对HTTP服务器的攻击。常见的攻击有两种:   

         1)、S1ow POST:攻击者发送Post报文向服务器清求提交数据,将总报文长度设置为一个很大的数值,但是在随后的数据发送中,每次只发送很小的报文,这样导致服务器端一直等待攻击者发送数据。    

        2)、Slow headers:攻击者通过GET或者POST向服务器建立连接,但是HTTP头字段不发送结束符,之后发送其他字段进行保活。服务器会一直等待头信息中结束符而导致连接始终被占用。

  • 防御原理:
  • (1)、针对HTTP慢速攻击的特点,Anti-DDoS设备对每秒钟HTTP并发连接数进行检查,当每秒钟HTTP并发连接数超过设定值时,会触发HTTP报文检查,检查出以下任意一种情况,都认定受到HTTP慢速连接攻击,则将该源IP地址判定为攻击源,加入动态黑名单,同时断开此IP地址与HTTP服务器的连接。
  • (2)、连续多个HTTP POST报文的总长度都很大,但是其HTTP载荷长度都很小。
  • (3)、连续多个HTTP GET/POST报文的报文头都没有结束标识。
  • HTTP能建立起来的一定源IP是真实的。

HTTPS类型报文攻击与防御

  • 通过源认证方法来防御HTTPS Flood攻击。
  • 攻击原理:攻击者通过代理、僵尸网络或者直接向目标服务器发起大量的HTTPS连接,造成服务器资源耗尽,无法响应正常的请求。
  • 防御原理:通过源认证对HTTPS攻击进行防御,清洗设备基于目的地址对HTTPS请求报文速率进行统计,当HTTPS请求速率超过阈值时,启动源认证防御。

12、SSL DoS攻击

  • 通过源认证和SSL防御结合防御SSL DoS攻击。
  • 攻击原理SSL握手的过程中,在协商加密算法时服务器CPU的开销是客户端开销的15倍左右。攻击者利用这一特点,在一个TCP连接中不停地快速重新协商。
  • 防御原理:
  • (1)、清洗设备基于目的地址对HTTPS请求报文速率进行统计,当HTTPS请求速率超过阈值时,启动源认证防御和SSL防御:    
    • 1)、源认证  
    • 2)、SSL防御

• SSL防御:在检查周期内,如果某个源IP地址到目的IP地址的协商次数超过最大值,则将此会话标记为异常会话,在异常会活检查周期内,如果异常会话数超过最大值时,判定该源IP地址异常,将该源IP地址加入黑名单。

DDoS的流量不能百分百防御,设备存在漏判误判的情况。

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

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

相关文章

docker:在ubuntu中运行docker容器

前言 1 本笔记本电脑运行的ubuntu20.04系统 2 docker运行在ubuntu20.04系统 3 docker镜像使用的是ubuntu18.04,这样拉的 docker pull ubuntu:18.04 4 docker容器中运行的是ubuntu18.04的系统,嗯就是严谨 5 这纯粹是学习笔记,实际上没啥价值。…

指纹浏览器是什么?有哪些好用的推荐?

在网络世界中,保护您的在线隐私和安全非常重要。反检测浏览器是专门为此诞生的工具,旨在通过更改浏览器指纹来帮助您做到这一点,它们使网站、广告商和其他人很难跟踪您的在线行为。 一、什么是反检测浏览器? 您是否想过网站如何检…

C++万物起源:类与对象(二)

一、类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗? 并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。 默认成员函数:用户没有显式实现,…

篮球论坛系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. …

Linux根据时间删除文件或目录

《liunx根据时间删除文件》和 《Linux 根据时间删除文件或者目录》已经讲述了根据时间删除文件或目录的方法。 下面我做一些补充,讲述一个具体例子。以删除/home目录下的文件为例。 首先通过命令: ls -l --time-style"%Y-%m-%d %H:%M:%S"…

Redis、Mysql双写情况下,如何保证数据一致

Redis、Mysql双写情况下,如何保证数据一致 场景谈谈数据一致性三个经典的缓存模式Cache-Aside Pattern读流程写流程 Read-Through/Write-Through(读写穿透)Write behind (异步缓存写入) 操作缓存的时候,删除…

【tensorflow框架神经网络实现鸢尾花分类】

文章目录 1、数据获取2、数据集构建3、模型的训练验证可视化训练过程 1、数据获取 从sklearn中获取鸢尾花数据,并合并处理 from sklearn.datasets import load_iris import pandas as pdx_data load_iris().data y_data load_iris().targetx_data pd.DataFrame…

ros2相关代码记录

1.ros2概述 ROS2(Robot Operating System 2)是一个用于机器人应用程序的开源软件框架。它是ROS(Robot Operating System)的下一代版本,旨在改进和扩展原始ROS的特性,以适应更广泛的机器人应用场景和需求。…

Unity 实现鼠标左键进行射击

发射脚本实现思路 分析 确定用户交互方式:通过鼠标左键点击发射子弹。确定子弹发射逻辑:每次点击后有一定时间间隔才能再次发射。确定子弹发射源和方向:子弹从枪口(Transform)位置发射,沿枪口方向前进。 变…

Qt扫盲-QAssisant 集成其他qch帮助文档

QAssisant 集成其他qch帮助文档 一、概述二、Cmake qch例子1. 下载 Cmake.qch2. 添加qch1. 直接放置于Qt 帮助的目录下2. 在 QAssisant中添加 一、概述 QAssisant是一个很好的帮助文档,他提供了供我们在外部添加新的 qch帮助文档的功能接口,一般有两中添…

八大技术趋势案例(虚拟现实增强现实)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

QT QInputDialog弹出消息框用法

使用QInputDialog类的静态方法来弹出对话框获取用户输入,缺点是不能自定义按钮的文字,默认为OK和Cancel: int main(int argc, char *argv[]) {QApplication a(argc, argv);bool isOK;QString text QInputDialog::getText(NULL, "Input …

李宏毅【生成式AI导论 2024】第6讲 大型语言模型修炼_第一阶段_ 自我学习累积实力

背景知识:机器怎么学会做文字接龙 详见:https://blog.csdn.net/qq_26557761/article/details/136986922?spm=1001.2014.3001.5501 在语言模型的修炼中,我们需要训练资料来找出数十亿个未知参数,这个过程叫做训练或学习。找到参数后,我们可以使用函数来进行文字接龙,拿…

【数据分析面试】3.编写数据选取函数(Python)

题目 给定了一个名为 students_df 的学生数据表格 nameagefavorite_colorgradeTim Voss19red91Nicole Johnson20yellow95Elsa Williams21green82John James20blue75Catherine Jones23green93 编写一个名为 grades_colors 的函数,以选择仅当学生喜欢的颜色是绿色或…

2024最新Guitar Pro 8.1中文版永久许可证激活

Guitar Pro是一款非常受欢迎的音乐制作软件,它可以帮助用户创建和编辑各种音乐曲谱。从其诞生以来就送专门为了编写吉他谱而研发迭代的。 尽管这款产品可能已经成为全球最受欢迎的吉他打谱软件,在编写吉他六线谱和乐队总谱中始终处于行业领先地位&#x…

ESCTF-密码赛题WP

*小学生的爱情* Base64解码获得flag *中学生的爱情* 社会主义核心价值观在线解码得到flag http://www.atoolbox.net/Tool.php?Id850 *高中生的爱情* U2FsdG开头为rabbit密码,又提示你密钥为love。本地toolfx密码工具箱解密。不知道为什么在线解密不行。 *大学生的爱情* …

jira安装与配置

1. 环境准备 环境要求 1) JDK1.8以上环境配置 2) Mysql数据库5.7.13 3) Jira版本7及破解包 1.1 JDK1.8安装配置 1) 首先下载 JDK1.8, - 网址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-downloads.html - windows64 版&am…

机器学习优化算法(深度学习)

目录 预备知识 梯度 Hessian 矩阵(海森矩阵,或者黑塞矩阵) 拉格朗日中值定理 柯西中值定理 泰勒公式 黑塞矩阵(Hessian矩阵) Jacobi 矩阵 优化方法 梯度下降法(Gradient Descent) 随机…

Pytorch的hook函数

hook函数是勾子函数,用于在不改变原始模型结构的情况下,注入一些新的代码用于调试和检验模型,常见的用法有保留非叶子结点的梯度数据(Pytorch的非叶子节点的梯度数据在计算完毕之后就会被删除,访问的时候会显示为None&…

STM32CubeMX学习笔记28---FreeRTOS软件定时器

一、软件定时器简介 1 、基本概念 定时器,是指从指定的时刻开始,经过一个指定时间,然后触发一个超时事件,用户 可以自定义定时器的周期与频率。类似生活中的闹钟,我们可以设置闹钟每天什么时候响, 还能设置…