一、求最短距离的两个常见算法:
1.1 Bellman-Ford:是求含负权图的单源最短路径的一种算法,效率较低,代码难度较小。其原理为连续进行松弛,在每次松弛时把每条边都更新一下,若在n-1次松弛后还能更新,则说明图中有负环,因此无法得出结果,否则就完成。
1.2 Dijkstra:是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。迪杰斯特拉算法主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。
二、路由器的路由算法:
2.1 距离矢量路由算法:每个路由器维护一张路由表,即一个矢量,它以网络中的每个路由器为索引,表中列出了当前已知的路由器到每个目标路由器的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,路由器不断地更新他们的内部路由表。(该算法基于Bellman-Ford)
2.2 链路状态路由算法:是要求网络中所有参与链路状态路由协议的路由器都掌握网络的全部拓扑结构信息,并记录在路由数据库中。链路状态算法中路由数据库实质上是一个网络结构的拓扑图,该拓扑图由一个节点的集合和一个边的集合构成。在网络拓扑图中,结点代表网络中路由器,边代表路由器之间的物理链路。在网络拓扑结构图中,每一条链路上可以附加不同的属性,例如链路的状态、距离或费用等。如果每一个路由器所保存的网络拓扑结构图都是一致的,那么个路由器生成的路由表也是最佳的,不存在错误路由或循环路由。(该算法基于Dijkstra)。
三:基于两个路由算法而衍生出来的两个路由协议:
3.1基于距离矢量路由算法的BGP协议:???
3.2基于链路状态路由算法的OSPF协议:???
小结:
1.距离矢量路由算法存在环回路由,慢收敛,无穷计算,扩展性差等,存在的问题:环回路由,慢收敛,无穷计算,扩展性差,仅适用于小网络场景。
2.链路状态路由算法:链路状态算法具有更快的收敛速度,具有更好的功能扩展能力.还提供了更好的在规模上的可升级性,缺点:每个路由器需要有较大的存储空间,用以存储所收到的每一个节点的链路状态分组;计算工作量大,每次都必须计算最短路径。
===============================================================
自我查阅总结:路由协议应该比老师讲的要深的深得多。 并且是基于和结合很多另外的一些知识点而形成的一整套路由方案的解决课题。要深入理解和学习的话,还要学习的太多, 老师这个讲的只是一个敲门砖。
展开