4.3 划分子网和构造超网

思维导图:

 

 4.3.1 划分子网

**4.3 划分子网和构造超网笔记:**

---

**4.3.1 划分子网**

**1. 两级IP地址到三级IP地址的转变:**

**关键点:**
- **问题背景:** 早期的ARPANET对IP地址的设计存在不足:
  1. IP地址空间利用率低。
  2. 每个物理网络分配一个网络号会导致路由表过大,影响网络性能。
  3. 两级IP地址不够灵活。

- **子网划分的意义:** 
  - 为了解决上述问题,从1985年起在IP地址中加入了“子网号字段”。
  - 子网寻址方法提供了对IP地址空间更高效、更灵活的管理。

**基本概念:**
- **子网划分的基本思路:**
  1. 一个单位可以将其多个物理网络划分为若干个子网。这是单位内部的事务,对外仍表现为一个网络。
  2. 子网的划分是从原网络的主机号中借用若干位作为子网号,从而生成三级IP地址:网络号、子网号和主机号。
  3. 对外部的网络,地址仍然是基于网络号的。但当数据报达到指定网络后,会根据子网号进行进一步的路由。

**例子说明:**
- **原始状态**:一个B类网络145.13.0.0,所有目标地址为145.13.x.x的数据报都送到这个网络的路由器。
- **划分子网后**:网络145.13.0.0被划分为三个子网:145.13.3.0, 145.13.7.0, 145.13.21.0。对外部网络仍然显示为145.13.0.0,但内部路由器会根据子网号进行进一步的路由。

**总结:**
- 当没有划分子网时,IP地址是两级结构。
- 划分子网后,IP地址变为三级结构。
- 子网划分只是对IP地址的主机号部分进行再划分,不改变原IP地址的网络号。

---

子网掩码(Subnet Mask)是IP网络中一个关键概念,它用于区分一个IP地址的网络部分和主机部分。以下是基于提供的内容对“子网掩码”这一节的简化和归纳:

---

### 子网掩码

#### 基本概念:
- 子网掩码用于将IP地址分为“网络地址”和“主机地址”两部分。
- 子网掩码与IP地址进行“与”运算(AND)可以得到网络地址。

#### 为何使用子网掩码?
1. IP数据报的首部不包含关于子网划分的信息,所以需要子网掩码来辅助。
2. 路由器可以通过子网掩码方便地从数据报中提取出子网的网络地址。
3. 使用子网掩码,路由器可以统一算法处理数据包,不必关心网络是否划分子网。
4. 标准规定所有网络都必须使用子网掩码,这简化了路由表的查找过程。

#### 子网掩码示例:
- 图4-20(a)显示了IP地址145.13.3.10的原始两级IP地址结构。
- 图4-20(b)显示了这个两级IP地址的子网掩码。
- 图4-20(c)和(d)展示了三级IP地址结构和其子网掩码。
- 通过子网掩码和IP地址逐位“与”运算,可以得到图4-20(e)所示的网络地址145.13.3.0。

#### 默认子网掩码:
- A类地址:255.0.0.0
- B类地址:255.255.0.0
- C类地址:255.255.255.0

#### 重要性:
- 子网掩码是网络或子网的关键属性。
- 路由器交换路由信息时必须提供子网掩码。
- 路由表中的每条记录都应包含子网掩码。

#### 子网划分示例:
- 表4-6展示了B类地址的子网划分选择和子网掩码。

---

 4.3.2 使用子网时分组的转发

当我们引入子网划分,分组的转发策略需要相应地进行改动。

*路由表内容:*
- 目的网络地址
- 子网掩码
- 下一跳地址

*分组转发算法:*
1. 提取数据报首部的目的IP地址D。
2. 判断是否为直接交付。
  - 逐一检查与路由器直接相连的网络:使用各网络的子网掩码与D进行AND操作。若结果匹配相应的网络地址,直接交付分组并结束转发;否则,进入(3)。
3. 若路由表中有D的特定主机路由,将数据报传送给指明的下一跳路由器。否则,进入(4)。
4. 遍历路由表:使用每一行的子网掩码与D进行AND操作。若结果匹配该行的网络地址,将数据报传送给指明的下一跳路由器;否则,进入(5)。
5. 若存在默认路由,将数据报传送给指明的默认路由器;否则,进入(6)。
6. 报告转发分组出错。

