面试题答案
一键面试常见路由选择算法
- 距离 - 向量路由算法:每个路由器维护一张路由表,表中包含到每个目的网络的距离(跳数等度量值)以及下一跳路由器。例如RIP(路由信息协议)就是基于此算法。路由器定期与邻居交换自己的路由表信息,然后根据收到的信息更新自己的路由表。
- 链路 - 状态路由算法:路由器掌握全网拓扑结构,通过向所有路由器发送链路状态通告(LSA)来告知自己与邻居的连接状态等信息。如OSPF(开放最短路径优先)协议。每个路由器收集LSA构建链路状态数据库,再使用Dijkstra算法计算到每个目的网络的最短路径。
优化方法
- 针对距离 - 向量路由算法
- 减少收敛时间:采用触发更新机制,当网络拓扑发生变化时,立即向邻居发送更新信息,而不是等待定期更新时间。例如,当路由器检测到一条链路失效,马上将相关路由的距离设置为无穷大并向邻居通告。
- 避免计数到无穷问题:使用水平分割技术,即路由器不会将从某个接口学到的路由信息再通过该接口发回给邻居。同时可以结合毒性逆转,当一条路由失效时,将其度量值设置为无穷大并通告给邻居,即使是从该邻居学到的路由也要通告,以加快失效路由的传播。
- 针对链路 - 状态路由算法
- 降低LSA洪泛开销:通过划分区域来限制LSA的传播范围。每个区域有自己的链路状态数据库,区域间通过ABR(区域边界路由器)交换汇总的路由信息。这样减少了每个路由器需要处理和存储的LSA数量,提高路由计算效率。
- 优化路由计算频率:对于一些相对稳定的链路状态变化,设置一定的延迟时间再进行路由计算。例如,当链路带宽等参数发生微小波动时,不立即重新计算路由,而是等待一段时间,若波动持续则进行计算,避免因频繁计算路由消耗过多资源。