网络层------OSPF&RIP
- 前文
- OSPF
- RIP
-
- (1)基本思路
- (2)基本思路
- (3)基本思路
-
- 知识点补充
- [一、OSPF 相关知识点](#一、OSPF 相关知识点)
- [二、RIP 相关知识点](#二、RIP 相关知识点)
- RIP为什么会产生回路
- 正常情况:路线清晰无误会
- 突发状况:B和C之间的路断了(链路中断)
- 误会产生:邻居传递"过时消息",形成环路
- 环路形成:快递员在A和B之间绕圈
- 核心问题(对应RIP的缺陷)
前文
- 以下是选自湖科大高老师的每日一题 我觉得可以帮助大家彻底回顾一下OSPF以及RIP协议 我觉得如果第一遍能够把下面这些题目做的差不多的情况之下那么我觉得是很厉害的 因为下面包含了很多小的点 如果你并不是很了解的情况之下 那么想必不会做的很顺畅
- 这里主要介绍的是AS自治系统的内部网关协议 此外还有BGP等外部网关协议 例如在24年408真题中就考察了BGP协议中的UPDATE报文 还有ibgp以及eBGP 以及热土豆算法等 在做完这些年真题并录制讲解复盘的过程中 给我的感觉是 408真的逐年深入了 5年一个周期 有些题目放在10年前是根本不敢想的
OSPF


(1)基本思路
- 首先我们知道的是对于OSPF协议而言 什么是好的路由?一定是尽可能的让代价越小越好对吧
- 那么我们从H1以及H2的IP地址就可以知道:
- 那么我们对于这个IP分组的转发我们有三条路径选择但是 应该走的路线是:
- R1------>R6------>R5------>R4------>R3 因为代价相比于其他路线来说小
- 所以很显然经过了五个路由器的转发 所以我们至少需要将TTL字段设置为6 这样才能保证在不发生差错的情况下安全到达目的主机
| 主机 | IP地址 | 从属网络(CIDR) |
|---|---|---|
| H1 | 192.168.1.126 | 192.168.1.0/25 |
| H2 | 192.168.2.166 | 192.168.2.128/25 |
| H3 | 192.168.1.129 | 192.168.1.128/25 |
| H4 | 192.168.1.16 | 192.168.1.0/25 |
(2)基本思路
- 既然链路状态发生了变化 那么我们就会发送链路状态更新分组 也就是LSU 这个从英文来说是非常好记忆的
LSU------Link State Update正好就对应了我们的中文含义对吧 - 由于我们的OSPF协议是基于IP的 所以我们会封装成IPv4数据报
- 其目的地址是多播(组播)IPv4地址 这是因为我们这样做更像是我们路由器家族之间的会议 而不是采用广播IP地址将信息传输到局域网去
(3)基本思路

- 当然不会啦 我们的OSPF协议基于迪杰斯特拉算法 从而使得该自治系统中的每个路由器都知晓最优的转发路径 而这种算法的前提就是针对有向无环图中求从某个顶点到其余顶点的最短路径
RIP


(1)基本思路
一共为3次 首先对于RIP来说 我们认为好的路由是跳数比较少的路由对吧
那么显然我们应该从H3所在网络------>R4------>R1------>H4所在网络
-
由于IP 地址是网络层标识,无法直接用于物理 / 链路层的帧传输
-
1 我们的路由器R4通过ARP协议知晓路由器R4的MAC地址 将IP分组封装成帧在链路上进行传输
-
2 R4与R1之间还得需要使用一次ARP协议 其实本质上还是已知IP找MAC 因为在收敛的时候 我们肯定是知道R1的IP地址的 所以我们就可以借助ARP协议
-
哪怕是自治系统(AS)内的路由器之间传输 IP 分组,也必须通过 ARP 获取对端路由器的 MAC 地址,才能完成帧的封装和发送。
-
3 最后当然就是我们需要R1通过ARP协议知晓目的主机的MAC地址
(2)基本思路
RIPv2(记忆)RIP基于传输层协议为UDP端口号为熟知端口号520 网络层还是IP协议
(3)基本思路
- 都是60s 我们只需要注意两个核心就不会写错
- 1 首先就是需要注意我们在初始化完毕(得到直连网络的信息)之后就会立即进行交换
对于RIP路由表的格式需要专门注意的是 我们的目的网络应该写成CIDR地址块的形式 还有我们的下一条路由器指的是具体的路由器对应IP接口的地址 下面只不过是简写!!!

- 2 我们可以用BFS的方式来理解我们最后的用时 因为我们的洪泛法的思想和我们BFS的核心------蔓延是很像的 所以我们在计算RIP收敛时间的时候可以想象一个BFS遍历有向图的过程
知识点补充
OSPF 部分 :TTL 字段、5 种 OSPF 分组类型 、LSU 洪泛机制 、链路状态协议无环特性
RIP 部分 :ARP 解析 原理、RIPv1/v2 区别、UDP 端口 520 、距离向量协议 的路由环路 问题、收敛时间计算方法
一、OSPF 相关知识点
1. TTL(Time To Live,生存时间)
-
TTL 字段位'于 IP 数据报首部',占 8 位,表示数据报在网络中的最大跳数
-
每经过一个路由器,TTL 值减 1;当 TTL = 0 时,路由器丢弃该数据报
-
作用:防止数据报在网络 中无限循环
-
问候分组(Hello):发现和维持邻居关系
-
数据库描述分组(DD):交换链路状态数据库的摘要信息
-
链路状态请求分组(LSR):请求特定的链路状态信息
-
链路状态更新分组(LSU) :包含链路状态通告(LSA),传播链路状态信息
-
链路状态确认分组(LSAck):对 LSU 的确认
3. OSPF 链路状态变化的处理
- 当链路状态变化时,路由器会发送 LSU(链路状态更新)分组
- LSU 封装成 IP 数据报(网络层 PDU)
- 目的地址为 组播地址(224.0.0.5 或 224.0.0.6)
- 其他路由器的转发方式:洪泛(Flooding)
- 洪泛特点:除接收接口外,从所有其他接口转发;可靠洪泛(需要确认和重传)
4. OSPF 不会产生路由环路
- 原因:OSPF 是链路状态路由协议,每个路由器都拥有完整的网络拓扑信息
- 使用 Dijkstra 算法计算最短路径树,确保路由的一致性和无环性
二、RIP 相关知识点
1. ARP(地址解析协议)
- 作用:将 IP 地址 解析为 MAC 地址
- 解析时机:数据报每经过一个网络(跨越一个路由器),都需要进行一次 ARP 解析
- 解析次数 = 跳数 + 1(源主机需要解析下一跳,每个路由器需要解析下一跳)
2. RIP 版本识别
- RIPv1 :不支持子网掩码,使用有类路由
- RIPv2 :支持子网掩码,使用无类路由(CIDR)
- 从题目中 IP 地址表示形式(如 192.168.2.0/25)可判断使用 RIPv2
3. RIPv2 报文格式
- 传输层协议 :UDP
- 端口号 :520
- 网际层协议 :IP
4. RIP 可能产生路由环路
- 原因:RIP 是距离向量路由协议,路由器只知道到达目的网络的距离和方向,不了解完整网络拓扑
- 可能出现计数到无穷问题
- 解决方法:水平分割 、毒性逆转 、触发更新等
5. RIP 路由收敛时间计算
- RIP 最大跳数限制:15 跳(16 跳表示不可达)
- 更新周期:每 30 秒交换一次距离向量
- 收敛时间 = (最大跳数 - 1)× 更新周期
- 对于不同网络,根据其距离(跳数)计算到达时间
RIP为什么会产生回路
咱们用"快递员问路"的场景,把RIP路由环路讲得明明白白!
想象一个小镇(自治系统)里有三个快递站:A、B、C(对应三台路由器)。
- C站直接负责"幸福小区"(目标网段)的快递,A到C必须经过B,B到C是直达。
- 所有快递员(RIP协议)都有个规矩:不看全镇地图,只问隔壁快递站"怎么去幸福小区",还会把邻居说的路线记下来,30分钟才跟邻居同步一次最新路线(路由更新周期)。
正常情况:路线清晰无误会
- B问C:"去幸福小区咋走?" C说:"我直达,1步到!" 所以B记着"到幸福小区:下一跳C,1步"。
- A问B:"去幸福小区咋走?" B说:"经我到C,2步到!" 所以A记着"到幸福小区:下一跳B,2步"。
大家按这个路线送快递,顺顺利利~
突发状况:B和C之间的路断了(链路中断)
突然B到C的桥塌了(B-C链路中断),B去不了C了,但A还不知道这个消息。
- B首先发现"自己到不了C",但它没全镇地图,只能等邻居来同步消息,或者自己30分钟后主动跟A说。
误会产生:邻居传递"过时消息",形成环路
- 桥塌后才10分钟(还没到30分钟更新时间),A主动跟B同步路线:"我这儿有到幸福小区的路线,经你到C,2步!"
- B一听懵了:"我到不了C啊,但A说能经我到C?难道A有别的路?" 它不怀疑A的消息(RIP只信邻居),就赶紧记下:"到幸福小区:下一跳A,3步(A说2步,加我这1步)"。
- 又过了10分钟,B跟A同步路线:"我这儿有到幸福小区的路线,经我到A,3步!"
- A一听也懵了:"我之前记的是经B到C2步,现在B说经A到C3步?难道B有新路线?" 它也不怀疑,赶紧更新:"到幸福小区:下一跳B,4步(B说3步,加我这1步)"。
环路形成:快递员在A和B之间绕圈
现在A认为"经B能到幸福小区(4步)",B认为"经A能到幸福小区(3步)",俩快递员拿着去幸福小区的快递,在A和B之间来回转:
A把快递发给B,B一看"下一跳是A",又把快递发回A,A再发B......一直绕到俩快递员发现"这路线都绕了16步了,肯定到不了"(RIP最大跳数15,16视为不可达),才停止折腾。
核心问题(对应RIP的缺陷)
- 快递员不看全局地图(RIP无全局拓扑),只信邻居的话(路由信息依赖邻居);
- 30分钟才同步一次消息(慢收敛),桥塌了消息传不快,导致"过时消息"误导邻居;
- 只算"走几步"(跳数度量),不算"路通不通",哪怕绕圈,只要步数没到16,就接着传。
简单说,RIP路由环路就是"邻居之间互相传过时的假路线,最后俩人对着绕圈",本质是"没全局视野+消息传得慢"导致的误会~