IS-IS 协议 | LSP 传输与链路状态数据库同步机制

略作整理,待校。


IS-IS 中 SRM 与 SSN 标志的作用及协同机制

SRM 和 SSN 标志的作用

在 IS-IS 协议中,SRM 和 SSN 是两个关键标志,用于控制和优化 LSP(Link State PDU,链路状态信息)在网络中的泛洪与同步过程。

一、SRM 与 SSN 标志在链路状态信息泛洪中的机制

  • SRM:用于跟踪路由器通过某一接口向邻居发送链路状态 PDU(LSP) 的状态。每个 LSP 在每个接口上均维护一个 SRM 标志,以记录发送过程的状态。
  • SSN:用于在数据库同步过程中,标识 LSP 在 PSNP 中被描述的状态。它通过跟踪 LSP 的序列号,保障数据传输的有序性和完整性。

二、SRM 标志的功能

SRM 的核心作用是跟踪路由器通过特定接口向邻居发送 LSP 的状态,具体体现在以下方面:

  • 特定接口:指与邻居直接连接的物理接口(如 GE 口、串口)或逻辑接口(如 VLAN 接口、PPP 接口)。每个接口通常对应唯一邻居(点对点网络)或一组邻居(广播网络),明确了 LSP 的发送方向。
  • 状态跟踪:记录接口是否已发送某个特定 LSP,以及邻居是否已确认接收。其核心目的是避免冗余发送(例如,若确认邻居已接收,则停止重传),从而减少网络带宽占用和设备 CPU 消耗。

三、SSN 标志的功能(按网络类型区分)

SSN 标志的主要功能是在数据库同步过程中,标识 LSP 在 PSNP 中的状态,具体行为因网络类型而异:

  • 广播网络:用于跟踪向邻居请求完整 LSP 的状态。当节点发现 LSP 缺失或过期时,通过 SSN 标记需要请求的 LSP 序列范围,确保邻居能针对性地返回所需信息,避免全量泛洪导致的资源浪费。
  • 点对点网络:用于跟踪对 LSP 的确认状态。通过记录 LSP 的序列号及其确认情况,若未收到确认(即 SSN 标志指示该 LSP 未被确认),则触发重传机制,保障 LSP 传输的可靠性。

四、协同作用

SRM 与 SSN 通过 “发送控制” 与 “交互确认” 的协同机制,共同优化 IS-IS 数据库的同步效率,具体表现为:

  • 减少冗余流量:避免重复发送已被邻居接收的 LSP,降低网络带宽占用。
  • 聚焦必要信息处理:减少设备对冗余信息的处理,降低 CPU 负载,使路由器更高效地处理未同步或有变化的链路状态信息。
  • 加速链路状态数据库同步:提升路由协议的收敛速度,确保网络拓扑信息快速达成一致,增强网络稳定性。

LSP 传输与 CSNP 发送间隔

LSP 传输时间间隔

在 IS-IS 协议中,LSP(链路状态报文)的传输时间间隔默认为 50 ms。当邻居路由器资源有限时,若其他路由器向其传递 LSP 后,该路由器无法按时确认,其他路由器会重传 LSP。这可能会进一步加重网络负担。为了避免这种情况,可以适当增大 LSP 的传输间隔,以保护资源受限的邻居路由器。

CSNP 发送间隔

在广播网络中,为确保链路状态数据库的完整性,DIS(指定中间系统)会周期性地发送 CSNP(链路状态数据库摘要报文)。默认情况下,CSNP 的发送间隔为 10 秒。华为 VRP 系统允许通过接口命令 isis timer csnp 修改该默认值。

  • 调整建议
    • 缩短该值有利于网络的快速收敛,但会增加带宽开销。
    • 在网络较为稳定的情况下,适当增大该值可以减少对带宽的占用。

这些计时器提供了一些优化和控制链路状态信息泛洪的方法。一般情况下,不建议修改这些计时器的默认值,除非能够预测相应的结果。如果网络规模较大,可以通过升级路由器来加快收敛速度。此外,在网络规划时,应确保网络的高可用性。


链路状态数据库同步过程

广播网络中的同步过程

