动态路由协议

一、动态路由协议

动态路由协议,用在多个 Router 之间定期的、自动的、互相交换 Routes(路由信息,包含了网段信息、可达性信息、路径信息等),动态生成 Routing Table Entries,并最终达到全网的路由收敛,即:理想情况下,一个 Router 总是能够知道到达 IP Packets 的目标网络对应的下一跳应该如何转发。并且即便网络上的某个 Router 出现了故障,但只要有一个可绕行的其它路径,那么其他 Router 的 Table 就会自动设置,并选择一个可达的路径。

二、动态路由协议的基本工作原理

简而言之,动态路由协议就是 Routers 之间用于交换、计算和维护路由表的协议,其基本工作原理包括 4 个阶段:

  1. 邻居发现阶段运行了相同动态路由协议的 Routers 之间,首先需要建立一个用于交换 Routes 的对等点关系,这些 Routers 又称为 Neighbor Routers(邻居路由器)。
  2. 路由交换阶段发现邻居后,每个 Router 会主动通过广播或单薄的方式把自己的 Routes 发送给 Neighbor Routers。经过一段时间后,每个建立了对等点关系的 Routers 都拥有了整网的路由信息。
  3. 计算路由阶段每台 Router 都会自身的配置,运行各自的路由算法,计算出最终的路由表/树。
  4. 维护路由阶段为了感知突发的网络故障(例如;设备故障或线路中断等),Neighbor Routers 之间会发送周期性的心跳包,当心跳包超时时,就会认为邻居关系失效。此时 Router 需要自动维护路由表的更新,将故障路径移除。

 

三、动态路由协议的类型

1、从应用场景角度划分

  • IGP(Interior Gateway Protocol,内部网关协议)作用于同一个 AS(Autonomous System,自治系统)内部的动态路由协议。在 AS 内的所有 Routers 之间交换 Routes,用于实现 AS 内部的 Routers 之间的三层路由可达性。例如:RIP、OSPF、I-BGP 协议。
  • EGP( Exterior Gateway Protocol,外部网关协议)作用于不同 AS 之间的的动态路由协议。在不同 AS 之间的 Edge Routers(边界路由器)之间交换 Routes,用于实现 AS 之间的路径选择,所以也称为路径控制路由。例如:E-BGP 协议。

 

2、从技术实现角度划分

  • Distance Vector(距离矢量类型):是一种基于 “距离" 和 “方向" 的动态路由协议,如下图所示。该类型的路由协议有:RIP、BGP。 1. 距离:指示了到达目的网络的度量值,即:所要经过路由器的个数。 2. 方向:指示了到达目的网络的下一跳设备。 

 

  • Link State(链路状态类型):是一种基于 LSDB(链路状态数据库)的动态路由协议。LSDB 中存储了 一张完整的网络拓扑图,绘制拓扑图的步骤如下。该类型的路由协议有:OSPF、ISIS。
  1. LSA(Link State Advertisement,链路状态通告)泛洪:LSA Msg 中包含了 Router 已知的接口状态、接口 IP 地址、网络掩码、路由开销、网络类型等信息。每台 Router 都会将关于自身的本地直连链路的状态信息,以及将关于所有直连邻居的路由信息都宣告出去。
  2. LSDB(Link State Database,链路状态数据库)建立:收到 LSA Msg 的 Router 都会根据 LSA 提供的信息建立本地的 LSDB,知道收敛后,网络中的所有的 LS Router 都应该具有了相同的 LSDB。
  3. 建立最短路径树:Router 在 LSDB 的基础上使用最短路由优先算法进行路由计算,得到一棵以自己为 Root(根)的、无环路的、可到达每个网络的最短路径树。
  4. 路由计算:通过最短路径树得出到达每个目的网络的最优 Routes,并将这些 Routes 加载到 Routing Table 中。

 

可见,我们可以简单的理解为:Distance Vector 类型 Routes 提供的是 “路标”,那么 Link State 类型 Routes 提供的就是 “地图”。

 

