动态路由协议及分类

动态路由协议及分类3 动态路由协议及分类前面已经为大家介绍了路由器对于直连路由的发现过程 以及静态路由的概念和部署要点 对于一个小型网络 静态路由或许已经能够满足需求 但是在大中型网络中 由于网段数量特别多 网络拓扑复杂等原因 仅仅使用静态路由来实现数据互通显然是不太现实的 配置及维护工作量都太大 再者静态路由无法动态地响应网络拓扑变更 此时就需要考虑另一种方案 动态路由协议 DynamicRouti 了 当我们在路由器上激活了动态路由协议后 就相当于激活了路由器的某种能力 路由器之间就

技术背景

  • 对于一个小型网络,静态路由或许已经能够满足需求,但是在大中型网络中,由于网段数量特别多、网络拓扑复杂等原因,仅仅使用静态路由来实现数据互通显然是不太现实的,原因是配置及维护工作量都太大,再者存在静态路由无法动态地响应网络拓扑变更等因素。
  • 动态路由协议(Dynamic Routing Protocol)可以很好地解决上述需求问题。
  • 在路由器上激活了动态路由协议后,就相当于激活了路由器的某种能力,路由器之间就能够交互路由信息或者用于路由计算的数据,而当网络拓扑发生变更时,动态路由协议能够感知这些变化并且自动地作出响应,从而使得网络中的路由信息适应新的拓扑,这种动作完全由协议自动完成,无需人为干预。
  • 因此在一个规模较大的网络中,我们往往会使用动态路由协议,或者静态路由与动态路由协议相结合的方式来建设该网络。

动态路由协议分类

  • 动态路由协议有很多,而分类的方法也存在多种。
  • 基于协议算法不同,可以将动态路由协议分成两类:
  1. 距离矢量路由协议(Distance Vector Routing Protocol);
  2. 链路状态路由协议(Link State Routing Protocol) 。
  • 根据工作范围的不同,动态路由协议可分为两类:
  1. IGP ( Interior Gateway Protocol,内部网关协议),比如RIP, OSPF, IS-IS等;
  2. EGP ( Exterior Gateway Protocol,外部网关协议),比如BGP ( Border Gateway Protocol )等。
  • IGP被用于在AS(Autonomous System,自治系统)内部实现路由信息的交互,而EGP则被用于在AS之间实现路由信息的交互。AS的传统定义是,由一个单一的机构或组织所管理的一系列IP网络及其设备所构成的集合,可以简单地将AS理解为一个独立的机构或者企业所管理的网络,比如一家跨省公司的网络等。

距离矢量路由协议

  • 距离矢量路由协议指的是基于距离矢量的路由协议,RIP是最具代表性的距离矢量路由协议。
  • “距离矢量”这个概念包含两个关键的信息:“距离”和“方向”,其中“距离”指的是到达目标网络的度量值,而方向指的是到达该目标网络的下一跳设备。
  • 每一台运行距离矢量路由协议的路由器都会周期性地将自己的路由表通告出去,其直连的路由器会收到这些路由信息,学习前者通告的路由并更新自己的路由表后,它也会向自己直连的路由器通告其路由表,最终网络中的每台路由器都能获知到达各个网段的路由,这个过程被称为路由的泛洪(Flooding)过程。
示例

如下图所示的网络拓扑中,

在这里插入图片描述

  • R1及R2两台路由器直连。
  • 初始情况下R1及R2都只知道自己“家门口的情况”,也就是说,R1及R2都自动发现了自己直连接口的路由。R1在其路由表中写入192.168.12.0/24及1.0.0.0/8两条直连路由,而R2则在其路由表中写入192.168.12.0/24这一条直连路由。
  • 对于R2而言,此刻是无法访问1.0.0.0/8的,因为在它的路由表中并没有任何能够到达这个网段的路由信息。
  • 现在R1和R2上激活距离矢量路由协议。
  • R1路由通告:
    (1)R1将已经发现的路由(1.0.0.0/8及192.168.12.0/24)通过路由协议报文通告给R2,这两条路由各附带着一个度量值。
    (2)以距离矢量路由协议的典型代表RIP为例,它使用跳数(Hop Count)作为路由的度量值,所谓跳数就是到达目的网段所需经过的路由器的个数,直连网段的度量值被视为0跳。
    (3)R1将两条直连路由通告给R2时,为路由设置的跳数为1,“我家门口的这些网段对于我自己而言可以直接到达(只需0跳),现在别人要经过我来访问该网段,就需要加上我这一跳”。


  • R2处理R1的路由通告:
    (1)由于192.168.12.0/24是R2自己的直连网段,因此R2会忽略R1通告过来的、到达该网段的路由更新,而1.0.0.0/8路由对于R2而言是未知的,因此R2将这条路由加载进路由表,同时为该条路由关联度量值:1跳,并且把路由的通告者R1视为该条路由的下一跳。
    (2)当R2要转发到达1.0.0.0/8的数据包时,就会将数据包发给下一跳路由器R1。可以形象的理解就是:“R2认为1.0.0.0/8可以通过R1到达,自己与该网段距离1跳路由器”,这也就是“距离矢量”名称的由来。

  • 需要注意的是,运行距离矢量路由协议的路由器并不了解网络的拓扑结构,该路由器只知道:
    (1)自己与目的网络之间的距离;
    (2)从哪个方向可到达目的网络。

