DDoS技术解析
这里是Themberfue
今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。
DoS
- 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。
- 1996年9月6日,世界第三古老的网络服务提供商 Panix 的服务器受到每秒高达 150 次的异常连接攻击,由于服务器无法正常分辨哪个是正常用户的连接,而疲于这些异常连接,从而导致无法处理正常用户的连接,这次攻击被认为是首个 DoS 攻击的目标。
- DoS,也就是 Denial of Service,即拒绝服务,任何对服务的干涉,使得其可用性降低或者失去可用性均称为拒绝服务。例如一个计算机系统崩溃或其带宽耗尽或其硬盘被填满,导致其不能提供正常的服务,就构成拒绝服务。
- 通过占用网络服务资源让服务器应接不暇,从而拒绝正常的业务流量。其实对网络带宽进行的消耗性攻击只是拒绝服务攻击的一小部分,只要能够对目标造成麻烦,使某些服务被暂停甚至主机死机,都属于拒绝服务攻击。
- DoS 攻击可以具体分成三种形式:带宽消耗型、资源消耗型、漏洞触发型。前两者都是透过大量合法或伪造的请求占用大量网络以及器材资源,以达到瘫痪网络以及系统的目的。而漏洞触发型,则是触发漏洞导致系统崩溃瘫痪服务。
DDoS
- DDoS,也就是 Distributed Denial of Service,是 DoS 攻击的分布式版本,分布式拒绝服务。通俗来说,就是群殴,一台设备持续对一台服务器的攻击有限,而我们引入多台设备一起攻击一台服务器,其攻击的效果是显而易见的。
- 发起攻击的网络一般称为僵尸网络(BotNet),每个僵尸可以是一台个人电脑,一台服务器,甚至是一部智能手机。这些 “僵尸” 的获得可以是黑客通过病毒或木马感染个人设备,亦或是加钱购买多台设备。
- 攻击者控制大量受害设备(如被感染的计算机、物联网设备)形成僵尸网络(Botnet),让它们同时向目标服务器发送大量流量、请求或恶意数据。最终导致服务器资源(如CPU、内存、带宽)耗尽,导致无法响应正常用户请求。网络拥塞,影响服务器和用户之间的通信。
- 通过之前的学习我们知道,OSI五层网络模型,数据从组包到拆包所经历的每一层都有机会发动 DDoS 攻击。
带宽消耗型攻击
DDoS带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。洪泛攻击的特点是利用僵尸程序发送大量流量至受损的受害者系统,目的在于堵塞其宽带。放大攻击与其类似,是通过恶意放大流量限制受害者系统的宽带;其特点是利用僵尸程序通过伪造的源IP(即攻击目标IP)向某些存在漏洞的服务器发送请求,服务器在处理请求后向伪造的源IP发送应答,由于这些服务的特殊性导致应答包比请求包更长,因此使用少量的宽带就能使服务器发送大量的应答到目标主机上。
ICMP洪水攻击(ICMP floods)
ICMP洪水攻击是通过向未良好设置的路由器发送广播信息占用系统资源的做法,利用 ICMP(如 ping)发送大量请求,导致网络带宽耗尽。
- 霸占服务器的网络带宽资源是在网络层发动 DDoS 攻击,我们只需要向一台服务器发送大量的 IP 协议数据包,就可以慢慢地消耗掉对方的网络带宽。
- 比如用大家耳熟能详的 ping 工具就可以发动一次 “攻击”,ping 产生的是 ICMP 协议包,ICMP 是 IP 协议中用来进行差错控制的一个协议,全程为 Internet Control Message Protocol,即互联网控制消息协议,其本质上还是一个 IP 协议数据包,这种攻击方式被称为 ICMP洪水攻击(ICMP floods)
UDP洪水攻击(User Datagram Protocol floods)
- UDP(用户数据报协议)是一种无连接协议,当数据包通过 UDP 发送时,所有的数据包在发送和接收时不需要进行握手验证。当大量 UDP 数据包发送给受害系统时,可能会导致带宽饱和从而使得合法服务无法请求访问受害系统。遭受 DDoS UDP 洪泛攻击时,UDP 数据包的目的端口可能是随机或指定的端口,受害系统将尝试处理接收到的数据包以确定本地运行的服务。如果没有应用程序在目标端口运行,受害系统将对源 IP 发出 ICMP 数据包,表明 “目标端口不可达” 。某些情况下,攻击者会伪造源 IP 地址以隐藏自己,这样从受害系统返回的数据包不会直接回到僵尸主机,而是被发送到被伪造地址的主机。有时 UDP 洪泛攻击也可能影响受害系统周围的网络连接,这可能导致受害系统附近的正常系统遇到问题。然而,这取决于网络体系结构和线速。
- 从上述介绍我们得知,这是在 传输层 中发动的 DDoS 攻击,通过发送大量的 UDP 数据包,也可以起到占用网络带宽的效果,但这里就有一个漏洞了,发送 传输层 的数据包,势必会经过 网络层,那么这就会暴露攻击设备的 IP 地址,从而被对方封禁。所以攻击者一般都会伪造 IP 地址隐藏自己。
- 单纯地隐藏 IP 地址似乎没那么 “有趣”,所以人们发明了一种更加有趣的方式,反射攻击,既然可以伪造 IP,那么就不必拘泥于伪造源 IP,同样可以伪造 目的IP,从而达到 “借刀杀人” 的效果。攻击者伪造受害者的 IP 地址,也就是将源 IP 伪造为受害者的 IP 地址,攻击者向多个开放的服务器发送请求(如 DNS、NTP、Memcached),这些服务器会把响应数据(通常比请求数据大得多)直接发送到受害者,受害者被大量流量冲击,导致网络拥塞、服务不可用。这些开放的服务器被称为 “反射器”。
- 在上述基础上,人们还发明了一种更加厉害的,放大攻击,我们都知道 DNS 服务器是用来解析域名的,同时 DNS 查询通常使用 UDP 这个不验证来源的传输协议,综合来看,DNS 就是一个很好的放大器,因为一次 DNS 请求,返回的数据往往大于请求的数据,这里有一个 带宽放大因子(BAF) 的概念,一般一个 60 字节的请求数据可以返回 3000 字节的响应数据,那么 BAF = 3000 / 60 = 50,从而产生 50 倍的放大效果。利用开放的 DNS 服务器,把小请求转化为大响应,并把这些大响应流量回发到受害者。
资源消耗型攻击
TCP洪水攻击
- 因为 TCP 协议有连接的概念,所以还可以攻击服务器的连接资源,服务器和客户端每次建立一个 TCP 连接时,需要经历三次握手,然后把连接信息放入连接表中维护,而连接表的大小是有限的,我们可以让发起攻击的设备直接发起大量的 TCP 连接,从而占满服务器的这个连接表,而无法响应后续的 TCP 连接请求,这种直接的方式被称为 TCP 洪水攻击(TCP Flood)。
- 因为有三次握手的存在,所以 TCP 洪水无法通过伪造 IP 地址来隐藏自己。在建立连接时,如果我们在第一次握手中伪造了 IP 地址,那么服务器向客户端发送的第二次握手就无法到达,因此连接无法建立,连接表的信息就没有变多。
协议分析攻击(SYN Flood,SYN洪水)
- 传送控制协议(TCP)同步(SYN)攻击。TCP 进程通常包括发送者和接受者之间在数据包发送之前建立的完全信号交换。启动系统发送一个 SYN 请求,接收系统返回一个带有自己 SYN 请求的 ACK(确认)作为交换。发送系统接着传回自己的 ACK 来授权两个系统间的通讯。若接收系统发送了 SYN 数据包,但没接收到 ACK,接受者经过一段时间后会再次发送新的 SYN 数据包。接受系统中的处理器和内存资源将存储该 TCP SYN 的请求直至超时。DDoS TCP SYN 攻击也被称为“资源耗尽攻击”,它利用 TCP 功能将僵尸程序伪装的 TCP SYN 请求发送给受害服务器,从而饱和服务处理器资源并阻止其有效地处理合法请求。它专门利用发送系统和接收系统间的三向信号交换来发送大量欺骗性的原 IP 地址 TCP SYN 数据包给受害系统。最终,大量 TCP SYN 攻击请求反复发送,导致受害系统内存和处理器资源耗尽,致使其无法处理任何合法用户的请求。
- 再简单说一下,攻击者只发送 SYN 不作回答,由于 TCP 的重传机制,受害服务器会触发超时重传多次发送 SYN + ACK 直到超时,但问题来了,这时候受害服务器会不断的向攻击者发送 SYN + ACK,比如重传了 10 次,那么攻击者每攻击一次,受害者就会回击 10 次,所谓杀敌 1k 自损 1w 也不过如此,所以攻击者一般会伪造 SYN 的源 IP 地址,比如一个不存在的 IP 或者 是一个倒霉蛋的 IP。
- 同样的思路,在 TCP 协议中也可以通过反射发起攻击,如上所述,向各个反射器发送 SYN,并把发件地址伪造成受害者的 IP,这样大量的 SYN + ACK 数据包就会从各个反射器上涌入受害者,当然这种攻击方式因为无法在目标上建立连接,所以并不属于资源消耗型攻击,还是属于带宽消耗型攻击。
LAND攻击
- LAND攻击(局域网拒绝服务攻击,Local Area Network Denial attack)这种攻击方式与 SYN Flood 类似,不过在 LAND 攻击包中的源地址和目标地址都是攻击对象的 IP。这种攻击会导致被攻击的机器死循环,最终耗尽资源而死机。
RST洪水攻击(RST Flood)
- 在 TCP 协议中,一般用四次挥手结束连接,但为了防止出现异常,一方可以发送一个 RST 数据包强制切断连接,这样我们可以让攻击设备不断的尝试伪造各种 IP 地址,并发送 RST 数据包进行 “盲打”,一旦 IP 和其他的一些配置和某个正常用户的匹配上,就能够切断正常用户与服务器之间的连接。
- 这种攻击方式跟针对用户,比如在一场网络游戏对局中,在获悉对手 IP 地址之后,就可以不断切断对方的游戏设备和服务器的连接,从而干扰该用户的正常游戏。
HTTP Flood(HTTP 洪泛攻击)
- 不论是利用 IP,UDP 还是 TCP 协议攻击,针对的都是网络和连接资源,还有一种直接针对服务器内部资源的攻击方式,消耗目标的计算和 IO 资源。
- 通过之前的学习我们知道,客户端向服务器发送请求,服务器按照客户端的需求查询随后计算出相应的数据并返回给客户端,作为第五层的应用层,应用层通常使用的是 HTTP 协议。
- 所以我们可以对一个站点发送一个 HTTP 洪水攻击,比如利用站点的搜索功能,不断生成大量的关键词送入查询地址,因为 HTTP 请求作为用户直接发起的涉及具体业务的请求,服务器在收到请求需要根据请求而来的数据进行像数据库查询这样的 IO 操作,所以这样的攻击手法会对目标产生更大的消耗。
- 当然,HTTP 洪水也有问题,不能伪造 IP 地址,因为 HTTP 协议实际上是基于 TCP 协议的,需要经历三次握手的过程,所以常见的方法借助网络代理主机,得到不同的真实 IP 发起攻击。
CC攻击
- CC攻击( Distributed HTTP flood,分布式HTTP洪水攻击)向受害服务器发送大量貌似合法的请求(通常为 HTTP GET )。攻击者创造性地使用代理服务器,利用广泛可用的免费代理服务器发动DDoS攻击。许多免费代理服务器支持匿名,这使追踪变得非常困难。
- 2004年,一位匿名为 KiKi 的中国黑客开发了一种用于发送 HTTP 请求的 DDoS 攻击工具以攻击名为 “Collapsar” 的NSFOCUS防火墙,因此该黑客工具被称为 “Challenge Collapsar”(挑战黑洞,简称CC),这类攻击被称作 “CC攻击”。
应用程序级洪水攻击(Application level floods)
- 与前面叙说的攻击方式不同,应用程序级洪水攻击主要是针对应用软件层的,也就是高于 OSI 的。它同样是以大量消耗系统资源为目的,通过向IIS这样的网络服务程序提出无节制的资源申请来破坏正常的网络服务。
漏洞触发型
这类攻击手法,透过尝试触发缓存溢出等漏洞,使操作系统发生核心错误或蓝屏死机,达到拒绝服务攻击。
死亡之ping(ping of death)
- 死亡之Ping是产生超过 IP 协议能容忍的数据包数,若系统没有检查机制,就会宕机。
泪滴攻击
- 每个资料要发送前,该数据包都会经过切割,每个小切割都会记录位移的信息,以便重组,但此攻击模式就是捏造位移信息,造成重组时发生问题,造成错误。
防御方式
拒绝服务攻击的防御方式通常为入侵检测,流量过滤和多重验证,旨在堵塞网络带宽的流量将被过滤,而正常的流量可正常通过。
- 捣毁僵尸网络,并让用户做好个人防护,避免被感染成僵尸设备是一种很好的方法,但这是需要长期持续进行的方案。
- 从 DDoS 的攻击原理上我们可以看出来,伪造 IP 地址是 DDoS 攻击的核心技术之一,一旦攻击者无法伪造 IP 地址,那机会就形同 冢中枯骨,强弩之末,而治理伪造 IP 的方法并不复杂。
- 我们举两个典型的在技术层面上根治 DDoS 攻击的方法。
激进
网络设备 IP 过滤
- 现代互联网的下游,也就是用户设备接入的这一端,设备通过路由(或者多个路由网关)接入 ISP(互联网服务商)。
- 所以只要让路由设备检测 IP,把源地址 IP 不属于本路由所在的网段的数据全部过滤掉。这样试图伪造 IP 的流量就无法发出。
分布式过滤
- 我们知道,庞大的互联网中不同的网段依靠路由把彼此连接。一个数据从 甲 发送到 乙,它的 IP 可以伪造成 丙,但是,其所经过的真实路径不可能作假。
- 从上图便可得知,从丙到乙的数据不可能经过 路由A,但是伪造 IP 的数据从甲发送到乙却经过了 路由A,如果路由能根据 IP 地址的路径逻辑检测出矛盾,那么就可以过滤到这样的流量,从而消灭伪造 IP 的伎俩。
- 上述两种方式都涉及到用户、服务商、设备商,甚至监管部门的等多方的技术方案,那就不能只是一个技术问题,出于商业上投入产出的考虑,往往是木已成舟,积重难返。
- 这两种方案很难被执行,只有有一定影响力的大型企业和机构才能撬动这种涉及全球的多方合作,对于中小企业,甚至是刚起步的创业者来说,并不现实。
保守
DDoS 攻击的可怕之处在于第一个 D(Distributed)——分布式,当一个僵尸网络对目标发起攻击时,很难处理这些来自四面八方的流量。我们正常用户何尝不能不能联合起来,把一个网络服务的流量分散到不同的地方,从而稀释攻击流量。
CDN
- 没错,CDN 又来了,CDN 即 内容分发网络,把一些相对静态的资源作为缓存分发给各个 CDN 节点,在全世界各地都设置一些 CDN 节点,用户在请求的时候从最近的节点返回,这样就在一定程度上缓解了 DDoS 攻击。
- CDN 能缓解 HTTP Flood、CC 攻击 等......
- 当然,CDN 的缓解作用比较有限。
流量清洗
目前还有一种比较主流的,并有一些厂商专门为此开发产品的方案——流量清洗,当获取到流量时,通过 DDoS 防御软件的处理,将正常流量和恶意流量区分开,正常的流量则回注回客户网站,反之则屏蔽。这样一来可站点能够保持正常的运作,仅仅处理真实用户访问网站带来的合法流量。
- 我们可以在服务器前架设一台流量清洗设备,这个设备就像一个身高马大的保镖或秘书,帮助我们对抗 DDoS 流量。
- 比如,在面对 TCP 协议的 SYN 洪水的 DDoS 攻击时,客户端发起的 SYN 先经过清洗设备,由清洗设备回复 SYN + ACK,如果对方应答了,那说明是正常流量,清洗设备再把本次连接交给后方的服务器正常通信,如果对方不应答,则触发超时重传,重传一定次数后断开连接。
- 因为清洗设备人高马大,其作为专门应对攻击的角色,对连接资源做了极大的专门的优化,从而能应对极其海量的连接请求,所以攻击者想要通过 SYN 洪水打垮它非常困难
- 再比如威胁极大的 HTTP 洪水攻击,正常来说,一个 HTTP 请求,很难用传统的方式检测出其是正常流量还是恶意流量,但清洗设备往往会提供专业的流量清洗平台,这些专业做流量清洗的服务商通过多年和 DDoS 攻击的对抗,积累了大量的经验和技术,由于 HTTP 协议无法伪造 IP 地址,所以通过多年的数据积累建立 IP 信用库,那些经常发起攻击的、臭名昭著的 IP 发来的流量就会被过滤掉,顺便将这些 IP 放进黑名单或者封禁异常 IP,这有点像安卓手机的来点标记,这是流量清洗厂商在数据积累上的优势。
- 亦或者,恶意流量由于是通过程序自动发出,而不是人类的操作,所以利用算法对流量进行模式识别就可以被检测出来,这是流量清洗厂商在技术上的优势。
防火墙
- 防火墙可以设置规则,例如允许或拒绝特定通讯协议,端口或 IP 地址。当攻击从少数不正常的 IP 地址发出时,可以简单的使用拒绝规则阻止一切从攻击源 IP 发出的通信。
- 复杂攻击难以用简单规则来阻止,例如 80 端口(网页服务)遭受攻击时不可能拒绝端口所有的通信,因为其同时会阻止合法流量。此外,防火墙可能处于网络架构中过后的位置,路由器可能在恶意流量达到防火墙前即被攻击影响。然而,防火墙能有效地防止用户从启动防火墙后的计算机发起攻击。
网络交换设备自有能力
- 大多数交换机有一定的速度限制和访问控制能力。有些交换机提供自动速度限制、流量整形、后期连接、深度包检测和假IP过滤功能,可以检测并过滤拒绝服务攻击。例如SYN 洪水攻击可以通过后期连接加以预防。基于内容的攻击可以利用深度包检测阻止。
- 和交换机类似,路由器也有一定的速度限制和访问控制能力。
黑洞引导
- 黑洞引导指将所有受攻击计算机的通信全部发送至一个 “黑洞”(空接口或不存在的计算机地址)或者有足够能力处理洪流的网络设备商,以避免网络受到较大影响。
- 不论怎样,DDoS 作为一种历史悠久,但破坏能力巨大的黑客攻击手段,时至今日还是无法被彻底解决。
- 或许你可以说 DDoS 攻击源自互联网通讯架构在设计之初考虑的缺失,而人们现在又却反壮士断腕的决心从根本上消灭它。
- 这种破坏与对抗将长久的存在于互联网世界之中,我们对抗的永远也不是技术上的不确定性,而是设计该技术的人类的不确定性,而我们能做的只是做好防护,保持警惕!!
- ⚠️⚠️⚠️本文章部分文案参考——DDoS技术鉴赏、Wiki百科
相关文章:

