文档库 最新最全的文档下载
当前位置:文档库 › 实验二距离矢量路由算法模拟

实验二距离矢量路由算法模拟

实验二距离矢量路由算法模拟
实验二距离矢量路由算法模拟

实验二距离矢量路由算法模拟

1. 实验目的

学生通过“分布式自适应路由”演示软件,

(1)验证距离矢量路由选择算法的功能和性能,了解动态路由算法的运行机制;

(2)通过设置不同的网络拓扑结构和线路延迟,掌握路由表的计算方法。

2. 实验环境

(1) Windows 9X/2000/XP/NT/2003

(2) TCP/IP协议

3. 实验要求:

实验可分为单机模拟和多机模拟,在单机模拟实验中:

1)当“距离矢量”取自线路的往返时延时,设计一个网络拓扑结构(其中包含6个路由器),分别给出路由器间的距离矢量,并要求计算各自的路由表;运行Router WF程序,按照设计的拓扑结构,设置程序中的网络结构和距离矢量的值,验证路由表最后更新的内容与自己计算的结果相符;

2)当“距离矢量”取自输出队列的长度(线路延迟量)时,类似于第(1)步,运行Router DL 程序,验证路由表的更新信息;

3)设置不同的网络拓扑结构,验证网络的路由功能;

4)改变线路的延迟,验证该算法的自适应能力。

在多机模拟实验中:

1)根据距离取自线路的往返时延进行模拟实验,可打开“基本算法”文件,运行callrouterU1进行实验。

2)根据距离取自输出队列的长度进行模拟实验,可打开“自动关联更新”文件,运行callrouterU2进行实验。

其中需要注意以下几个方面:

(1)每四人一组,在多机环境中,形成如模拟图所示的逻辑结构。具体操作为根据距离取自线路的往返时延进行模拟实验,可打开“基本算法”文件,运行routerU1进行实验。根据距离取自输出队列的长度进行模拟实验,可打开“自动关联更新”文件,运行routerU2进行实验;

(2)每个主机模拟一个路由器,并获取4台主机的IP地址,以供路由选择;

(3)运行路由选择算法程序(参考软件);

(4)虚拟设定线路延迟量;

(5)4台主机同时运行;

(6)通过每台主机的运行,验证各自的路由表和路由选择功能。

4. 实验步骤:

打开WF,刷新路由表:

设置程序中的网络结构和距离矢量的值,路由表更新:

打开DL,点击启动对路由表刷新

改变网路拓扑刷新路由表验证网路路由功能:

修改线路延迟,刷新路由表,由路由1转发给路由3,路程为从1到2到4到3:

多机模拟实验:

手动刷新路由表直到表不在变化

左上角的路由器向远程2发送:from 6667:

右上角的路由器向远程3发送数据from 6668:

修改线路参数并更新路由表:

左上角的路由器再次向远程2发送:from 6667:

修改线路参数并更新路由表:

右上角的路由器再次向远程3发送数据from 6668:

4. 实验总结:

通过本次实验,形象地了解到路由算法的意义,初步掌握了路由算法的方法。实验开始初期对实验的步骤和方法不太熟悉,不知道如何进行实验和分析实验的结果,经过老师的讲解和互相的讨论,基本弄清了实验的思想和方法。

参考:

一、基本原理:

(1)每个路由器通过测取与相邻路由器的距离,再依据与其相邻路由器交换的距离信息,间接的求出路由表。

(2)各路由器周期性的测取相邻路由器的距离信息

(3)向相邻路由器发送它到每个目的路由器的距离表

(4)同时,它也接收每个相邻路由器发来的距离表

(5)路由器中的老路由表在计算中不被使用

二、计算示例

注释:

1.参考网页https://www.wendangku.net/doc/df13378392.html,/chenjq/www2/Course/CN_Lab06/Router/RouterU/index.html

2.getip程序是获得本主机的ip地址。

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

