ISIS协议
ISIS协议基础
- 简介
- 应用场景
- 路由计算过程
- 地址结构
- 路由器分类
- 邻居Hello报文
- 邻居关系建立
- DIS及DIS与DR的类比
- 链路状态信息的载体
- 链路状态信息的交互
- 路由算法
- 网络分层路由域
- 区域间路由
简介
与OSPF协议一样,ISIS协议也是一种基于链路状态并且使用最短路径优先算法进行路由计算的一种IGP协议。ISIS协议的兼容性很好,因为ISIS协议的所有数据包都采用TLV(Type Len Value)架构,不同的TLV可以对应不同的作用。
应用场景

- 在园区网使用OSPF协议可以使得调度更加精细,还可以设置各种特殊区域,用于减轻设备负担,可以灵巧的调用多种策略。
- 在骨干网中进行扁平化管理,不进行分层,也就不存在层层调用,可以达到收敛快的目的,由于设备的任务相当,所以可以承载的路由数目也变得更多。
路由计算过程

路由计算基本过程同OSPF,但还是有细微的差别,在同步数据库的过程中,ISIS发送的是LSP(PDU协议数据单元),不同于OSPF的LSA。
地址结构

关于地址结构,可以直接与OSPF进行类比,Area ID:可以类比于OSPF的区域号,System ID:可以理解为OSPF设备中的Router-id,最后的00是固定值。
路由器分类
- ISIS路由器的三种类型
- Level-1路由器(只能创建level-1的LSDB)
- Level-2路由器(只能创建level-2的LSDB)
- Level-1-2路由器(路由器的默认类型,可以同时创建level-1和level-2的LSDB)

其中level-1的设备只能与同种类型的设备建立邻接关系且区域ID必须一致,然而level-2的设备可以与不同类型的设备建立邻接关系即区域ID可以不一致。现在解释为什么level-1-2的设备可以同时创建level-1和level-2的LSDB:首先level-2设备可以与不同的设备建立邻接关系,然后level-1设备只能与相同类型的设备建立邻接关系,所以只能是让level-1-2设备的Area ID与level-1设备的Area ID一致,虽然如此,但是也可以与level-2类型设备建立邻接关系。所以level-1-2设备同时与level-1设备与level-2设备建立邻接关系,于是便同时有了level-1和level-2的LSDB。
邻居Hello报文

IIH就是ISIS Hello报文,在广播类型的网络中有两种类型Hello包,分别是level-1的和level-2的ISIS Hello包。
邻居关系建立

- 点到点网络中:
- 使用两次握手,最开始都是Down状态,当收到对端发来的IIH报文之后,立即变为UP状态,但是不会考虑自己发送的IIH报文对方是否可以收到,于是会产生单方向建邻居的现象。
- 广播网络中:(必须是三次握手)
- 在本端发送了IIH报文之后,只有等对端发送给自身的IIH报文中含有自身的系统ID时,才会到达UP状态,最后进行DIS的选举。
DIS及DIS与DR的类比
首先先看一张术语对照表:

IS-IS协议可以理解为Router到Router的协议,也就是路由器到路由器的协议。
ES直接理解为终端系统就可以。
DIS理解为OSPF中的DR角色。
- DR用于减少邻接关系,减少LSA的更新,定期发送LSA,并且是触发更新。
- 而DIS用于定期的发送DD报文,使得全网设备达到统一。

在ISIS中: - 选举优先级:所有的优先级都会参与选举;OSPF-DR中设置优先级为0可以不参与选举。
- 选举等待时间:40s的等待时间用于保证所有的设备都进入选举状态。
- 备份:没有备份。
- 邻接关系:所有的设备之间都是邻接关系,也间接解释了为什么没有备份,因为所有设备都进行互联了,备份也就没有那么重要了。
- 抢占性:会进行抢占。
- 作用:周期性发送CSNP(等价于DD报文),保证MA网络中的LSDB同步。
链路状态信息的载体
- LSP PDU——用于交换链路状态信息
- 实节点LSP(普通路由器都可以发)
- 伪结点LSP(只在广播链路存在,只有DIS进行发送)
- SNP PDU——用于维护LSDB的完整与同步,且为摘要信息。
- CSNP(用于同步LSP,可以理解为DD报文)
- PSNP(用于请求和确认LSP,可以理解为LSR+LSAck)
协议报文都分为Level-1和Level-2两种,在MA网络之中所有协议报文的目的MAC地址都是组地址:
Level-1地址为:0180-C200-0014
Level-2地址为:0180-C200-0015
链路状态信息的交互

