当前位置: 首页 > news >正文

BBRv2,v3 吞吐为什么不如 BBRv1

为什么 BBRv2/3 测试下来吞吐远不如 2016 年底的 BBRv1,这个事曾经提到过很多次,今天分析一下原理。注意三个事实:

  • BBR 是一种拥塞控制算法;
  • BBR 已经迭代到了 v3 版本;
  • BBRv3 的 “性能” 远不如 BBRv1.

第二点有点不可思议,一般而言,不存在版本越新性能越差的,如果有,一定是 bug,但对于 BBR 却是不争的事实。到底发生了什么?

如果你不知道拥塞控制算法的性能意味着什么,建议先去了解,这里不赘述。从一篇有趣的论文开始本文:BBR vs. BBRv2: A Performance Evaluation.

摘要部分最后几句:

Our results suggest that BBRv2 trades performance for better fairness under losses. To bridge this gap, we investigate the workings of BBRv2 and find that BBRv2 employs a long-term upper bound on sending rate that is not robust to losses. This upper bound is continually decremented in the presence of persistent losses, thereby depressing goodput. We show that by aligning BBRv2’s upper bound with its maximum bandwidth estimation, BBRv2’s performance can be greatly improved while maintaining its fairness.

好家伙,还好只 aligning 了 upper bound,要是连 lower bound 也给 aligning 了,差一点就回退到 BBRv1 了。后面会分析到,upper bound 越大,吞吐越高,但必然以公平性为代价,若将 upper/lower bound 全取消,吞吐达到最优,公平性全无,因此这篇论文其实什么都没说,就是滑动了一下滑杆,展示了这个交易。

BBRv2/3 增加这两个 bound 的目标就是解决公平性问题,细节还得看 BBR Congestion Control(IETF-Draft):

BBR.inflight_hi(upper bound): The long-term maximum volume of in-flight data that the algorithm estimates will produce acceptable queue pressure, based on signals in the current or previous bandwidth probing cycle, as measured by loss. That is, if a flow is probing for bandwidth, and observes that sending a particular volume of in-flight data causes a loss rate higher than the loss rate objective, it sets inflight_hi to that volume of data. (Part of the long-term model.)
BBR.inflight_lo(lower bound): Analogous to BBR.bw_lo, the short-term maximum volume of in-flight data that the algorithm estimates is safe for matching the current network path delivery process, based on any loss signals in the current bandwidth probing cycle. This is generally lower than max_inflight or inflight_hi (thus the name). (Part of the short-term model.)

BBRv2/3 遵循下列逻辑来调整 upper bound 和 lower bound:

// upper bound 在 ProbeUP & Refill phase 调整
loss_too_high_in_ProbeUP & Refill:inflight_hi = max_t(in_flight, bdp * (1 - beta);// lower bound 在 ProbeUP & Refill phase 之外调整
any_loss_except_ProbeUP & Refill:inflight_lo = max_t(max_inflight_latest, inflight_lo * (1 - beta);

用 (1 - beta) 兜底是为了 “ ensure that BBR does not react more dramatically than CUBIC’s 0.7x multiplicative decrease factor.”

long-term upper bound 维持 AIMD 周期间与 reno/cubic 的公平性,short-term lower bound 维持 AIMD 周期内与 reno/cubic 的公平性,如下图所示:
在这里插入图片描述

就解释一句,红绿黄线下的面积是一个 cycle 内 BBRv2/3 的传输总量,它对应一个 AIMD 周期内虚线下面的面积,肉眼可见,大差不差,这就是所谓 “对 reno/cubic 的公平性”。

ProbeUP phase 是个受 loss_thresh 约束的指数增加 upper bound 的逻辑,期间,任何丢包率越过 loss_thresh 均将对 upper bound 进行 mutiplicatively decrease,整个 cycle 中只要发现比 upper bound 更大的实际 inflight,都会更新 inflight_hi,比如 ProbeUP 时的随机丢包导致 loss_thresh 越界而 upper bound 被削减,后续的 cwnd_gain 将可能填充更大的 inflight。

注意,loss_thresh 越界时,只在 refill,ProbeUP phase 才更新 upper bound,因为 cruise 默认已在 drain phase 后完成适配 maxbw,minrtt 这个操作点了。

可见,BBRv2/3 除却 BBR 状态机就是一个 cwnd-based reno/cubic,因此有两个结论:

  1. 在丢包率高于 loss_thresh 场景,BBRv2/3 维持与 reno/cubic 之公平性,吞吐跌落至与之持平;
  2. 在丢包率低于 loss_thresh 场景,BBRv2/3 获得比 reno/cubic 更大的吞吐,提高了带宽利用率。

虽说 BBRv2/3 采用了指数增加 upper bound 的方式,但为了和 reno/cubic 一致,BBR 确保在一个和 reno/cubic AIMD 周期一致的 cycle 内维持 upper bound 稳定(前面提到取实际 inflight 更新 inflight_hi 以对抗随机丢包的技巧不在此约束内)而不再 ProbeUP,和 AIMD 零存整取不同,BBRv2/3 相当于整存整取。

BBRv2/3 PROBE_BW 的一个 cycle 确定为一个典型的 reno/cubic 流的 AIMD 周期,约 2s,或者动态设置为 BDP 个 round,因为一个 AIMD 周期就是 cwnd_max 个 round。

看这篇论文中展示 BBRv2 在丢包率 2% 下吞吐陡降的图示:
在这里插入图片描述

2MB buffer,以 1KB mss 算,一共就是 2000 个段,按照 AIMD 理论,丢包率即 1/2000,相比 2% 的丢包率要低 40 倍,由 reno 吞吐公式可知其吞吐要高 根号 √40 倍,约等于 6.3,从图上可见,inflight 理论上跌落到 5500*0.85/6.3 = 742,从图上看,大差不差。

再看 BBRv1 论文中抗丢包的广告图(BBR 可容忍 20% 丢包,相比之下,cubic 连 1% 都容忍不了),若 long-term/short-term bound 均不受限(BBRv1 无 upper bound 约束),BBR 可支撑 20%+ 丢包率(解方程求出 gain = 1.25 时的最大丢包率),单独 short-time bound 限制在均匀丢包的 reno/cubic 共存场景亦碾压 reno/cubic,因此 BBRv2/3 的实际吞吐低的原因是其 long-term bound 即 upper bound 不断被丢包压制却鲜有上升导致。

因此,想提高吞吐的方案就摆在眼前了:

  • 要么升高 inflight_hi;
  • 要么升高 loss_thresh。

但如论文所示,如此做法肯定损害了对 reno/cubic 的公平性,它的结论很明显,如此修改对原生 BBRv2/3 而言提高了吞吐,而对 BBRv1 而言提高了公平性,好一个田忌赛马。这个结论意味着,BBRv2/3 基本锁死了吞吐和公平性的权衡,顾此失彼,不可兼得。

值得再次强调,当丢包率低于 loss_thresh = 2% 时,Probe_UP 不受阻碍,BBRv2/3 相对 reno/cubic 还是有很大吞吐优势。BBRv2/3 与 reno/cubic 共存的宗旨就是,有难同当,有福独享。
因此,BBRv2/3 吞吐不如 BBRv1 并非问题,而是特性,它并非论文指数的那样,long-term bound inflight_hi 无法涨回去,虽然 short-term bound 确实会传递给 long-term bound,但正如其名字所表达,影响也只是 short-term,一旦丢包消除,long-term bound 下一个 cycle ProbeUP 时有自己的增长逻辑,即使在当前 cycle,由于 short-term bound inflight_lo 在 ProbeUP 和 Refill phase 不起作用,这两个 phase 的 loss_thresh 越界虽 cut 了 inflight_hi,但若真的只是随机丢包越界,在 cruise phase 靠 cwnd_gain 造成 inflight 超过 upper bound,仍可递增 long-term bound。论文所下的结论,仅在其假设丢包率 2% 均匀分布(而不是随机突发丢包)的场景有效。

若真要用通用方法提高吞吐,更好的做法是在 Cruise phase 只要不丢包就 additive increase upper bound,这最终就类似 BBR 旁路 cugas(cubic + vegas) 或 vebic(vegas + cubic) 了(or hybla?)。

如果想在模拟仿真环境(特别是 tc netem,mininet 这些玩意儿模拟一个固定的均匀丢包率)忽悠经理,让经理看到吞吐碾压原生算法的效果而获得加薪晋升机会,我的方法就非常有用。因为绝大多数干这行的,证明给经理看或者写论文的环境都是这类仿真环境,模拟均匀丢包,连 4-state 都不会(参见 揭露 BBR 的真相 最后部分)。

浙江温州皮鞋湿,下雨进水不会胖。

相关文章:

BBRv2,v3 吞吐为什么不如 BBRv1

为什么 BBRv2/3 测试下来吞吐远不如 2016 年底的 BBRv1,这个事曾经提到过很多次,今天分析一下原理。注意三个事实: BBR 是一种拥塞控制算法;BBR 已经迭代到了 v3 版本;BBRv3 的 “性能” 远不如 BBRv1. 第二点有点不…...

Java集成【邮箱验证找回密码】功能

目录 1.添加依赖 2.选择一个自己的邮箱&#xff0c;作为发件人角色。 3.编写邮箱配置【配置发件人邮箱】 4.编写邮箱配置类 5.编写controller业务代码 6.演示效果 7.总结流程 8.注意 结语 1.添加依赖 <!--导入邮箱依赖--> <dependency><groupId>or…...

Java微服务架构设计与实践 - 面试实战

Java微服务架构设计与实践 - 面试实战 在互联网大厂的Java求职者面试中&#xff0c;微服务架构设计是一个常见的考察点。本文通过严肃的面试官和资深Java架构师马架构之间的对话&#xff0c;详细展示了如何回答SpringCloud相关的核心技术问题。 第一轮提问 面试官&#xff1…...

Java后端开发面试题(含答案)

在广州一个小公司&#xff08;BOSS标注是20-99人&#xff0c;薪资2-3k左右)&#xff0c;直接面试没有笔试&#xff0c;按流程自我介绍&#xff0c;然后直接拿着简历问项目场景&#xff0c;问题是结合场景题和八股文。废话不多说&#xff0c;直接分享面试题目个大家做参考。 1、…...

Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理

Sharding-JDBC 系列专题 - 第九篇:高可用性与集群管理 本系列专题旨在帮助开发者全面掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第九篇文章,将重点探讨 高可用性(High Availability, HA) 和 集群管理,包括数据库高可用方案、Sharding-JDBC 的故…...

Node.js 学习入门指南

Node.js 学习入门指南 Node.js 是一种流行的开源、跨平台的 JavaScript 运行时环境&#xff0c;它使开发者能够在服务器端运行JavaScript代码。本篇文章旨在帮助初学者快速入门并掌握Node.js的基础知识和常用技巧。 一、什么是Node.js&#xff1f; 定义 Node.js 是一个基于…...

数智视融合驱动未来,Al+数字孪生重塑价值|2025袋鼠云春季数智发布会回顾

4月16日&#xff0c;袋鼠云成功举办了“做DataAI的长期主义者——2025年袋鼠云春季数智发布会”&#xff0c;从智能分析决策平台到AI大模型应用&#xff0c;从数字孪生中枢到AI增强型数字世界&#xff0c;勾勒出企业数智化转型的进化图谱&#xff0c;真正实现AI赋能企业业务&am…...

nfs服务原理、搭建手册、安全配置建议及异常定位手段

一、NFS服务原理 NFS&#xff08;Network File System&#xff09;是一种基于TCP/IP协议的网络文件共享系统&#xff0c;允许客户端像访问本地文件一样访问远程服务器上的共享目录。其核心原理依赖于RPC&#xff08;Remote Procedure Call&#xff09;机制&#xff0c;具体流程…...

第十三届蓝桥杯 2022 C/C++组 修剪灌木

目录 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; 思路&#xff1a; 核心思路&#xff1a; 思路详解&#xff1a; 代码&#xff1a; 代码详解&#xff1a; 题目&#xff1a; 题目描述&#xff1a; 题目链接&#xff1a; P8781 [蓝桥杯 2022 省 B] 修…...

MySQL:数据库设计

目录 一、范式 二、第一范式 二、第二范式 三、第三范式 四、设计 &#xff08;1&#xff09;一对一关系 &#xff08;2&#xff09;一对多关系 &#xff08;3&#xff09;多对多关系 一、范式 数据库的范式是一种规则&#xff08;规范&#xff09;&#xff0c;如果我们…...

OpenManus与OWL部署及体验报告

OpenManus与OWL对任务的执行结果均不及Manus&#xff1b;二者比较&#xff0c;Owl达成率更高&#xff1b;二者使用过程中均会消耗大量tokens&#xff0c;单个问题成本高。 一、部署 OpenManus&#xff1a;https://github.com/mannaandpoem/OpenManus.git OWL&#xff1a;https…...

【Pandas】pandas DataFrame pow

Pandas2.2 DataFrame Binary operator functions 方法描述DataFrame.add(other)用于执行 DataFrame 与另一个对象&#xff08;如 DataFrame、Series 或标量&#xff09;的逐元素加法操作DataFrame.add(other[, axis, level, fill_value])用于执行 DataFrame 与另一个对象&…...

Red:1靶场环境部署及其渗透测试笔记(Vulnhub )

环境介绍&#xff1a; 靶机下载&#xff1a; https://download.vulnhub.com/red/Red.ova 本次实验的环境需要用到VirtualBox&#xff08;桥接网卡&#xff09;&#xff0c;VMware&#xff08;桥接网卡&#xff09;两台虚拟机&#xff08;网段都在192.168.152.0/24&#xff0…...

【多源01BFS】Codeforce:Three States

题干 翻译 给定一个 nm 的网格地图&#xff0c;包含以下元素&#xff1a; .&#xff1a;表示荒地&#xff08;可以修建道路&#xff09;。 #&#xff1a;表示岩石&#xff08;不可通行&#xff09;。 数字 1、2、3&#xff1a;分别表示三个国家的位置。 目标&#xff1a;将…...

在深度学习中FLOPs和GFLOPs的含义及区别

在深度学习中&#xff0c;FLOPs和GFLOPs是衡量计算性能的关键指标&#xff0c;但两者的定义和应用场景不同&#xff1a; 1. 定义与区别 • FLOPs&#xff08;Floating-point Operations&#xff09; 表示模型或算法执行时所需的浮点运算总次数&#xff0c;用于衡量模型的计算复…...

SpringBoot入门实战(项目搭建、配置、功能接口实现等一篇通关)

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 SpringBoot入门实战&#xff08;项目搭建、配…...

昆仑万维开源SkyReels-V2,解锁无限时长电影级创作,总分83.9%登顶V-Bench榜单

昆仑万维开源了全球首个基于扩散强迫框架&#xff08;Diffusion-forcing&#xff09;的无限时长视频生成模型——SkyReels-V2。这一模型以总分83.9%的优异成绩登顶权威评测V-Bench1.0榜单&#xff0c;并在质量维度获得84.7%的评分&#xff0c;刷新了开源视频生成技术的天花板。…...

精选面试题

1、js中set和map的作用和区别? 在 JavaScript 中&#xff0c;Set 和 Map 是两种非常重要的集合类型 1、Set 是一种集合数据结构&#xff0c;用于存储唯一值。它类似于数组&#xff0c;但成员的值都是唯一的&#xff0c;没有重复的值。Set 中的值只能是唯一的&#xff0c;任何…...

【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析

在现代Web应用开发中&#xff0c;身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案&#xff0c;其中Session/Cookie和JWT&#xff08;JSON Web Token&#xff09;是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…...

【CAPL实战:以太网】对IPv4报文的Payload部分进行分片并创建分片包

As we know,TCP/IP协议栈网络层接收到来自上层的数据时,并不是简单地添加报头发送出去,而是会受到来自网卡配置参数MTU的约束。也就是从网卡上发送出去的以太网帧报文的数据部分的长度不能大于MTU值。即网络层头部 + 有效载荷不能大于MTU。 所以网络层在发送上层的数据时,…...

Spring Security认证流程

认证是Spring Security的核心功能之一&#xff0c;Spring Security所提供的认证可以更好地保护系统的隐私数据与资源&#xff0c;只有当用户的身份合法后方可访问该系统的资源。Spring Security提供了默认的认证相关配置&#xff0c;开发者也可以根据自己实际的环境进行自定义身…...

Spring Security基础入门

本入门案例主要演示Spring Security在Spring Boot中的安全管理效果。为了更好地使用Spring Boot整合实现Spring Security安全管理功能&#xff0c;体现案例中Authentication&#xff08;认证&#xff09;和Authorization&#xff08;授权&#xff09;功能的实现&#xff0c;本案…...

Axure疑难杂症:母版菜单设置打开链接后菜单选中效果

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:菜单打开链接后子菜单选中效果 主要内容:母版设计、选中效果 应用场景:页面赋值 案例展示: 案例视频:...

4月份最新---Meta发明了一种很新的Transformer

在自然语言处理领域,当模型处理长上下文时,如何在纷繁的 Token 中精准捕捉关键信息、过滤无关干扰,始终是注意力机制优化的核心方向。标准多头注意力(Multi-Head Attention, MHA)通过查询 - 键 - 值(Q-K-V)的点积相似性计算注意力权重,虽能定位单个 Token 级别的语义关…...

Spring Boot知识点详解

打包部署 <!‐‐ 这个插件&#xff0c;可以将应用打包成一个可执行的jar包&#xff1b;‐‐> <build><plugins> <plugin> <groupId>org.springframework.boot</groupId><artifactId>spring‐boot‐maven‐plugin</artifactId&g…...

基于 EFISH-SBC-RK3588 的无人机多光谱/红外热成像边缘计算方案

一、硬件架构设计‌ ‌核心算力平台&#xff08;EFISH-SBC-RK3588&#xff09;‌ ‌处理器性能‌&#xff1a;搭载 8 核 ARM 架构&#xff08;4Cortex-A762.4GHz 4Cortex-A551.8GHz&#xff09;&#xff0c;集成 6 TOPS NPU 与 Mali-G610 GPU&#xff0c;支持多光谱图像实时融…...

字典与集合——测试界的黑话宝典与BUG追捕术

主题&#xff1a;“字典是测试工程师的暗号手册&#xff0c;集合是BUG的照妖镜” 一、今日目标 ✅ 掌握字典的「键值对暗号体系」与集合的「去重妖法」✅ 开发《测试工程师黑话词典》&#xff0c;让新人秒变老司机✅ 统计自动化测试结果中的高频BUG类型&#xff08;附赠甩锅指…...

QT构建即时通讯应用--WebSocket全面解析与实战指南

概述 WebSocket协议因其低延迟和双向通信的能力而成为了现代Web和桌面应用程序的首选,Qt框架提供了强大的WebSocket支持,使得开发者可以轻松地集成这一技术到自己的项目中 WebSocket简介 WebSocket是一种在单个TCP连接上进行全双工通信的协议。它允许服务器主动向客户端推…...

复杂性决策-思维训练

思维训练 1.模式识别 观察、复杂、不确定、波动、模糊 –找出必要和非必要因素 –识别重大威胁和机遇 2.系统分析 为复杂情景构建系统心智模型 利用模型识别模式做出预测&#xff0c;指定有效策略 3.心智敏锐度 利用不同层次的分析探索挑战的能力&#xff0c;对其他利益相关方在…...

缓存集群技术深度解析:从原理到实战

缓存集群技术深度解析&#xff1a;从原理到实战 一、缓存集群核心定位与架构选型 1. 集群模式核心价值 缓存集群通过数据分片、高可用保障、水平扩展解决单节点瓶颈&#xff0c;核心能力包括&#xff1a; 数据分片&#xff1a;将数据分散到多个节点&#xff0c;突破单节点内…...

Qt C++/Go/Python 面试题(持续更新)

目录 1、封装、继承、多态是什么&#xff1f; 2、final标识符的作用是什么&#xff1f; 3、介绍一下虚函数 4、介绍一下智能指针 5、介绍一下左值、右值、左值引用、右值引用 6、指针和引用有什么区别&#xff1f; 7、define和const的区别是什么&#xff1f; 8、C程序的…...

Spring Cloud Alibaba VS Spring Cloud

​​Spring Cloud Alibaba 与 Spring Cloud 组件对比​ ​​服务发现与注册中心​ 功能​​​Spring Cloud​​​Spring Cloud Alibaba​对比说明​​核心组件​EurekaNacosNacos 支持动态配置管理、健康检查更灵活&#xff0c;且提供 DNS 服务发现能力。​​​​健康检查​​…...

containerd 配置代理

1.systemd unit file 为 containerd 服务创建一个 systemd 插入目录 mkdir /etc/systemd/system/containerd.service.d/创建名为 /etc/systemd/system/containerd.service.d/http-proxy.conf 的文件 添加 HTTP_PROXY 环境变量 [Service] Environment"HTTP_PROXYhttp:/…...

专家系统的基本概念解析——基于《人工智能原理与方法》的深度拓展

一、什么是专家系统 &#xff08;一&#xff09;基本思想与定义 1. 核心思想&#xff1a;知识与推理的分离 迄今为止&#xff0c;关于专家系统还没有一个公认的严格定义&#xff0c;一般认为&#xff1a; &#xff08;1&#xff09;它是一个智能程序系统&#xff1b; &…...

什么是公链?公链项目有哪些?公链项目开发

公链技术全景解析&#xff1a;定义、生态与开发指南&#xff08;2025年深度版&#xff09; 一、公链的本质与核心特征 1.1 公链的定义 公链&#xff08;Public Blockchain&#xff09;是一种完全开放、无需许可的区块链网络架构&#xff0c;其核心特征在于去中心化、透明…...

如何解析商品详情页面

解析商品详情页面是爬虫开发中的一个重要环节。由于商品详情页面通常包含丰富的信息&#xff0c;如商品名称、价格、描述、图片等&#xff0c;因此需要仔细分析页面结构并提取所需数据。以下是一个详细的步骤指南&#xff0c;展示如何使用 Java 和 Jsoup 解析商品详情页面。 一…...

Android 混合开发实战:统一 View 与 Compose 的浅色/深色主题方案

整个应用&#xff08;包括 View 和 Compose 部分&#xff09;的浅色/深色模式保持一致。以下是完整的解决方案&#xff1a; 全局配置方案 1. 基础主题设置 在 res/values/themes.xml 和 res/values-night/themes.xml 中定义统一的主题&#xff1a; <!-- values/themes.x…...

三国杀专业分析面板,立志成为桌游界的stockfish

三国杀专业分析面板 (SGSFish) GitHub仓库&#xff1a; 本项目是一个基于 Python 实现的三国杀专业分析面板&#xff0c;旨在模拟玩家决策过程&#xff0c;通过量化评估动作实体&#xff08;卡牌/技能&#xff09;的价值、考虑它们之间的相互影响&#xff08;包括基于作用域的…...

解析 select 函数

解析 select 函数 select 函数是 Unix/Linux 系统中用于多路复用的系统调用&#xff0c;主要用于在多个文件描述符&#xff08;file descriptors&#xff09;上等待事件的发生。它允许程序同时监视多个 I/O 通道&#xff0c;并在任意一个通道准备好进行 I/O 操作时通知程序&am…...

对话模型和补全模型区别

对话模型和补全模型区别 什么是对话模型、补全模型 什么是 Completion 最基本地说,文本模型是一个经过训练的大型数学模型,旨在完成一项单一任务:预测下一个 token 或字符。这个过程被称为 completion,在您的旅程中您会经常遇到这个术语。 例如,当使用 completion 文本…...

计算机图形学实践:结合Qt和OpenGL实现绘制彩色三角形

以下是使用Qt和OpenGL实现绘制彩色三角形并添加颜色选择按钮的步骤&#xff1a; 一、创建OpenGL绘制组件 继承QOpenGLWidget实现自定义绘制类&#xff1a; // myopenglwidget.h #include <QOpenGLWidget> #include <QOpenGLFunctions_3_3_Core> #include <QO…...

十分钟应急响应——自定义工具链整合实战

核心思路 结合群联AI云防护的API和自定义脚本&#xff0c;实现攻击检测、节点切换、日志分析的端到端自动化。 技术实现步骤 1. 实时攻击检测脚本 使用Python监听群联系统日志&#xff0c;识别攻击特征&#xff1a; # monitor_attack.py import json import subprocess from…...

SpringCloud微服务架构设计与实践 - 面试实战

SpringCloud微服务架构设计与实践 - 面试实战 第一轮提问 面试官&#xff1a;马架构&#xff0c;请问在SpringCloud微服务架构中&#xff0c;如何实现服务注册与发现&#xff1f; 马架构&#xff1a;在SpringCloud中&#xff0c;Eureka是常用的服务注册与发现组件。服务提供…...

每日算法——快乐数、两数之和

202. 快乐数 class Solution { public:bool isHappy(int n) {unordered_set<int> result_set;while(true){int sum 0;while(n>0){sum (n%10)*(n%10);n/10;}if(sum1){return true;}else{if(result_set.find(sum) ! result_set.end()){return false;}result_set.inser…...

反射,枚举,lambda表达式

目录 反射枚举的使用Lambda表达式函数式接口语法Lambda表达式语法精简 变量捕获Lambda在集合List中的使用 反射 作用&#xff1a;在Java代码中&#xff0c;让一个对象认识到自己 比如一个类的名字&#xff0c;里面的方法&#xff0c;属性等 让程序运行的过程&#xff0c;某个对…...

matlab 绘图

1.三维绘图 % 原始数据&#xff08;按行输入&#xff1a;x y z&#xff09; data [1 2 3 ;5 56 234 ;32 34 67 1 2 5 ];% 提取坐标并生成网格&#xff08;适用于surf函数的网格格式&#xff09; x data(:,1); % X坐标&#xff08;行数对应Y轴&#xff09; y data…...

AI日报 - 2025年04月25日

&#x1f31f; 今日概览(60秒速览) ▎&#x1f916; AGI突破 | OpenAI o3模型展现行动能力&#xff0c;英国发布RepliBench评估AI自主复制风险&#xff0c;DeepMind CEO担忧AGI协调挑战。 模型能力向行动和自主性演进&#xff0c;安全与协调成为焦点。 ▎&#x1f4bc; 商业动向…...

力扣面试150题--基本计算器

Day 31 题目描述 思路 &#xff08;逆波兰表达式扩展&#xff09; 初次思路&#xff1a;此题我遇到了几个难点 如何处理&#xff08;&#xff09;如何处理-1和2-1中的负数还是减法问题 1-&#xff08;-&#xff08;12&#xff09;&#xff09;如何处理多余的空格 我的做法如…...

各种各样的bug合集

一、连不上数据库db 1.可能是密码一大包东西不对&#xff1b; 2.可能是里面某个port和数据库不一样&#xff08;针对于修改了数据库但是连不上的情况&#xff09;&#xff1b; 3.可能是git代码没拉对&#xff0c;再拉一下代码。❤ 二、没有这个包 可能是可以#注释掉。❤ …...

【25软考网工】第三章(3)虚拟局域网VLAN

一、虚拟局域网VLAN 1. VLAN基础 定义&#xff1a;根据管理功能、组织机构或应用类型对交换局域网进行分段而形成的逻辑网络。例如将大型网络划分为多个VLAN&#xff08;如VLAN1-4&#xff09;。 优势&#xff1a; 管理便利&#xff1a;便于对不同部门或功能进行分组管理安全隔…...