四、常见的动态路由协议 

 

1、RIP(IGP、距离矢量类型):是最早期的路由协议,为小型 IGP 网络提供。

  • 配置简单;
  • 网络收敛慢;
  • 用于小型网络,现在常见于实验室环境。

2、OSPFv3 和 ISIS(IGP、链路状态类型):为大中型 IGP 网络提供。

  • IGP 整网地图绘制,可以精确的知道网络中每一条链路的状态,例如:状态是 UP 还是 Down,链路的相对带宽大小是多少等等。以此来保证了无环路,
  • 使用最短路径优先算法来计算到达所有目的网络的最佳路径。
  • 缺点在于分享的信息太多、太精确,安全性缺失,计算芯片负载高。

3、BGPv4(IGP、EGP、距离矢量类型):最初为 EGP 广域网络提供,后来也可用于大型 IGP 网络。

  • 作为 EGP 时,使用 AS 的数量作为距离度量单位,而不是使用 Router 的数量。
  • 有强大的路径控制功能,例如:路由策略、路由过滤,可以对广域网的流量实现优化与调度。
  • 设计之初,就是用于容纳超大容量的路由条目。

 

五、动态路由协议的性能指标

不同的动态路由协议,具有有不同的特点。常规的性能指标如下:

  1. 协议的路由计算正确性杜绝出现路由环路。由于 Link State 类型具有整网地图,所以比 Distance Vector 类型更优。
  2. 协议的路由收敛速度整网路由器的路由表快速达到一致的状态。收敛速度越快,就意味着当网络拓扑结构发生变化时,路由器能够更快的感知到,并及时更新相应的路由信息。
  3. 协议所占的系统开销运行路由协议所占用的路由器系统资源,例如:CPU 、内存等。Link State 类型的开销大于 Distance Vector 类型。
  4. 协议适用的网络规模OSPF 的实现机制限定了其可以应用在几百台路由器的中大规模网络场景中;而 BGP 理论上能够管理全世界所有的路由器,其所管理的网络规模大小只受系统资源的限制。

 

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

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

相关文章

近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)

🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 🏆🏆关注博主,随时获取更多关于C的优质内容!🏆🏆 C核心编程🌏1 内存分区模型&#x1f384…

力扣hot100 颜色分类 双指针 滚动赋值

