计网基础-网络层之路由
路由和转发的关系
路由算法:确定去往目的网络的最佳路径
转发表:确定在本路由器如何转发分组
路由算法——>网络抽象:图
weight = 权值/权重
选取最佳路径:权值越小越好
Q:如何求源到目的的最小费用路径?
A:最小路径算法
路由算法:(最小路径算法即动态路由算法)
第一类:静态路由和动态路由
注意 ,现在的网络一般是动态路由。
第二类:全局信息和分散信息
LS:链路状态路由算法
DV:距离矢量路由算法
LS:链路状态路由算法
基于dijkstra算法,该算法要求某一点到达另一点的最短路径,需要掌握这张图完整的拓扑信息
Q:那么每一个路由器,如何来掌握一整张图,即掌握网络拓扑和链路费用?
A:每一个路由器都要构造一个链路状态分组,并且进行广播,即通过“链路状态广播”‘;当所有路由器收集全了网络中的所有链路状态分组,即能构造出该网络完整的拓扑。
①链路分组包括的信息(该路由器,与之相邻的所有路由器的ip地址,以及直接相邻的链路的费用);
②链路状态广播,实际上使用的是扩散或者泛洪的方式,先发给邻接路由器,再发给邻接的邻接
注意,当然这个过程中需要使用一些机制来控制它的大量繁殖,避免出现网络瘫痪的问题。
算法实现:
注意,迭代是k次迭代之后,得到到达k个目的结点的最短路径
DV:距离矢量路由算法distance vector
基于动态规划,bellman-ford方程
特点:不需要知道整个网络的拓扑,只需要知道邻接路由器之间的费用,以及将该邻接路由器距离最短的邻接路由器(邻接的邻接)告知本路由器,即可基于bellman-ford方程规划获知通过哪一个邻接路由器到达目的节点的最短路径
实现:
重点:节点可以获得最短路径的下一跳,该信息用于转发表中
DV路由算法的特点
1、异步迭代
每一个路由器并不是同步迭代,同步结束,
首先引发每次局部迭代的因素主要是(①局部链路费用改变,②来自邻居的DV更新)
2、分布式算法
每一个路由器都是根据它自身的链路的费用的变化、接收到新的距离向量进行计算,计算的结果可能导致自身的距离向量DV发生变化(或不发生变化),发生变化则一定要通知给邻居(邻接路由器)
算法描述:
针对每一个节点: