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

秒级到毫秒:BFD的速度革命

一、BFD技术概述

​双向转发检测(BFD)​​是一种轻量级的网络协议,专门用于快速检测、监控网络链路或IP路由的连通性状态。作为网络领域的"心跳检测器",BFD通过毫秒级(默认1000ms)的快速探测机制,为上层协议提供实时链路状态反馈。

1. 技术亮点

  • ​快速检测​​:支持毫秒级故障检测(最快可达10ms)
  • ​协议无关性​​:可与静态路由、OSPF、VRRP等协议联动
  • ​灵活部署​​:支持单跳/多跳检测、异步/回声等多种工作模式
  • ​资源占用低​​:协议报文精简,系统开销极小

二、BFD核心工作机制

1. 会话建立机制

会话类型本地标识符远端标识符特点
​静态会话​手工配置手工配置稳定性高,需两端对应
​动态会话​系统自动分配系统自动分配配置简便,灵活性好

示例配置(静态会话):

[R1]bfd #开启bfd服务
[R1]bfd TEST bind peer-ip 192.168.1.2 interface GigabitEthernet0/0/0 #创建会话
[R1-bfd-session-TEST]discriminator local 10 #本地标识符
[R1-bfd-session-TEST]discriminator remote 20 #远程(对端)标识符

示例配置(动态会话):

[Huawei] bfd# 创建动态会话(无需手动指定标识符)
[Huawei] bfd aa bind peer-ip 45.0.0.2 source-ip 34.0.0.1 auto

2. 状态机转换

BFD会话包含四种关键状态:

  1. ​Down​​:初始状态或链路故障状态
  2. ​Init​​:接收到对端Down报文后进入
  3. ​Up​​:正常通信状态
  4. ​AdminDown​​:管理性关闭

状态转换矩阵​​:

​当前状态​​接收报文状态​​动作与状态变更​
​DOWN​DOWN切换到 ​​INIT​​ 状态
INIT切换到 ​​UP​​ 状态
UP​状态保持不变​
-------------------------------------------------------------------------
​INIT​DOWN​状态保持不变​
INIT切换到 ​​UP​​ 状态
UP切换到 ​​UP​​ 状态
-------------------------------------------------------------------------
​UP​任何状态​仅在以下情况切换为DOWN​​:
1. 用户手工关闭(shutdown
2. 物理链路故障
3. 连续检测超时(未收到对端报文)

3. BFD报文结构

三、BFD检测模式详解

1. 异步模式(默认)

  • 周期发送控制报文(默认1000ms)
  • 适用于大多数网络场景

2. 回声模式

  • 发送目标IP为本地IP地址的BFD ECHO报文
  • 特点:
    • 仅支持单跳检测
    • 目标MAC为对端地址,IP地址为本地IP地址
    • 适用于非对称链路检测

被动回声---在两台设备启动异步模式的基础上,将发送的报文替换成为ECHO报文。

单臂回声---仅一台设备激活BFD,另一台设备不激活。

单臂回声配置示例​​:

[R3]bfd ECHO bind peer-ip 45.0.0.2 interface G0/0/0 source-ip 34.0.0.1 one-arm-echo

四、典型配置指南

1. 单跳检测配置

# 启用BFD
[R1]bfd# 创建会话
[R1]bfd SESSION1 bind peer-ip 10.1.1.2 interface G0/0/0# 配置标识符
[R1-bfd-session-SESSION1]discriminator local 100
[R1-bfd-session-SESSION1]discriminator remote 200# 提交配置
[R1-bfd-session-SESSION1]commit

2. 多跳检测配置

[R3]bfd MULTI_HOP bind peer-ip 45.0.0.2
[R3-bfd-session-MULTI_HOP]source-ip 34.0.0.1
[R3-bfd-session-MULTI_HOP]discriminator local 300
[R3-bfd-session-MULTI_HOP]discriminator remote 400

3.配置验证命令​

# 查看BFD会话状态
[Huawei] display bfd session all# 输出示例:
Local Remote PeerIP      State      Type   Detect(msec)
100   200    10.1.1.2    Up         S-PVC  100/300  

五、协议联动实践

1. BFD与静态路由联动

配置命令​​:

[R1]ip route-static 0.0.0.0 0 12.0.0.2 track bfd-session SESSION1

作用原理​​:

  • 当BFD会话SESSION1检测到链路故障时,自动​​撤销静态路由​
  • 故障恢复后,路由自动重新生效

​典型应用​​:

  • 主备链路切换场景(如企业双ISP接入)
  • 避免静态路由"黑洞"问题(链路断但路由仍存在)

​注意事项​​:

  • 需先建立BFD会话,再绑定路由
  • 仅支持IPv4/v6默认路由或明细路由

2. BFD与OSPF联动

配置命令​​:

[R1-ospf-1]bfd all-interfaces enable

​作用原理​​:

  • 为OSPF所有接口​​启用BFD快速检测​
  • 当链路故障时,BFD先于OSPF Hello机制(默认10s)触发路由收敛

​性能提升​​:

检测方式传统OSPF收敛BFD+OSPF收敛
故障检测10-40秒50-100毫秒
路由计算依赖SPF算法立即触发

3. BFD与VRRP联动

配置命令​​:

[Huawei-GigabitEthernet0/0/1]vrrp vrid 1 track bfd-session SESSION1

工作机制​​:

  1. 当BFD检测到主用链路故障时
  2. 自动降低VRRP优先级(默认降10)
  3. 触发备用设备接管VIP

VRRP上行链路检测优化:

​VRRP检测原始​:

  • 仅依赖​​物理端口状态​​(如interface down)
  • ​无法检测三层故障​​(如中间设备宕机但端口仍up)

​BFD精准检测​:

  • 可感知​​三层链路中断​​(路由不可达、ACL阻断等)
  • 毫秒级故障发现,避免流量黑洞

总结:通过BFD+VRRP联动,可彻底解决传统检测的盲区,确保主备切换既快速又可靠。

相关文章:

秒级到毫秒:BFD的速度革命

一、BFD技术概述 ​​双向转发检测(BFD)​​是一种轻量级的网络协议,专门用于快速检测、监控网络链路或IP路由的连通性状态。作为网络领域的"心跳检测器",BFD通过毫秒级(默认1000ms)的快速探测机…...

systemctl 命令详解与常见问题解决

在 Linux 系统中,service 命令和 chkconfig 命令一直用于管理服务,但随着 systemd 的引入,systemctl 命令逐渐成为主流。systemctl 命令不仅功能强大,而且使用简单。本文将详细介绍 systemctl 命令的作用以及常见问题的解决方法。…...

5.6 Microsoft Semantic Kernel:专注于将LLM集成到现有应用中的框架

5.6.1 Semantic Kernel概述 Microsoft Semantic Kernel(以下简称SK)是一个开源的软件开发工具包(SDK),旨在帮助开发者将大型语言模型(LLM)无缝集成到现有的应用程序中。它支持C#、Python和Java…...

vite+vue构建的网站项目localhost:5173打不开

原因:关掉了cmd命令提示符,那个端口就没有被配置上,打开就是这样的。 解决方法:重新在工作目录下打开cmd,输入npm run dev重新启动项目。 重新出现这样的界面说明已经成功启动项目,再次在浏览器中刷新并输入…...

电脑屏幕录制软件Captura源码编译(Win10,VS2022)

屏幕录像的意义: 教育教学方面 制作教学资源:教师可以通过录制屏幕来制作教学视频,演示软件操作、讲解复杂的知识点等。学生可以随时观看这些视频,便于复习和巩固知识,尤其对于一些抽象的概念或难以在课堂上一次性掌握…...

【版本控制】SVN + TortoiseSVN版本管理实用教程(附安装+开发常用操作)

摘要: 本文将带你从零开始掌握 SVN 版本控制系统,结合 TortoiseSVN 图形客户端工具,深入学习包括安装、检出、提交、更新、回滚、冲突解决等常用开发操作,快速上手团队协作! 🧩 什么是 SVN? SV…...

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法

常见网络安全攻击类型深度剖析(二):SQL注入攻击——原理、漏洞利用演示与代码加固方法 在Web应用安全领域,SQL注入(SQL Injection)是历史最悠久、危害最广泛的攻击类型之一。据OWASP(开放式Web应用安全项目)统计,SQL注入连续多年稳居“OWASP Top 10”漏洞榜单前列,每…...

DeepSeek智能时空数据分析(三):专业级地理数据可视化赏析-《杭州市国土空间总体规划(2021-2035年)》

序言:时空数据分析很有用,但是GIS/时空数据库技术门槛太高 时空数据分析在优化业务运营中至关重要,然而,三大挑战仍制约其发展:技术门槛高,需融合GIS理论、SQL开发与时空数据库等多领域知识;空…...

day49—双指针+贪心—验证回文串(LeetCode-680)

题目描述 给你一个字符串 s,最多 可以从中删除一个字符。 请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false 。 示例 1: 输入:s "aba" 输出:true…...

AI电视里的达摩

2025年,所有电视都搭载了AI功能,所有电视厂商都在宣传AI能力。但问题是,消费者依旧没有对AI电视做出什么积极的回应。“AI电视是鸡肋”“AI只是电视的又一轮泡沫”等观点层出不穷。 为什么明明AI技术能够解决电视的很多问题,但AI电…...

算力网络(CFN)在跨校联合科研中的应用:安全性挑战与联邦调度实践

引言:科研协作的算力困境 上海交通大学与麻省理工学院联合开展的高能物理模拟实验,因算力资源分配不均导致部分节点连续72小时处于空转状态。这个典型案例揭示了当前跨机构科研协作的痛点:‌算力资源无法实现安全可信的细粒度共享‌。算力网…...

面向对象编程核心:封装、继承、多态与 static 关键字深度解析

面向对象编程核心:封装、继承、多态与 static 关键字深度解析 一、封装:数据安全与接口规范 1. 封装的本质与作用 核心定义:将数据(属性)与操作数据的方法(行为)绑定在类中,隐藏内…...

c++进阶——类与继承

文章目录 继承继承的基本概念继承的基本定义继承方式继承的一些注意事项 继承类模板 基类和派生类之间的转换继承中的作用域派生类的默认成员函数默认构造函数拷贝构造赋值重载析构函数默认成员函数总结 不能被继承的类继承和友元继承与静态成员多继承及其菱形继承问题继承模型…...

【CODEMATE】进制转换(transform) 粤港澳青少年信息学创新大赛 C/C++/Python 解题思路

目录 问题描述做题思路,解决过程思路:踩过的坑:核心代码C 语言 / C 切片:C 语言 / C 判断 ‘A’ 数量:Python 切片:Python 判断 ‘A’ 数量: 完整代码C 语言 完整代码C 完整代码Python 完整代码…...

window和ubuntu自签证书

window下 以管理员身份 运行 Windows PowerShell # CN192.168.0.100 (换成自己的IP或者域名) # O(组织) OU(组织单位) # Cert:\LocalMachine\My:证书存储位置 # test_10:自定义证书名称 .AddYears(10): 证书过期时间 10 年 $cert New-SelfSi…...

ES历史版本下载

下载地址 Past Releases of Elastic Stack Software | Elastic 安装步骤参考 windows 安装 Elasticsearch_windows安装elasticsearch-CSDN博客...

技术面试一面标准流程

0. 自我介绍 ...... 1. 拷打项目 项目干了啥? 难点是啥? 问项目中用到的东西? 扩展? ...... 2. 基础知识 数据结构、C基础、设计模式 数据结构: 堆? unordered_map 和 布隆过滤器 都是用于查找…...

第14篇:Linux设备驱动程序入门<一>

Q:如何简单的理解DE1-SoC-UP Linux系统的设备驱动程序? A:设备驱动程序(Device Driver),简称驱动程序(Driver)。DE1-SoC-UP Linux系统中的设备驱动程序允许系统软件与DE1-SoC开发板…...

软件设计模式与体系结构:基于Java实现管道-过滤器架构

软件设计模式与体系结构:基于Java实现管道-过滤器架构 前言 在软件架构中,数据流风格是一种常见的架构模式,特别适用于需要对数据进行一系列处理的场景。管道-过滤器(Pipe and Filter)*架构是数据流风格的典型代表&a…...

Node.js 包管理工具介绍

Node.js 包管理工具介绍 Node.js 是一个基于 Chrome V8 JavaScript 引擎的服务器端运行环境,它允许开发者使用 JavaScript 进行后端开发。为了方便管理和维护项目中使用的第三方库和模块,Node.js 提供了多种包管理工具。本文将详细介绍几种常用的 Node.…...

Node.js 应用场景

Node.js 应用场景 引言 Node.js 是一个基于 Chrome V8 JavaScript 引擎的开源、跨平台 JavaScript 运行环境。它主要用于服务器端开发,通过非阻塞 I/O 模型实现了高并发处理能力。本文将详细介绍 Node.js 的应用场景,帮助你了解其在实际项目中的应用。…...

C/C++线程详解

一、C语言线程创建&#xff08;POSIX线程&#xff09; 1. 基本创建方法 POSIX线程&#xff08;pthread&#xff09;是C语言中创建线程的标准API&#xff1a; #include <pthread.h> #include <stdio.h>void* thread_func(void* arg) {printf("Thread runnin…...

动态ip与静态ip的概念、区别、应用场景

动态ip与静态ip的区别 前言 一、IP地址的概念和作用 1.1、IP地址的定义 1.2、IP地址的作用 二、动态IP和静态IP的区别 2.1、动态IP和静态IP的定义 2.2、动态IP和静态IP的特点 2.3、动态IP和静态IP的优缺点比较 三、动态IP和静态IP的应用场景 3.1. 动态IP的应用场景 3.2. 静态IP…...

P12167 [蓝桥杯 2025 省 C/Python A] 倒水

P12167 [蓝桥杯 2025 省 C/Python A] 倒水 题目描述 小蓝有 n n n 个装了水的瓶子&#xff0c;从左到右摆放&#xff0c;第 i i i 个瓶子里装有 a i a_i ai​ 单位的水。为了美观&#xff0c;小蓝将水循环染成了 k k k 种颜色&#xff0c;也就是说&#xff0c;第 i i i …...

Appium自动化开发环境搭建

自动化 文章目录 自动化前言 前言 Appium是一款开源工具&#xff0c;用于自动化iOS、Android和Windows桌面平台上的本地、移动web和混合应用程序。原生应用是指那些使用iOS、Android或Windows sdk编写的应用。移动网页应用是通过移动浏览器访问的网页应用(appum支持iOS和Chrom…...

【金仓数据库征文】金仓数据库:国产化浪潮下的技术突破与行业实践

目录 前言 技术突破&#xff1a;从追赶国际到引领创新 行业深耕&#xff1a;从医疗到航空航天的多领域落地 事务管理与ACID特性 事务管理概述 索引优化与性能调优 安全性与备份恢复策略 Json构造函数 总结 前言 在数字化转型的全球趋势下&#xff0c;数据库作为信息系…...

计算机操作系统

1. T0 时刻是否为安全状态&#xff1f; 步骤 1: 计算当前可用资源 总资源数量&#xff1a; A: 17B: 5C: 20 已分配资源&#xff1a; P1: (2, 1, 2)P2: (4, 0, 2)P3: (4, 0, 5)P4: (2, 0, 4)P5: (3, 1, 4) 当前可用资源&#xff1a; A: 17 - (2 4 4 2 3) 2B: 5 - (1 0 …...

linux系统问题杂谈

1.配置好anaconda之后&#xff0c;在一个终端中编辑好环境变量之后能够正常使用conda命令&#xff0c;但是新打开一个中断使用conda命令报错"无法识别conda"。 原因&#xff1a;使用“export PATH"/home/username/anaconda3/bin:$PATH"命令&#xff0c;临…...

百度打响第一枪!通用超级智能体时代,真的来了

Create2025百度AI开发者大会在武汉举行&#xff0c;K哥受邀参加&#xff0c;看到了许多有趣的创新技术和产品。其中最令我印象深刻的是一款全新发布的通用超级智能体——心响App。 这款App通过多智能体复杂组合、协作&#xff0c;满足用户能够「一站式」解决复杂问题的使用诉求…...

FWFT_FIFO和Standard_FIFO对比仿真

在FPGA中使用FIFO时&#xff0c;如果使用FPGA厂商提供的FIFO IP&#xff0c;一般都会有First Word Fall Through FIFO和Standard FIFO类型选项&#xff0c;那么这两种FIFO有什么差异么。两种FIFO的端口是一样的&#xff0c;看不出区别&#xff0c;只有通过仿真&#xff0c;才能…...

【网络原理】TCP提升效率机制(二):流量控制和拥塞控制

目录 一. 前言 二. 流量控制 三. 拥塞控制 一. 前言 TCP的可靠传输依靠确认应答机制&#xff0c;超时重传机制是对确认应答的一种补充&#xff0c;解决了丢包问题 为了提高传输效率&#xff0c;避免大量的时间都浪费在等待应答的过程&#xff0c;故引入了滑动窗口机制&…...

DeepSeek+Cline:开启自动化编程新纪元

目录 一、引言&#xff1a;AI 编程时代的曙光二、认识 DeepSeek 和 Cline2.1 DeepSeek 是什么2.2 Cline 详解2.3 两者结合的魅力 三、DeepSeek Cline 安装与配置全流程3.1 安装 VS Code3.2 安装 Cline 插件3.3 获取 DeepSeek API Key3.4 配置 Cline 与 DeepSeek 连接 四、实战演…...

【RedisLockRegistry】分布式锁

RedisLockRegistry分布式锁 介绍 RedisLockRegistry‌是Spring框架提供的一种分布式锁机制&#xff0c;它基于Redis来实现对共享资源的保护&#xff0c;防止多个进程同时对同一资源进行修改&#xff0c;从而避免数据不一致或其他问题‌ 基本原理 RedisLockRegistry通过Redi…...

脚本批量启动Node服务器

创建文件start-projects.ps1 定义项目路径&#xff08;使用PowerShell中更可靠的路径表示方式&#xff09; $变量A “E:/XXXX文件根目录” $变量B “E:/XXXX” $变量C “E:/XXXX” 打开变量A并执行npm run dev Start-Process powershell -ArgumentList “-NoExit”, “-Com…...

使用命令行加密混淆C#程序

C#作为托管语言编译生成的IL中间代码极易被反编译工具还原源码。据统计&#xff0c;超过83%的商业软件曾遭遇过代码逆向风险&#xff0c;导致核心算法泄露、授权被跳过. 因此对于C#语言开发的程序来说, 在发布前进行混淆和加密非常有必要. 本文主要介绍如何使用恒盾C#混淆加密…...

零基础上手Python数据分析 (23):NumPy 数值计算基础 - 数据分析的加速“引擎”

写在前面 —— 超越原生 Python 列表,解锁高性能数值计算,深入理解 Pandas 的底层依赖 在前面一系列关于 Pandas 的学习中,我们已经领略了其在数据处理和分析方面的强大威力。我们学会了使用 DataFrame 和 Series 来高效地操作表格数据。但是,你是否好奇,Pandas 为何能够…...

深度学习实战106-大模型LLM+股票MCP Server的股票分析和投资建议应用场景

大家好,我是微学AI,今天给大家介绍一下深度学习实战106-大模型LLM+股票MCP Server的股票分析和投资建议应用场景。 文章目录 一、项目背景(一)大型语言模型(LLM)在金融领域的应用趋势(二)模型上下文协议(MCP)的兴起(三)大模型LLM+股票MCP服务的需求二、开发流程(…...

IDEA配置将Servlet真正布署到Tomcat

刚开始只能IDEA运行完Servlet web application 并保持IDEA运行才能通过浏览器访问到我的Servlet&#xff0c;跟想象中的不一样&#xff0c;不应该是IDEA运行完项目以后只要打开Tomcat就能访问吗&#xff1f;事实时运行完项目只要关掉IDEA就不能再访问到应用了&#xff0c;而且T…...

交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)

一、参考资料 【MQTT】paho.mqtt.cpp 库的 介绍、下载、交叉编译、MQTT客户端例子源码-CSDN博客 【MQTT】paho.mqtt.c 库的“介绍、下载、交叉编译” 详解&#xff0c;以及编写MQTT客户端例子源码-CSDN博客 二、准备工作 1. 重要说明 paho.mqtt.cpp与paho.mqtt.c&#xff…...

Prometheus中部署Alertmanager

部署Alertmanager 是 Prometheus 生态系统中的一个重要步骤&#xff0c;用于管理和处理 Prometheus生成的告警。Alertmanager和Prometheus Server一样均采用Golang实现&#xff0c;并且没有第三方依赖。一般来说我们可以通过以下几种方式来部署Alertmanager&#xff1a;二进制包…...

van-field组件设置为textarea属性被软键盘遮挡问题

在移动端van-field 输入框当type为text时&#xff0c;调出软键盘输入框会被顶上去&#xff0c;但type为textarea时不会被顶上去&#xff0c;可以用下面方法来实现&#xff1a; 1. 来2个van-field type为text的输入框z-index: 1 type为textarea的输入框z-index: 9999&#x…...

websheet之 编辑器

一、默认编辑器 该单元格编辑器是控件自带的编辑器&#xff0c;用户不需要指定。 二、下拉选择 该单元格编辑器是控件自带的编辑器的一种。该控件需要你指定下拉的数据源。在下面的例子中&#xff0c;我们给C3和C6单元格指定了币种的下拉选择编辑器。参数见&#xff1a;六、 参…...

氢气泄漏应急预案应包括哪些内容?

氢气泄漏应急预案是科研实验室中应对氢气泄漏事故的重要文件&#xff0c;其内容需要全面覆盖预防、检测、响应和善后处理等环节&#xff0c;确保在紧急情况下能够快速、有序地采取措施&#xff0c;最大限度地减少事故风险和损失。以下是氢气泄漏应急预案应包括的主要内容&#…...

【每天一个知识点】IPv4(互联网协议版本4)和IPv6(互联网协议版本6)

IPv4&#xff08;互联网协议版本4&#xff09;和IPv6&#xff08;互联网协议版本6&#xff09;是用于在互联网上标识和定位设备的两种主要协议。它们的主要区别在于地址空间、结构、以及一些附加功能。以下是两者的对比&#xff1a; 1. 地址长度 IPv4: 地址长度为32位&#xf…...

【高频考点精讲】前端构建工具对比:Webpack、Vite、Rollup和Parcel

前端构建工具大乱斗:Webpack、Vite、Rollup和Parcel谁是你的菜? 【初级】前端开发工程师面试100题(一) 【初级】前端开发工程师面试100题(二) 【初级】前端开发工程师的面试100题(速记版) 最近在后台收到不少同学提问:“老李啊,现在前端构建工具这么多,我该选哪个?…...

牛客小白月赛115-B题:签到题

题目传送门牛客网竞赛题目 一、题目描述 给定n道题目&#xff0c;每道题难度为aᵢ。要从中选出m道题组成比赛&#xff0c;使得难度最低的题目&#xff08;签到题&#xff09;数量尽可能多。求签到题的最大可能数量。 输入&#xff1a; 第一行两个整数n,m(1≤m≤n≤210⁵)第…...

【QQMusic项目复习笔记——音乐管理模块详解】第四章

&#x1f339; 作者: 云小逸 &#x1f91f; 个人主页: 云小逸的主页 &#x1f91f; motto: 要敢于一个人默默的面对自己&#xff0c;强大自己才是核心。不要等到什么都没有了&#xff0c;才下定决心去做。种一颗树&#xff0c;最好的时间是十年前&#xff0c;其次就是现在&…...

IPv6 技术细节 | 源 IP 地址选择 / Anycast / 地址自动配置 / 地址聚类分配

注&#xff1a;本文为 “IPv6 技术细节” 相关文章合集。 部分文章中提到的其他文章&#xff0c;一并引入。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 闲谈 IPv6 - 典型特征的一些技术细节 iteye_21199 于 2012-11-10 20:54:00 发布 0. 巨大的…...

代码随想录算法训练营day11(二叉树)

华子目录 翻转二叉树思路 对称二叉树思路 二叉树的最大深度思路 翻转二叉树 https://leetcode.cn/problems/invert-binary-tree/description/ 思路 采用递归的思路可以前序遍历和后序遍历&#xff0c;不能使用中序遍历 # Definition for a binary tree node. # class TreeNo…...

A Comprehensive Survey of Spoken Language Models

语音大语言模型&#xff08;Spoken Language Model, SLM&#xff09;正在引领人工智能领域的新一轮革新浪潮。正如文本自然语言处理从任务特定模型迈向通用大语言模型的演进&#xff0c;语音领域也正在经历类似转型。 为填补该领域系统性综述的空白&#xff0c;芝加哥大学、卡…...