**例4-4:** 一个包含三个子网和两个路由器的网络。源主机H₁想要向目的主机H₂发送分组,我们将讨论路由器R₁如何查找其路由表来转发这个分组。

网络结构如下:
- 主机H₁: IP地址为128.30.33.13,属于子网1(地址:128.30.33.0, 子网掩码:255.255.255.128)
- 主机H₂: IP地址为128.30.33.138,属于子网2(地址:128.30.33.128, 子网掩码:255.255.255.128)

路由器R₁的部分路由表如下:
- 128.30.33.0 | 255.255.255.128 | 接口0
- 128.30.33.128 | 255.255.255.128 | 接口1
- 128.30.36.0 | 255.255.255.0 | R₂

**解答:**
当H₁要发送到H₂的分组,其目标地址是128.30.33.138。首先,H₁会确定分组是在本地子网上直接交付还是通过路由器进行间接交付。通过AND操作,H₁确定H₂不在同一个子网上,因此将分组传送给默认路由器R₁。R₁在其路由表中逐行搜索匹配的网络地址。最终,R₁将该分组从接口1直接转发到H₂。

我对这一节的理解:

这一节主要讨论了在有子网划分的网络环境中,如何进行分组转发。我们可以从以下几个方面理解这一节的内容:

1. **子网的引入和意义**:子网允许一个IP地址范围内的网络被进一步分成更小的网络。这样做的好处是可以更高效地管理和使用IP地址,并根据组织或物理结构将网络逻辑地划分。

2. **路由表的重要性**:路由表是路由器用来确定如何转发数据包的关键工具。在子网环境中,路由表不仅包含目的网络地址和下一跳地址,还增加了子网掩码。子网掩码用于确定目标地址属于哪个子网。

3. **分组转发算法**:当路由器收到数据包时,它会根据算法来决定如何转发。这一节详细描述了这个算法,包括如何使用AND操作和子网掩码来检查数据包的目的地址,并决定是否直接交付、间接交付或者使用默认路由。

4. **直接交付与间接交付的区别**:直接交付意味着目的地址在与路由器直接连接的网络上;间接交付意味着数据包需要被转发到另一个路由器或网络。

5. **实例分析**:通过一个具体的网络拓扑和路由表,这一节展示了如何应用分组转发算法,从而加深了对算法的理解。

简而言之,这一节向我们展示了在具有子网的环境中,如何利用路由表和特定的算法来正确、高效地转发数据包。理解这些概念对于网络设计和故障排查非常关键。

4.3.3 无分类编址CIDR(构造超网)

* **背景:** 
  * 1992年,互联网面临三大问题:
    1. B类地址快被分配完。
    2. 路由表项目数剧增。
    3. IPv4地址空间将耗尽。

* **CIDR的引入:**
  * 旨在解决前两个问题,而第三个问题由IPv6工作组解决。
  * CIDR的思想基于VLSM(Variable Length Subnet Mask)。

* **CIDR的主要特点:**
  1. **消除传统分类**:没有A、B、C类地址,取消子网概念。
     * 32位IP地址分为“网络前缀”和“主机号”。
     * 记法:`IP地址::={<网络前缀>,<主机号>}`
     * 斜线记法:例如 `128.14.35.7/20`。
  2. **CIDR地址块**:网络前缀相同的连续IP地址。
     * 根据任何一个地址可以确定该地址块的范围。
     * 例如,`128.14.35.7/20` 的地址范围是 `128.14.32.0` 到 `128.14.47.255`。

* **地址掩码**:
  * 由1和0组成,1的个数表示网络前缀的长度。
  * 虽然CIDR不使用子网,但地址掩码还可称为子网掩码。
  * 斜线记法中,斜线后的数字表示地址掩码中1的个数。

* **CIDR与子网的关系**:
  * CIDR不指定子网字段,但单位可以在其内部根据需求划分子网。

* **斜线记法的好处**:同时表示IP地址和其他信息,例如网络前缀长度、地址块大小等。

* **路由聚合(Route Aggregation)**: 
  * 利用CIDR地址块查找目的网络,大大减少了路由表中的项目数。
  * 路由聚合也称为构成超网(supernetting)。

