路由原理与路由表生成

何为路由

路由转发过程

路由算法的区分要素

静态

严格意义上来说,静态算法并不能称之为算法。   是网络在开始运行前由网关建立的映射关系,在网关不更改的情况下,这种静态算法基本不会变,且设计也相对简单。但因为无法变化的原因,静态算法不能对网络关系的变化做出改变。所以在大型网络中并不适用。

动态

动态路由是在静态路由上发展出现的,当使用场景变大,网络服务存在变化,必须在某些用户不使用路由发送数据时,断开他的连接,给所需用户。且在最终不可分组路由时可以进行静态算法的补充。

路径算法

一些复杂的协议支持源端到目的端的多条路径,例如:源端A经路由B、路由C可以到达目的端E,A亦可以经路由D到达目的端E。此时,源端A到目的端E有两条路径可走,经过路径算法,将会选择一条最短、最高效、最快的路径。   本例中,若没有其他情况的话,路径算法将会选择A–D--E路径,但若是A–D路径发生拥塞,那么根据路径算法将会选择A–B--C–E路径。

平坦与分层

平坦路由工作在平坦的环境中,指的是每个路由之间的地位是平等的;在分层的路由系统中,各个路由网络犹如一个多叉树一般,存在主干路由,非主干路由上的数据由非主干路由流向主干路由,再由主干路由流向目的端所在的非主干路由。   例如:A是一个双亲节点,B和C是A的孩子节点,这里面,A、B、C都是路由,不同的是,A是主干路由,B、C是非主干路由,B的数据要往C发,路径为:B–A--C。

主机与路由器

链接与Bellman-Ford算法

链接算法将路由的路由表中已确定的、已连接的部分发给网络中的每个路由节点,则此网络中的每个路由都知道所有路由的路由信息。如此一来,根据算法得到最佳路径的速度快,得到的最佳路径也准确。   Bellaman-Ford算法则是将路由中路由表的全部信息发送给与他相连的邻居节点。

路由算法的衡量标准

路径算法的代表算法

LS算法

Dijkstra算法

路由器先建立一张网络图,确定源端、目的端,然后建立一个邻接矩阵,每两个路由节点之间都有自己的链路权值,例如a,b节点的链路权值就是[i,j],i和j分别是a路由和b路由的权值。      路由器为每个节点维护一个状态记录,包含三个字段:   1、前序字段–当前节点的前一节点;   2、长度字段–从源端到当前路由的权值之和;   3、标号字段–表示节点的状态–永久或暂时      然后路由器初始化所有节点的状态纪录,长度设置为无穷大,标号为暂时。

路由器将源端路由的标号设为“永久”,记为T节点,随即检查与标号为“永久”节点直接相连的路由节点,选择路径最近节点将其标号设为“永久”,此节点为最新的T节点。      检查当前T节点是否为目的端节点,如果不是,则继续上述操作,如果是,则根据回溯法记录经过的每一个节点,则为源端到目的端的路径。

链路算法及Bellman-Ford算法

本算法在之前已有提及,不作描述。

经验分享 程序员 微信小程序 职场和发展