在广播网络中,路由器在邻接关系初始化后,会首先泛洪自己的 LSP。L1 的 LSP 发送到组播地址 01-80-C2-00-00-14(L1 IS),而 L2 的 LSP 发送到组播地址 01-80-C2-00-00-15(L2 IS)。其他 L1 或 L2 邻居接收 LSP 后无需确认,因此广播网络中的 LSP 泛洪是不可靠的。

那么,LSP 的始发路由器如何确保所有邻居都接收到自己的 LSP 呢?IS-IS 协议通过 DIS 周期性地发送 CSNP 来保证广播网络中链路状态数据库的同步。

DIS 的作用

DIS 是 IS-IS 协议中用于在广播网络中控制数据库信息泛洪和同步的关键组件。在广播网络中,所有路由器均与 DIS 建立了邻接关系,这意味着 DIS 的数据库包含了其他所有路由器的数据库信息。基于此,DIS 使用一个或多个 CSNP 描述其整个链路状态数据库信息,并周期性地(每隔 10 秒)将其扩散到网络中。

同步机制

其他路由器接收到 DIS 的 CSNP 后,会将其与自己数据库中的内容进行比较。如果发现缺失或较新的 LSP,它们会发送 PSNP(部分序列号报文)来请求相应的 LSP。网络中的 DIS 或拥有该 LSP 的邻居路由器收到请求后,会回应相应的 LSP。

在广播链路上,发送 LSP 之前会在接口上设置一个 SRM(发送请求标志),待 LSP 发送完成后,该标志会立即清除。如果路由器发现自己的 LSP 在 DIS 的 CSNP 中缺失,或者自己的 LSP 更新,则会主动将该 LSP 泛洪出去。通过上述过程,确保了广播网络中所有路由器的数据库保持一致。

带宽与效率

虽然 DIS 周期性泛洪 CSNP 会带来一定的带宽开销,但这种方法相对简单,避免了对每条接收的 LSP 进行确认的复杂性。

广播网络链路状态信息的同步过程示例

下图展示了广播网络中链路状态信息同步的完整过程。

在这里插入图片描述
广播网络链路状态信息的同步过程如下:

  • R3 发送 LSP:R3 与 R1 和 R2 建立邻居关系后,它将自己的链路状态报文(LSP)R3.00-00 发送到组播地址。这样,R1 和 R2 都将收到该 LSP。

  • R2(DIS)处理 LSP:作为指定中间系统(DIS),R2 收到 R3 的 LSP 后,将其加入到链路状态数据库(LSDB)中。

  • R2 发送 CSNP:R2 等待 CSNP 报文定时器超时(DIS 每隔 10 秒发送一次 CSNP 报文),然后发送 CSNP 报文,以同步该网络内的 LSDB。

  • R3 请求缺失的 LSP:R3 收到 DIS 发来的 CSNP 报文,该报文描述了网络中所有路由器的 LSP(R1 00-00、R2 00-00、R2 01-00 和 R3 00-00)。R3 将自己的 LSDB 与 CSNP 报文中的信息进行比较,发现自己缺少 R1 和 R2 的 LSP。于是,R3 向 DIS 发送 PSNP 报文,请求这些缺失的 LSP。

  • DIS 响应 PSNP 请求:DIS(R2)收到 R3 的 PSNP 报文请求后,向 R3 发送对应的 LSP。

R3DISR1组播 LSP ( R3.00-00 )组播 LSP ( R3.00-00 )加入 LSP 到 LSDB每隔 10 秒发送一次 CSNPCSNP (LSDB摘要,包括 R1、R2、R3 的 LSP)CSNP (LSDB摘要,包括 R1、R2、R3 的 LSP)PSNP 请求缺失 LSP (R1.00-00、R2.00-00、R2.01-00)LSP (R1.00-00)LSP (R2.00-00)LSP (R2.01-00)R3DISR1

通过这一过程,确保了广播网络中所有路由器的数据库都是一致的,从而实现了链路状态信息的有效同步。


点对点(P2P)网络中的同步过程

与广播网络不同,IS-IS 协议在 P2P 网络中的数据库同步过程中,接收到邻居的 LSP 后需要给予确认(采用可靠方式)。因为在 P2P 链路上,每台路由器只有一个邻居,确认过程不会带来过多的资源开销。

同步机制