计算机网络原理距离矢量路由 距离矢量路由选择(Distance Vector Routing)算法是通过每个路由器维护一张表(即一个矢量)来实现的,该表中列出了到达每一个目标地的可知的最短路径及所经过的线路,这些信息通过相邻路由器间交换信息来更新完成。我们称这张表为路由表,表中按进入子网的节点索引,每个表项包含两个部分,到达目的地最优路径所使用的出线及一个估计的距离或时间,所使用的度量可能是站段数,时间延迟,沿着路径的排队报数或其他。 距离矢量路由选择算法有时候也称为分布式Bellman-Ford路由选择算法和Ford-Fulkerson算法,它们都是根据其开发者的名字来命名的(Bellman,1957;Ford and Fulkerson,1962)。它最初用于ARPANET路由选择算法,还用于Internet和早期版本的DECnet 和Novell的IPX中,其名字为RIP。AppleTalk t Cisco路由器使用了改进型的距离矢量协议。 在距离矢量路由选择算法中,每个路由器维护了一张子网中每一个以其他路由器为索引的路由选择表,并且每个路由器对应一个表项。该表项包含两部分:为了到达该目标路由器而首选使用的输出线路,以及到达该目标路由器的时间估计值或者距离估计值。所使用的度量可能是站点数,或者是以毫秒计算的延迟,或者是沿着该路径排队的分组数目,或者其他类似的值。 假设路由器知道它到每个相邻路由器的“距离”。如果所用的度量为站点,那么该距离就为一个站点。如果所用的度量为队列长度,那么路由器只需检查每一个队列即可。如果度量值为延迟,则路由器可以直接发送一个特殊的“响应”(ECHO)分组来测出延时,接收者只对它加上时间标记后就尽快送回。

距离矢量和链路状态区别

距离矢量和链路状态区别 距离矢量(DV)是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的,虽说“兼听则明,偏信则暗”,但是选出最优路径的同时会引发环路问题,当然,DV协议也使用水平分割,毒性逆转,触发更新等特性来避免,无奈的是,这种问题对于竞争对手LS而言是天生免疫的。 链路状态(LS)是“传信的路由”,A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入转发数据库中(即路由表)。 链路状态协议有三样看家本领:LSDB,SPF算法,SPF Tree。还有三张表:邻居表,拓扑表,路由表,但这三张表并不是DV和LS的根本区别,EIGRP作为高级的距离矢量路由协议同样有这三张表,关键点在于表的内容和传递信息的过程。 DV的拓扑表事实上是邻居通告的路由条目的集合,依据算法从中选出最佳的放进路由表,它并不完全了解网络拓扑;而LS的拓扑表是真正意义上的网络拓扑,路由器对网络信息完全了解,所以可以独立的做出决策,确定最佳路由。举例来说,如果我是DV的思维,我从华师去火车东站,通过询问知道,我可以在走到师大暨大车站坐515路车,也可以走到坐177路车,这样问下来有几种方案,我再选一个最优的,以这样的方式我就知道广州市内的一些地方该怎么去;而如果我是LS的思维,我会先去四下打听,搜集信息然后汇总成一张广州市区的地图,然后依据这张地图自己决定如何去火车东站以及其它地方。 路由过滤器对DV和LS的影响也是不同的。运行DV的路由器基于自身的路由表来通告路由信息,其结果是路由过滤器将会对通告产生影响。 运行LS的路由器是基于自身的链路状态数据库来计算出自己的路由,路由过滤器对两路状态的通告和链路状态数据库没有影响,所以只会影响本路由器的路由表的安装,正是因为这种特性,路由过滤器主要被用在进入链路状态域的重新分配点上,即在ASBR执行重发布时,控制那些要进入或离开的路由. ------------------------------------------------------------------- 所以我们总结一下链路状态选择协议的优缺点如下: 链路状态路由选择的优点: 1.收敛速度快:触发更新在每个路由器上进行 2.没有路由环路:才用SPF算法 3.分等级设计网络和路由,更合理的利用网络资源 4.和距离矢量路由协议相比,链路状态路由协议的

距离矢量协议和链路状态协议的区别

