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

ISIS-1 ISIS概述

前面几章我们介绍了OSPF的基础工作原理以及怎样交互LSA形成LSDB链路状态数据库的

这一章我们来介绍另一个链路状态路由协议,ISIS路由协议

一、概述


  • ISIS(Intermediate System to Intermediate System,中间系统到中间系统)是由ISO(International Organization for Standardization,国际标准化组织)为它的CLNP(ConnectionLessNetwork Protocol,无连接网络协议)设计的一种动态路由协议。
  • 随着TCP/IP协议的流行,为了提供对IP路由的支持,IETF在RFC1195中对IS-IS进行了扩充和修改,使它能够同时应用在TCP/IP和OSI(Open System Interconnect,开放式系统互联)环境中,我们将扩展后的IS-IS称为集成IS-IS。
  • 和OSPF一样,属于链路状态IGP,使用SPF计算路由的动态路由协议
  • 由于简便性和扩展性;普遍应用于ISP网络中。

集成IS-IS的特点:

支持CLNP、IP网络

工作在数据链路层

OSPF的特点:

目前只支持IP网络

工作在网络层

随着IPv6网络的建设,IS-IS路由协议结合自身具有良好的扩展性的特点,实现了对IPv6网络层协议的支持,可以发现、生成、和转发IPv6路由


二、ISIS-地址结构

TCP/IP协议栈IP协议IP地址OSPFArea ID+Router ID
OSI系统CLNP协议NSAP地址IS-ISNET标识符

 NET是一类特殊的NSAP(SEL=00),在路由器上配置IS-IS时,只需要考虑NET即可

结构部分备注
AFIAuthority and Format Identifier,标识地址分配机构和地址格式。
IDIInitial Domain Identifier,标识域。
HODSPHigh Order DSP,分割区域。
PSAFI+IDI+HODSP=Area Address
System ID标识路由器和主机
SEL标识服务类型,在IP上均为00

Area Address区域地址:

  • 既能够标识路由域,也能够标识路由域中的区域
  • 相当于OSPF中的区域编号
  • 两个不同的路由域中不允许由相同的区域地址
  • 一般情况下,一台路由只需要配置一个区域地址,且同一区域中所有节点的区域地址都要相同。
  • 为了支持区域的平滑合并、分割及转换,一台路由器最多配置3个区域地址。

System ID系统ID:

  • 在区域内唯一标识主机或路由器。
  • 在实际应用中,一般使用Router ID与System ID进行对应。

SEL:NSAP Selector,类似于IP中的协议标识符,在IP中,SEL均为00。

NET:Network Entity Title,网络实体名称:

  • 可以看作是一类特殊的NSAP,即SEL=0的NSAP地址。
  • 通常情况下,一台路由器配置一个NET即可。
  • 当区域需要重新划分时,例如将多个区域合并,或者将一个区域划分为多个区域,这种情况下配置多个NET可以重新置为仍然能够保证路由的正确性。
  • 由于一台路由最多可配置3个区域地址,所以最多也只能配置3个NET。
  • 在配置多个NET时,必须保证它们的System ID都相同。

 例:

49.0001.0000.0000.0001.00

Area=49.0001

System ID=0000.0000.0001

SEL=00

NET的配置举例:

  • 每台运行IS-IS的网络设备至少需拥有一个NET,当然,一台设备也可以同时配置多个NET,但是这些NET的System ID必须相同。
  • 在华为的网络设备上,System ID的长度总是固定的6Bytem。在一个IS-IS路由域中,设备的System ID必须唯一,为了便于管理,一般根据Router ID配置System ID。

注意:同一个区域内,可以有相同的Area Address,不可以出现相同的System ID。


三、ISIS的报文格式

  • IS-IS报文是直接封装在数据链路层的帧结构中的。
  • PDU(Protocol Data Unit,协议数据单元)可以分为两个部分,报文头(IS-IS Header)和变长字段部分(Variable Length Fields)。
  • 其中IS-IS Header又分为通用头部(PDU Common Header)和专用头部(PDU Specific Header)。对于所有PDU来说,通用报文都是相同的,但专用报头根据PDU类型不同而有所差异


1、IS-IS通用头部详解