链路状态路由协议

  • 链路状态路由协议与距离矢量路由协议不同,运行链路状态路由协议的路由器会使用一些特殊的信息描述网络的拓扑结构及IP网段,这些信息被称为链路状态(Link State )信息,所有的路由器都会产生描述自己直连接口状况的链路状态信息。
  • 路由器将网络中所泛洪的链路状态信息都搜集起来并且存入一个数据库中,这个数据库就是LSDB( Link-State Database,链路状态数据库),
  • LSDB可以视为对整个网络的拓扑结构及IP网段的描绘,所有路由器拥有对该网络的统一认知,接下来所有的路由器都基于LSDB使用特定的算法进行计算,计算的结果是得到一棵以自己为根的、无环的最短路径树,并将基于这棵树得到的路由加载到路由表中。
  • 典型的链路状态路由协议有OSPF及IS-IS。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233434.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月20日 下午8:01
下一篇 2025年7月20日 下午8:22


相关推荐

  • struts2标签详解[通俗易懂]

    struts2标签详解[通俗易懂]struts2标签讲解要使用Struts2的标签,只需要在JSP页面添加如下一行定义即可:<%@taglibprefix="s"uri="/struts-t

    2022年7月2日
    24
  • Python&R LEfSe 分析

    Python&R LEfSe 分析软件安装与路径添加 在涉及到物种或基因组间差异分析的方法中,LEfSe是目前常见的方法。LEfSe实现的方式主要有在线分析和本地分析,在线分析会受到网络及其他因素影响,因而速度可能极慢。本地分析可基于Windows或Linux系统,调参更加灵活。本文以Windows系统为例,向大家展示如何在自己的本本上运行LEfSe,再也不用去求公司了…… 首先,我们要安装好Pyhthon(2.7版本)和R(…

    2022年4月29日
    52
  • 面试之springboot自动配置原理「建议收藏」

    面试之springboot自动配置原理「建议收藏」自动配置首先从注解说起。@SpringBootApplication由三个注解组成:@CompanentScan,@EnableAutoConfiguration,@SpringBootConfiguration(其实就是@Configuration注解),其中@EnableAutoConfiguration通过@Import注解将AutoConfigurationImportSelector.class这个类引进来。该类会去加载所有jar包的META-INFO下面的spring-……

    2022年8月21日
    7
  • 用pipenv创建虚拟环境,并在pycharm里应用

    用pipenv创建虚拟环境,并在pycharm里应用安装 pipenvpipins 查看 pipenv 用法 pipenv 进入到你存放虚拟环境的路径下 创建虚拟环境 cdD pycharm venv io interactionp 会在该目录下生成 Popflie 文件 存储虚拟环境相关信息 可用文本编辑器打开 该文件默认是外国的源 此时可以将其改为国内源 https pypi tuna tsinghua edu cn simple 这样库的安装速度会快一点激活虚拟环境

    2026年3月27日
    2
  • 冒泡排序python实现_冒泡排序python代码优化

    冒泡排序python实现_冒泡排序python代码优化一、什么是冒泡排序冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻的元素可以交换,就表明完成了排序。一般情况下,称某个排序算法稳定,指的是当待排序序列中有相同的元素时,它们的相应位置在排序后不会发生改变。二、示例假设待排序序列为(5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示:第一轮排序,此时整个序列中的元素都位于

    2022年10月15日
    3
  • 中标麒麟正在启动caja_中标麒麟和win7差距

    中标麒麟正在启动caja_中标麒麟和win7差距1问题背景在使用UEFI安装中标麒麟系统时,出现warning:/dev/disk/by-label/NeoKylindoesnotexit如下图所示(图来源网络):2原因分析系统在DXE(DriverExecutionEnviroment)驱动加载过程中需要查找系统的启动项/启动文件,也就是waining中的:/dev/disk/by-label/NeoKylin显然,根据报错我们可知,问题就出在该启动文件的路径上–找不到对应的启动文件。3解决方法3.1确定/查看

    2022年8月10日
    98

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号