示例演示“距离矢量路由算法”工作原理

合集下载

第6章路由算法总结ppt课件

第6章路由算法总结ppt课件

在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
非自适应路由算法
固定路由算法(fixed routing algorithm) 洪泛法(flooding) 随机走动法(random walk) 基于流量的路由算法(flow-based routing)
由所有的线路平均延迟,可直接计算出流量的加权 平均值,从而得到整个网络的平均分组延迟
这样找出网络的最小平均延迟就可以实现最优路由 选择
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
自适应路由算法
孤立路由选择 集中路由选择 分布式路由选择
当结点或链路发生故障时,该方法可使路由算法有 较好的稳健性
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么
基于流量的路由算法
该方法不仅考虑网络的拓扑结构,还要考虑网络的 负载因素
对某一给定的线路,如果已知负载量与平均流量, 那么可以根据排队论的知识计算出该线路上的平均 分组延迟
• 如果找不到相应的表项,在G的路由表中增加一项 :(N,G’,D’+C)
• 如果V=G’,G中路由表对应的表项根据D’+C和D的 比较获得
– 如果D’+C<D,G中表项更新为(N,G’,D’+C)
– 否则G中表项保持原状,仍为(N,V,D)
在日常生活中,随处都可以看到浪费 粮食的 现象。 也许你 并未意 识到自 己在浪 费,也 许你认 为浪费 这一点 点算不 了什么

计算机网络原理 距离矢量路由

计算机网络原理  距离矢量路由

计算机网络原理距离矢量路由距离矢量路由选择(Distance Vector Routing)算法是通过每个路由器维护一张表(即一个矢量)来实现的,该表中列出了到达每一个目标地的可知的最短路径及所经过的线路,这些信息通过相邻路由器间交换信息来更新完成。

我们称这张表为路由表,表中按进入子网的节点索引,每个表项包含两个部分,到达目的地最优路径所使用的出线及一个估计的距离或时间,所使用的度量可能是站段数,时间延迟,沿着路径的排队报数或其他。

距离矢量路由选择算法有时候也称为分布式Bellman-Ford路由选择算法和Ford-Fulkerson算法,它们都是根据其开发者的名字来命名的(Bellman,1957;Ford and Fulkerson,1962)。

它最初用于ARPANET路由选择算法,还用于Internet和早期版本的DECnet 和Novell的IPX中,其名字为RIP。

AppleTalk t Cisco路由器使用了改进型的距离矢量协议。

在距离矢量路由选择算法中,每个路由器维护了一张子网中每一个以其他路由器为索引的路由选择表,并且每个路由器对应一个表项。

该表项包含两部分:为了到达该目标路由器而首选使用的输出线路,以及到达该目标路由器的时间估计值或者距离估计值。

所使用的度量可能是站点数,或者是以毫秒计算的延迟,或者是沿着该路径排队的分组数目,或者其他类似的值。

假设路由器知道它到每个相邻路由器的“距离”。

如果所用的度量为站点,那么该距离就为一个站点。

如果所用的度量为队列长度,那么路由器只需检查每一个队列即可。

如果度量值为延迟,则路由器可以直接发送一个特殊的“响应”(ECHO)分组来测出延时,接收者只对它加上时间标记后就尽快送回。

距离矢量路由协议和链路状态路由协议

距离矢量路由协议和链路状态路由协议

距离矢量路由协议和链路状态路由协议距离矢量路由协议和链路状态路由协议是计算机网络中常见的两种路由协议。

它们分别通过不同的方式来确定网络中数据包的最佳传输路径。

本文将对这两种路由协议进行深入探讨,从协议原理、工作方式、优缺点等几个方面进行比较分析,以便读者更好地理解两种路由协议的异同之处。

一、距离矢量路由协议距离矢量路由协议(Distance Vector Routing Protocol)是一种基于距离度量的路由选择协议,它根据每条路径的距离(即跳数或者成本)来确定最佳路径。