* **CIDR记法形式**:
  * 例如:`10.0.0.0/10` 可简写为 `10/10`。
  * 或使用星号*表示主机号。

* **表4-7**:展示了常用的CIDR地址块及其相关信息。

此节介绍了CIDR的背景、主要特点和各种记法。要理解其为什么出现,以及它是如何工作的,这有助于对IP地址分配和路由选择有更深入的了解。

为了使这个教材更容易理解和记忆,我们可以将它概括、格式化,并加入一些记忆提示或图示。

**CIDR笔记概括:**

1. **CIDR前缀长度与点分十进制:**
    - `/21` -> `255.255.248.0`    - 2K 地址数   - 相当于8个C类
    - `/22` -> `255.255.252.0`    - 1K 地址数   - 相当于4个C类
    - `/23` -> `255.255.254.0`    - 512地址数   - 相当于2个C类
    - `/24` -> `255.255.255.0`    - 256地址数   - 相当于1个C类
    - `/25` -> `255.255.255.128`  - 128地址数   - 相当于1/2个C类
    - `/26` -> `255.255.255.192`  - 64 地址数   - 相当于1/4个C类
    - `/27` -> `255.255.255.224`  - 32 地址数   - 相当于1/8个C类

2. **CIDR的核心概念:**
    - CIDR地址块中的地址数是2的整数次幂。
    - "构成超网"源于CIDR地址块包含多个C类地址。
    - CIDR可以更有效地分配IPv4地址空间,提供分配灵活性。

3. **CIDR地址块划分例子:**
    - ISP分配给大学地址块`206.0.68.0/22` (包括1024个IP地址)。
    - 大学可以进一步划分这个地址块给不同的部门或系。

4. **地址聚合的概念:**
    - 通过地址聚合,路由表可以被简化,减少项目数。
    - 这就像邮递员投递到大学的收发室,再由收发室分发给各系。

5. **记忆提示:**
    - 越长的CIDR前缀 = 越少的IP地址
    - CIDR允许更细粒度的地址分配,不再局限于传统的A、B、C类地址划分。

6. **图解:**
    - 当描述如何从ISP划分给大学,再到大学的各个系时,可以使用层次结构图或流程图。这样的视觉工具可以帮助读者快速把握核心概念。

2.最长前缀匹配笔记

**1. 什么是最长前缀匹配?**
- 当使用CIDR时,路由表中的项目可能会有不止一个匹配结果。
- 最长前缀匹配是选择具有最长网络前缀的路由。理由:网络前缀越长,地址块越小,路由越具体。
- 也被称为最长匹配或最佳匹配。

**2. 如何进行最长前缀匹配?**
- 使用AND操作比较目的IP地址与路由表中的掩码。
- 选择匹配中的最长前缀。

**3. 最长前缀匹配实例:**
- 假定存在两个路由项:206.0.68.0/22 (大学) 和 206.0.71.128/25 (四系)。
- 对于目的地址D=206.0.71.130:
  - D与206.0.68.0/22匹配
  - D与206.0.71.128/25匹配
  - 由于206.0.71.128/25是更具体的匹配(前缀更长),数据报应转发至四系。

**4. CIDR与地理位置关联的优势:**
- IP地址与地理位置的关联可以大大压缩路由表的项目数。
- 例如,可将世界划分为地区并分配CIDR地址块:
  - 194/7给欧洲
  - 198/7给北美洲
  - 200/7给中美洲和南美洲
  - 202/7给亚洲和太平洋地区
- 这样的地址分配使IP地址与地理位置相关,简化了路由表查找。

**5. CIDR的局限性:**
- 在使用CIDR之前,IP地址并非基于地理位置分配。
- 收回并重新分配现有IP地址是困难的。
- 尽管CIDR存在局限性,它仍然延长了IP地址的使用寿命。

总结: 使用最长前缀匹配,路由决策可以更精确地根据网络前缀长度进行。而CIDR的引入可以更高效地使用IP地址空间,尽管重新分配地址的挑战依然存在。

3. 使用二叉线索查找路由表

**背景**  
在CIDR实施后,路由查找中的最长前缀匹配需求使得整个查找过程更为复杂。当路由表的项数巨大时,如何优化路由查找时间就显得尤为重要。而传统的逐一查找方法效率较低,故有需求发展更为高效的查找方法。

