路由算法

一、基础概念:

  路由:数据报从源地址发送到目的地址所经过的路径,由一系列节点构成

  路由节点:一个具有路由功能的主机或者路由器,都会维护一张路由表,通过查询路由表决定数据报想哪下一个节点发送

       有维护路由表的主机或者路由器,就是路由中一个个节点

  路由表:由很多路由条目组成,每个路由条目都指名去往哪个个网络的数据报应该经由那个接受和发送,其中最后一个是缺省路由条目

LINUX中的路由表:

Destination:目标网络

Gateway:下一跳

Genmask:子网掩码

Flags标记:U标志此条目有效(可以禁用一些条目);G标志此条目的下一跳地址是某个路由器的地址;*表明目标网络和本机网络直连

Uer:此路由被路由软件查找的次数

Iface:使用接口

上图中:路由表每一行都表示一个路由条目

二、路由算法

  LS(链路状态)算法:这个算法中 ,每个路由器都拥有网络中其他路由器的全部信息和网络的流量状态

  (1)路由器向相邻路由器发送查询报文。测试他和相邻路由器的链路状态,如果可以收到相邻路由器发回的响应,说明该路由器和相邻路由器可以正常通信。 
  (2)收到该路由器和其他相邻路由器的链路状态后,还向系统中所有参加最短路径优先算法的路由器发送链路状态报文。 
  (3)各路由器收到其他路由器发送到链路状态后,根据报文中的数据刷新本路由器保存的网络拓扑结构图。如果链路发生变化,路由器将采用Dijkstra算法生成新的最短路径               优先数并刷新路由表

  DV(距离向量)算法:这个算法中,每个路由器只拥有和自己相连的路由器信息

    路由器周期性地向其相邻路由器广播自己知道的路由信息,用以通知相邻路由器自己可以到达的网络以及到达该网络的距离。相邻路由器可以根据收到的路由信息修改和刷               新自己的路由表

    优点:算法简单,容易实现

    缺点是:慢收敛问题(路径循环或者网络中断),路由器的路径变化需要相邻路由器传播出去,网络稍微复杂点这个路由传播导致路径变化的过程会很慢

  Dijkstra算法 
  (1)路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示                 权值。例如,[i, j]是节点Vi与Vj之间的链路权值。如果节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。 
  (2)路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段: 
      前序字段——表示当前节点之前的节点。 
      长度字段——表示从源节点到当前节点的权值之和。 
      标号字段——表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。 
  (3)路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。 
  (4)路由器设置一个T节点。例如,如果设V1是源T节点,路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。

三、收敛路由原理:

    收敛 对于路由协议,网络上的路由器 在一条路径不能使用时必须经历决定替代路径的过程,是在最佳路径的判断上所有路由器达到一致的过程。当某个网络事件引起路由         可用或不可用时,路由器就发出更新信息。路由更新信息遍及整个网络,引发重新计算最佳路径,最终达到所有路由器一致公认的最佳路径。这个过程即称为收敛。收敛时               间指从网络发生变化开始直到所有路由器识别到变化并针对该变化作出适应为止的这段时间。收敛慢的路由算法会造成路径循环或网络中断。收敛过程既具协作性,又具              独立性。路由器之间既需要共享路由信息,各个路由器也必须独立计算拓扑结构变化对各自路由过程所产生的影响。由于路由器独立更新网络信息以与拓扑结构保持一致,               所以,也可以说路由器通过收敛来达成一致。收敛的有关属性包括路由信息的传播速度以及最佳路径的计算方法。可以根据收敛速度来评估路由协议。收敛速度越快,路由               协议的性能就越好。通常,RIP和IGRP收敛较慢,而EIGRP、OSPF和IS-IS收敛较快

  

时间: 2024-10-09 12:47:41

路由算法的相关文章

ONOS:负载均衡路由算法及应用开发(一)

