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)来协调
好处: 这样就把一个大网络分割成了多个小网络, 大大减少了通信量和计算量, 让网络可以变得
非常非常大!