常见的距离矢量路由协议有RIP(Routing Information Protocol)和IGRP(Interior Gateway Routing Protocol)等。

1.1原理距离矢量路由协议的原理比较简单,每个路由器会周期性地向它的邻居路由器发送路由更新信息,包括自己所知道的所有网络地址及到达这些地址的距离。

邻居路由器收到这些更新信息后,会根据这些信息更新自己的路由表。

如果某个路由器的路由表发生变化,它就会通知它的邻居路由器。

通过这种方式,路由表信息会在整个网络中传播,直到所有路由器的路由表都收敛到最优状态。

1.2工作方式距离矢量路由协议的工作方式是分散式的,每个路由器只知道它直接相连的邻居路由器的路由信息,并且根据这些信息来计算到达其他网络的最佳路径。

因此,距离矢量路由协议的路由表只包含了直接相连的邻居路由器的信息,而不包含整个网络的拓扑结构信息。

1.3优缺点距离矢量路由协议的优点是实现比较简单,对网络带宽和处理器资源的需求较低。

但是它也存在很多缺点,比如收敛速度慢、不适合大型网络、易受环路影响等。

二、链路状态路由协议链路状态路由协议(Link State Routing Protocol)是另一种常见的路由选择协议,它根据网络中每个路由器的链路状态信息来计算最佳路径。

常见的链路状态路由协议有OSPF(Open Shortest PathFirst)和IS-IS(Intermediate System to Intermediate System)等。

距离矢量路由算法

距离矢量路由算法

距离矢量路由算法(Distance Vector Routing,DV)是ARPANET网络上最早使用的路由算法,也称Bellman-Ford路由算法和Ford-Fulkerson算法,主要在RIP(Route Information Protocol)协议中使用。

Cisco的IGRP和EIGRP路由协议也是采用DV这种路由算法的。

“距离矢量路由算法”的基本思想如下:每个路由器维护一个距离矢量(通常是以延时是作变量的)表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新。

每个距离矢量表项包括两部分:到达目的结点的最佳输出线路,和到达目的结点所需时间或距离,通信子网中的其它每个路由器在表中占据一个表项,并作为该表项的索引。

每隔一段时间,路由器会向所有邻居结点发送它到每个目的结点的距离表,同时它也接收每个邻居结点发来的距离表。

这样以此类推,经过一段时间后便可将网络中各路由器所获得的距离矢量信息在各路由器上统一起来,这样各路由器只需要查看这个距离矢量表就可以为不同来源分组找到一条最佳的路由。

现假定用延时作为距离的度量,举一个简单的例子,如图7-37所示。

假设某个时候路由器Y收到其邻居路由器X的距离矢量,其中m是Y估计到达路由器X的延时。

若Y路由器知道它到邻居Z的延时为n,那么它可以得知Z通过Y到达X需要花费时间m+n。

如果Z路由器还有其他相邻路由器,则对于从其他每个邻居那儿收到的距离矢量,该路由器执行同样的计算,最后从中选择费时最小的路由作为Z去往X的最佳路由,然后更新其路由表,并通告给其邻居路由器。

图7-37 距离矢量路由算法简单实例现以一个如图7-38所示的示例介绍距离矢量算法中的路由的确定流程,各段链路的延时均已在图中标注。

A、B、C、D、E代表五个路由器,假设路由表的传递方向为:A → B →C → D → E(这与路由器启动的先后次序有关)。

下面具体的流程。

(1)初始状态下,各路由器都只收集直接相连的链路的延时信息,各路由器结点得出各自的初始矢量表如图7-39所示。

距离矢量路由算法原理实验

距离矢量路由算法原理实验

距离矢量路由算法原理实验【实验目的】1、要求实验者利用路由选择算法模拟软件提供的通信功能,模拟距离矢量路由选择算法的初始化、路由信息扩散过程和路由计算方法;2、掌握距离矢量算法的路由信息扩散过程;3、掌握距离矢量算法的路由计算方法。