**二叉线索(binary trie)简介**  
- 它是一种树状数据结构,用于快速查询IP地址的路由。
- 由IP地址从左到右的位数来决定路径。
- 使用唯一前缀(前缀在所有IP地址中是唯一的)来构建。

**查找过程**  
1. 检查IP地址最左侧的位:0表示向左,1表示向右。
2. 根据IP地址的每一位来决定下一个节点的位置。
3. 持续此过程直到到达叶子节点或没有匹配的路径。

**优化**  
- **压缩技术**:例如,两个IP地址的前四位如果相同,可以直接跳过这四位,从第五位开始匹配,从而提高查找速度。

**注意点**  
1. 二叉线索只提供了一种快速查找匹配的叶节点的方法。
2. 实际是否匹配,还需要与子网掩码进行逻辑“与”运算。
3. 尽管构建压缩的二叉线索可能会增加计算需求,但由于它可以提高每次查找的速度,因此这种额外的计算工作是有意义的。

**总结**  
随着网络的发展,提高路由查找的速度和效率变得越来越重要。使用二叉线索等高效数据结构和查找算法,可以显著提高路由查找的性能,满足现代网络的需求。

 

 我的理解:

理解“使用二叉线索查找路由表”这一段的核心概念,我们可以将其拆分为以下几个关键点:

1. **为什么需要新的查找方法**  
   - 使用CIDR(无类别域间路由)后,路由表中的地址不再简单地基于传统的类A、B、C分类,而是基于前缀长度。因此,需要寻找与给定地址最长的前缀匹配的路由条目,这使得查找变得复杂。
   - 传统的逐个查找方法效率低下,特别是在大规模的路由表中。

2. **什么是二叉线索 (binary trie)**  
   - 二叉线索是一种树形数据结构,用于快速地在路由表中查找IP地址。
   - 它使用IP地址从左到右的比特值来决定查找路径,从根节点逐层向下层延伸。

3. **唯一前缀的概念**  
   - 唯一前缀是在所有IP地址中只存在一次的前缀。 
   - 使用这些唯一前缀,可以构建一个简化和高效的二叉线索。

4. **查找流程**  
   - 从IP地址的最左边开始,按位进行查找。
   - 0表示向左,1表示向右。
   - 这种结构允许快速地确定一个IP地址是否在树中,以及它与哪个路由条目最匹配。

5. **优化查找:压缩技术**  
   - 如果多个IP地址的前几位都是相同的,那么在查找过程中,可以直接跳过这些位,从而提高查找效率。
   
6. **实际的匹配操作**  
   - 即使在二叉线索中找到了一个匹配的叶节点,实际的路由决策还需要进行进一步的检查。
   - 需要与子网掩码进行逻辑“与”运算,以确定该地址是否真的与目标网络前缀匹配。

**简单概括**:  
当网络路由表变得庞大和复杂时,我们需要更高效的查找算法。二叉线索提供了这样一个解决方案,它使用IP地址的比特值作为查找路径,从而实现快速、高效的查找。并且,通过一些优化技术,如压缩,查找速度可以进一步提高。

 

 

 

 

 

 

 

总结:

**划分子网 (Subnetting):**

1. **重点**:
   - 子网划分是在组织内部将一个IP地址范围分为若干个更小的、逻辑上的子网络。
   - 主要是通过修改子网掩码来实现,使得原始网络被划分为多个小的子网。

2. **难点**:
   - 确定正确的子网掩码以满足组织的地址需求。
   - 如何计算可用的子网数量和每个子网上的主机数量。

3. **易错点**:
   - 忘记为网络地址和广播地址预留位置,因此可能会过度分配地址。
   - 使用错误的子网掩码,导致子网过大或过小。

4. **技巧**:
   - 使用二进制计算来确定可用的子网和每个子网的主机数量。
   - 画出子网划分图表,帮助可视化每个子网的范围。

**构造超网 (Supernetting 或 CIDR, Classless Inter-Domain Routing):**

1. **重点**:
   - 超网是将多个连续的IP地址范围合并成一个更大的、逻辑上的网络。
   - 主要目标是减少路由表的大小和简化路由。

2. **难点**:
   - 确定哪些网络可以被合并。
   - 确保合并后的网络仍然能满足组织的地址需求。