Problem: 75. 颜色分类 文章目录 思路解题方法复杂度Code💖 超简洁版 思路 解题方法 描述你的解题方法 复杂度 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( 1 ) O(1) O(1) Code class Solution { public void sortColors(int[] nums){int n nums.length…

Relation-Aware Graph Transformer for SQL-to-Text Generation

Relation-Aware Graph Transformer for SQL-to-Text Generation Abstract SQL2Text 是一项将 SQL 查询映射到相应的自然语言问题的任务。之前的工作将 SQL 表示为稀疏图,并利用 graph-to-sequence 模型来生成问题,其中每个节点只能与 k 跳节点通信。由…

Qt超简单实现贪吃蛇

文章目录 常量Snake类GameController类GUI显示游戏简图 为了能够最简单地完成程序,所以没有用类的继承等知识。感兴趣的朋友可以改写一下。 常量 const int FILE_SIZE 30; //地图方格大小 const int FPS 5000 / 33; //游戏运行帧率 enum Item{empty, wall, food…

Netty通信中的粘包半包问题(三)

之前我们介绍了用特殊分隔符来分割每个报文,但是如果传输的数据中恰好有个特殊分隔符,它将会被拆分成多个,于是,为了进一步避免这个问题,还有一种解决方案是在两端的channelPipeline中用一个固定长度来区分&#xff0c…

K8s(一)Pod资源——Pod介绍、创建Pod、Pod简单资源配额

目录 Pod概述 pod网络 pod存储 pod和容器对比 创建pod的方式 pod运行方式分类 Pod的创建 Pod的创建过程 通过kubectl run来创建pod 通过yaml文件创建,yaml文件简单写法 Pod简单操作 Pod的标签labels Pod的资源配额resource 测试 Pod概述 Kubernetes …

贪心算法-活动安排-最详细注释解析

贪心算法-活动安排-最详细注释解析 题目: 学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用…

Arm Generic Interrupt Controller v3 and v4(GICv3v4)学习(一)

提示 该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考参考文档,以官网参考文档为准。 Arm Generic Interrupt Controller v3 and v4学习一共分为三章&…

Revealing the Dark Secrets of MIM

论文名称: Revealing the Dark Secrets of Masked Image Modeling 发表时间:CVPR2022 作者及组织:Zhenda Xie, Zigang Geng, Hu Han等,来自清华,中科院,微软亚洲研究院。 前言 本文尝试探讨MIM为何有效的原…

JavaScript 学习笔记(Day5)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. JavaScript 学习笔记(Day1) 2. JavaSc…

数据结构奇妙旅程之二叉树初阶

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

IDEA无法解析jdk自带的类的解决办法

1.问题 IDEA在有些时候,会出现这个错误,就是jdk自带的java类找不到而报错。 例如下面的就是Object找不到,我们知道jdk自带的类是不用import包的,这里报错了,IDEA会提示你去导入类,其实这个提示也不是真正…

Ubuntu 22.04 基础环境搭建

这是Ubuntu软件安装系列的第一篇,我们来聊聊基础环境搭建。 这个专栏主要讲一些常见服务端软件的安装和配置,当然也包括对软件架构和作用的分析,以及使用的场景的介绍。 注意我们这里使用的Ubuntu的版本是22.04,基本上大厂的云服…

CentOS安装maxwell

CentOs安装maxwell 一、简介二、准备工作三、安装1、下载安装包2、解压3、编写配置文件4、启动maxwell5、验证6、停止maxwell 四、说明1、更新数据2、插入数据3、删除数据 五、遇到问题 一、简介 maxwell是由美国Zendesk公司开源,它通过读取mysql的binlog日志&#…

vscode mysql cmake windows 常见问题和推荐文章

1.在windows中安装mingw64和cmake(可查一下网上的安装教程),配置环境变量 2.在vscode中用CMake构建项目的时候,可能会出现这样的问题:“The C compiler identification is unknownn...”,可参考这篇博客 在windows下使用Vscode用…

面试题之ElasticSearch

面试题之ElasticSearch 1.es的基础知识2. es的集群、节点、分片、副本分片的定义?3. es为什么快?4. 倒排索引的原理是什么?5. es的segment是什么?6. es的分段存储和分段索引的概念及区别?7. 索引相关的问题&#xff1f…

服务器感染了.DevicData-P-XXXXXXXX勒索病毒,如何确保数据文件完整恢复?

引言: 在当今数字化时代,勒索病毒已成为网络安全威胁的一个严峻问题。其中,.DevicData-P-XXXXXXXX 勒索病毒以其恶意加密文件的手段引起了广泛关注。本文将介绍该病毒的特点、数据恢复方法以及如何预防遭受其攻击。 如不幸感染这个勒索病毒&…

【Java数据结构】03-二叉树,树和森林

4 二叉树、树和森林 重点章节,在选择,填空,综合中都有考察到。 4.1 掌握二叉树、树和森林的定义以及它们之间的异同点 1. 二叉树(Binary Tree) 定义: 二叉树是一种特殊的树结构,其中每个节点…

Python(wordcloud):根据词频信息(xlsx、csv文件)绘制词云图

一、前言 本文将介绍如何用python根据词频信息(xlsx、csv文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。 二、安装并引入相关的库 1、安装相关的库 pip install jieb…

MinIO上传

简介 MinIO是一个开源的对象存储服务器,兼容Amazon S3 API。它提供了可扩展、高性能和高可用性的存储解决方案,适用于大规模数据存储和分发。 MinIO的设计目标是简单易用、轻量级和高度可定制。它可以在企业内部部署,也可以在公有云上使用。…