路由表条目生成算法

来源:互联网 发布:淘宝手机怎么退货退款 编辑:程序博客网 时间:2024/05/29 18:59

在Linux系统中可以使用route命令查看路由表:
这里写图片描述

—————————————————————————————————————————–
Destination:目的网络地址 ;
Gateway:下一跳地址 ;
Genmask:子网掩码 ;
Iface:发送接口 ;
Flags: U标志表示此条目有效(可以禁用某些条目);G标志表示此条目的下一跳地址是某个路由器的地址,没有G标志的条目表示目的网络地址是与本机接口直接相连的网络,不必经路由器转发,因此下一跳地址处记为*号。
default:当目的地址与路由表中其他行都不匹配时,就按照缺省路由条目发送到指定的下一跳接口。
—————————————————————————————————————————–
路由表的建立和刷新有两种不同的方法:静态路由和动态路由。
静态路由:一般是在系统安装时就根据网络的配置情况预先设定的,它不会随未来网络结构的改变而改变。手动配置规定的路由表。对于大型网络这是一个非常困难的工作。
动态路由:路由表是动态建立和维护的,路由器根据网络系统的运行情况而自动调整的路由表。适用于大型网络。
—————————————————————————————————————————–
路由表条目生成算法:

1、向量-距离算法
原理:路由器周期性地向其相邻路由器广播自己知道的路由信息,用以通知相邻路由器自己可以到达的网络以及到达该网络的距离。相邻路由器可以根据收到的路由信息修改和刷新自己的路由表。
优点:算法简单、易于实现。
缺点:慢收敛问题,路由器的路径变化需要像波浪一样从相邻路由器传播出去,过程缓慢。
2、链路-状态算法 ,也称最短路径优先算法 。
原理:
(1)路由器向相邻路由器发送查询报文。测试他和相邻路由器的链路状态,如果可以收到相邻路由器发回的响应,说明该路由器和相邻路由器可以正常通信。
(2)收到该路由器和其他相邻路由器的链路状态后,还向系统中所有参加最短路径优先算法的路由器发送链路状态报文。
(3)各路由器收到其他路由器发送到链路状态后,根据报文中的数据刷新本路由器保存的网络拓扑结构图。如果链路发生变化,路由器将采用Dijkstra算法生成新的最短路径优先数并刷新路由表。
3、Dijkstra算法
(1)路由器建立一张网络图,并且确定源节点和目的节点,在这个例子里我们设为V1和V2。然后路由器建立一个矩阵,称为“邻接矩阵”。在这个矩阵中,各矩阵元素表示权值。例如,[i, j]是节点Vi与Vj之间的链路权值。如果节点Vi与Vj之间没有链路直接相连,它们的权值设为“无穷大”。
(2)路由器为网路中的每一个节点建立一组状态记录。此记录包括三个字段:
前序字段–—表示当前节点之前的节点。
长度字段–—表示从源节点到当前节点的权值之和。
标号字段–—表示节点的状态。每个节点都处于一个状态模式:“永久”或“暂时”。
(3)路由器初始化(所有节点的)状态记录集参数,将它们的长度设为“无穷大”,标号设为“暂时”。
(4)路由器设置一个T节点。例如,如果设V1是源T节点,路由器将V1的标号更改为“永久”。当一个标号更改为“永久”后,它将不再改变。一个T节点仅仅是一个代理而已。
(5)路由器更新与源T节点直接相连的所有暂时性节点的状态记录集。
(6)路由器在所有的暂时性节点中选择距离V1的权值最低的节点。这个节点将是新的T节点。
(7)如果这个节点不是V2(目的节点),路由器则返回到步骤5。
(8)如果节点是V2,路由器则向前回溯,将它的前序节点从状态记录集中提取出来,如此循环,直到提取到V1为止。这个节点列表便是从V1到V2的最佳路由。

原创粉丝点击