3. **易错点**:
   - 不正确地合并不连续的IP地址范围。
   - 使用了不合适的子网掩码,导致超网范围不正确。

4. **技巧**:
   - 使用CIDR记法,如 /22,来表示超网掩码。
   - 在超网构造前,确保所有要合并的网络都是连续的。

**总结**:
划分子网和构造超网都是IP地址管理的关键概念。子网划分关注于将大网络分为小网络,而超网关注于将多个小网络组合成一个大网络。正确理解和应用这两个概念对于网络设计和路由优化至关重要。

 

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

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

相关文章

LeetCode 63. 不同路径 II

63. 不同路径 II 思路&#xff1a; 动态规划 dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#xff0c;到(i, j) 有dp[i][j]条不同的路径 根据题意&#xff0c;只能向下或者向右移动一步&#xff0c;则dp[i][j] dp[i - 1][j] dp[i][j - 1] 但是…

第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库

文章目录 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 第五十九章 学习常用技能 - 将数据从一个数据库移动到另一个数据库 如果需要将数据从一个数据库移动到另一个数据库&#xff0c;请执行以下操作&#xff1a; 识别包含数据及其索引的Global。 如果…

Android 13.0 首次开机进入Launcher3前黑屏几秒的几种情况问题的总结

1.概述 在13.0的系统产品定制化工作中,对于系统开发确实有些难度,特别是在开机阶段遇到的问题,比如开机动画播放完毕进入锁屏界面黑屏几秒然后进入 锁屏界面,这就需要根据开机日志来分析问题所在,在工作中遇到的几种黑屏情况做下记录,然后供以后解决问题做参考 2.首次开…

Java String之正则表达式

Java String之正则表达式 导言 最近做项目时&#xff0c;遇到了限制输入字符格式的问题&#xff0c;采用了Java String的正则表达式&#xff0c;下面针对正则表达式使用进行概述 正则表达式 正则表达式类似可以通俗的理解为字符模板&#xff0c;通过符号的方式进行表述&…

uni-app--》基于小程序开发的电商平台项目实战(五)

&#x1f3cd;️作者简介&#xff1a;大家好&#xff0c;我是亦世凡华、渴望知识储备自己的一名在校大学生 &#x1f6f5;个人主页&#xff1a;亦世凡华、 &#x1f6fa;系列专栏&#xff1a;uni-app &#x1f6b2;座右铭&#xff1a;人生亦可燃烧&#xff0c;亦可腐败&#xf…

Fetch与Axios数据请求

什么是Polyfill? Polyfill是一个js库&#xff0c;主要抚平不同浏览器之间对js实现的差异。比如&#xff0c;html5的storage(session,local), 不同浏览器&#xff0c;不同版本&#xff0c;有些支持&#xff0c;有些不支持。Polyfill&#xff08;Polyfill有很多&#xff0c;在Gi…

IDEA spring-boot项目启动,无法加载或找到启动类问题解决

问题描述&#xff1a;找不到或无法加载主类 xxx.xxx.xxx.Classname 解决方案&#xff1a; 1.检查启动设置&#xff1a; 启动类所在包运行环境&#xff08;一般选择默认即可&#xff09;设置完成即可进行运行测试 2.如果第一步没有解决问题&#xff0c;试着第二步&#xff1a…

常见三维建模软件有哪些?各自的特点是什么?

常见的三维建模软件包括以下这些&#xff1a; 1. 3DS Max 3D Studio Max&#xff0c;简称3DS MAX&#xff0c;是当今世界上销售量最大的三维建模、动画及渲染软件。它的应用范围广泛&#xff0c;包括计算机游戏中的动画制作、影视片的特效制作等。3DS MAX的操作相对容易&#…

【学习笔记】RabbitMQ02:交换机,以及结合springboot快速开始

参考资料 RabbitMQ官方网站RabbitMQ官方文档噼咔噼咔-动力节点教程 文章目录 四、RabbitMQ &#xff1a;Exchange 交换机4.1 交换机类型4.2 扇形交换机 Fanout Exchange4.2.1 概念4.2.1 实例&#xff1a;生产者4.2.1.1 添加起步依赖4.2.1.2 配置文件4.2.1.3 JavaBean进行配置4.…

iMazing 3中文版功能介绍免费下载安装教程

