5.2 自治系统内部的路由选择

1.自治系统

2.RIP

3.OSPF


1.自治系统

csharp 复制代码
a.自治系统可以将它想象成一个独立的王国, 一个大型的公司集团或一个互联网服务器提供商

比如: 中国电信/中国移动的网络, 腾讯或阿里巴巴的内部网络, 你所在大学的校园网

b.自治系统内部所使用的协议是一种在自治系统内部使用, 用于交换路由信息, 发现和计算路径

的路由协议

c.自治系统内部所使用的协议: RIP和OSPF

2.RIP

csharp 复制代码
1).RIP(Routing Information Protocol)简介

a.全名: 路由信息协议

b.工作性质: 内部网关协议, 负责在一个自治系统内部进行路由

c.核心算法: 距离矢量算法

csharp 复制代码
2).RIP的工作流程

a."距离": 在RIP眼里, 距离就是跳数; 每经过一台路由器, 跳数就 + 1

- 直连的邻居: 距离 = 0跳(有些实现为1跳)

- 邻居的邻居: 距离 = 1跳

b."矢量": 矢量就是方向, RIP的路由表里只记录:

- 目的网络: 我要去哪个村子(网络)

- 下一跳: 我下一步该把信交给谁

- 距离: 那个村子离这儿有多远(跳数)

c.工作流程(传话游戏)

- 启动: 路由器刚开机时, 只知道自己直连的几个网络(距离为0)

- 广播: 每隔30秒, 它就会向所有邻居大声广播自己的整个"通讯录"(路由表)

- 学习: 邻居收到广播后, 会把每条信息里的"距离"都 + 1, 然后把"下一跳"改为这个广播的

邻居

- 更新: 如果这是一条新路, 就记下来, 如果这条路更近, 就更新

csharp 复制代码
3).RIP的三大铁律

a.最大跳数15, 任何距离超过15跳的网络都被认为是"不可达"的, 为了防止一个坏消息(路由环

路)在网络上无限循环下去

b.定期更新30秒, 不管网络有没有变化, 到点就广播整个路由表; 一种简单的保活机制, 告诉

邻居"我还活着"

c.坏消息传得慢, 当一条路径失效时, 需要较长时间所有路由器才能同步这个信息; 这是距离矢

量算法的天然缺陷
csharp 复制代码
RIP的生存法则

a.水平分割

从一个接口学来的路由, 不再从这个接口发回去; 就像你不能把从张三那儿听来的八卦, 再原封

不动地告诉张三本人

b.毒性逆转

水平分割的增强版, 如果从某个接口学到了路由, 在发回给那个邻居时, 会将该路由的距离标记

为16(不可达), 这是一种更积极的"辟谣"方式

c.抑制计时器

当一条路由变为不可达时, 路由器会在一段时间内"按住"这条路由, 不接收关于它的新消息, 以

防收到不可靠的旧信息

3.OSPF

csharp 复制代码
1).OSPF(Open Shortest Path First)简介

a.全名: 开放最短路径优先

b.工作性质: 内部网关协议, 负责在一个自治系统内部进行路由

c.核心算法: 链路状态算法

csharp 复制代码
2).OSPF是如何工作的?

a.建立邻居关系

- 路由器启动后, 通过发送Hello包发现直连的邻居

- 就像测绘员先和隔壁的同事打个招呼, 确认对方身份和工作状态

b.交换并同步链路状态数据库

- 邻居之间会互相交换一种叫LSA的数据包, 里面包含了我连接了哪些网络、我的链路成本是多

少等信息

- 最终, 同一个区域内的所有路由器, 都会拥有一模一样的完整地图, 这保证了大家决策依据的

一致性

c.计算最优路径

- 每台路由器以自己的视角, 在这张完整的地图上, 运行Dijkstra(最短路径优先)算法

- 这个算法会计算出一条到达网络中所有其他网段的最短路径树

- "成本"是关键: OSPF的"最短"不是指跳数, 而是指链路成本; 成本通常与带宽成反比(带宽

越高,成本越低), 所以它会优先选择高速链路, 非常智能

d.生成路由表

将SPF算法计算出的最优路径, 安装到自己的IP路由表中, 用于实际的数据转发

csharp 复制代码
3).区域

想象一下, 如果整个中国的地图细节都放在一张纸上, 这张图会巨大无比, 谁也看不清楚

1).OSPF的解决办法是: "分层绘图"

a.骨干区域: 叫做Area0, 相当于"国家交通部", 负责连接各个省份

b.常规区域: 比如Area 1, Area2... 相当于"各个省份"

2).规则

a.省内(区域内)的路况变化, 只在省内广播, 不会惊动全国

b.跨省的业务, 必须经过国家交通部(Area 0)来协调

好处: 这样就把一个大网络分割成了多个小网络, 大大减少了通信量和计算量, 让网络可以变得

非常非常大!
相关推荐
莫小墨3 小时前
基于TCP/IP和UDP组播的Qt网络直播间项目
网络·qt·tcp/ip·udp
Code Warrior3 小时前
【Linux】Socket 编程预备知识
linux·网络·c++
jenchoi4133 小时前
【2025-11-12】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·安全·web安全·网络安全·npm
xxtzaaa5 小时前
游戏被IP限制多开,如何在同一网络下用不同IP多开游戏?
网络·tcp/ip·游戏
DY009J5 小时前
如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器
网络·windows·ubuntu
Empty_7776 小时前
Ansible之Playbook简单应用
网络·ansible
Orlando cron6 小时前
CPU Load(系统平均负载)
运维·服务器·网络
Nimsolax7 小时前
Linux网络数据链路层
linux·网络
小武~7 小时前
嵌入式网络编程实战:从Socket基础到高并发优化
linux·网络