P2P网络:
- 首先有一方先发送CSNP(理解为DD报文)
- 对端收到后会发送PSNP(请求自己LSDB中没有的LSP)
- 随后更新对端未收到的报文
- 这个时候如果对端发送的PSNP报文没有到达对端,等待重传计时器到期,就会重新更新LSP进行发送
广播网络,现在RTC新加入了这个ISIS的广播网络:
- 首先先发送自身的LSP
- DIS收到之后发送CSNP进行更新数据库给新加入的设备
- 新加入的设备进行请求自身没有的LSP
- DIS发送新设备没有的LSP
MA的CSNP报文由DIS进行发送,时间默认为10s。
路由算法

虽然ISIS协议也是链路状态协议,但是并没有根据带宽来生成最终的转发路径树。ISIS将接口开销都默认设置为10,所以在端口不去考虑带宽,于是就都等价,最终生成了负载的路径树,可以通过手工修改接口的开销值进行改变路径。
网络分层路由域
在ISIS中Level-2设备是骨干设备,level-1设备是非骨干设备。ISIS协议的区域边界是整个Router,OSPF协议的区域边界就是Router的接口。
区域间路由

简单说就是,L1路由器要去访问L2的设备时,L-1-2设备会产生给L1设备产生一条默认路由,指向L2区域。
L1设备只有自身的LSDB,但是L2设备有全部的LSDB。
相关文章:
ISIS协议
ISIS协议基础简介应用场景路由计算过程地址结构路由器分类邻居Hello报文邻居关系建立DIS及DIS与DR的类比链路状态信息的载体链路状态信息的交互路由算法网络分层路由域区域间路由简介…...
CRM系统哪种品牌的好?这五款简单好用!
CRM系统哪种品牌的好?这五款简单好用! CRM系统是指利用软件、硬件和网络技术,为企业建立一个客户信息收集、管理、分析和利用的信息系统。CRM系统的基础功能主要包括营销自动化、客户管理、销售管理、客服管理、报表分析等,选择合…...
QT_dbus(ipc进程间通讯)
QT_dbus(ipc进程间通讯) 前言: 参考链接: https://www.cnblogs.com/brt3/p/9614899.html https://blog.csdn.net/weixin_43246170/article/details/120994311 https://blog.csdn.net/kchmmd/article/details/118605315 一个大型项目可能需要多个子程序同…...
华为OD机试 - 数组排序(C++) | 附带编码思路 【2023】
刷算法题之前必看 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12199283.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题…...
字符串转换为二进制-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)
【案例5-4】 字符串转换为二进制 【案例介绍】 1.任务描述 本例要求编写一个程序,从键盘录入一个字符串,将字符串转换为二进制数。在转换时,将字符串中的每个字符单独转换为一个二进制数,将所有二进制数连接起来进行输出。 案…...
SpringIOC
一、为什么要使用Spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 为…...
Debezium系列之:基于数据库信号表和Kafka信号Topic两种技术方案实现增量快照incremental技术的详细步骤
Debezium系列之:基于数据库信号表和Kafka信号Topic两种技术方案实现增量快照incremental技术的详细步骤 一、需求背景二、增量快照技术实现的两种方案三、基于数据库信号表实现增量快照技术的原理1.基于水印的快照2.信令表3.增量快照4.连接起重启四、基于数据库信号表实现增量…...
华为OD机试 - 第 K 个最小码值的字母(Python) | 机试题+算法思路+考点+代码解析 【2023】
第 K 个最小码值的字母 题目 输入一个由n个大小写字母组成的字符串 按照 ASCII 码值从小到大进行排序 查找字符串中第k个最小 ASCII 码值的字母(k>=1) 输出该字母所在字符串中的位置索引(字符串的第一个位置索引为 0) k如果大于字符串长度则输出最大 ASCII 码值的字母所在…...
PointNet++训练自己的数据集(附源码)
本文针对PointNet强大的三维点云分类功能,详细讲解怎么训练自己的数据集,在此之前,需要确保已经能够跑通源码的训练和测试,如果没有,请参考PointNet的源码运行。数据放置1.1. 在mytensor_shape_names.txt中配置自己的分…...
ROS2可视化利器---Foxglove Studio
0. 简介 之前作者已经讲了《ROS1可视化利器—Webviz》,然后就有读者问,ROS2有没有可以使用的可视化工具呢,答案是肯定的,除了plotjuggler这种ROS1和ROS2通用的可视化利器,还有一种全平台通用的软件FoxgloveStudio&…...
python实战应用讲解-【语法基础篇】流程控制-控制流的元素及语句(附示例代码)
目录 控制流的元素 条件 代码块 程序执行 代码块嵌套 控制流语句 if 语句...
[蓝桥杯 2019 省 A] 外卖店优先级
蓝桥杯 2019 年省赛 A 组 G 题题目描述“饱了么”外卖系统中维护着 N家外卖店,编号 1 ∼ N。每家外卖店都有一个优先级,初始时 (0 时刻)优先级都为0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1&#x…...
Jetson Xavier nx(ubuntu18.04)安装rtl8152网卡驱动和8192网卡驱动
含义 Bus 002 : 指明设备连接到哪条总线。 Device 003 : 表明这是连接到总线上的第二台设备。 ID : 设备的ID,包括厂商的ID和产品的ID,格式 厂商ID:产品ID。 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter:生产商名字和设备…...
Rocky 9.1操作系统实现zabbix6.0的安装部署实战
文章目录前言一. 实验环境二. 安装zabbix过程2.1. 安装zabbix源2.2 安装zabbix相关的软件2.3 安装数据库并启动2.4 开始初始化数据库:2.5 创建数据库实例及对应的用户2.6 导入官网提供的数据2.7 配置zabbix 服务的配置文件2.8. 启动服务2.9 从网页进行安装2.10 登陆…...
AQS-ReentrantLock
一、AQS 在 Lock 中,用到了一个同步队列 AQS,全称 AbstractQueuedSynchronizer,它是一个同步工具,也是 Lock 用来实现线程同步的核心组件。 1.AQS 的两种功能 独占和共享。 独占锁:每次只能有一个线程持有锁&#x…...
SpringCloud+Dubbo3 = 王炸 !
前言 全链路异步化的大趋势来了 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构总体上是全链路同步模式。 全链路同步模式不仅造成了资源…...
机器学习主要内容的思维导图
机器学习 机器学习: 定义:能够从经验中学习从而能够 把事情不断做好的计算机程序 人工智能的一个分支和 实现方式 理论基础:概率论 数理统计 线性代数 数学分析 数值逼近 最优化理论 计算复杂理论 核心要素:数据 算法 模型 机器…...
嵌套走马灯Carousel
Carousel 的应用很广泛,基础用法这里不多做阐述,感兴趣的可以去element-gui了解Carousel 组件。 今天主要是梳理嵌套走马灯的逻辑,背景如下: 需要对项目做一个展示,项目可能有一个或多个,同时一个项目可能…...
实战——缓存的使用
文章目录前言概述实践一、缓存数据一致1.更新缓存类2.删除缓存类二、项目实践(商城项目)缓存预热双缓存机制前言 对于我们日常开发的应用系统。由于MySQL等关系型数据库读写的并发量是有一定的上线的,当请求量过大时候那数据库的压力一定会上…...
2023年中职网络安全竞赛跨站脚本渗透解析-2(超详细)
跨站脚本渗透 任务环境说明:需求环境可私信博主! 服务器场景:Server2126(关闭链接)服务器场景操作系统:未知访问服务器网站目录1,根据页面信息完成条件,将获取到弹框信息作为flag提交;访问服务器网站目录2,根据页面信息完成条件,将获取到弹框信息作为flag提交;访问…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
省略号和可变参数模板
本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...
若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
aardio 自动识别验证码输入
技术尝试 上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。 代码在这里 import soImage; import we…...
Python爬虫实战:研究Restkit库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的有价值数据。如何高效地采集这些数据并将其应用于实际业务中,成为了许多企业和开发者关注的焦点。网络爬虫技术作为一种自动化的数据采集工具,可以帮助我们从网页中提取所需的信息。而 RESTful API …...