距离矢量协议和链路状态协议的区别 一.什么是距离向量路由协议以及什么是链接状态路由协议? (1.)这类协议使用贝尔曼-福特算法(Bellman-Ford)计算路径。在距离-矢量路由协议中,每个路由器并不了解整个网络的拓扑信息。它们只是向其它路由器通告自己的距离、也从其它路由器那里收到类似的通告。(如果在90秒内没有收到相邻站点发送的路由选择表更新,它才认为相邻站点不可达。每隔30秒,距离向量路由协议就要向相邻站点发送整个路由选择表,使相邻站点的路由选择表得到更新。这样,它就能从别的站点(直接相连的或其他方式连接的)收集一个网络的列表,以便进行路由选择。距离向量路由协议使用跳数作为度量值,来计算到达目的地要经过的路由器数。) 每个路由器都通过这种路由通告来传播它的路由表。在之后的通告周期中,各路由器仅通告其路由表的变更。该过程持续至所有路由器的路由表都收敛至一稳定状态为止。 这类协议具有收敛缓慢的缺点,然而,它们通常容易处理且非常适合小型网络。距离-矢量路由协议的一些例子包括:路由信息协议(RIP)内部网关路由协议(IGRP) (2.)链接状态路由协议更适合大型网络,但由于它的复杂性,使得路由器需要更多的C P U 资源。 在链路状态路由协议中,每个节点都知晓整个网络的拓扑信息。各节点使用自己了解的网络拓扑情况来各自独立地对网络中每个可能的目的地址计算出其最佳的转发地址(下一跳)。所有最佳转发地址汇集到一起构成该节点的完整路由表。 与距离-矢量路由协议使用的那种每个节点与其相邻节点分享自己的路由表的工作方式不同,链路状态路由协议的工作方式是节点间仅传播用于构造网络连通图所需的信息。最初创建这类协议就是为了解决距离-矢量路由协议收敛缓慢的缺点,然而,为此链路状态路由协议会消耗大量的内存与处理器能力。 (它能够在更短的时间内发现已经断了的链路或新连接的路由器,使得协议的会聚时间比距离向量路由协议更短。通常,在1 0秒钟之内没有收到邻站的H E L LO报文,它就认为邻站已不可达。一个链接状态路由器向它的邻站发送更新报文,通知它所知道的所有链路。它确定最优路径的度量值是一个数值代价,这个代价的值一般由链路的带宽决定。具有最小代价的链路被认为是最优的。在最短路径优先算法中,最大可能代价的值几乎可以是无限的。) 如果网络没有发生任何变化,路由器只要周期性地将没有更新的路由选择表进行刷新就可以了(周期的长短可以从3 0分钟到2个小时)。 链路状态路由协议的例子有:开放式最短路径优先协议(OSPF),中间系统到中间系统路由交换协议(IS-IS) 二.具体理解链路状态和距离矢量路由协议 距离矢量(DV)是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的,虽说“兼听则明,偏信则暗”,但是选出最优路径的同时会引发环路问题,当然,DV协议也使用水平分割,毒性逆转,触发更新等特性来避免,无奈的是,

距离矢量路由算法原理

距离矢量路由算法原理实验 【实验目的】 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 小组建立过程

实验四 配置距离矢量协议RIP实验

实验四配置距离矢量协议RIP实验 一、背景知识: RIP(Routing information Protocol,路由信息协议)是应用较早、使用较普遍的内部网关协议(Interior Gateway Protocol,IGP),适用于小型同类网络的一个自治系统(AS)内的路由信息的传递。RIP协议是基于距离矢量算法(Distance Vector Algorithms,DVA)的。它使用“跳数”,即metric 来衡量到达目标地址的路由距离。它是一个用于路由器和主机间交换路由信息的距离向量协议,目前最新的版本为v4,也就是RIPv4。 在路由实现时,RIP 负责从网络系统的其它路由器接收路由信息,从而对本地IP 层路由表作动态的维护,保证IP 层发送报文时选择正确的路由。同时负责广播本路由器的路由信息,通知相邻路由器作相应的修改。RIP 协议处于UDP 协议的上层,RIP 所接收的路由信息都封装在UDP协议的数据报中,RIP 在520号UDP端口上接收来自远程路由器的路由修改信息,并对本地的路由表做相应的修改,同时通知其它路由器。通过这种方式,达到全局路由的有效。 二、实验目的 实验目的:了解RIP协议的工作原理及距离矢量算法生成路由表的过程;在路由器上通过设置运行RIP协议,并查看在路由器上所生成的最终路由表,是否和按照工作原理和距离矢量算法所生成的路由表相同,并对路由器建立路由表有一个深刻的认识。 三、实验内容: 实验内容:1、用Boson Network Designer画出网络拓朴结构图;2、对路由器、pc机进行设置,配置RIP 协议;3、检验配置是否成功。 四、实验步骤: (一)画出网络拓扑结构图: 用Boson Network Designer画出网络拓朴结构图,如下所示: 其中,路由器选择思科2514。

