当前位置: 首页 > article >正文

控制平面核心:路由算法与 OSPF 协议

5.1 概述核心定位本章聚焦网络层的控制平面是网络层两大核心平面数据平面 控制平面的关键组成部分。数据平面负责路由器中转发IP 数据报是 “执行层”由路由器硬件 / 固件实现处理每一个到达的分组。控制平面负责路由选择是 “决策层”由路由器软件实现决定数据报的转发路径生成并维护路由表供数据平面使用。控制平面的两大核心架构传统分布式路由架构每台路由器独立运行路由选择算法通过和相邻路由器交换路由信息自主计算到所有目的网络的最优路径生成本地路由表。代表协议内部网关协议 OSPF本章 5.3、外部网关协议 BGP后续章节。特点分布式、去中心化每台路由器自主决策是互联网传统路由的核心架构。软件定义网络SDN架构路由计算由集中式 SDN 控制器完成控制器统一计算全网最优路径将流表下发给所有路由器路由器仅执行转发不参与路由计算。特点集中式、可编程适合数据中心、云网络等新型网络场景是网络架构的演进方向。本章前 3 节的核心脉络5.1 搭建控制平面的整体框架 →5.2 讲解路由选择的通用算法链路状态、距离向量不依赖具体协议 → 5.3落地到互联网实际使用的OSPF 协议链路状态算法在自治系统内的工程实现。5.2 路由选择算法路由选择算法的核心目标在网络拓扑中计算从源节点到目的节点的最优路径最优通常指 “最小代价”代价可以是跳数、链路带宽、时延、费用等。路由算法的分类分类维度类型核心特点网络范围域内路由IGP自治系统AS内部使用如 OSPF、RIP域间路由EGP自治系统之间使用如 BGP决策方式链路状态LS全网拓扑透明每台路由器拥有完整拓扑图独立计算最短路径距离向量DV邻居间迭代交换距离向量逐步收敛到最优路径服务类型单播路由点到点通信本章核心组播路由点到多点通信后续章节5.2.1 链路状态路由选择算法Link-State, LS核心原理每台路由器获取全网完整的拓扑图所有链路的状态、代价然后用 Dijkstra 最短路径算法独立计算到所有目的节点的最短路径。算法执行步骤以路由器 u 为例发现邻居初始化链路状态路由器 u 向所有直连邻居发送 Hello 报文发现邻居节点记录直连链路的代价如带宽、时延。泛洪Flooding链路状态分组LSP路由器 u 生成包含自身 ID、直连邻居、链路代价的 LSP通过泛洪发送给全网所有路由器每台路由器收到 LSP 后转发给除入接口外的所有邻居确保全网同步。构建全网拓扑图所有路由器收到所有 LSP 后在本地构建完全一致的全网拓扑图无向带权图节点是路由器边是链路权值是链路代价。运行 Dijkstra 算法计算最短路径以自身为根节点运行 Dijkstra 算法计算到所有目的节点的最短路径生成路由表。Dijkstra 算法核心逻辑以 u 为源节点初始化N已确定最短路径的节点集合初始仅包含uD(v)到节点 v 的当前最短路径代价初始D(u)0直连邻居D(v)c(u,v)其余节点D(v)∞p(v)v 的前驱节点用于回溯路径迭代从N外的节点中选择D(w)最小的节点w加入N对w的所有邻居v更新D(v) min(D(v), D(w)c(w,v))若更新则记录p(v)w重复直到所有节点加入N最终D(v)就是 u 到 v 的最短路径代价p(v)回溯得到完整路径。链路状态算法的优缺点✅优点路由收敛快拓扑变化时泛洪 LSP 后全网同步更新无计数到无穷问题路由无环路基于全网拓扑计算最短路径天然无环支持大规模网络适合自治系统内部的大规模路由如 OSPF❌缺点泛洪开销大LSP 泛洪会占用网络带宽尤其在大型网络中存储与计算开销高每台路由器需要存储全网拓扑运行 Dijkstra 算法对路由器性能要求高5.2.2 距离向量路由选择算法Distance-Vector, DV核心原理每台路由器仅和直连邻居交换 “距离向量”到所有目的网络的最小代价 下一跳通过迭代更新逐步收敛到最优路径是 Bellman-Ford 算法的分布式实现。算法核心公式Bellman-Ford 方程对于路由器x到目的网络y的最小代价D_x(y)满足Dx​(y)minv∈N(x)​{c(x,v)Dv​(y)}其中N(x)x 的直连邻居集合c(x,v)x 到邻居 v 的链路代价D_v(y)邻居 v 到 y 的最小代价邻居向 x 通告的距离向量算法执行步骤以路由器 x 为例初始化路由表初始时x 仅知道直连链路的代价到直连邻居 v 的代价为c(x,v)到非直连节点的代价为∞。周期性向邻居通告距离向量x 周期性如 RIP 的 30 秒向所有直连邻居发送自己的距离向量[D_x(y_1), D_x(y_2), ...]即到所有目的网络的最小代价。根据邻居通告更新路由表x 收到邻居 v 的距离向量后用 Bellman-Ford 方程更新自己的D_x(y)若c(x,v) D_v(y) 当前D_x(y)更新D_x(y)并将下一跳设为 v若邻居 v 不再可达将所有以 v 为下一跳的路由代价设为∞触发更新迭代收敛重复步骤 2-3直到所有路由器的距离向量不再变化算法收敛路由表稳定。距离向量算法的关键问题与解决方案计数到无穷Count to Infinity问题当链路故障时坏消息传播慢路由器之间会互相 “误导”导致路由代价无限增大无法收敛。场景A-B-CA 到 C 的代价为 2A→B→C若 B-C 链路断开B 会向 A 通告 “到 C 的代价为∞”但 A 会向 B 通告 “到 C 的代价为 3A→B→C”B 误以为 A 有路径更新为 4A 再更新为 5无限循环。解决方案定义最大有效代价如 RIP 定义最大跳数为 1516 代表不可达超过 15 跳直接标记为不可达终止计数。毒性逆转Poison Reverse路由器向邻居通告路由时若下一跳是该邻居则通告代价为无穷大避免邻居从该路由器学习路由解决两个节点的计数到无穷问题。水平分割Split Horizon路由器不从收到路由的接口再发回该路由从根源避免邻居间的路由循环。触发更新Triggered Update拓扑变化时立即发送更新报文而不是等待周期加快坏消息传播。距离向量算法的优缺点✅优点实现简单仅和邻居交换信息无需泛洪全网存储与计算开销低适合小型网络如早期局域网、小型自治系统如 RIP 协议❌缺点收敛慢拓扑变化时坏消息传播慢存在计数到无穷问题路由环路风险迭代过程中可能出现临时环路不适合大规模网络周期更新会占用大量带宽收敛时间随网络规模增大而变长5.3 因特网中自治系统内部的路由选择OSPFOSPFOpen Shortest Path First开放最短路径优先是互联网标准的内部网关协议IGP用于自治系统AS内部的路由选择是链路状态路由算法的工程实现替代了早期的 RIP 协议。核心特点基于链路状态算法每台 OSPF 路由器泛洪 LSA链路状态通告构建全网拓扑运行 Dijkstra 算法计算最短路径天然无环、收敛快。开放标准IETF 定义的开放协议所有厂商设备均可实现无专利限制。支持层次化路由区域划分将自治系统划分为多个区域Area解决大规模网络的泛洪开销问题。支持多种链路代价可基于带宽、时延、费用等自定义链路代价默认以带宽为参考代价 10^8 / 带宽单位 bps。安全机制支持报文认证明文 / MD5/SHA防止非法路由器注入虚假路由。支持等价路由可同时计算多条代价相同的最短路径实现负载均衡。支持 IP 多播OSPF 报文使用 IP 多播地址224.0.0.5/224.0.0.6发送减少网络带宽占用。OSPF 的核心组件与工作流程1. 自治系统与区域划分Hierarchical OSPF为解决大型 AS 的泛洪开销问题OSPF 将 AS 划分为区域Area核心结构骨干区域Area 0必须存在ID 为 0.0.0.0所有非骨干区域必须直接连接到骨干区域负责区域间路由的分发。非骨干区域如 Area 1、Area 2 等仅在区域内泛洪 LSA区域间路由通过骨干区域传递。路由器角色区域内路由器Internal Router所有接口都在同一个区域内仅维护本区域的拓扑。区域边界路由器ABR同时连接骨干区域和非骨干区域负责将非骨干区域的路由汇总后发布到骨干区域再由骨干区域分发到其他区域。骨干路由器Backbone Router至少有一个接口在骨干区域包括 ABR 和骨干区域内的内部路由器。自治系统边界路由器ASBR连接 OSPF AS 和其他 AS如 BGP 网络负责将外部路由引入 OSPF 网络。2. OSPF 报文类型OSPF 直接封装在 IP 报文中协议号 89共 5 种报文报文类型名称核心作用1Hello 报文发现 / 维护邻居关系周期性发送默认 10 秒确认邻居可达2数据库描述报文DBD交换链路状态数据库LSDB的摘要用于邻居间同步 LSDB3链路状态请求报文LSR请求缺失的 LSA用于同步 LSDB4链路状态更新报文LSU发送完整的 LSA泛洪拓扑信息5链路状态确认报文LSAck确认 LSU 报文确保泛洪可靠3. OSPF 工作流程邻居发现与邻接建立路由器发送 Hello 报文发现直连邻居协商参数区域 ID、认证信息、Hello/Dead 间隔等参数一致则建立邻居关系。对于广播网络如以太网选举指定路由器DR和备份指定路由器BDR所有非 DR/BDR 路由器仅和 DR/BDR 建立邻接关系减少邻接数量降低泛洪开销。链路状态数据库LSDB同步邻居间交换 DBD 报文对比 LSDB 摘要若有缺失 LSA发送 LSR 请求对方回复 LSU发送 LSAck 确认最终所有同区域路由器的 LSDB 完全一致。泛洪 LSA维护拓扑拓扑变化时路由器生成 LSA通过 LSU 报文泛洪到全网所有路由器更新 LSDB重新运行 Dijkstra 算法计算最短路径。周期性泛洪默认 30 分钟确保 LSDB 一致性。计算最短路径生成路由表每台路由器以自身为根运行 Dijkstra 算法计算到所有目的网络的最短路径生成 OSPF 路由表供数据平面转发使用。4. OSPF 的链路代价与路由类型链路代价默认cost 10^8 / 带宽(bps)如 100M 链路代价为 11G 链路代价为 110G 链路代价为 1可手动配置。路由类型优先级从高到低区域内路由Intra-area本区域内的路由优先级最高区域间路由Inter-area通过 ABR 学习的其他区域的路由类型 1 外部路由E1外部路由代价 外部代价 内部到 ASBR 的代价类型 2 外部路由E2仅使用外部代价默认类型优先级最低OSPF vs RIP距离向量协议特性OSPF链路状态RIP距离向量算法基础链路状态 Dijkstra距离向量 Bellman-Ford收敛速度快拓扑变化立即泛洪慢周期更新存在计数到无穷网络规模适合大型 AS无跳数限制适合小型网络最大跳数 15泛洪开销区域划分后开销可控周期更新大型网络带宽占用高路由环路天然无环存在临时环路风险认证机制支持不支持RIPv2 支持等价路由支持支持报文封装IP 协议号 89UDP 520 端口核心知识点总结控制平面 vs 数据平面控制平面负责路由决策数据平面负责分组转发是网络层的两大核心。两大路由算法链路状态LS全网拓扑透明Dijkstra 计算收敛快、无环适合大型网络OSPF。距离向量DV邻居迭代更新Bellman-Ford 实现实现简单适合小型网络RIP需解决计数到无穷问题。OSPF 核心链路状态算法的工程实现支持层次化区域划分是互联网主流的内部网关协议解决了 RIP 的规模限制和收敛问题。