重要字段解释:

  • Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,固定为0x83。
  • Length Indicator:IS-IS头部的长度(包括通用头部和专用头部),以Byte为单位。
  • Version/Protocol ID Extension:版本/协议标识扩展,固定为0x01。
  • System ID Length:NSAP地址或NET中System ID区域的长度,值为0时,标识System ID区域的长度为6Byte。
  • R(Reserved):保留,固定为0。
  • Version:固定为0x01。
  • Max Areas:支持的最大区域个数。设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。


IS-IS报文类型概述

  • IS-IS的PDU有4种类型:IIH(IS-IS Hello),LSP(Link State PDU,链路状态报文),CSNP(Complete Sequence Number PDU,全序列号报文),PSNP(Partial Sequence Number PDU,部分序列号报文)。
  • IIH:用于建立和维持邻接关系,广播网络中的Level-1 IS-IS路由器使用Level-1 LAN IIH;广播网络中的Level-2 IS-IS路由器使用Level-2 LANIH;点到点网络中则使用P2P IIH。
  • LSP:用于交换链路状态信息。LSP分为两种,Level-1 LSP、Level-2 LSP。
  • SNP:通过描述全部或部分链路数据库中的LSP来同步各LSDB,从而维护LSDB的完整与同步。SNP包括CSNP和PSNP,进一步又可分为Level-1CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。

IS-IS常见的TLV

  • TLV的含义是:类型(TYPE),长度(LENGTH),值(VALUE)。实际上是一个数据结构,这个结构包含了这三个字段。
  • 使用TLV结构构件报文的好处是灵活性和扩展性好。采用TLV使用报文的整体结构固定,增加新特性只需要增加新TLV即可,不需要改变整个报文的整体结构。


ISIS-报文类型

整体分类:

类型全称备注
IIHISIS Hello PDU建立和维护邻居关系
LSPLink State PDU传输链路状态信息
SNPSequence Numbers PDU描述数据库中的LSP

PDU类型:

类型值简称全称
15L1 LAN IIHLevel-1 LAN IS-IS Hello PDU
16L2 LAN IIHLevel-2 LAN IS-IS Hello PDU
17P2P IIHPoint-to-Point IS-IS Hello PDU
18L1 LSPLevel-1 Link State PDU
20L2 LSPLevel-2 Link State PDU
24L1 CSNPLevel-1 Complete Sequence Numbers PDU
25L2 CSNPLevel-2 Complete Sequence Numbers PDU
26L1 PSNPLevel-1 Partial Sequence Numbers PDU
27L2 PSNPLevel-2 Partial Sequence Numbers PDU

Hello报文类型:

类型备注
L1 LAN IIH广播网络中的Level-1路由器使用
L2 LAN IIH广播网络中的Level-2路由器使用
P2P IIH点到点网络中的路由器使用

字段备注
Reserved/Circuit Type高位的6比特保留,值为0,低位的2比特表示路由的类型01=L1;10=L2;11=L1/2
Source ID发出Hello报文的路由器的System ID。
Holding Time邻居的保持时间(老化时间/死亡时间),默认为30秒,发送间隔默认为10秒,在配置中只能修改时间间隔,而老化时间就是时间间隔的3倍,例如将老化时间修改为20,则老化时间就会60。
PDU LengthPDU的总长度。
Priority选举DIS的优先级,取值范围0~127,越大越优先,默认值为64。
LAN IDDIS和伪节点的System ID。
Local Circuit ID本地链路ID。

LSP报文:

字段备注
PDU LengthPDU的总长度。
Remaining LifetimeLSP的存活时间,从1200倒计时(20分钟),与OSPF不一样OSPF是增加,IS-IS是减少。
LSP ID由三部分组成:System ID、伪节点ID和LSP的分片号。
Sequence NumberLSP的序列号。
ChecksumLSP的校验和。
PPartition Repair,仅与L2 LSP有关,表示路由器是否支持自动修复区域分割。
ATTAttachment,由L1/2路由器产生,仅与L1 LSP有关,表示产生此LSP的路由器与多个区域相连接。
OLLSDB Overload,表示本路由器因内存不足而导致LSDB不完整(过载)。其他路由器在进行SPF计算时不会考虑这台路由器,但到此路由器直连地址的报文仍然可以被转发。
IS-Type生成LSP的路由器的类型,01=Level-1;11=Level-2。

 例子:
假设路由器A想要去访问路由器C,但是路由器B的OL值置为了路由器A就会通过上面那条链路去访问路由器C,但如果是路由器B的直连网段的话就无所谓。

 SNP报文类型:

类型全称备注
CSNPComplete Sequence Numbers PDU通告LSDB中所有摘要信息,类似于OSPF中的DD报文
PSNPPartial Sequence Numbers PDU请求和确认链路状态信息,在广播类型网络与P2P网络中的作用有时候不一样,可以用来当请求报文也可以用来当作确认报文

TLV/CLV:

IS-IS报文中的变长字段部分是多个TLV(Type-Length-Value)三元组。

TLV也称为CLV(Code-Length-Value)。

TLV Type名称所应用的PDU类型
1Area AddressesIIH、LSP
2IS Neighbors(LSP)LSP
4Partition Designated Level2 ISL2 LSP
6IS Neighbors(MAC Address)LAN IIH
7IS Neighbors(SNPA Address)LAN IIH
8PaddingIIH
9LSP EntriesSNP
10Authentication InformationIIH、LSP、SNP
128IP Internal Reachability InformationLSP
129Protocols SupportedIIH、LSP
130IP External Reachability InformationLSP
131Inter-Domain Routing Protocol InformationL2 LSP

到这里本章内容就到此结束了如果有疑问可以关注博主私聊,如果有问题欢迎私聊博主及时更改谢谢大家的观看学习!!! 

相关文章:

ISIS-1 ISIS概述

前面几章我们介绍了OSPF的基础工作原理以及怎样交互LSA形成LSDB链路状态数据库的 这一章我们来介绍另一个链路状态路由协议,ISIS路由协议 一、概述 ISIS(Intermediate System to Intermediate System,中间系统到中间系统)是由ISO(International Organization for Standardiza…...

电脑上不了网普通用户排除方法

1:首先通过电脑的运行/CMD/ipconfig /all 命令查看电脑的ip地址是否正常如图: 2:在命令行中运行:ping 127.0.0.1 如图则正常,否则要重新安装网卡驱动 程序。 3:用ping命令,ping一下同网段的电…...

Qt 控件概述 QLCDNumber 和 Progressbar

目录 QLCDNumber 进度条 定时器进度条的实现 通过stylesheet来改变进度条颜色​ QLCDNumber LCD数字显示器 实现一个定时器 QLCDNumber 进度条 定时器进度条的实现 为什在Widget.h种头文件并没有包含QTimer这个头文件,却还可以申明一个TImer指针呢?…...

2025.03.21首板涨停股票分析

目录 1 涨停原因分析2 交易建议 1 涨停原因分析 2 交易建议...

数据库的DDL操作

目录 一、创建数据库 (1)字符集和校验集 二、操作数据库 (1)查看数据库 (2)显示创建语句 (3)修改数据库 (4)删除数据库 三、数据库的备份与恢复 四、…...

Docker 部署 Graylog 日志管理系统

Docker 部署 Graylog 日志管理系统 前言一、准备工作二、Docker Compose 配置三、启动 Graylog 服务四、访问 Graylog Web 界面总结 前言 Graylog 是一个开源的日志管理平台,专为实时日志收集、分析和可视化设计。它支持强大的搜索功能,并且与 Elastics…...

特征工程自动化(FeatureTools实战)

目录 特征工程自动化(FeatureTools实战)1. 引言2. 项目背景与意义2.1 特征工程的重要性2.2 自动化特征工程的优势2.3 工业级数据处理需求3. 数据集生成与介绍3.1 数据集构成3.2 数据生成方法4. 自动化特征工程理论基础4.1 特征工程的基本概念4.2 FeatureTools库简介4.3 关键公…...

Linux:xxx is not in the sudoers file. This incident will be reported.

报错 xxx is not in the sudoers file. This incident will be reported.解决方式 切换到root用户下操作 # 1、修改/etc/sudoers文件为可修改,默认是只读的 ls -lh /etc/sudoers -r--r----- 1 root root 4.3K Dec 1 01:45 /etc/sudoerschmod uw /etc/sudoersls…...

fastapi+playwright爬取google搜索1-3页的关键词返回json

1,playwright无头 2,代理池随机获取代理ip 3,随机浏览行为,随机页面滚动 4,启用stealth模式 5,随机延时搜索 from fastapi import FastAPI, HTTPException from fastapi.responses import JSONResponse import asyncio from concurrent.futures import ThreadPool…...

论文阅读笔记:Denoising Diffusion Probabilistic Models (3)

论文阅读笔记:Denoising Diffusion Probabilistic Models (1) 论文阅读笔记:Denoising Diffusion Probabilistic Models (2) 论文阅读笔记:Denoising Diffusion Probabilistic Models (3) 4、损失函数逐项分析 可以看出 L L L总共分为了3项…...

FlauBERT:面向法语的无监督语言模型预训练

摘要 语言模型已成为在许多不同自然语言处理(NLP)任务中取得最先进成果的关键步骤。利用当今可用的大量未标注文本,它们提供了一种有效的方式来预训练连续词表示,这些表示可以在下游任务中进行微调,并在句子级别上进行…...

JavaScript严格模式

文章主要介绍JavaScript严格模式,包括启用原因、方式以及需避开的常见陷阱,助力开发者写出更健壮代码。 1. 启用原因:将普通JavaScript中的“静默错误”变为抛出错误,有助于编写健壮代码;修复阻碍JavaScript引擎优化的…...

文件上传的小点总结(1)

2.文件类型绕过 问题插入:BP无法拦截本地流量 ①插件限制 不代理的地址列表通常写有localhost和127.0.0.1,把本地的全都删掉,然后应用保存。 ②浏览器限制 Firefox浏览器设置:检查浏览器代理配置和proxy listeners都没问题后&…...

2024年数维杯数学建模B题生物质和煤共热解问题的研究解题全过程论文及程序

2024年数维杯数学建模 B题 生物质和煤共热解问题的研究 原题再现: 随着全球能源需求的不断增长和对可再生能源的追求,生物质和煤共热解作为一种潜在的能源转化技术备受关注。生物质是指可再生能源,源自植物和动物的有机物质,而煤…...

@maptalks/gl-layers中的VectorTileLayer的Symbol样式文档

maptalks/gl-layers中的VectorTileLayer的Symbol样式文档 矢量的Symbol样式分为以下几个大类: marker样式属性,定义了图标相关样式属性 text样式属性,定义了文字相关样式属性 line样式属性,定义了线相关的样式属性 polygon样式属…...

OpenCV旋转估计(3)帮助构建一个最大生成树(Maximum Spanning Tree)函数findMaxSpanningTree()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::findMaxSpanningTree 是 OpenCV 中用于图像拼接工作流的一个函数,它帮助构建一个最大生成树(Maximum Spanni…...

OpenCV HighGUI 模块使用指南(Python 版)

用户让我编写一个 HighGUI 模块的使用指南,包括函数的使用和应用场景的实现。首先,我需要回顾 HighGUI 模块的主要功能:图像显示、视频捕获、鼠标和键盘事件。然后,按照用户提供的结构,整理每个部分的函数详解、代码示…...

SPI 机制与 Spring Boot AutoConfiguration 对比解析

一、架构效率革命性提升 1.1 类加载效率跃升 Spring Boot 2.7引入的AutoConfiguration.imports采用清单式配置加载,对比传统SPI机制: 传统SPI扫描路径:META-INF/services/** Spring Boot新方案:META-INF/spring/org.springfram…...

算法基础篇(1)(蓝桥杯常考点)

算法基础篇 前言 算法内容还有搜索,数据结构(进阶),动态规划和图论 数学那个的话大家也知道比较难,放在最后讲 这期包含的内容可以看目录 模拟那个算法的话就是题说什么写什么,就不再分入目录中了 注意事…...

【蓝桥杯速成】| 10.回溯切割

前面两篇内容我们都是在做有关回溯问题的组合应用 今天的题目主题是:回溯法在切割问题的应用 题目一:分割回文串 问题描述 131. 分割回文串 - 力扣(LeetCode) 给你一个字符串 s,请你将 s 分割成一些 子串&#xff…...

【Spring】深入理解 Spring 事务管理

文章目录 一、事务的基本概念​原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability) 二、Spring 事务管理的优势​简化事务管理代码提供多种事务管理方式整合…...

java学习笔记6

按住shift键,选择开始的一位和最后结束的一位来全选 面向对象特征之二:继承性(inheritance) 面向对象特征之二:继承性1.继承性的理解 > 生活上:财产的继承、颜值的继承 > 代码层面:> 自上而下:定义了一个类A,在定义另一个类B时&…...

人工智能在现代科技中的应用和未来发展趋势

人工智能(Artificial Intelligence,AI)是一种模拟人类智能思维和行为的技术,已经在现代科技中得到广泛应用。以下是人工智能在现代科技中的应用和未来发展趋势: 应用: 机器学习:机器学习是人工…...

第二十一章:模板与继承_《C++ Templates》notes

模板与继承 重点和难点编译与测试说明第一部分:多选题 (10题)第二部分:设计题 (5题)答案与详解多选题答案:设计题参考答案 测试说明 重点和难点 21.1 空基类优化(EBCO) 知识点 空基类优化(Empty Base Cla…...

STC89C52单片机学习——第35节: [16-1] AD/DA

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.23 51单片机学习——第35节: [16-1] AD/DA 前言开发板说明引用解答和科普一、AD问题…...

算法-最大公约数

1、约数: 1.1 试除法求约数 原理:只需要遍历最小的约数即可,较大的那个可以直接算出来。 import java.util.*; public class Main {static Scanner sc new Scanner(System.in);public static void main(String[] args) {int t sc.nextIn…...

在 SaaS 应用上构建 BI 能力的实战之路

SaaS 产品在持续运营过程中积累了大量数据,这些数据不仅是数字的记录,更是洞察市场趋势、优化产品功能、提升用户体验的宝贵资源。 因此,大部分的 SaaS 产品在发展到一定阶段后,都会开始构建自己的报表模块或分析模块,…...

代码随想录刷题day51|(二叉树篇)654.最大二叉树

一、二叉树基础知识 详见:代码随想录刷题day34|(二叉树篇)二叉树的递归遍历-CSDN博客 二、递归思路 递归三部曲 构造树一般采用前序遍历,因为先构造中间节点,然后递归构造左子树和右子树; 1.递归函数参数…...

深入理解 C++11 智能指针:独占、共享与弱引用的完美管理

文章目录 std::unique_ptr(独占式智能指针)std::shared_ptr(共享式智能指针)std::weak_ptr(弱引用智能指针)示例展示:智能指针的原理内存泄漏**什么是内存泄漏,内存泄漏的危害****如…...

1.2 编译器结构

编译器具有模块化的高层结构。还可以将模块化进一步细化。编译器可以看成多个阶段构成的流水线结构。 一种没有优化的编译器结构 更复杂的编译器结构...

文件操作助手

文件操作助手 在我们实现一个大型项目时,往往会有一个公共模块,这个公共模块是公用的,里面可能会包含文件操作助手、字符串操作助手、时间戳操作助手… 而我们今天就来实现一个文件操作助手,里面包含的功能有: 判断…...

线段树与扫描线 —— 详解算法思想及其C++实现

目录 一、线段树(Segment Tree) 基本概念 结构 操作 示例代码 二、扫描线(Sweep Line) 基本概念 应用场景 示例代码(矩形面积并集) 三、总结 一、线段树(Segment Tree) 基本…...

Leetcode 刷题笔记1 图论part04

leetcode 110 字符串接龙 def judge(s1, s2):count 0for i in range(len(s1)):if s1[i] ! s2[i]:count 1return count 1if __name__ __main__:n int(input())begin_str, end_str map(str, input().split())if begin_str end_str:print(0)exit()strlist []for _ in ran…...

快速入手:Nacos融合SpringCloud成为注册配置中心

快速入手:Nacos融合SpringCloud成为注册配置中心 前言安装Nacos项目搭建添加配置启动类添加注解运行项目服务调用RestTemplate 模式FeignClient 模式 前言 Spring Cloud是一系列框架的集合,提供了微服务架构下的各种解决方案,如服务治理、配…...

others-rustdesk远程

title: others-rustdesk远程 categories: Others tags: [others, 远程] date: 2025-03-19 10:19:34 comments: false mathjax: true toc: true others-rustdesk远程, 替代 todesk 的解决方案 前篇 官方 服务器 - https://rustdesk.com/docs/zh-cn/self-host/rustdesk-server-o…...

go:前后端分离

1.前端代码 新建一个前端文件夹,在该文件夹下新建一个.html文件,写入自己的html代码。 前端搞定。 2.后端代码 其核心是挂载路由接受前端传来的数据核心代码如下: func main() { // 服务运行提示 fmt.Println("go web server is runn…...

lodash 学习笔记/使用心得

lodash 学习笔记/使用心得 简单记一下 lodash 的一点学习笔记使用心得,最近也是打算清理一下所有的 dead code,然后发现我们用了好多的 lodash 方法。对比了之前的写法,重新看了一下官方文档,再自己重新动手写了点 util 之后发现…...

网络爬虫【爬虫库request】

我叫不三不四,很高兴见到大家,欢迎一起学习交流和进步 今天来讲一讲爬虫 Requests是Python的一个很实用的HTTP客户端库,完全满足如今网络爬虫的需求。与Urllib对比,Requests不仅具备Urllib的全部功能;在开发使用上&…...

AI日报 - 2025年3月24日

🌟 今日概览(60秒速览) ▎🤖 AGI突破 | Lyra生物序列建模架构效率惊人 在100生物任务中达最优,推理速度提升高达12万倍 ▎💼 商业动向 | OpenAI用户破4亿,Meta与Reliance探讨AI合作 生态扩展与全…...

Android平台毫秒级低延迟HTTP-FLV直播播放器技术探究与实现

一、前言 在移动互联网蓬勃发展的今天,视频播放功能已成为众多Android应用的核心特性之一。面对多样化的视频格式和传输协议,开发一款高效、稳定的视频播放器是许多开发者追求的目标。FLV(Flash Video)格式,尽管随着H…...

动态规划——混合背包问题

动态规划——混合背包问题 混合背包问题01背包与完全背包的混合:完全背包与多重背包的混合:三种背包混合混合背包OJ汇总 混合背包问题 将01背包、完全背包、多重背包混合起来的背包问题。也就是说,有的物品只可以取一次(01背包&a…...

数据库操作练习

一.向heros表中新增一列信息,添加一些约束,并尝试查询一些信息 //向表中添加一列age信息 alter table heros add column age int;//id列添加主键约束,设置自增 alter table heros modify column id int auto_increment primary key;//name列…...

3.milvus索引-HNSW

索引作用 加速大型数据集上的查询。 向量字段,仅只能创建一个索引。 milvus支持的向量索引类型大部分使用 近似最近邻搜索算法。ANNS该算法的核心不局限于返回最准确的结果,而是仅搜索目标的邻居。ANNS通过在可接受的范围内牺牲准确性提高检索效率。 …...

算法基础——栈

一、栈的概念 栈是⼀种只允许在⼀端进⾏数据插⼊和删除操作的线性表。 进⾏数据插⼊或删除的⼀端称为栈顶,另⼀端称为栈底。不含元素的栈称为空栈。进栈就是往栈中放⼊元素,出栈就是将元素弹出栈顶。 二、栈的模拟实现 1. 创建 本质还是线性表&#…...

开发语言漫谈-groovy

groovy是一门脚本语言,在前期的脚本语言中简单介绍了下。现在再深入介绍下,因为它是本平台上选用的脚本语言。所谓脚本语言就是不用编译,直接执行。这种特色非常适合做嵌入编程,即编即用。我们知道平台后台的业务开发语言是Java&a…...

ArkUI-List组件

列表是一个复杂的容器,当列表项达到一定数量,使得列表内容超出其范围的时候,就会自动变为可以滚动。列表适合用来展现同类数据类型。 List组件支持使用,条件渲染,循环渲染,懒加载等渲染控制方式生成子组件…...

数据仓库的 DWD 分层架构:构建高效数据平台的基石

在数据驱动的时代,数据仓库(Data Warehouse)作为企业数据分析的核心基础设施,扮演着至关重要的角色。而数据仓库的分层设计,则是确保数据高效流转、提升数据质量、支持复杂分析的关键。本文将深入探讨数据仓库的 DWD 分…...

山东大学数据结构课程设计

题目:全国交通咨询模拟系统 问题描述 处于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能地短,出门旅游的旅客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编织一个全国城市间的交…...

动态规划-01背包

兜兜转转了半天,发现还是Carl写的好。 看过动态规划-基础的读者,大概都清楚。 动态规划是将大问题,分解成子问题。并将子问题的解储存下来,避免重复计算。 而背包问题,就是动态规划延申出来的一个大类。 而01背包&…...

【2025】基于node.js的中医药科普平台的设计与实现(源码、万字文档、图文修改、调试答疑)

项目完整功能以演示视频为准 基于Node.js的中医药科普平台的设计与实现功能结构图如下 课题背景 随着人们健康意识的提高,中医药作为传统医学的重要组成部分,越来越受到关注。然而,中医药知识专业性强,普通大众获取准确、全面的中…...