在 P2P 网络中,当两台路由器建立邻接关系后,会首先交换 CSNP。与前文所述类似,路由器通过比较接收到的 CSNP 内容,确定本地数据库中缺失的 LSP,并根据 LSP 的新旧比较规则,比较自身数据库和邻居数据库中的 LSP。

对于缺少或过时的 LSP,路由器会发送 PSNP 进行请求,并在收到邻居回应的 LSP 后使用 PSNP 进行确认。如果路由器发现邻居路由器缺失或拥有更旧的 LSP,它会主动将 LSP 发送给邻居。

如果发送的 LSP 未得到邻居的 PSNP 确认,且重传间隔时间超时,路由器会重传先前的 LSP,直至收到邻居的 PSNP 确认为止。

标志的作用

在 P2P 链路上,接收到 LSP 后,接口上会设置一个 SSN(序列号通知)标志,表示需要向该接口发送 PSNP 确认。收到确认后,SSN 标志将被清除。同时,如果需要将 LSP 拷贝从一个接口发送出去,也会在该接口上设置 SRM 标志,发送完成后标志将立即清除。

P2P 网络链路状态信息的同步过程示例

图展示了 P2P 网络中的同步过程。

在这里插入图片描述
如图所示,R2 与 R1、R3 通过点对点链路建立连接,以 R1 先发送自己的 CSNP 为例,同步过程如下:

  • R2 收到 R1 的 CSNP(描述了一条 LSP:R1.00-00)后,发送 PSNP 进行请求。
  • R1 收到请求后,将相应的 LSP 拷贝发送到网络中。
  • R2 收到请求的 LSP 后,将其拷贝存入数据库中,并在接口 2 设置 SSN 标志,在接口 3 设置 SRM 标志。
  • R2 向 R3 转发该 LSP 的拷贝,并向 R1 发送 PSNP 进行确认。
  • R2 清除接口 2 上的 SSN 标志。
  • R3 从 R2 收到该 LSP 后,存入数据库中,并在接口 4 上设置 SSN 标志。
  • R3 向 R2 发送 PSNP 确认,并清除接口 4 上的 SSN 标志。
  • R2 收到 R3 的 PSNP 确认后,清除接口 3 上的 SRM 标志。
R1R2R3CSNP (R1.00-00)PSNP <Request> (R1.00-00)LSP (R1.00-00)存储 LSP 到数据库 (设置 SSN 标志接口 2, 设置 SRM 标志接口 3)LSP 转发 (R1.00-00)PSNP <Ack> (R1.00-00)清除接口 2 上的 SSN 标志存储 LSP 到数据库 (设置 SSN 标志接口 4)PSNP <Ack> (R1.00-00)清除接口 4 上的 SSN 标志清除接口 3 上的 SRM 标志R1R2R3

CSNP 中的 LSP 与 LSDB 中的 LSP 比较

CSNP 中的 LSP(索引信息)LSDB 中的 LSP(完整链路状态报文)
内容仅包含 LSP 标识符(LSP ID)、序列号(Seq)、校验和(Checksum)等状态字段,无拓扑细节包含完整链路状态信息,如邻居关系、链路开销(Cost)、接口状态、IP 地址等拓扑数据
作用作为数据库摘要,供邻居路由器比对本地 LSDB,识别需要更新、删除或请求的 LSP存储全网链路状态实体,为 SPF 算法计算路由提供基础数据
数据大小较小(仅索引字段),通常为几十到几百字节较大(包含完整拓扑),根据网络规模可达数千字节
发送频率由 DIS 周期性发送(IS-IS 协议默认周期为 10 秒),邻居关系建立后 DIS 会立即开始发送 CSNP 以实现数据库同步。触发式泛洪(如链路状态变化时),或响应邻居 PSNP 请求时发送
确认机制无需确认,仅用于数据库状态同步通知通过 PSNP(部分序列号分组)请求缺失 LSP,并通过虚拟重传队列(VRQ)确保可靠传输
是否包含拓扑细节不包含,仅为 LSP 的“目录索引”完整包含网络拓扑结构、链路属性等细节
作用对象向邻居路由器提供本地 LSDB 的索引快照,用于数据库同步供本地路由计算(SPF 算法)及邻居路由器构建完整 LSDB

