路由算法网络
㈠ 什么是路由啊 路由的组成 以及路由的算法
路由:路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
路由器的组成:
RAM(随机存储器)
功能:存放路由表;存放ARP告诉缓存;存放快速交换缓存;存放分组交换缓冲;存放解压后的IOS;路由器加电后,存放running配置文件;
特点:重启或者断电后,RAM中的内容丢失。
NVRAM(非易失性RAM)
功能:存储路由器的startup配置文件;存储路由器的备份。
特点:重启或者断电后内容不丢失。
FLASH(快速闪存)
功能:存放IOS和微代码。
特点:重启或者断电后内容不丢失;可存放多个IOS版本(在容量许可的前提下);允许软件升级不需替换CPU中的芯片。
ROM(只读存储器)
功能:存放POST诊断所需的指令;存放mini-ios;存放ROM监控模式的代码。
特点:ROM中的软件升级需要更换CPU的芯片(还好这种情况比较少遇到)
CPU(中央处理器)
衡量路由器性能的重要指标,负责路由计算,路由选择等。
背板:
背板能力是一个重要参数,尤其在交换机中。
路由算法:又名选路算法,可以根据多个特性来加以区分。算法的目的是找到一条从源路由器到目的路由器的“好”路径(即具有最低费用的路径[1])。算法设计者的特定目标影响了该路由协议的操作;具体来说存在着多种路由算法,每种算法对网络和路由器资源的影响都不同;由于路由算法使用多种度量标准(metric),从而影响到最佳路径的计算。
算法分类:主要有RIP、IGRP(IGRP为 Cisco公司的私有协议);链路状态路由协议基于图论中非常着名的Dijkstra算法,即最短优先路径(Shortest Path First, SPF)算法,如OSPF。在距离向量路由协议中,路由器将部分或全部的路由表传递给与其相邻的路由器;而在链路状态路由协议中,路由器将链路状态信息传 递给在同一区域内的所有路由器。 根据路由器在自治系统(AS)中的位置,可将路由协议分为内部网关协议 (Interior Gateway Protocol,IGP)和外部网关协议(External Gateway Protocol,EGP,也叫域 间路由协议)。域间路由协议有两种:外部网关协议(EGP)和边界网关协议(BGP)。EGP是为一个简单的树型拓扑结构而设计的,在处理选路循环和设置 选路策略时,具有明显的缺点,已被BGP代替。
㈡ 路由算法的技术要素
路由算法还应该是灵活的,即它们应该迅速、准确地适应各种网络环境。路由算法可以设计得可适应网络带宽、路由器队列大小和网络延迟。
路由算法的核心是路由选择算法,设计路由算法时要考虑的技术要素有:
1、选择最短路由还是最佳路由;
2、通信子网是采用虚电路操作方式还是采用数据报的操作方式;
3、采用分布式路由算法还是采用集中式路由算法;
4、考虑关于网络拓扑、流量和延迟等网络信息的来源;
5、确定采用静态路由还是动态路由。
优化指路由算法选择最佳路径的能力,根据metric的值和权值来计算。例如有一种路由算法可能使用跳数和延迟,但可能延迟的权值要大些。当然,路由协议必须严格定义计算metric的算法。
㈢ OSPF路由协议的路由算法是什么
ospf路由协议是用于网际协议(ip)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(igp),在单一自治系统(as)内部工作。
作为一种链路状态的路由协议,ospf将链路状态广播数据包lsa(link
state
advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
㈣ 网络层路由算法有几种,请简述其
静态路由算法主要有:
洪泛法(Flooding)
随机走动法(Random Walk)
最短路径法(Shortest Path,SP)
基于流量的路由算法(Flow-based Routing,FR)</ol>动态路由算法主要有:
距离矢量算法(RIP)
链路状态算法(OSPF)
平衡混合算法(EIGRP)</ol>
㈤ 计算机网络路由算法
关于路由器如何收集网络的结构信息以及对之进行分析来确定最佳路由,有两种主要的路由算法:
总体式路由算法和分散式路由算法。采用分散式路由算法时,每个路由器只有与它直接相连的路由器的信息——而没有网络中的每个路由器的信息。这些算法也被称为DV(距离向量)算法。采用总体式路由算法时,每个路由器都拥有网络中所有其他路由器的全部信息以及网络的流量状态。这些算法也被称为LS(链路状态)算法。
㈥ 路由算法的要求是什么。
距离向量路由算法(Bellman-Ford Routing Algorithm),也叫做最大流量算法(Ford-Fulkerson Algorithm),其被距离向量协议作为一个算法,如RIP, BGP, ISO IDRP, NOVELL IPX。使用这个算法的路由器必须掌握这个距离表(它是一个一维排列-“一个向量”),它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包到每个在网上的目的地的路径和距离/或时间在那个路径上来传输(我们叫这个为“成本”)。这个在那个算法中的度量公式是跳跃的次数, 等待时间,流出数据包的数量,等等。
在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。
㈦ 路由算法的类型有
路由算法有很多种,如果从路由表对网络拓扑和通信量变化的自适应能力的角度划分,可以分为静态路由算法和动态路由算法两大类,这两大类又可细分为几种小类型,比较典型常见的有以下几种:
一、静态路由算法
1.Dijkstra算法(最短路径算法)
Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。Dijkstra一般的表述通常有两种方式,一种用永久和临时标号方式,一种是用OPEN,CLOSE表的方式,这里均采用永久和临时标号的方式。注意该算法要求图中不存在负权回路。
Dijkstra算法执行步骤如下:
步骤一:路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示权值。例如,[i,j]是节点Vi与Vj之间的链路权值。如果节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。
步骤二:路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段:
前序字段———表示当前节点之前的节点。
长度字段———表示从源节点到当前节点的权值之和。
标号字段———表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。
步骤三:路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。
步骤四:路由器设置一个T节点。例如,如果设V1是源T节点,路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。
步骤五:路由器更新与源T节点直接相连的所有暂时性节点的状态记录集。
步骤六:路由器在所有的暂时性节点中选择距离V1的权值最低的节点。这个节点将是新的T节点。
步骤七:如果这个节点不是V2(目的节点),路由器则返回到步骤5。
步骤八:如果节点是V2,路由器则向前回溯,将它的前序节点从状态记录集中提取出来,如此循环,直到提取到V1为止。这个节点列表便是从V1到V2的最佳路由。
2.扩散法
事先不需要任何网络信息;路由器把收到的每一个分组,向除了该分组到来的线路外的所有输出线路发送。将来会有多个分组的副本到达目的地端,最先到达的,可能是走了“最优”的路径常见的扩散法是选择性扩散算法。
3.LS算法
采用LS算法时,每个路由器必须遵循以下步骤:
步骤一:确认在物理上与之相连的路由器并获得它们的IP地址。当一个路由器开始工作后,它首先向整个网络发送一个“HELLO”分组数据包。每个接收到数据包的路由器都将返回一条消息,其中包含它自身的IP地址。
步骤二:测量相邻路由器的延时(或者其他重要的网络参数,比如平均流量)。为做到这一点,路由器向整个网络发送响应分组数据包。每个接收到数据包的路由器返回一个应答分组数据包。将路程往返时间除以2,路由器便可以计算出延时。(路程往返时间是网络当前延迟的量度,通过一个分组数据包从远程主机返回的时间来测量。)该时间包括了传输和处理两部分的时间——也就是将分组数据包发送到目的地的时间以及接收方处理分组数据包和应答的时间。
步骤三:向网络中的其他路由器广播自己的信息,同时也接收其他路由器的信息。
在这一步中,所有的路由器共享它们的知识并且将自身的信息广播给其他每一个路由器。这样,每一个路由器都能够知道网络的结构以及状态。
步骤四:使用一个合适的算法,确定网络中两个节点之间的最佳路由。
路由算法有哪些类型?路由算法与路由协议的区别
在这一步中,路由器选择通往每一个节点的最佳路由。它们使用一个算法来实现这一点,如Dijkstra最短路径算法。在这个算法中,一个路由器通过收集到的其他路由器的信息,建立一个网络图。这个图描述网络中的路由器的位置以及它们之间的链接关系。每个链接都有一个数字标注,称为权值或成本。这个数字是延时和平均流量的函数,有时它仅仅表示节点间的跃点数。例如,如果一个节点与目的地之间有两条链路,路由器将选择权值最低的链路。
二、动态路由算法
1.距离向量路由算法
距离向量路由算法,也叫做最大流量算法,其被距离向量协议作为一个算法,如RIP、BGP、ISO IDRP、NOVELL IPX。使用这个算法的路由器必须掌握这个距离表(它是一个一维排列-“一个向量”),它告诉在网络中每个节点的最远和最近距离。在距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包到每个在网上的目的地的路径和距离/或时间在那个路径上来传输(我们叫这个为“成本”)。这个在那个算法中的度量公式是跳跃的次数,等待时间,流出数据包的数量,等等。在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。其优点是算法简单容易实现。缺点是慢收敛问题,路由器的路径变化需要像波浪一样从相邻路由器传播出去,过程缓慢。
每一个相邻路由器发送过来的路由表都要经过以下步骤:
步骤一:对地址为X的路由器发过来的路由表,先修改此路由表中的所有项目:把”下一跳”字段中的地址改为X,并把所有”距离”字段都加1。
步骤二:对修改后的路由表中的每一个项目,进行以下步骤:
(1)将X的路由表(修改过的),与S的路由表的目的网络进行对比。若在X中出现,在S中没出现,则将X路由表中的这一条项目添加到S的路由表中。
(2)对于目的网络在S和X路由表中都有的项目进行下面步骤:
1)在S的路由表中,若下一跳地址是x,则直接用X路由表中这条项目替换S路由表中的项目。
2)在S的路由表中,若下一跳地址不是x,若X路由表项目中的距离d小于S路由表中的距离,则进行更新。
步骤三:若3分钟还没有收到相邻路由器的更新表,则把此相邻路由器记为不可到达路由器,即把距离设置为16。
2.链路状态最短路由优先算法SPF
1)发现邻居结点,并学习它们的网络地址;
2)测量到各邻居节点的延迟或者开销;
3)创建链路状态分组;
4)使用扩散法发布链路状态分组;
5)计算到每个其它路由器的最短路径。
㈧ 距离矢量路由算法 (计算机网络题
通过B到个点的距离为:(11,6,14,18,12,8),因为B到A的距离为5,C到B的距离为6所以C到A的距离更新为5+6=11,C到B的距离没变为6,C通过B到C的距离为6+8=14,C通过B到D的距离为6+12=18,C通过B到E距离6+6=12,C通过B到F距离为6+2=8。
通过D到个点的距离为:(19,15,9,3,12,13),通过D到A的距离为3+16=19,通过D到B的距离为3+12=15,通过D到C的距离为6+3=9,通过D到D的距离为3,通过D到E的距离为3+9=12,通过D到F的距离为3+10=13。
通过E到个点的距离为:(12,11,8,14,5,9),通过E到A的距离为5+7=12,通过E到B的距离为5+6=11,通过E到C的距离为5+3=8,通过E到D的距离为5+9=14,通过E到Eden距离为5,通过E到F的距离为9。
取到达每一目的地的最小值(C除外)得到: (11, 6,0,3, 5,8)就得出了新的路由表。输出的路线输出线路是: (B,,B, -,D,E, B)。
(8)路由算法网络扩展阅读:
路由算法的度量标准:
路由算法使用了许多种不同的度量标准去决定最佳路径。复杂的路由算法可能采用多种度量来选择路由,通过一定的加权运算,将它们合并为单个的复合度量、再填入路由表中,作为寻径的标准。
通常所使用的度量有:路径长度、可靠性、时延、带宽、负载、通信成本等。
路径长度:
路径长度是最常用的路由。一些路由协议允许网管给每个网络连接人工赋以代价值,这种情况下,路由长度是所经过各个链接的代价总和。
可靠性:
可靠性,在路由算法中指网络连接的可依赖性(通常以位误率描述),有些网络连接可能比其它的失效更多,网路失效后,一些网络连接可能比其它的更易或更快修复。
路由延迟:
路由延迟指分组从源通过网络到达目的所花时间。很多因素影响到延迟,包括中间的网络连接的带宽、经过的每个路由器的端口队列、所有中间网络连接的拥塞程度以及物理距离。
带宽
带宽指连接可用的流通容量。在其它所有条件都相等时,10Mbps的以太网链接比64kbps的专线更可取。虽然带宽是链接可获得的最大吞吐量,但是通过具有较大带宽的链接做路由不一定比经过较慢链接路由更好。
负载:
负载指网络资源,如路由器的繁忙程度。负载可以用很多方面计算,包括CPU使用情况和每秒处理分组数。持续地监视这些参数本身也是很耗费资源的。
通信代价:
通信代价是另一种重要的metric,尤其是有一些公司可能关心运作费用甚于关心性能。即使线路延迟可能较长,他们也宁愿通过自己的线路发送数据而不采用昂贵的公用线路。
参考资料来源:网络-路由算法