距离矢量路由协议及路由环路

第七讲:距离矢量路由协议及路由环路 回顾昨天:提问:1、距离矢量路由协议包括哪几种?2、路由器是如何确定最佳路由的说出步骤? 今天内容:距离矢量路由协议及确保路由表条目的的正确的六种方法,及六种方法的结合使用。 一、距离矢量路由协议学习路由的方法首先明确一点,该协议并不能学到整个网络的拓扑。只能靠学习邻居路由表内容来学习路由。但每个路由表中只有最佳路径(也就是路由)。也就是说只有目的地方向(路由器接口)和距离,于是被叫距离矢量。 举例:高速路上开车,没有地图,出错,只能打听。而打听的人也不知道还要向另外的人打听(好比路由器问邻居路由器,邻居也不知道于是就要再问下一个邻居,这样收敛的速度可想而知) 1、距离矢量路由协议是通过传递路由更新 包来学习路由的(见图10-1),在图10-2到10-4是说明了RIP路由协议是怎样来学习路由的。在路由协议刚刚运行的时

候,路由器没有开始相互发送UPDATE 包,于是路由表里只有自己直连的网段,管理距离是0。如图10-2,路由器学到 了自己直连的网段后便开始向邻居路由 器发送更新包了,此包里包含我们发布 的路由。(一台路由器所直接连接的网段 必须发布在路由协议里才能够被放到 UPDATE包里传送)这样路由器就学到 了其他路由器的路由了见图10-3。路由 器学到了邻居的路由再打包向邻居发, 这样所有路由器会学到所有的路由条 目。如图10-4(注意此图的RIP为RIPV2,找同学说为什么) #########注意:从以上可以看出距离矢量路由协议就是靠和邻居之间周期性的交换路由表来一步一步学到远端路由的####### 2、路由更新包的格式决定了路由协议是有 类还是无类。 实际上有类的路由协议出现的比较早,当时没有出现子网。路由学到的都是正规的ABC 类网段。RIP V1等距离矢量路由协议的更

路由算法介绍

路由算法介绍 网络层的作用:1、路由选择 2、网络互连 3、拥塞控制 4、为上层提供服务 网络层的主要功能是将分组从源机器路由到目标机器。完成路由选择的路由算法是网络层设计的最主要内容。 路由算法:它负责确定一个进来的分组应该被传送到哪一条输出线路上。 如果是数据报子网,将在每一个分组到达时作此决定 如果是虚电路子网,是在虚电路建立时决定,该连接上所有分组都将沿此线路传输 路由算法设计必须考虑的问题:正确性简单性健壮性稳定性公平性最优性路由算法的原则:按照某种指标(传输延迟,所经过的站点数目等)找到一条从源节点到目标节点的较好路径。 静态算法:不会根据当前测量或者估计的流量和拓扑结构,来调整它们的路由决策,所有的路由选择是预先在离线情况下计算好的,在网络启动的时候被下载到路由器中。 1、最短路径路由:

如图所示,图中的每个节点代表一台路由器,每条弧代表一条通信线路,线路上的数字是它的开销。现在我们想找到从A到D的最短路径。过程: (1)节点A标记为永久节点,依次检查每一个与A相邻的节点,并检查它们与A之间的距离。 (2)如果新的标记距离小于该节点原来的标记,说明找到了一条更短路径,该节点需要重新标记,作为暂时性标记 (3)检查整个图中所有有暂时性标记的节点,使其中具有最小标记的那个节点成为永久节点,并且作为下一个工作节点。 (4)重复上述过程,直到没有新的永久节点为止。 如下图所示 2、扩散法:每一个进来的分组将被发送到除了它进来的那条线路之外的每一条输出线路上。 产生的问题:会产生大量的重复分组。

