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日,世界第三古老的网络服务提供…...
移远通信边缘计算模组成功运行DeepSeek模型,以领先的工程能力加速端侧AI落地
近日,国产大模型DeepSeek凭借其“开源开放、高效推理、端侧友好”的核心优势,迅速风靡全球。移远通信基于边缘计算模组SG885G,已成功实现DeepSeek模型的稳定运行,并完成了针对性微调。 目前,该模型正在多款智能终端上进…...
Linux | 进程相关概念(进程、进程状态、进程优先级、环境变量、进程地址空间)
文章目录 进程概念1、冯诺依曼体系结构2、进程2.1基本概念2.2描述进程-PCB2.3组织进程2.4查看进程2.5通过系统调用获取进程标识符2.6通过系统调用创建进程-fork初识fork の 头文件与返回值fork函数的调用逻辑和底层逻辑 3、进程状态3.1状态3.2进程状态查看命令3.2.1 ps命令3.2.…...
站群服务器和普通服务器有哪些不同之处?
站群服务器是一个集中管理工具,可以允许网站管理员同时管理多个网站,但是不要管理员登录每一个网站的后台,在站群模式下,网站管理员通过一个或者多个服务器来托管大量的子站点,可以支持大规模网站的集中管理和优化。 普…...
百度千帆平台对接DeepSeek官方文档
目录 第一步:注册账号,开通千帆服务 第二步:创建应用,获取调用秘钥 第三步:调用模型,开启AI对话 方式一:通过API直接调用 方式二:使用SDK快速调用 方式三:在千帆大模…...
DeepSeek帮助解决Oracle死锁问题
最近在生产上遇到一个死锁问题,Oracle 抛出了 ORA-000060 异常。 业务场景:程序按行读取一个上游系统送的文件数据(大概有几万行),读取到数据后,每 500 行分配给一个线程去批量更新数据库(使用…...
MySQL无法连接到本地localhost的解决办法2024.11.8
问题描述:我的MySQL可以远程连接服务器,但无法连接自己的localhost。 错误提示: 2003 - Cant connet to MySQL server on localhost(10061 "Unknown error")查找问题原因: 1. 检查环境变量是否正确:发现没…...
Nginx之rewrite重写功能
目录 一、rewrite概述 1、rewrite功能 2、跳转场景 二、标准配置指令 1、rewrite日志记录指令 2、未初始化变量告警日志记录指令 3、rewrite 指令 3.1 正则表达式 三、rewrite模块使用实例 1.基于域名的跳转 2.基于客户端 IP 访问跳转 3.?基于旧域名跳转到新域名后…...
Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
文章目录 一、引言二、Jenkins简介三、安装部署Jenkins安装部署四、集成Git与Maven安装必要的插件配置Git配置Maven五、创建Job创建自由风格的项目配置源码管理配置构建触发器配置构建环境配置构建步骤配置Post-build Actions六、触发构建示例:GitHub Webhook触发构建七、封装…...
MyBatis拦截器终极指南:从原理到企业级实战
在本篇文章中,我们将深入了解如何编写一个 MyBatis 拦截器,并通过一个示例来展示如何在执行数据库操作(如插入或更新)时,自动填充某些字段(例如 createdBy 和 updatedBy)信息。本文将详细讲解拦…...
DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏
DeepSeek4j Spring Boot Starter 快速入门 简介 DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器,可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API,开发者可轻松实现对话交互功能。 环境要求 JDK 8Spring Boot 2.7Maven/Gr…...
linux 板子的wifi模块连上路由器后,用udhcpc给板子wifi分配ip,udhcpc获取到ip,但没有写入wlan0网卡上
linux 板子的wifi模块连上路由器后,用udhcpc给板子wifi分配ip,udhcpc获取到ip,但没有写入wlan0网卡上 这里的问题是 /usr/share/udhcpc/default.script脚本有问题 用下面正确脚本,即可写进去 #!/bin/sh# udhcpc script for busybox # Copyr…...
【工业安全】-CVE-2022-35555- Tenda W6路由器 命令注入漏洞
文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1:代码分析 4.2:流量分析 5.poc代码: 1.漏洞描述 漏洞编号:CVE-2022-35555 漏洞名称:Tenda W6 命令注入 威胁等级:高危 漏洞详情࿱…...
twisted实现MMORPG 游戏数据库操作封装设计与实现
在设计 MMORPG(大规模多人在线角色扮演游戏)时,数据库系统是游戏架构中至关重要的一部分。数据库不仅承担了游戏中各种数据(如玩家数据、物品数据、游戏世界状态等)的存储和管理任务,还必须高效地支持并发访…...
【MySQL】基础篇
1. MySQL中的NULL值是怎么存放的? MySQL的compact行格式中会用【NULL值列表】来标记值为NULL的列,NULL值不会存储在行格式中的真实数据部分。 NULL值列表会占用1字节空间,当表中所有字段都被定义成NOT NULL,行格式中就不会有NULL值…...
【自学笔记】机器学习基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 机器学习重点知识点总览一、机器学习基础概念二、机器学习理论基础三、机器学习算法1. 监督学习2. 无监督学习3. 强化学习 四、机器学习处理流程五、机器学习常见问…...
记录阿里云CDN配置
网站接入CDN全流程,共4步!-阿里云开发者社区 1、开通阿里云CDN服务 2、添加加速域名 3、验证域名归属权 4、域名添加CDN生成的CNAME解析 按照官网描述增加。细节点: 1. 域名和泛域名区别 2.开启https,要用nginx的证书,和项…...
同为科技智能PDU助力Deepseek人工智能和数据交互的快速发展
1 2025开年,人工智能领域迎来了一场前所未有的变革。Deepseek成为代表“东方力量”的开年王炸,不仅在国内掀起了技术热潮,并且在全球范围内引起了高度关注。Deepseek以颠覆性技术突破和现象级应用场景席卷全球,这不仅重塑了产业格…...
聚铭网络入围2025年度江苏省政府采购信息安全设备协议供货名单
近日,2025年度江苏省党政机关、事业单位及团体组织信息安全设备框架协议采购项目入围结果公布。聚铭网络凭借自身专业实力和技术优势脱颖而出,成功入围22个分包。 此次采购项目是江苏省政府采购领域级别最高、覆盖面最广的项目之一。从资格评选到后期材料…...
【Linux】--- 基础开发工具之yum/apt、vim、gcc/g++的使用
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Linux网络编程 本篇博客我们来认识一下Linux中的一些基础开发工具 --- yum,vim,gcc/g。 🏠 yum 🎸 什么是yum 当用户想下载软…...
leetcode 297. 二叉树的序列化与反序列化
题目如下 我们常常说单独先序遍历不能完整的表示一棵树是有前提条件的。 为什么?先序遍历是按 根节点 左子树 右子树的方向遍历树且遇到空子树直接返回,这样会造成我们并不知道某个节点的左右子树存在与否,故我们无法确定树的形状。但是如果…...
OpenAI 放王炸,将发布整合多项技术的 GPT-5,并免费无限使用,该模型有哪些技术亮点
对于 ChatGPT 的免费用户,将可以无限制地访问 GPT-5,但仅限于标准的智能级别。该级别会设定滥用限制,以防止不当使用(意思就是你得付费嘛)。 OpenAI CEO Sam Altman 今天在 X 上透露了 GPT-4.5 和 GPT-5 的最新发展计划。 OpenAI 将发布代…...
Ubuntu22.04 使用useradd 创建用户时,没有创建家目录时,如何手动创建家目录
测试案例: 使用useradd不加参数创建test目录 如下可以看出使用 useradd 创建用户的时候默认不会创建家目录 rootlocal:~# useradd test rootlocal:~# id test uid1001(test) gid1001(test) groups1001(test) rootlocal:~# cat /etc/passwd | grep test test:x:1001:…...
浅聊Docker使用、部署
在Java面试中,当被问到关于Docker中间件的使用、部署及在实际项目中的考虑时,可以按照以下结构和内容来详细回答: 一、Docker中间件的使用 1. Docker是什么? Docker是一个开源平台,允许开发者将应用程序及其依赖项打…...
Java面试第一山!《集合》!
一、引言 在 Java 编程的世界里,数据的存储和处理是非常重要的环节。Java 集合框架就像是一个功能强大的工具箱,为我们提供了各种各样的数据结构来高效地存储和操作数据。今天,跟随小编一起来深入了解 Java 集合框架,这不仅有助于…...
力扣-二叉树-257 二叉树的所有路径
思路 除去根节点,每一层添加->val,然后使用前序遍历的顺序 代码 class Solution { public:vector<string> res;void getTreePaths(string s, TreeNode* root){s "->";s to_string(root->val);if(root->left nullptr &…...
异构计算架构助力智能座舱实现高效低耗体验
摘要: 随着智能汽车的飞速发展,智能座舱作为人车交互的核心区域,对算力、功耗及延迟等性能指标提出了严苛要求。异构计算架构凭借在硬件、软件与系统层面的深度优化,能显著提升智能座舱的算力利用率,降低功耗与延迟,为用户打造高效、低能耗的智能座舱体验。本文深入剖析…...
【vscode】VScode Remote SSH配置
VScode使用remote ssh 到服务器上的Docker容器中 1. 配置远程服务器docker容器的端口映射,例如将服务器的2222端口映射到container的22端口(默认) 1.1 在容器系统的sshd_config文件中配置参数 #配置文件 vim /etc/ssh/sshd_config #打开端口号 Port 221.2 建立容…...
急停信号的含义
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是确认设备按钮的急停…...
【Azure 架构师学习笔记】- Azure Databricks (11) -- UC搭建
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (10) – UC 使用 前言 由于ADB 的更新速度很快,在几个月之后重新搭建ADB 时发现UC 已经更新了很多,为了后续做ADB 的功…...
MYSQL批量UPDATE的两种方式
工作中遇到批量更新的场景其实是比较常见的。 但是该如何正确的进行批量UPDATE,很多时候往往有点头大。 这里列2种可用的方式,供选择(请选择方式一,手动狗头。)。 如果使用了MyBatis增强组件MyBatisPlus 如果使用了MyBatisPlus,…...
百度宣布:免费!
2月13日,百度大模型文心一言在官网宣布,随着文心大模型的迭代升级和成本不断下降,文心一言将于4月1日起全面免费,所有PC端和APP端用户均可体验文心系列最新模型。 同时,文心一言将上线深度搜索功能,具备更…...
计算机毕业设计SpringBoot+Vue.js医院住院管理系统(源码+lw文档+PPT+讲解视频)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
Anaconda +Jupyter Notebook安装(2025最新版)
Anaconda安装(2025最新版) Anaconda简介安装1:下载anaconda安装包2: 安装anaconda3:配置环境变量4:检查是否安装成功5:更改镜像源6:更新包7:检查 Jupyter Notebook一.Jup…...
人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用
大家好,我是微学AI,今天给大家介绍一下人工智能任务21-飞蛾火焰优化算法(MFO)在深度学习中的应用。飞蛾火焰优化算法(Moth-Flame Optimization, MFO)是一种受自然界中飞蛾向光源趋近行为启发的新型群体智能优化算法。在自然界中&a…...
渗透测试工具:SQLmap安装教程及使用
在渗透测试的世界里,SQL注入攻击无疑是最常见且最具威胁的安全漏洞之一。幸运的是,SQLmap 这个强大的自动化工具,能够帮助我们快速识别和利用这些漏洞。如果你也想了解如何用 SQLmap 进行渗透测试,那么这篇文章就是为你准备的&…...
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十四节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(CommunicationControl_0x28服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x28服务、通信控制、ISO 14229-1:2023、ECU测试 一、服务功能概述…...
WEB安全--SQL注入--INTO OUTFILE
一、INTO OUTFILE 函数语法: SELECT column1, column2, INTO OUTFILE file_path FROM your_table WHERE your_conditions; 使用此方式在SQL注入的过程中可以: 1、上传shell得到数据库的后端的操作权限 2、爆出数据库的信息 二、使用该函数的条件&#…...
【C语言 】C语言 桌游开发数字竞拍(源码)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【C语言 】C语言 桌游开发数字竞拍(源码…...
开源赋能,智造未来:Odoo+工业物联网,解锁智能工厂新范式——以真实案例解读制造业数字化转型的降本增效密码
工业物联网的机遇与挑战:为什么企业需要Odoo? 《中国智能制造发展研究报告2023》指出,85%的制造企业已启动数字化转型,但超60%面临“数据孤岛、系统割裂、成本高企”的痛点[1]。传统ERP系统难以实时对接产线设备,而定…...
在分布式场景下可以使用synchronized加锁么?
首先说结论,在分布式系统中,单纯使用 Java 中的 synchronized 关键字是无法满足需求的,下面从 synchronized 的作用原理、在分布式场景下的局限性以及替代方案等方面详细分析。 一、synchronized 的作用原理 在 Java 中,synchron…...
DeepSeek从入门到精通:提示词设计的系统化指南
目录 引言:AIGC时代的核心竞争力 第一部分 基础篇:提示词的本质与核心结构 1.1 什么是提示词? 1.2 提示词的黄金三角结构 第二部分 类型篇:提示词的六大范式 2.1 提示语的本质特征 2.2 提示语的类型 2.2.1 指令型提示词 …...
C# 运算符
总目录 前言 在C#中,运算符是用于执行特定操作的符号。它们可以用于处理变量、常量或其他表达式。C# 提供了丰富的运算符集合,用于执行各种操作,如算术运算、逻辑判断、位操作等。了解这些运算符及其使用方式对于编写高效且功能强大的C#程序…...
duckdb导出Excel和导出CSV速度测试
运行duckdb数据库 D:>duckdb v1.2.0 5f5512b827 Enter “.help” for usage hints. Connected to a transient in-memory database. Use “.open FILENAME” to reopen on a persistent database. 生成模拟数据,10个列,100万行数据; --…...
pt->onnx->rknn(量化) step by step FAQ
文档修订中... 1.pt->onnx 这个转换是在yolov11的docker环境做的转换。非常简单。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 获取当前脚本文件所在目录的父目录,并构建相对路径 import os import sys current_dir os.path.dirname(os.path.abspath…...
Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer
文章目录 1. 动态规划2. 采样3. 代价函数3.1 障碍物代价3.2 距离终点代价3.3 速度代价3.4 加速度代价3.5 jerk代价 4. 回溯 这一章将来讲解速度决策算法,也就是SPEED_HEURISTIC_OPTIMIZER task里面的内容。Apollo 9.0使用动态规划算法进行速度决策,从类名…...
利用AI智能体创建云端文档知识库并集成第三方数据源(上)
许多开发者在管理和集成多种云端的数据源时经常面对各种各样的困难,所以希望能够构建一个聊天机器人来协调这些数据源,针对业务问题并提供全面的答案。本文介绍了一种解决方案,帮助大家开发一个能够从文档和数据库中回答查询的聊天机器人&…...
Cursor AI开发微信小程序教程
1. 准备工作 在开始开发之前,需要完成以下准备工作: 1.1 安装微信开发者工具 前往微信开发者工具官网下载并安装适合操作系统的开发者工具。注册微信小程序账号,登录微信公众平台(https://mp.weixin.qq.com)&#…...
2025常用的SEO工具有哪些?
在互联网时代,如何让自己的网站或内容脱颖而出,成为许多企业和个人站长们最关注的问题。而在这个过程中,SEO(搜索引擎优化)作为一种有效的提升网站曝光度和吸引流量的手段,已经成为了网站运营的核心之一。对…...
支持直接升级到21c的 Oracle 数据库版本
一、支持直接升级的版本 可以从以下版本直接升级到新版本: • 19c (所有版本) • 18c (所有版本) • 12c Release 2 (12.2) 升级到最新Oracle数据库版本必须采用的路径取决于当前数据库的版本号。 如果当前的Oracle数据库版本早于12.2 版,则无法直接将…...