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提交;访问…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10+pip3.10)
第一篇:Liunx环境下搭建PaddlePaddle 3.0基础环境(Liunx Centos8.5安装Python3.10pip3.10) 一:前言二:安装编译依赖二:安装Python3.10三:安装PIP3.10四:安装Paddlepaddle基础框架4.1…...
【threejs】每天一个小案例讲解:创建基本的3D场景
代码仓 GitHub - TiffanyHoo/three_practices: Learning three.js together! 可自行clone,无需安装依赖,直接liver-server运行/直接打开chapter01中的html文件 运行效果图 知识要点 核心三要素 场景(Scene) 使用 THREE.Scene(…...
前端打包工具简单介绍
前端打包工具简单介绍 一、Webpack 架构与插件机制 1. Webpack 架构核心组成 Entry(入口) 指定应用的起点文件,比如 src/index.js。 Module(模块) Webpack 把项目当作模块图,模块可以是 JS、CSS、图片等…...
SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈
【导读】 本文针对无人机(UAV)视频中目标尺寸小、运动快导致的多目标跟踪难题,提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪(贴合无人机场景特性),并改进传统外观匹配算法以关联此类检测…...