DDoS技术解析
这里是Themberfue 今天我们不聊别的,我们聊聊著名的网络攻击手段之一的 DDoS,看看其背后的技术细节。 DoS 了解 DDoS 前,先来讲讲 DoS 是什么,此 DoS 而不是 DOS 操作系统啊。1996年9月6日,世界第三古老的网络服务提供…...

总结:如何在SpringBoot中使用https协议以及自签证书?
总结:如何在SpringBoot中使用https协议以及自签证书? 前提一:什么是http协议?前提二:什么是https协议?一生成自签证书二 将证书转换为PKCS12格式三 配置SpringBoot(1)修改配置文件&a…...

Django开发入门 – 4.创建Django app
Django开发入门 – 4.创建Django app Create A Django App Under An Existing Project By JacksonML 1. 什么是Django app? Django项目面向Web应用程序,它会由一个或多个子模块组成,这些子模块称为apps。 Django apps负责执行完整Web应用程序中涉及…...

安装WPS后,导致python调用Excel.Application异常,解决办法
在使用xlwings编辑excel文件时,默认调用的是“Excel.Application”,如果安装过wps,会导致该注册表为WPS,会导致xlwings执行异常 因为安装过WPS,导致与Excel不兼容的问题,想必大家都听说过。有些问题及时删…...

