距离向量算法

2023-11-04

距离向量算法

此算法的基础是Bellman-Ford算法,这种算法的要点是:

设 X 是结点 A 到 B 的最短路径上的一个结点。若把路径 A到B 拆成两段路径 A到X 和 X到B,则每段路径 A到X 和 X到B 也都分别是结点 A到X 和结点 X到B 的最短路径。

对每一个相邻路由器发送过来的RIP报文,进行以下步骤:

1)对地址为 X 的相邻路由器发来的RIP报文,先修改此报文的所有项目:把“下一跳”字段中的地址都改为 X ,并把所有的“距离”字段值加 1   #假设从位于 X 的相邻路由器发来RIP报文的某一项目是:“Net2,3,Y”,意思是“我经过路由器Y到网络Net2的距离是3”,那么本路由器可推断出“我经过路由器X到网络Net2的距离是3+1=4”,于是将收到的RIP报文的这一项目修改为:“Net2,4,X”,作为下一步和路由表中原有项目进行比较时使用(比较后确定是否更新),每一个项目都有三个关键数据,即:到目的的网络 N ,距离 d ,下一跳路由器 X 。

2)对修改后的RIP报文中的每个项目,执行以下步骤:

if (原来的路由表中没有目的网络N):

把该项目添加到路由表中  #本路由表中没有到目的网络Net2的路由,那么路由表中就要加入新的项目“Net2,4,X”

在路由表中有目的网络N,查看下一跳路由器地址:elif(下一跳路由器地址是 X):

把收到的项目替换原路由表中的项目  #不管原来路由表中项目时“Net2,3,X”还是“Net2,5,X”,都要更新为“Net2,4,X”

在路由表中有目的网络N,但下一跳路由器不是X,比较距离d与路由表中的距离:elif(收到的项目中的距离 d 小于路由表中的距离):

更新  #若路由表中已有项目“Net2,5,P”,就更新为“Net2,4,X”

else:

无动作  #若距离更大了,显然不应更新;若距离不变,也不更新

3)若三分钟还没收到相邻路由器的更新路由表,则把此相邻路由器记为不可到达的路由器,即“距离”为 16。

4)return

【例】:

已知路由器R6有表a所示的路由表。现收到相邻路由器R4发来的路由更新信息,如表b所示。试更新路由器R6的路由表。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将表c与表a比较:

row1:没有Net1,添加到表a中

row2:有Net2,且下一跳路由器相同,更新

row3:有Net3,但下一跳路由器是不同,比较距离得到,新的距离小于路由表中距离,更新

综上所述:

更新后R6的路由表如表d 所示:

在这里插入图片描述
RIP协议让AS中所有路由器都和自己相邻路由器定期交换路由信息,并不断更新路由表,使得每个路由器到每个目的网络的路由都是最短的(跳数最少)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

距离向量算法 的相关文章

  • 如何创建对电脑屏幕的自动点击的脚本

    要创建对电脑屏幕的自动点击脚本 你可以使用操作系统自带的脚本语言 或者使用第三方自动化工具 使用操作系统自带的脚本语言 Windows 你可以使用 Windows 自带的 Visual Basic 脚本语言来创建自动点击脚本 使用 Visu
  • 进程-进程之进程状态(R、S、D、T、Z、X)

    进程概念 1 正在执行的程序 2 正在计算机上执行的程序实例 3 能分配处理器并由处理器执行的实体 进程的两个基本元素是程序代码和代码相关联的数据集 进程是一种动态描述 但并不代表所有的进程都在运行 这就可以引入 进程状态 进程在内存中因策
  • 小程序发布流程

    前言 小程序开发完成 并且经过了本地的测试后 提交审核 1 服务器域名配置一个月内可申请5次修改 服务器域名需经过ICP备案 新备案域名需24小时后才可配置 域名格式只支持英文大小写字母 数字及 不支持IP地址及端口号 服务器配置完成后 在