解决办法: 在数据包头设一个计数器初值,每经过一个节点自动减1,计数值 为0 时,丢弃该数据包 在每个节点上建立登记表,则数据包再次经过时丢弃 缺点:重复数据包多,浪费带宽 优点:可靠性高,可用于并发数据库更新。极好的健壮性,可用于军事应用。常作为衡量标准,评价其它路由算法 现代计算机网络通常使用动态的路由算法(自适应算法),而不是上面介绍的静态路由算法,因为静态路由算法不会考虑到网络的当前负载情况。 自适应算法:随拓扑结构和流量的变化改变它们的路由决策,又称为动态路由算法。 1、 距离矢量路由:每个路由器维护一张表(即一个矢量),表中列出了当前抑制的到每个目标的最佳距离,以及所使用的线路。通过邻居之间互相交换信息,路由器不断更新它们内部的表。 举例: B A E F D C 2 3 7 6 1 8 5 4 延迟信息B

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

计算机网络实验报告

距离矢量路由算法 一,实验内容: 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来判断路由表是否变的稳定。 四,源代码 package wangluo; class Jiedian { int y[]=new int[8]; //存放路径上的下一个节点 int x[][]=new int[8][8]; //存放节点间的距离 } public class Luyou { public static void main(String[] args) { Jiedian a=new Jiedian();

★距离矢量路由算法中避免环路的方法

距离矢量路由协议中路由环路问题的解决方法 距离矢量路由协议中路由环路问题的解决方法: 概括来讲,主要分为六种: 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便向邻居路由发送

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

距离矢量路由协议VS链路状态路由协议2009-10-23-J杰 什么是距离向量路由协议? 距离向量路由协议是为小型网络环境设计的。在大型网络环境下,这类协议在学习路由及保持路由将产生较大的流量,占用过多的带宽。如果在9 0秒内没有收到相邻站点发送的路由选择表更新,它才认为相邻站点不可达。每隔30秒,距离向量路由协议就要向相邻站点发送整个路由选择表,使相邻站点的路由选择表得到更新。这样,它就能从别的站点(直接相连的或其他方式连接的)收集一个网络的列表,以便进行路由选择。距离向量路由协议使用跳数作为度量值,来计算到达目的地要经过的路由器数。 例如,R I P使用B e l l m a n - F o r d算法确定最短路径,即只要经过最小的跳数就可到达目的地的线路。最大允许的跳数通常定为1 5。那些必须经过1 5个以上的路由器的终端被认为是不可到达的。 距离向量路由协议有如下几种:IP RIP、IPX RIP、A p p l e Talk RT M P和I G R P。 什么是链接状态路由协议? 链接状态路由协议更适合大型网络,但由于它的复杂性,使得路由器需要更多的C P U 资源。它能够在更短的时间内发现已经断了的链路或新连接的路由器,使得协议的会聚时间比距离向量路由协议更短。通常,在1 0秒钟之内没有收到邻站的H E L LO报文,它就认为邻站已不可达。一个链接状态路由器向它的邻站发送更新报文,通知它所知道的所有链路。它确定最优路径的度量值是一个数值代价,这个代价的值一般由链路的带宽决定。具有最小代价的链路被认为是最优的。在最短路径优先算法中,最大可能代价的值几乎可以是无限的。 如果网络没有发生任何变化,路由器只要周期性地将没有更新的路由选择表进行刷新就可以了(周期的长短可以从3 0分钟到2个小时)。 链接状态路由协议有如下几种:IP OSPF、IPX NLSP和I S - I S。 一个路由器可以既使用距离向量路由协议,又使用链接状态路由协议吗? 可以。每一个接口都可以配置为使用不同的路由协议;但是它们必须能够通过再分配路由来交换路由信息。(路由的再分配将在本章的后面进行讨论。) 一、PK第一番 距离矢量: 运行距离矢量路由协议的路由器,会将所有它知道的路由信息与邻居共享,但是只与直连邻居共享! 链路状态: 运行链路状态路由协议的路由器,只将它所直连的链路状态与邻居共享,这个邻居是指一个域内(domain),或一个区域内(area)的所有路由器!

DTW算法原理分析与源码

引言 随着时代的发展,人们越来越注重生活的品质。便捷时尚成为当代人们的追求目标。现在,语音信号处理的技术趋于完善,语音识别技术的应用有两个发展方向:一个是大词汇量连续语音识别系统,主要应用于计算机的听写输入等;另一个是小型化﹑便携式语音模块的应用,如手机的拨号﹑汽车设备的语音控制等方面的应用,这些应用大多都需要使用硬件实现。 在此次课程设计中,我们引用现今较为成熟的语音信号处理技术,设计一个简单的非实时语音信号识别系统。其主要技术指标是识别率和计算量,其关键是特征参数的提取和模式识别方法。测试模板将预先录制好的0-9的语音文件用按键方式输入,经过A/D转换芯片0809后转化为数字信号,在单片机AT89C52中,先用端点检测将语音中有用的语音部分提取出来(即将头部和尾部的静音部分除掉),然后用LPC算法提取语音信号的特征参数,进行动态归整(DTW算法)后与模板库里面的标准语音作比较,最后将识别结果进行D/A转化后播放出来。在本部分的设计中,则主要完成语音识别的模式匹配算法部分的软件实现。 1 为什么要用DTW算法 孤立词识别方案主要有: (1)采用动态规划(Dynamic Programming)的方法。这是一种运算量较大,但技术上较简单,正识率也较高的方法。其中的失真测度可以用欧氏距离(适于短时谱或倒谱参数),也可以用对数似然比距离(适于LPC参数).决策方法可用最近邻域准则. (2)采用矢量量化(VectorQuantization)的方法.它既可用于语音通信中的波形或参数的压缩,也可用于语音识别.尤其有限状态矢量量化(FSVQJ)方法,对于语音识别更为有效。决策方法一般用最小平均失真准则。 (3)采田隐马尔柯夫横型(HMM)的方法,该模型的参数既可以用离散概率分布函数,也可以用最新的连续概率密度函数(如:正态高斯密度,高斯自回归密度等)。决策方法则用最大后验概率准则. (4)采用混合技术的方法。例如:用矢量量化作为第一级识别(作为预处理,从而得出若干候选的识别结果),然后,再用DTW或HMM方法做最后的识别,因此,可有VQ/DTW和VQ/HMM等识别方法. 目前,语音识别的匹配主要应用HMM和DTW两种算法。DTW算法由于没有一个有效地用统计方法进行训练的框架,也不容易将低层和顶层的各种知识用到语音识别算法中,因此在解决大词汇量、连续语音、非特定人语音识别问题时较之HMM算法相形见绌。HMM是一种用参数表示的,用于描述随机过程统计特性的概率模型。而对于孤立词识别,HMM算法和DTW算法在相同条件下,识别效果相差不大, 又由于DTW算法本身既简单又有效,但HMM算法要复杂得多。它需要在训练阶段提供大量的语音数据,通过反复计算才能得到参数模型,而DTW算法的训练中几乎不需要额外的计算。鉴于此,DTW更适合本系统的要求。

【协议分析】【距离矢量算法计算过程分析】.pdf

实验二十距离矢量算法计算过程分析 【实验目的】 1. 通过分析距离矢量算法的计算过程,理解距离矢量路由协议的工作原理。 【实验学时】 2学时 【实验环境】 在本实验中需要4台路由、1台交换机、1台RG-PATS网络协议分析仪。四台路由器 运行RIP路由协议,使用协议分析仪采集数据包,对采集到的数据进行分析。 将所有的路由器都接入到交换机上,并在交换机上配置端口映像功能,具体IP分配如 下表: 表6-2 设备IP地址分配表 设备接口IP地址连接到交换机 FA0/8 RSR-A FA0/0 192.168.1.1/24 RSR-A LO0 192.168.10.1/24 -- 192.168.3.1/24 FA0/6 RSR-A FA0/1 RSR-B FA0/0 192.168.1.2/24 FA0/9 192.168.2.1/24 FA0/10 RSR-B FA0/1 -- 192.168.20.1/24 RSR-B LO0 RSR-C FA0/0 192.168.2.2/24 FA0/7 -- RSR-C LO0 192.168.30.1/24 RSR-D FA0/0 192.168.3.2/24 FA0/6 192.168.400.1/24 -- RSR-D LO0 RG-PATS网络协议分析 Eth 0 172.16.1.4 FA0/24 仪 设备连接如下图所示:

图6-43 实验拓扑图 【实验内容】 1、使用协议分析仪采集网络中的RIP选路数据包,分析距离矢量算法的计算过程。 【实验流程】 图 6-44 实验流程图 【实验原理】 距离矢量算法是以R.EBellman、L.R.Ford和D.R.Fulkerson所做的工作为基础的,由于这个原因,所以有时距离矢量算法又称为Bellman-Ford或Ford-Fulkerson算法。 250

距离矢量路由协议及路由环路

第七讲:距离矢量路由协议及路由环路 回顾昨天:提问:1、距离矢量路由协议包括哪几种?2、路由器是如何确定最佳路由的说出步骤? 今天内容:距离矢量路由协议及确保路由表条目的的正确的六种方法,及六种方法的结合使用。 一、距离矢量路由协议学习路由的方法首先明确一点,该协议并不能学到整个网络的拓扑。只能靠学习邻居路由表内容来学习路由。但每个路由表中只有最佳路径(也就是路由)。也就是说只有目的地方向(路由器接口)和距离,于是被叫距离矢量。 举例:高速路上开车,没有地图,出错,只能打听。而打听的人也不知道还要向另外的人打听(好比路由器问邻居路由器,邻居也不知道于是就要再问下一个邻居,这样收敛的速度可想而知) 1、距离矢量路由协议是通过传递路由更新 包来学习路由的(见图10-1),在图10-2到10-4是说明了RIP路由协议是怎样来学习路由的。在路由协议刚刚运行的时 候,路由器没有开始相互发送UPDATE 包,于是路由表里只有自己直连的网段,管理距离是0。如图10-2,路由器学到了自己直连的网段后便开始向邻居路由 器发送更新包了,此包里包含我们发布 的路由。(一台路由器所直接连接的网段

必须发布在路由协议里才能够被放到 UPDATE包里传送)这样路由器就学到 了其他路由器的路由了见图10-3。路由 器学到了邻居的路由再打包向邻居发, 这样所有路由器会学到所有的路由条 目。如图10-4(注意此图的RIP为RIPV2,找同学说为什么) #########注意:从以上可以看出距离矢量路由协议就是靠和邻居之间周期性 的交换路由表来一步一步学到远端路由的####### 2、路由更新包的格式决定了路由协议是有 类还是无类。 实际上有类的路由协议出现的比较早,当时没有出现子网。路由学到的都是正规的ABC 类网段。RIP V1等距离矢量路由协议的更 新包里没有放掩码位的地方,虽然能学到子网的网段但没有掩码来确定网络位,于是把学到的子网网段自动归为主类网从而学不到子网变成了事实。 RIP V2加入了放掩码的空间于是能用该掩码与学到的IP做与的运算,于是能学到子网 特例:见图10-5与昨天讲的图9-8做比较

距离矢量路由算法

路由算法 距离矢量路由算法的具体实现 距离矢量路由算法的原理 距离向量路由算法(Bellman-Ford Routing Algorithm),作为距离向量协议的一个算法,如RIP, (RIP 跳最大跳数16)BGP。使用这个算法的路由器必须掌握这个距离表,它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。这个在算法中的度量公式是跳跃的次数,等待时间,流出数据包的数量等等。 概括地说,距离向量算法要求每一个路由器把它的整个路由表发送给与它直接连接的其它路由器。路由表中的每一条记录都包括目标逻辑地址、相应的网络接口和该条路由的向量距离。当一个路由器从它的相邻处收到更新信息时,它会将更新信息与本身的路由表相比较。如果该路由器比较出一条新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新:将从该路由器到邻居之间的向量距离与更新信息中的向量距离相加作为新路由的向量距离。在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。 距离矢量路由算法在理论中可以工作,但在实践中有一个严重的缺陷:虽然它总是能够达到正确的答案,但是它收敛到正确答案的速度非常慢,尤其是,它对于好消息的反应非常快,但是对于坏消息的反应非常迟缓。 程序源代码(c语言) #include "" #include "" n"); getch(); return; } else printf("\n路由表初始:\n"); InitData(pfile);

fclose(pfile); for (i = 0; i 0) printf("<%c %d> ", j + 65, data[i][j].dis); printf("\n"); } .] : ", 0, ROUTNUM - 1); scanf("%d", &start); printf("输入终点路由节点数字(%d-%d)[0代表A,1代表B...] : ", 0, ROUTNUM - 1); scanf("%d", &end); if (start == end || start < 0 || start > 6 || end < 0 || end > 6) { printf("\n输入错误,请按任意键退出\n"); getch(); return; } else { int cur = start; int total = 0; if (data[start][end].dis < 0) { printf("没有路由路径发现!\n"); getch(); return;

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