说明

  • CSNP 中的 LSP
    作为 IS-IS 协议中 LSDB 的“索引目录”,由 DIS 周期性发送,仅包含 LSP 的关键状态字段,用于邻居间快速比对数据库差异,无需可靠传输机制。

  • LSDB 中的 LSP
    作为链路状态数据库的实体内容,包含全网拓扑细节,通过泛洪机制在网络中传播,依赖 PSNP 确认和重传机制保证完整性,是路由计算的核心数据。


via: HCIE

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

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

相关文章

xxl-job 改造适配pg数据后的Jenkins自动部署

接上文适配pg数据库之后需要进行部署&#xff0c;便有了此文 1.下载并安装Jenkins如下&#xff1a; https://mirrors.jenkins.io/war-stable/2.504.3/jenkins.war nohup java -jar jenkins.war --httpPort8080 & 启动Jenkins并解锁安装需要的环境&#xff0c;git&#xff0…

数据库Oracle从入门到精通!第四天(并发、锁、视图)

八、并发控制数据库是一个共享资源&#xff0c;可以为多个应用程序所共享&#xff0c;这些程序可以串行执行&#xff08;排队执行&#xff09;&#xff0c;但是很多情况下&#xff0c;可能出现多个程序或一个程序中的多个进程并行的执行&#xff0c;这就是数据库的并行操作&…

EXCEL(带图)转html

文章目录叙述1、效果2、excel 转换主逻辑3、其他补充3.0 主前端bootstrap3.1 my.css&#xff1a;3.2 my.js3.3 入口home.html3.4 Data.ashx叙述 要实现H5 展示excel 查询 了一下没有好的办法,自己写了一个,简单记录一下 1、效果 用bootstrap 根据sheet做了一个菜单。 2、exc…

小程序富文本Editor插入图片、超链接、公式等的一次尝试

小程序插入图片 通过EditorContext.insertImage接口可以实现图片的插入&#xff1a; EditorContext.insertImage({src,width,height,data, })如何插入超链接、公式、视频、表格等等? 通过EditorContext.insertCustomBlock应该是可以实现的&#xff0c;具体实现方式我没有了…

传输层协议TCP、UDP

传输层协议TCP、UDP 1、TCP和UDP报文格式 传输层协议TCPvsUDP 传输层主要两个传输协议&#xff0c;分别是TCP和UDP&#xff0c;负责提供流量控制、排序服务和错误校验。 &#xff08;1&#xff09;TCP是面向连接的&#xff0c;一般用于传输数据量比较少&#xff0c;且对可靠性要…

设计模式—专栏简介

大学总是忙着参加ACM实验室的各种事情&#xff0c;到了毕业的时候&#xff0c;对于设计模式也是仅了解单例模式。毕业后&#xff0c;刚开始代码也是乱写一通&#xff0c;完全没有章法。整个开发环境也是为了解决问题&#xff0c;从来没有考虑结构化什么的&#xff08;没办法&am…

面试150 链表的复制

思路 python可以使用调库法&#xff0c;使用深度拷贝 """ # Definition for a Node. class Node:def __init__(self, x: int, next: Node None, random: Node None):self.val int(x)self.next nextself.random random """class Solution:de…

MySQL分布式ID冲突详解:场景、原因与解决方案

引言 在分布式系统开发中&#xff0c;你是否遇到过这样的崩溃时刻&#xff1f;——明明每个数据库实例的自增ID都从1开始&#xff0c;插入数据时却提示“Duplicate entry ‘100’ for key ‘PRIMARY’”&#xff1b;或者分库分表后&#xff0c;不同库里的订单ID竟然重复&#x…

c++文字游戏_闯关打怪2.0(开源)

本次更新内容: 1.增强对手性能 2.可暂停(按N) 3.修复些许bug 4.增加boos关(第10、20、30...关) 1. 游戏概述 本游戏是一个基于Windows控制台的回合制战斗游戏,采用俯视视角的2D平面设计。玩家控制角色"p"在1325大小的封闭场景中与敌人"@"战斗,通过…

Java学习第十二部分——idea各种项目简介

目录 一.前言 二.语言介绍 三.生成器介绍 四.拓展 一.前言 打开idea项目创建时发现如上情况&#xff0c;“新建项目”下面的是语言&#xff0c;生成器下面的是这些语言对应的生成器工具&#xff0c;本文将简单介绍。 二.语言介绍 Java 用途&#xff1a;Java是一种广泛使…