【预备知识】1、路由选择算法的特征、分类和最优化原则2、路由表的内容、用途和用法3、距离矢量算法的基本原理【实验环境】1、分组实验,每组4~10人。

2、拓扑:虚线表示节点之间的逻辑关系,构成一个逻辑上的网状拓扑结构。

3、设备:小组中每人一台计算机。

4、实验软件:路由选择算法模拟软件(routing.exe )【实验原理】路由选择算法模拟软件根据给定的拓扑结构,为实验者提供基本的本地路由信息,并能发送和接收实验者所组织的路由信息,帮助实验者完成路由选择算法的路由信息扩散过程、路由计算过程和路由测试过程。

1、模拟软件的功能(图2-1)● 在局域网内根据小组名称和成员数量建立一个模拟网络拓扑结构,每个成员模拟拓扑中的一台路由器,路由器上的本地路由信息由实验软件提供。

● 向实验者指定的发送对象发送实验者自行组织的发送内容。

● 提示实验者有数据需要接收,并显示接收内容。

N路由节点2 路由节点N-1 N = 4 ~ 10●为实验者提供记录路由计算结果的窗口——路由表窗口。

●为实验者提供分组逐站转发方法来验证路由选择的结果。

图2-1 路由选择算法模拟软件主界面2、模拟软件的使用方法1)建立小组通过建立小组,每个小组成员可以获得本节点的编号和本地直连链路信息。

a)4~10人一组,在实验前自由组合形成小组。

小组人数尽量多些,每人使用一台计算机。

启动实验软件后点击“建立小组”按钮。

(图2-2)图2-2 选择建立小组b)在建立小组的窗口内填入小组名称和成员数量。

同一小组成员必须填写同样的小组名称和成员数量才能正确建立小组。

(图2-3)图2-3 建立小组窗口图2-4 小组建立过程c)点击“加入”按钮后,实验软件以广播形式将组名广播出去。

距离矢量路由协议路由环路问题的解决

距离矢量路由协议路由环路问题的解决

距离矢量路由协议中路由环路问题的解决方法概括来讲,主要分为六种:1.定义最大值;2.水平分割技术;3.路由中毒;4.反向路由中毒;5.控制更新时间;6.触发更新。

下面我们就来一一讲解各种解决方法的实现原理:1.定义最大值:距离矢量路由算法可以通过IP头中的生存时间(TTL)来纠错,但路由环路问题可能首先要求无穷计数。

为了避免这个延时问题,距离矢量协议定义了一个最大值,这个数字是指最大的度量值(如rip协议最大值为16),比如跳数。

也就是说,路由更新信息可以向不可到达的网络的路由中的路由器发送15次,一旦达到最大值16,就视为网络不可到达,存在故障,将不再接受来自访问该网络的任何路由更新信息。

2.水平分割:一种消除路由环路并加快网络收敛的方法是通过叫做“水平分割”的技术实现的。

其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。

比如有三台路由器ABC,B向C学习到访问网络10.4.0.0的路径以后,不再向C声明自己可以通过C访问10.4.0.0网络的路径信息,A向B学习到访问10.4.0.0网络路径信息后,也不再向B声明,而一旦网络10.4.0.0发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达10.4.0.0的错误信息。

3.路由中毒(也称为路由毒化):定义最大值在一定程度上解决了路由环路问题,但并不彻底,可以看到,在达到最大值之前,路由环路还是存在的。

为此,路由中毒就可以彻底解决这个问题。

其原理是这样的:假设有三台路由器ABC,当网络10.4.0.0出现故障无法访问的时候,路由器C便向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络10.4.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居10.4.0.0这个网络已经失效,不再接收更新信息,从而避免了路由环路。

距离矢量路由算法原理实验教案