电子科技大学通信学院 《计算机通信网实验报告》 距离矢量路由算法原理实验 班级通信11班 学生李楚鸣 学号2013010911021 教师徐世中

实验2:距离矢量路由算法原理实验报告 【实验目的】 1、要求实验者利用路由选择算法模拟软件提供的通信功能,模拟距离矢量路由选择算法的初始化、路由信息扩散过程和路由计算方法; 2、掌握距离矢量算法的路由信息扩散过程; 3、掌握距离矢量算法的路由计算方法。 【实验环境】 1、分组实验,每组4~10人。 2、拓扑: 虚线表示节点之间的逻辑关系,构成一个逻辑上的网状拓扑结构。 3、设备:小组中每人一台计算机。 4、实验软件:路由选择算法模拟软件(routing.exe ——最新版本为5.0) 【实验原理】 (请根据实验指导书的相关内容及课程相关知识填写,距离矢量路由算法基本原理,实验软件的基本功能等) 【实验步骤】 1、建立实验小组。 2、按照距离矢量算法完成路由信息扩散和路由计算过程。 3、距离矢量算法收敛后,向路由表中列出的每个非直连节点发送路由测试数据,完成路由测试过程。 4、汇总实验小组的实验记录信息,检查路由是否正确。如果有错误,分析并发现错误产生的原因。 5、将实验从头多做几次,观察如果各节点发送信息和接收处理信息的过程不一样,是否会影响路由表的正确形成。如在第一次实验时, 节点接收一份路由信息后, N 路由节点2 路由节点N-1 N = 4 ~ 10