iMazing 3中文版免费下载是一款兼容Win和Mac的iOS设备管理软件。iMazing 3能够将音乐、文件、消息和应用等数据从任何 iPhone、iPad 或 iPod 传输到 Mac 或 PC 上。 使用iMazing 3独特的 iOS 备份功能保证数据安全:设定自动无线备份时间并支持快照;将备份保存到外接驱动器和网…

Halcon Camera-calibration 相关算子(二)

(1) set_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName, DataValue : ) 功能&#xff1a;在标定数据模型中设置数据。 控制输入参数1&#xff1a;CalibDataID&#xff1a;标定数据模型句柄&#xff1b; 控制输入参数2&#xff1a;ItemType&#xff1a;标定数据…

HFSS中激励方式学习笔记(总)

HFSS中激励方式 文章目录 HFSS中激励方式波端口激励&#xff08;Wave Port&#xff09;集总端口激励&#xff08;Lumped Port&#xff09;floquet端口激励&#xff08;floquet Port&#xff09;入射波激励&#xff08;Incident Port&#xff09;电压源激励&#xff08;Voltage …

17 - 并发容器的使用:识别不同场景下最优容器

在并发编程中&#xff0c;我们经常会用到容器。今天我要和你分享的话题就是&#xff1a;在不同场景下我们该如何选择最优容器。 1、并发场景下的 Map 容器 假设我们现在要给一个电商系统设计一个简单的统计商品销量 TOP 10 的功能。常规情况下&#xff0c;我们是用一个哈希表…

如何通过Photoshop将视频转换成GIF图片

一、应用场景 1、将视频转有趣动图发朋友圈 2、写CSDN无法上传视频&#xff0c;而可以用GIF动图替代 3、其他 二、实现步骤 1、打开Photoshop APP 2、点击文件——导入——视频帧到图层 3、选择视频文件 4、配置视频信息&#xff0c;按照图片提示配置完毕之后点击确定&…

c#调用CUDA执行YOLOV5对象检测

c#使用调YOLOV5对象检测&#xff0c;并调用CUDA进行计算 1.CUDA版本11.2 2.cuDNN用cudnn-windows-x86_64-8.9.3.28_cuda11-archive 记得把压缩包的三个文件夹放到cuda根目录下覆盖 3.Microsoft.ML.OnnxRuntime.Gpu要使用1.13.1,如果版本太新&#xff0c;SessionOptions会报…

C# Winform编程(4)多文档窗口(MDI)

多文档窗口&#xff08;MDI&#xff09; 添加菜单&#xff0c;IsMdiContainer设为True: From窗口添加菜单 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using S…

snk-给github界面加一个有趣的动画

How to enable GitHub Actions on your Profile README for a snake-eating contribution graph &#x1f40d; - DEV Community Platane/Platane (github.com) ① 创建New repository 名字和你自己的Github 用户名一样。 ② 创建之后&#xff0c;再这个Zero-coder仓库下创建…

从javascript到vue再到react的演变

当提到前端开发中的框架时&#xff0c;JavaScript、Vue.js和React.js是三个最常见的名词。它们代表了Web开发中不同的技术选择和演变过程。本文将探讨JavaScript从原生到Vue.js再到React.js的演变&#xff0c;以及每个阶段的特点和优势。 JavaScript: 动态语言的基础 JavaScr…

学信息系统项目管理师第4版系列29_信息系统治理

1. IT治理 1.1. 描述组织采用有效的机制对信息技术和数据资源开发利用&#xff0c;平衡信息化发展和数字化转型过程中的风险&#xff0c;确保实现组织的战略目标的过程 1.2. 驱动因素 1.2.1. 信息孤岛 1.2.2. 信息资源整合目标空泛 1.3. 高质量IT治理因素 1.3.1. 良好的I…

Flask框架配置celery-[1]:flask工厂模式集成使用celery,可在异步任务中使用flask应用上下文,即拿即用,无需更多配置

一、概述 1、celery框架和flask框架在运行时&#xff0c;是在不同的进程中&#xff0c;资源是独占的。 2、celery异步任务如果想使用flask中的功能&#xff0c;如orm&#xff0c;是需要在flask应用上下文管理器中执行orm操作的 3、使用celery是需要使用到中间件的&#xff0…