语言大模型基础概念 一(先了解听说过的名词都是什么)
SFT(监督微调)和RLHF(基于人类反馈的强化学习)的区别 STF(Supervised Fine-Tuning)和RLHF(Reinforcement Learning from Human Feedback)是两种不同的模型训练方法,分别…...
理解 WebGPU 的入口: navigator.gpu
在现代 Web 开发中,WebGPU 已经成为实现高性能图形渲染和计算的强大工具。作为 WebGPU API 的入口点, navigator.gpu 是开发者与 GPU 交互的起点。本文将详细介绍 navigator.gpu 的属性和方法,以及如何通过它初始化 WebGPU 环境。 什…...
Django 创建第一个项目
Django 创建第一个项目 引言 Django 是一个高级的 Python Web 框架,它鼓励快速开发和干净、实用的设计。本指南将带您从头开始创建一个简单的 Django 项目,以便您能够熟悉 Django 的基本结构和概念。 准备工作 在开始之前,请确保您已经安装了 Python 和 Django。以下是安…...
ChatGPT vs DeepSeek详细对比
💡 AI模型发展背景 OpenAI的GPT系列需要数据参数算力,这些要素共同推动了模型的成长。但是,到了GPT-5时代,人类现有的知识精华几乎被学习殆尽,模型的提升空间变得有限。于是OpenAI团队另辟蹊径,尝试模拟人…...
日语学习-日语知识点小记-构建基础-JLPT-N4N5阶段(6):動詞ない形について句型
日语学习-日语知识点小记-构建基础-JLPT-N4&N5阶段(6):動詞ない形について句型 1、前言(1)情况说明(2)工程师的信仰2、知识点(1)~動詞な形 +なければなりません(2)~動詞な形 + なくてもいいです(3)に まで までに :区別3、单词(1)日语单词…...
我的docker随笔46:在x86平台构建龙芯镜像
本文介绍在x86服务器上构建龙芯平台的docker镜像。 前言 去年11月,在龙芯机器上安装了docker工具,并开始尝试研究如何构建龙芯的文件系统。断断续续搞了2个月后,有点结果出来了。前面有文章介绍了如何用debootstrap构建龙芯编译运行环境&…...