处理,再发送出新的路由信息,而第二次实验时,节点将当前所有的路由信息处理完后,才发送新的路由信息。 6、小组讨论将拓扑中的一条链路断掉,然后通过实验观察路由协议是如何适应这 个变化的。 *7、小组讨论无穷计数问题如何在现有拓扑中产生,然后通过实验将无穷计数问题展现出来。(选作) 【实验记录】 按照实验记录内容格式要求记录以下内容(不够请另附纸张): 1、实验小组的建立 要求记录:小组名称、成员数量、本节点编号、本地直连链路表和据此形成的路由表。 2、距离矢量算法的路由扩散和路由计算过程 要求记录:每次发送、接收的路由信息和根据接收信息所形成的路由表。 3、距离矢量算法的路由测试过程 要求记录: ●源节点:路由测试数据的源、目的、下一跳节点和数据内容; ●中继节点:接收到的路由测试数据的源和目的、能否转发和转发的下一跳 节点。 ●目的节点:接收到的路由测试数据的源、目的、数据内容和经由节点序列。 4、拓扑变化时,路由信息扩散和路由表重新收敛过程 要求记录从路由开始改变时到路由重新收敛时发送、接收的路由信息和根据接收信息形成的路由表。 5、无穷计数过程 要求记录整个过程中发送、接收的路由信息和根据接收信息形成的路由表 【实验记录内容的格式】 1、实验小组建立时的信息记录 小组名称:66666 成员数量: 7 本节点编号:D

相关文档
相关文档 最新文档