Codeforces Round 868 (Div. 2) D. Unique Palindromes(1900,构造)

Problem - D - Codeforces 不错的字符串构造体&#xff0c;记录一下 首先注意到k≤20这一条件。对于一个长度为n的字符串&#xff0c;最多有n个不同的回文子串&#xff0c;这种情况出现在所有字符都相同时。因此&#xff0c;限制条件中的xi必须满足xi≤ci&#xff0c;且相邻两…

ClickHouse 全生命周期性能优化

引言 ClickHouse作为列式存储的OLAP数据库&#xff0c;以其极致的查询性能著称&#xff0c;但"高性能"并非开箱即用。不合理的表设计、SQL写法或集群配置&#xff0c;可能导致性能衰减甚至服务不可用。本文基于ClickHouse 24.3版本&#xff0c;从设计规范、开发规范、…

Linux sed 命令 详解

在 Linux 系统中&#xff0c;sed&#xff08;Stream Editor&#xff09;是一个非常强大且灵活的文本处理工具。它不仅可以用于简单的文本替换、删除和插入操作&#xff0c;还能实现复杂的文本转换任务。 &#x1f4cc; 一、什么是 sed&#xff1f; sed 是一个基于模式匹配对文…

项目进度同步不及时,如何提升信息透明度

项目进度同步不及时的核心问题包括沟通渠道不畅通、缺乏统一的信息平台、未建立明确的进度更新机制、团队意识不足、责任划分不明确等。其中&#xff0c;缺乏统一的信息平台最为关键。统一的信息平台能够确保所有相关人员实时掌握最新的进度状态&#xff0c;避免信息孤岛&#…

使用各种CSS美化网页

实验目的1.理解CSS的概念&#xff0c;掌握CSS定义样式的方法&#xff0c;具备使用CSS和相关库进行界面样式设计的能力。 2.掌握Bootstrap 5的基本使用方法。3.Bootstrap框架练习实验步骤1. 实验准备创建一个HTML文件&#xff08;如 index.html&#xff09;。引入Bootstrap5的CS…

在PPT的文本框中,解决一打字,英文双引号就变成中文了

问题&#xff1a;在制作PPT的过程中&#xff0c;插入文本框&#xff0c;在里面输入代码类的格式时&#xff0c;使用英文的双引号""&#xff0c;但是只要在后面输入内容&#xff0c;或者逗号等&#xff0c;英文双引号就变成中文了&#xff0c;很烦原因&#xff1a;大概…

iOS 证书过期如何处理

找到钥匙串位置创建新的CSR文件。点击菜单中钥匙串访问—>证书助理—>从证书颁发机构请求证书…进入证书助理&#xff0c;填写信息&#xff08;用户名称和邮箱随便写&#xff09;&#xff0c;请求是 选择 存储到磁盘创建好CSR文件&#xff0c;回到developer 证书管理中心…

CODESYS + 全志T113-i + 国产系统OneOS,打造新一代工业控制解决方案!

创龙科技与中移物联网有限公司、CODESYS携手合作&#xff0c;成功实现了T113-i工业评估板对国产系统OneOS CODESYS软件的适配&#xff0c;此举将让工业自动化领域的工程师们更高效地开发&#xff0c;并为众多企业产品的快速上市提供强有力的保障。 解决方案简介 CODESYS简介 …

三、jenkins使用tomcat部署项目

一、安装tomcattomcat本来应该是第3台服务器的&#xff08;第一台&#xff1a;gitlab&#xff0c;第二台&#xff1a;jenkins&#xff0c;第三台&#xff1a;tomcat&#xff09;&#xff0c;我这里资源有限&#xff0c;就把tomcat安装jenkins服务器了。#解压tocmcat [rootbogon…

华为eNSP防火墙实验(包含详细步骤)

拓扑图 这里要用的防火墙是 &#xff0c; 需要导入 目录 防火墙配置1&#xff08;启动图形化界面&#xff09; cloud配置 缓冲区服务器配置 防火墙配置2&#xff08;各端口的ip地址&#xff09; 外部路由器配置 本地路由器配置 防火墙配置3&#xff08;配置安全策略&a…