相关文章:

控制平面核心:路由算法与 OSPF 协议

5.1 概述核心定位本章聚焦网络层的控制平面,是网络层两大核心平面(数据平面 控制平面)的关键组成部分。数据平面:负责路由器中转发IP 数据报,是 “执行层”,由路由器硬件 / 固件实现,处理每一个…...

3分钟快速上手:Windows系统终极Btrfs驱动完全指南

3分钟快速上手:Windows系统终极Btrfs驱动完全指南 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 你是否曾羡慕Linux用户能享受Btrfs文件系统的强大功能,却苦于…...

Embedding微调避坑指南:ms-swift里5种Loss函数到底怎么选?(附数据集格式样例)

Embedding微调实战:ms-swift框架中5种损失函数的深度选择指南 当你在ms-swift框架中进行Embedding模型微调时,损失函数的选择往往决定了整个项目的成败。面对InfoNCE、余弦相似度、对比学习等不同选项,很多开发者都会陷入"选择困难症&qu…...

为什么92%的AI初创公司输在IP起点?——基于56个真实败诉案例的AI研发全生命周期权属漏洞图谱

第一章:AI原生软件研发知识产权保护策略的底层逻辑 2026奇点智能技术大会(https://ml-summit.org) AI原生软件的研发范式已从根本上重构知识产权(IP)的生成、归属与边界——模型权重、提示工程链、微调数据集、推理服务接口乃至训练日志&…...

缩空气储能和释能阶段模型➕相关文档文献。 建立了压缩空气储能系统中的压缩机、换热器、储气罐、透平、热水罐等设备的数学模型、 并在 Simulink仿真平台上

压缩空气储能和释能阶段模型➕相关文档文献。 建立了压缩空气储能系统中的压缩机、换热器、储气罐、透平、热水罐等设备的数学模型、 并在 Simulink仿真平台上、 按模块化建模方式完成了系统相关程序编写和仿真模型建立、 包含储能和释能两个阶段的模型压缩空气储能&#xff08…...

Phi-4-reasoning-vision-15B基础教程:图像上传→提问→模式选择→结果解读

Phi-4-reasoning-vision-15B基础教程:图像上传→提问→模式选择→结果解读 1. 快速认识Phi-4-reasoning-vision-15B Phi-4-reasoning-vision-15B是一款强大的视觉多模态推理模型,它能像人类一样"看"图片并回答相关问题。想象一下&#xff0c…...

从浏览器到讲台:PPTist如何用Vue3重新定义在线演示文稿编辑体验

从浏览器到讲台:PPTist如何用Vue3重新定义在线演示文稿编辑体验 【免费下载链接】PPTist PowerPoint-ist(/pauəpɔintist/), An online presentation application that replicates most of the commonly used features of MS PowerPoint, al…...

3步掌握Happy Island Designer:从零开始打造完美动物森友会岛屿

3步掌握Happy Island Designer:从零开始打造完美动物森友会岛屿 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal …...

【2026奇点智能技术大会权威指南】:LLM生产部署的7大避坑红线与3套已验证SLO达标方案

第一章:2026奇点智能技术大会:LLM生产环境部署指南 2026奇点智能技术大会(https://ml-summit.org) 在真实业务场景中,将大语言模型(LLM)从实验环境迁移至高可用、低延迟、可审计的生产环境,需系统性权衡推…...

终极Windows驱动清理指南:用Driver Store Explorer释放20GB磁盘空间

终极Windows驱动清理指南:用Driver Store Explorer释放20GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer Driver Store Explorer(简称RAPR&#xff09…...

TypeScript 中函数类型的定义与应用

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...

OBS背景移除插件终极指南:三步实现专业级绿幕效果

OBS背景移除插件终极指南:三步实现专业级绿幕效果 【免费下载链接】obs-backgroundremoval An OBS plugin for removing background in portrait images (video), making it easy to replace the background when recording or streaming. 项目地址: https://gitc…...

终极指南:如何用D3KeyHelper彻底解放双手,让你的暗黑3游戏体验提升500%

终极指南:如何用D3KeyHelper彻底解放双手,让你的暗黑3游戏体验提升500% 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否…...

免费商用!Source Han Serif CN开源宋体完全实战手册

免费商用!Source Han Serif CN开源宋体完全实战手册 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业设计项目寻找一款既专业又免费的中文字体吗?&…...

精准测试:AI代码变更分析如何缩短回归测试周期

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕人工智能这个话题展开,希望能为你带来一些启…...

CLIP图文匹配工具应用:电商商品图自动匹配描述文案实战

CLIP图文匹配工具应用:电商商品图自动匹配描述文案实战 你是不是也遇到过这样的烦恼?电商团队每天要上新几百个商品,每张商品图都需要配一段吸引人的文案。设计师拍好了图,运营同事对着图片绞尽脑汁想描述,效率低不说…...

智能编码助手横向测评:GitHub Copilot vs Cursor,谁才是你的最佳拍档?

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕人工智能这个话题展开,希望能为你带来一些启…...

如何通过wireshark抓取802.11无线网络的数据包

原文链接:https://wiki.wireshark.org/CaptureSetup/WLAN全文总结 本文围绕IEEE 802.11(WLAN)无线网络抓包环境搭建展开详细说明,核心讲解了在使用Wireshark、TShark等工具抓取无线流量时,不同抓包需求对应的配置方式、…...

深度解析RPG Maker MV/MZ插件架构:从核心原理到高效开发实践

深度解析RPG Maker MV/MZ插件架构:从核心原理到高效开发实践 【免费下载链接】RPGMakerMV RPGツクールMV、MZで動作するプラグインです。 项目地址: https://gitcode.com/gh_mirrors/rp/RPGMakerMV RPG Maker MV/MZ插件集合是一个包含500个JavaScript插件的开…...

解决Navicat从备份中提取单表数据失败报错怎么办_错误日志排查

Navicat 导入 SQL 备份报错主因是上下文缺失:跨库语句(USE/CREATE DATABASE)、权限语句、全限定表名、编码不匹配或锁超时。应删无关语句、确认库存在及权限、用纯 UTF-8 编码、避免图形界面导大数据,优先用 mysqldump 配合「运行…...

RedmiBook Pro15 2023锐龙版Linux调优指南:从内核编译到amd-pstate睿频实战

1. 开箱即用的Linux调优指南 RedmiBook Pro15 2023锐龙版搭载了AMD Ryzen 7 7840HS这颗性能强劲的APU,但在Linux环境下想要充分发挥其潜力,需要一些特殊的调优技巧。我最近刚入手这台笔记本,在Ubuntu 22.04上折腾了一周,总结出这套…...

Lua游戏AI实战:如何用ai_mgr管理多个AI组件(附完整代码解析)

Lua游戏AI实战:ai_mgr组件管理架构设计与实现精要 在游戏开发领域,AI系统的灵活性和可维护性往往决定了游戏体验的上限。当角色需要根据环境变化切换不同行为模式时,如何优雅地管理这些AI组件就成为了架构设计的核心挑战。本文将深入探讨基于…...

虚幻引擎5(UE5)内容管理器(Content Browser)高效工作流全解析

1. 内容管理器基础认知:你的UE5资源中枢 第一次打开UE5的内容管理器时,我就像走进了一个杂乱无章的仓库——模型、材质、蓝图散落各处,根本找不到需要的资源。经过三个项目的实战打磨,才发现这个看似简单的界面其实是整个项目的神…...

数简时空数字基础平台的三种遥感影像图自动边界提取

"XX地球"数据查询背后的“神秘”推手在商业航天飞速发展的今天,卫星数据商业化平台、遥感公共平台、“XX地球”等卫星影像分发平台如雨后春笋般普及,促进了卫星遥感数据的共享流通与商业化应用。在平台上,用户通过在线地图框选一个…...

从U9C到钉钉:基于OPENAPI的审批流集成实战与避坑指南

1. 为什么需要U9C与钉钉审批流集成 在企业日常运营中,U9C作为ERP系统承担着核心业务管理功能,而钉钉则是移动办公和流程审批的利器。但两套系统各自为政时,会产生不少痛点。最常见的就是业务人员在U9C中生成采购单后,还要手动到钉…...

SpringBoot使用Redis缓存

耗时一月收集的学习资料,强烈建议学习一下&#xff1a; https://pan.quark.cn/s/b5638e1405d7 正文开始&#xff1a; &#xff08;1&#xff09;pom.xml引入jar包&#xff0c;如下&#xff1a; <dependency><groupId>org.springframework.boot</groupId>&l…...

Phi-4-mini-reasoning效果展示:数理逻辑符号(∀, ∃, →)在中文输出中的保真度

Phi-4-mini-reasoning效果展示&#xff1a;数理逻辑符号&#xff08;∀, ∃, →&#xff09;在中文输出中的保真度 1. 模型核心能力概览 Phi-4-mini-reasoning是一款专为推理任务优化的文本生成模型&#xff0c;特别擅长处理数学证明、逻辑推理和多步骤分析任务。与通用聊天模…...

跨平台资源获取神器:3个技巧让全网视频音频轻松到手

跨平台资源获取神器&#xff1a;3个技巧让全网视频音频轻松到手 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否曾遇到…...

龙芯k - 走马观碑组MPU驱动移植芯

先回顾&#xff1a;三次握手&#xff08;建立连接&#xff09;核心流程&#xff08;实际版&#xff09; 为了让挥手流程衔接更顺畅&#xff0c;咱们先快速回顾三次握手的实际核心&#xff0c;避免上下文脱节&#xff1a; 第一步&#xff08;客户端→服务器&#xff09;&#xf…...

Linux 装海康/Basler/堡盟相机驱动总失败?

Linux 装海康/Basler/堡盟相机驱动总失败&#xff1f; 别再盲目重装&#xff01;90% 的问题出在这 3 个地方&#xff01; “下载了 SDK&#xff0c;运行 install.sh 却报错&#xff1f;” “Pylon Viewer 找不到相机&#xff1f;” “MVS 能识别&#xff0c;但 Python 调用就崩…...