移动端测试的挑战与解决方案:兼容性、网络问题及实战策略
引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…...

STM32 I2C通信协议说明
目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况: 异常情况: 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…...

DeepSeek v3 技术报告阅读笔记
注 本文参考 DeepSeek-v3 / v2 / v1 Technical Report 及相关参考模型论文本文不包括基础的知识点讲解,为笔记/大纲性质而非教程,建议阅读技术报告原文交流可发送至邮箱 henryhua0721foxmail.com 架构核心 核心: MLA 高效推理DeepSeekMOE 更…...
HCIA项目实践(网络)---NAT地址转化技术
十三 NAT网络地址转换技术 13.1 什么是NAT NAT(Network Address Translation)地址转换技术,是一种将内部网络的私有 IP 地址转换为外部网络的公有 IP 地址的技术。其主要作用是实现多个内部网络设备通过一个公有 IP 地址访问外部网络&#x…...

VS studio报错cmake version 3.29.5-msvc4,但是没有其他信息问题解决
背景: windows电脑用VS studio 2022打开一个cmake项目,编译cmake通过,但是没有产生exe文件,IDE也没有打印其他错误信息提示,只有下图: cmake version 3.29.5-msvc4 一开始以为是编译器等问题,…...

免费deepseek的API获取教程及将API接入word或WPS中
免费deepseek的API获取教程: 1 https://cloud.siliconflow.cn/中注册时填写邀请码:GAejkK6X即可获取2000 万 Tokens; 2 按照图中步骤进行操作 将API接入word或WPS中 1 打开一个word,文件-选项-自定义功能区-勾选开发工具-左侧的信任中心-信任中心设置…...
langchain学习笔记之小样本提示词Few-shot Prompt Template
langchain学习笔记之小样本提示词 引言 Few-shot Prompt Templates \text{Few-shot Prompt Templates} Few-shot Prompt Templates简单介绍示例集创建创建 ExamplePrompt \text{ExamplePrompt} ExamplePrompt与 ExampleSelector \text{ExampleSelector} ExampleSelector创建 Fe…...
【CS.SE】优化 Redis 商户号池分配设计:高并发与内存管理
优化 Redis 商户号池分配设计:高并发与内存管理 背景 在分布式交易系统中,商户号池管理是核心模块之一。传统的商户号生成方式,依赖数据库预分配号段,导致大量号段浪费,并且在高并发请求下,性能难以满足需…...
5、《Spring Boot自动配置黑魔法:原理深度剖析》
Spring Boot自动配置黑魔法:原理深度剖析 一、引言:为什么Spring Boot能“开箱即用”? Spring Boot的核心理念是**“约定优于配置”,开发者只需引入一个spring-boot-starter-web依赖,就能直接编写RESTful API…...

稀土抑烟剂——为纺织品安全加持,保护您的每一寸触感
一、稀土抑烟剂的基本概念 稀土抑烟剂是基于稀土元素(如稀土氧化物和稀土金属化合物)研发的一类新型阻燃材料。它能够有效提高纺织品的阻燃性,抑制火灾发生时产生的烟雾和有害气体,减少火灾对人体的危害。稀土抑烟剂具有更强的稳…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...