选路算法:
全局选路算法:每一个路由器通过全局的线路信息,计算本身的选路表,举例来说有链路状态算法(LS),也就是数据结构与算法中鼎鼎有名的Dijkstra算法,以及和Dijkstra算法很像的prim算法
链路状态算法优点:准确
链路状态算法缺点:太准确以至于可能引起线路振荡的情况,举例来说,就是A到B有两条线路x,y可以走,在某一时刻,x线路拥塞了,根据LS算法,所有数据都转向y线路,这导致y线路拥塞,x线路反而空闲了,下一时刻LS算法又计算,使得所有数据又转向通过x线路传输。这样反复,线路时而满负荷运转,时而完全空闲。
如何应对缺点:让网络中的路由器不同时运行LS算法即可
分布式选路算法:路由器仅仅需要知道邻近路由器的线路信息,就可以计算本身的选路表的算法,举例来说有距离向量算法(DV)
距离向量算法优点:
- 花费少,路由器不需要知道全局线路信息,只需要了解邻近线路即可
- 分布的,异步的算法,算法会自己终结(收敛)
距离向量算法缺点:不准确,可能引起环路,对链路费用升高的情况,收敛速度很慢