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

news2026/4/11 14:42:01
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 的规模限制和收敛问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2506464.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…