距离矢量路由算法原理实验教案
计算机通信网实验
实验3:距离矢量路由算法原理 实验
路由算法原理性实验
目标
要求实验者根据路由选择算法模拟软件提供的功 能,模拟分布式路由选择算法的初始化、路由信 息扩散过程和路由计算方法;
掌握D-V算法的路由信息扩散过程; 掌握D-V算法的路由计算方法。
实验前的准备
填写实验报告中实验原理部分 分组
2
实 验 软 件 主 界 面
3
建立小组
4~10人一组,互相配合,多多益善。 建立小组过程:设置组名和小组人数
4
建立小组:设置组名和成员数
同一小组成员设置的成员数量应一致 设置完成后选择加入,可观察到其他成员加
入的情况
5
小组建立
当成员到达预定数量后,可选择确定完成小 组建立
6
本地信息Biblioteka 小组通过路由更新信息的交互,形成新的路由
15
注意
实验各步骤都需 要进行记录
请翔实、忠实地 记录实验数据
如果路由发生错 误,将小组的记 录数据汇总后, 分析并发现错误 产生的原因。
16
思考题
1、一个路由节点如何判断所使用的路由算法已经收 敛?
2、一个路由节点在路由形成过程中(即路由算法没 有收敛时),应该如何处理收到的数据?为什么? 假设这些数据的目的都不是这个路由节点。
3、请根据实验记录中的距离矢量路由信息,画出对 应的拓扑图。
4、在距离矢量算法算法的路由测试实验中,被测路 由是否正确?是否都是最短路径?如果不是,原因 是什么?
17
再将更新后的路由表发送给相邻结点 经过多次来回,各结点算出到其它结点的最
短路由
11
测试路由
点击“测试路径”按钮,继续点击“已发送X 份数据按钮”

计算机网络距离矢量路由算法实验报告

计算机网络距离矢量路由算法实验报告

计算机网络实验报告距离矢量路由算法一,实验内容:A D设计一个算法,实现上面拓扑图的各个结点之间路由表的交换,要求显示出结点路由表的交换过程并显示每次交换结束后的各个结点保存的路由表的内容。

最后显示交换了几次后各个结点路由表开始变得稳定。

二,算法设计:首先创建一个类。

它有两个成员变量。

一个是二维数组型的x[i][j]用来存放从加点i到结点j的距离,一个是一位数组型的y[i]用来存放从源结点到目标结点i的路径上的第一个途经的结点。

然后为每一个结点实例化一个对象用来存放此节点的路由表。

初始化各个节点的路由表,如果两个节点之间有连线则将其之间的距离赋给x[i][j],y[j]=j.如果没有直接路径则设x[i][j]=1000,y[j]=0.算法开始的时候各个结点交换路由表。

比较如果有类似x[i][j]和x[j][k]的项则设置x[i][k]=MIN(x[i][k],x[i][j]+x[j][k]),为了在结点A的邻居节点执行距离矢量路由更新时,它使用的是A的旧表,可以再设置两个二维数组用来暂时存放各个节点的新路由表,待各个节点一次交换都完毕后在把暂存的新节点依次赋给各个节点的路由表。

各个节点都执行此操作,为了确定供交换了几次可以设置一个标质量k.初始k=0,交换一次K就加一,最后k的值便是交换的次数。

三,遇到的问题及解决方案:刚开始遇到这个题目是觉得无从下手,觉得这个图这么复杂函数循环又没有规律怎样让各个节点依次交换呢,又怎样判断什么时候各个节点的路由表变稳定呢?着一些列的问题使自己变得很烦躁。

待到心情平静下来认真的一点一点推敲的时候发现只有七个节点,为每个节点设置一个交换函数也不麻烦而且这样思路便变得非常的清楚,至于怎样知道何时路由表稳定则我在每个结点函数中设置了一个标志量,在主函数中将其初始化为零,在下面的结点函数中都将其变成1,这样只有调用子函数这个标志量便会变成1,检测标质量是否为1来判断路由表是否变的稳定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档