一.应用介绍 当新流量发起时,本应用将为其选择一条路由路径,这条路径具有全局负载均衡意义上的最小权值(Weight/Cost).本应用即将开源在笔者的Github[https://github.com/MaoJianwei/ONOS_LoadBalance_Routing_Forward]本系列文章后续也将同步在笔者的博客Blog[http://maojianwei.github.io/] 为负载均衡举一个简单的例子,在一个三节点的环形网络中,Host2想要访问Host1,此时网络中已经有了一些

ONOS:负载均衡路由算法及应用开发(二)

本文将为大家讲述应用的实现,并进行必要的代码分析. 本应用暂时以Maven作为项目的构建工具,并采用最简单的single bundle的项目组织形式[1].如果进行大项目的开发,推荐仿照onos.faultmanagement应用进行模块划分和项目feature组织. 虽然ONOS在最新的1.8.0-SNAPSHOT版本中强制引入了BUCK项目构建工具,但本应用开发时尚未有这个要求.大家在开发自己的应用时仍可使用Maven,但如果想要贡献代码,则必须添加兼容BUCK构建工具的配置信息. 一.Ma

[原创]路由算法

1.静态路由算法: 由网络管理人员手工配置: 2.动态路由算法: 主要包括距离-向量路由算法和链路状态路由算法: 2.1 距离向量路由算法: 每个路由器会定期的向相邻路由器发送自己的路由表,路由器收到路由表后,做如下操作: ①如果该是一条新的路由,那么直接添加进去: ②如果发送来的路由信息中有一条到达某个目的地的路由,这个路由比当前使用的                     路由有较短的距离(这里的距离是一个抽象概念),那么这种情况下,就进行替换                   当前路由

网络层路由算法距离向量算法和链路状态算法

1.距离矢量路由算法(Distance Vector Routing,DV)是ARPANET网络上最早使用的路由算法,也称Bellman-Ford路由算法和Ford-Fulkerson算法,主要在RIP(Route Information Protocol)协议中使用.Cisco的IGRP和EIGRP路由协议也是采用DV这种路由算法的.     “距离矢量路由算法”的基本思想如下:每个路由器维护一个距离矢量(通常是以延时是作变量的)表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新.每

Java编写一个路由算法,并txt输入输出

路由算法:1-9均代表主机名称 1. 输入: 图3拓扑的输入文件为input.txt,本算法为双向线,来回只需输入一个即可 Input.txt: leftnodeID,rightnodeID,bandwidth 1,3,100 1,4,100 2,3,100 2,4,100 3,4,100 3,5,100 3,6,100 4,5,100 4,6,100 5,6,100 5,7,100 5,8,100 6,7,100 6,8,100 ; srcNodeID,dstNodeID,bandwidth

最新的ES 5.0路由算法底层实现

http://www.cnblogs.com/bonelee/p/6078947.html 里分析了ES bulk实现,其中路由代码: ShardId shardId = clusterService.operationRouting().indexShards(clusterState, concreteIndex, request.id(), request.routing()).shardId(); 其实现: https://github.com/elastic/elasticsearch

互联网IP合全局路由优化的原则-Dijkstra算法证明

周末继续写东西的一半填补了,为了达到完美的一天.我们知道一个事实,IP地址太多.统一管理是不可能的了,无论从控制平面从数据/管理层表示,飞机是如此. 所以.IP协议被设计为可伸缩.供IP路由术语,跳路由进行计算.当然,支持"源路由",源路由就是说数据在出发前就已经把路线规划好了,逐跳路由是IP路由的标准形式.也就是说.IP数据包是在路上即时规划路线的.       我比較喜欢IP路由是由于这也是我旅行的方式,我喜欢旅行,可是我不喜欢事先订酒店.事先规划路线.导航等,我的方式是在路上看路

互联网IP路由的逐跳全局最优化原则-Dijkstra算法证明

把周末写了一半的东西继续补齐了,实现了完美的一天.我们知道的一个事实就是IP地址实在太多了,根本就不可能统一的管理起来,无论从数据平面还 是从控制/管理平面上说都是这样.所以,IP协议被设计出来就是可扩展的.对于IP路由来讲,路由计算是逐跳进行的,当然也支持"源路由"选项,源路由就 是说数据在出发前就已经把路线规划好了,逐跳路由是IP路由的标准形式,也就是说,IP数据包是在路上即时规划路线的.       我比较喜欢IP路由是因为这也是我旅行的方式,我喜欢旅行,但是我不喜欢事先订酒店,

路由知识之ip route 命令中的疑惑

1.基础知识 1.1 路由 (Routing) 1.1.1 路由策略 (使用 ip rule 命令操作路由策略数据库) 基于策略的路由比传统路由在功能上更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小.应用或IP源地址等属性来选择转发路径. ip rule 命令: Usage: ip rule [ list | add | del ] SELECTOR ACTION (add 添加:del 删除: llist 列表) SELECTOR := [ from PREFIX