随机推荐

  • JavaScript基础知识全总结

    JavaScript基础 浏览器说明 浏览器是指可以显示网页服务器或者文件系统的HTML文件内容 并让用户与这些文件交互的一种软件 通俗的讲 可以显示页面的一个软件 国内网民计算机上常见的网页浏览器有 QQ浏览器 Internet Expl
  • 串口助手调试Lora模组

    硬件 两个usb装TTL 两个lora
  • DB实验(1)数据库和表的创建与管理

    一 实验内容 步骤以及结果 1 利用图形用户界面连接数据库 例如 MySQL Workbench或者 HeidiSQL 2 利用命令行连接数据库 3 利用图形用户界面创建 备份 删除和还原数据库和数据表 创建SPJ MNG数据库 在SPJ
  • 探析ElasticSearch Kibana在测试工作中的实践应用

    一 为什么使用ES Kibana 离线数据测试中最重要的就是数据验证 一部分需要测试es存储数据的正确性 另一部分就需要验证接口从es取值逻辑的正确性 而为了验证es取值逻辑的正确性 就需要用到Kibana 它能帮助测试同学更加快速高效的执
  • 【utools】vue2开发utools插件项目相关经验(保姆式详细介绍)

    目录 前言 初始化utools项目配置 vue2与utools配合 开发注意事项 utools提供的API使用 数据持久化 utools的部署和发布 结语 前言 utools是一个非常好用的软件 简易的各种工具对于我的生产力有很大提升 特别
  • 【QT+OpenCV】人脸识别简易版

    通过OpenCV自带的特征分类器和函数 实现一个简易版的人脸识别 在程序执行前 先了解一下OpenCV相关知识 haar特征分类器的使用 1 图像识别理论 知识 经验 2 haar特征分类器 正样本 负样本进行训练 haar特征 卷积算法
  • C++输入 / 输出运算符的重载-详细解释

    为什么需要重载输入输出运算符 有人会问 我直接用 iostream 里面的标准输入输出不好吗 搞这么麻烦 事实上 你会发现C 里面很多的 尤其是运算符 重载都是 面向对象惹的祸 而用户自定义数据类型的输入输出 就是通过重载运算符 lt lt
  • $.extend(true,{},a,b),深入理解,小心陷阱

    extend一般情景下 使用深度拓展两个对象时 我们想要的效果是 b对象覆盖掉a对象中存在的所有属性 没有则新增到a对象中 下面我们看一下我所遇到的问题 我希望通过深度拓展将tmp中的editoption覆盖掉ret中的editoption
  • Java开发区块链的三大sdk开发库

    如果你想将区块链合并到一个Java项目中 现在我们来看看就是这个细分领域中三个最大的OSS玩家 好的伙计们 我们都听说过比特币 以太坊或其他加密货币 其中有一些时髦的名字围绕着我们常见的新闻 但我们作为Java开发人员知道如何轻松地与这些区
  • 关于c语言循环,我想说的是:

    大一萌新写的c语言都能看懂版 一 Why does it work的博客 CSDN博客 大一萌新写的c语言都能看懂版 二 Why does it work的博客 CSDN博客 编了这么久的代码 对于运行你了解多少 Why does it w
  • Python安装第三方库,出现‘PyThreadState’ has no member named ‘exc_type’解决方法

    最近由于工作需要 要从hbase中读取数据 然后处理过后 展示给用户 在网上搜通过Python的happybase模块可以进行简单快捷的读取 但是在安装happybase 让我非常不开心 具体错误如下 Collecting happybas
  • 【Java校招面试】实战算法(五)——分数相加(虎牙)

    目录 前言 一 题目描述 二 解题思路 三 代码实现 后记 前言 实战算法 是本专栏的第三个部分 本篇博文是第五篇博文 主要讲解虎牙笔试题 分数相加 的解法 如有需要 可 点击这里 返回本专栏的索引文章 点击这里 返回上一篇 Java校招面
  • git add , git commit 添加错文件 撤销

    1 git add 添加 多余文件 这样的错误是由于 有的时候 可能 git add 空格 点 表示当前目录所有文件 不小心就会提交其他文件 git add 如果添加了错误的文件的话 撤销操作 git status 先看一下add 中的文件
  • js判断移动端还是pc端

    js判断移动端还是pc端 function isMobile let userAgentInfo navigator userAgent let Agents Android iPhone SymbianOS Windows Phone i
  • cat /proc/iomem

    在proc目录下有iomem和ioports文件 其主要描述了系统的io内存和io端口资源分布 对于外设的访问 最终都是通过读写设备上的寄存器实现的 寄存器不外乎 控制寄存器 状态寄存器和数据寄存器 这些外设寄存器也称为 IO端口 并且一个
  • JavaScript中的Object.assign()方法

    目录 介绍 什么是Object assign JavaScript可枚举属性 语法和参数 您可以使用Object assign 方法做什么 合并对象 克隆对象 关于Object assign 方法的注意事项 extend和Object as
  • FBEC2021丨近60+媒体联合宣发,行业年度影响力大会不容错过!

    FBEC2021暨第六届金陀螺奖 2021未来商业生态链接大会暨第六届金陀螺奖颁奖典礼 简称 FBEC2021 将于2021年12月10日在深圳市大中华喜来登酒店盛大召开 本次大会由陀螺科技主办 以 迎风破局 守正创新 为主题 聚焦游戏 电
  • Elasticsearch搜索返回值默认最大为10000解决方案

    以下为查询简单的查询elasticsearch索引例子 curl XPOST http es ip 9200 search d size 0 返回JSON took 1 timed out false shards total 2 succ
  • js中判断是否对象的方法

    目前据我所知的方法共有三种 1 typeof let obj a 1 b 2 c 3 console log typeof obj 返回 object 从判断结果上来看 似乎并没有太大的问题 但如果你把对象改为数组 他返回的也会是同样的结果
  • 距离向量算法

    距离向量算法 此算法的基础是Bellman Ford算法 这种算法的要点是 设 X 是结点 A 到 B 的最短路径上的一个结点 若把路径 A到B 拆成两段路径 A到X 和 X到B 则每段路径 A到X 和 X到B 也都分别是结点 A到X 和结