业务开发算法 50 讲
黄清昊
Hashdata 数据库内核工程师,LeetCode 高赞答主,公众号微扰理论作者
23292 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
业务开发算法 50 讲
15
15
1.0x
00:00/00:00
登录|注册

18|选路算法:链路状态算法是如何分发全局信息的

序号
生存期
链路成本
邻居列表
本机ID
泛洪方式传输
包含字段
计算RTT
发送echo包
邻居节点回应
hello包交换
测量网络时延
序列号排序或去重
状态包周期性发送
动态更新路由表
独立绘制全局路由图
通过通信获得链路成本信息
避免网络拥塞
重大变化时快速扩散
定时泛洪发送
示例:A节点到其他节点的最短路
发送链路状态包
封装链路状态包
测量链路成本
发现节点
讨论链路状态算法的缺点
引入的手段
链路状态算法特点
动态调整路由
链路状态包发送时机
构建路由表
利用Dijkstra算法
全局信息构建
路由表:记录从当前节点到目标节点的最短路
动态路由算法:建立动态变化的路由表
路由器的作用:转发决策
课后作业
总结
链路状态的动态性
计算路由
链路状态算法
网络路由问题
链路状态算法总结

该思维导图由 AI 生成,仅供参考

你好,我是微扰君。
上一讲,我们介绍了网络中选路算法的背景和单源最短路问题的经典算法 Dijkstra 算法,还记得为什么网络中需要选路算法吗?
计算机网络很复杂,但核心作用就是把不同的节点连接在一起,交换信息、共享资源,每个节点自己会维护一张路由表,选路算法所做的事情就是:构建出一张路由表,选择出到目标节点成本最低通常也是最快的路径。
而 Dijkstra 算法是求解单源最短路问题的经典算法,基于贪心的思想,我们从源点开始,一步步搜索最近路径,构造一颗最短路径树。它在网络路由问题中的应用就是我们今天要学习的链路状态算法。
具体如何解决网络路由问题呢?带着这个问题,我们马上开始今天的学习。

网络路由问题

我们知道路由器最大的作用就是转发决策,动态路由算法的作用就是,帮助路由节点在动态变化的网络环境下建立动态变化的路由表,而每个路由表记录,本质就是当前节点到目标节点的最短路。
链路状态算法的思路就是:先在每个节点上都通过通信构建出网络全局信息,再利用 Dijkstra 算法,计算出在当前网络中从当前节点到每个其他节点的最短路,从而把下一跳记录在路由表中
对于最短路问题,我们可以用之前学过的转化为图问题的思路,把网络抽象成一个有向图,也就是网络拓扑图。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

链路状态算法是一种网络选路算法,通过构建网络全局信息并利用Dijkstra算法计算最短路径,确定下一跳并记录在路由表中。在动态路由问题中,节点通过和邻居间交换信息来构建全局网络图,包括发现节点、测量链路成本、封装链路状态包和发送链路状态包等步骤。通过泛洪方式进行传输,每个节点最终可以收到整个网络内所有其他节点的邻居信息,构建出一张完整的带有边权的有向图。链路状态算法的实现思路清晰,通过测量链路成本和传输链路状态包,能够帮助路由节点在动态变化的网络环境下建立动态变化的路由表,从而实现网络中的路由转发决策。链路状态算法具有动态性,能根据网络变化自动调整,通过定时发送链路状态包和快速扩散重大变化消息来实现动态修正。这种策略可以智能地避免网络拥塞,提高网络效率。然而,链路状态算法也存在一些不足之处,欢迎读者留言讨论。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《业务开发算法 50 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • Daneil
    因为本身需要靠泛洪来更新状态,所以也会给网络带来压力
    2022-01-21
    3
  • Paul Shan
    动态更新节点间的通信成本能避免网络的拥塞,可能带来的一个问题是一份数据的不同包通信的路径不同,时间差异很大,数据一般是被分成不同的包发送的,只有所有数据包都收到的情况下数据才完整,这样,最慢的一个包就会成为通信瓶颈。相比于网络阻塞,这个问题应该是一个小问题。
    2022-01-20
    2
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部