18|选路算法:链路状态算法是如何分发全局信息的
黄清昊
该思维导图由 AI 生成,仅供参考
你好,我是微扰君。
上一讲,我们介绍了网络中选路算法的背景和单源最短路问题的经典算法 Dijkstra 算法,还记得为什么网络中需要选路算法吗?
计算机网络很复杂,但核心作用就是把不同的节点连接在一起,交换信息、共享资源,每个节点自己会维护一张路由表,选路算法所做的事情就是:构建出一张路由表,选择出到目标节点成本最低通常也是最快的路径。
而 Dijkstra 算法是求解单源最短路问题的经典算法,基于贪心的思想,我们从源点开始,一步步搜索最近路径,构造一颗最短路径树。它在网络路由问题中的应用就是我们今天要学习的链路状态算法。
具体如何解决网络路由问题呢?带着这个问题,我们马上开始今天的学习。
网络路由问题
我们知道路由器最大的作用就是转发决策,动态路由算法的作用就是,帮助路由节点在动态变化的网络环境下建立动态变化的路由表,而每个路由表记录,本质就是当前节点到目标节点的最短路。
链路状态算法的思路就是:先在每个节点上都通过通信构建出网络全局信息,再利用 Dijkstra 算法,计算出在当前网络中从当前节点到每个其他节点的最短路,从而把下一跳记录在路由表中。
对于最短路问题,我们可以用之前学过的转化为图问题的思路,把网络抽象成一个有向图,也就是网络拓扑图。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
链路状态算法是一种网络选路算法,通过构建网络全局信息并利用Dijkstra算法计算最短路径,确定下一跳并记录在路由表中。在动态路由问题中,节点通过和邻居间交换信息来构建全局网络图,包括发现节点、测量链路成本、封装链路状态包和发送链路状态包等步骤。通过泛洪方式进行传输,每个节点最终可以收到整个网络内所有其他节点的邻居信息,构建出一张完整的带有边权的有向图。链路状态算法的实现思路清晰,通过测量链路成本和传输链路状态包,能够帮助路由节点在动态变化的网络环境下建立动态变化的路由表,从而实现网络中的路由转发决策。链路状态算法具有动态性,能根据网络变化自动调整,通过定时发送链路状态包和快速扩散重大变化消息来实现动态修正。这种策略可以智能地避免网络拥塞,提高网络效率。然而,链路状态算法也存在一些不足之处,欢迎读者留言讨论。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《业务开发算法 50 讲》,新⼈⾸单¥59
《业务开发算法 50 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- Daneil因为本身需要靠泛洪来更新状态,所以也会给网络带来压力2022-01-213
- Paul Shan动态更新节点间的通信成本能避免网络的拥塞,可能带来的一个问题是一份数据的不同包通信的路径不同,时间差异很大,数据一般是被分成不同的包发送的,只有所有数据包都收到的情况下数据才完整,这样,最慢的一个包就会成为通信瓶颈。相比于网络阻塞,这个问题应该是一个小问题。2022-01-202
收起评论