s5-15 开放的最短路径优先_OSPF
L-S路由协议的实例—OSPF
开放的路径优先(Open Shortest Path First)
使用图(graph)来表述真实的网络
- 每个路由器/Lan都是一个节点
- 测量代价/量度(metric)
计算最短路径
OSPF在参考模型中的地位
OSPF概述
- OSPF是一种基于开放标准的链路状态路由协议,是目前IGP中应用最广、
性能最优的一个协议
- OSPF可以在大型网络中使用
- 无路由自环
- OSPF支持VLSM、CIDR等
- 使用带宽作为度量值(108/BW)
- 收敛速度快
- 通过分区实现高效的网络管理
单域OSPF的基本概念
- 必须划分区域
- Area 0(区域0),骨干区域( Backbone area )
-所有子区域必须连接到区域 0上
OSPF的发展历程

单区域OSPF
RouterID 一个32位的无符号整数,是一台路由器的唯一标识,在整个自治系统内唯一
协议号 IP头中代表OSPF报文的协议号是89

TTL=1 通常OSPF报文不转发,只被传递一条,即在IP报头的TTL值被设为1,但虚联接除外
OSPF的网络类型

OSPF术语

OSPF分组(packet)类型
OSPF数据包类型 描述
Type 1-Hello 与邻居建立和维护毗邻关系。
Type 2-数据库描述包(DD) 描述一个OSPF路由器的链路状态数据库内容。
Type 3-链路状态请求(LSR) 请求相邻路由器发送其链路状态数据库中的具体条目
Type 4-链路状态更新(LSU) 向邻居路由器发送链路状态通告
Type 5-链路状态确认(LSA) 确认收到了邻居路由器的LSU
OSPF的运行步骤
1 建立路由器毗邻关系
2 选举DR和BDR
3 发现路由
4 选择最佳路由
5 维护路由信息

建立路由器毗邻关系

OSPF 状态
Down
Init(初始)
Two-way(双向)
ExStart(准启动)
Exchange(交换)
Loading(加载)
Full adjacency(全毗邻)
运行OSPF的路由器状态图

为什么要选举DR和BDR?

DR(村长)选举过程
登记选民 本网段内的OSPF路由器 (本村内的18岁以上公民)
登记候选人 本网段内的priority > 0的OSPF路由器 (本村内的30岁以上公民,且在本村居住3年以上)
竞选演说 所有的priority>0的OSPF路由器都认为自己是DR (所有的候选人都自认为应该当村长)
投票 选priority值最大的,若priority值相等,选Router ID最大的 ( 选年纪最大的,若年龄相等,按姓氏笔划排序)
DR选举中的指导思想

DR可能带来的问题

DR带来的变化
同步的次数减少了(O(n)),减少了带宽的利用
路由器的角色:DR、BDR、DROther
路由器间的关系:Unknown、Neighbor、Adjacent
选择最佳路由
SPF算法
负载均衡

维护路由信息
- 触发更新,LSU
- Hello分组发送的时间间隔:缺省10秒
- Hello分组的失效间隔:缺省40秒
- 即使没有拓扑变化,LSA在条目过期(缺省30分钟)后,发送LSU,通告链路存活
为什么说OSPF克服了路由自环?
- 每一条LSA都标记了生成者(用生成该LSA的路由器的RouterID标记),其他路由器只负责传输,这样不会在传输的
过程中发生对该信息的改变和错误理解。
- 路由计算的算法是SPF,计算的结果是一棵树,路由是树上的叶子节点,从根节点到叶子节点是单向不可回复的路径。
- 区域之间通过规定骨干区域避免
小结
- OSPF是内部网关协议(IGP)中性能最优、应用最广的一个协议
- 建立全毗邻关系的目的是:同步链路状态数据库(拓扑数据库)
- OSPF路由器启动之后,随着报文的交互,状态发生了变化(初始、双向、准启动……)
- 选举DR来减少同步次数
s5-15 开放的最短路径优先_OSPF的更多相关文章
- CCNA学习指南 -开放最短路径优先OSPF(单区域)
在上个世纪九十年代撰写的<TCP/IP协议详解 卷一:协议>的动态选路中,内容大部分还是介绍 RIP路由选择信息协议,在互联网络如此发达的今天,RIP因为它的局限性逐步被OSPF取代. 在 ...
- 开放式最短路径优先OSPF
1.OSPF基本知识 OSPF作为基于链路状态的协议,解决了RIP在收敛慢,路由环路,可扩展性差等问题,还有以下优点: 采用组播方式发布报文,可以减少对其他不运行ospf路由器的影响 ospf直尺无类 ...
- CCNA学习指南 -开放最短路径优先OSPF(多区域部分)
在之前的介绍中,可以看到单区域OSPF对于古老的RIP的优点: 路由选择更新流量减小 使用与大型网络和链路速度不一样的网络 OSPF能够在LSDB中呈现网络拓扑结构,这使得它汇聚的速度远快于RIP. ...
- [数据结构与算法-15]单源最短路径(Dijkstra+SPFA)
单源最短路径 问题描述 分别求出从起点到其他所有点的最短路径,这次主要介绍两种算法,Dijkstra和SPFA.若无负权优先Dijkstra算法,存在负权选择SPFA算法. Dijkstra算法 非负 ...
- OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络 思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10 通告网络接 ...
- OSPF(Open Shortest Path First)
1.概述 路由协议OSPF全称为Open Shortest Path First,也就开放的最短路径优先协议,因为OSPF是由IETF开发的,所以所有厂商都可以用. OSPF的流量使用IP协议号. O ...
- 最短路径——Dijkstra算法和Floyd算法
Dijkstra算法概述 Dijkstra算法是由荷兰计算机科学家狄克斯特拉(Dijkstra)于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶点到其余各顶点的最短路径算法,解决的是有向图(无 ...
- CCNA2.0笔记_OSPF v2
OSPF(开放最短路径优先)协议概述: - 链路状态路由协议 - 无类路由协议 - 要点:RouterID.区域ID - 触发更新 .以传播 LSA 代替路由表更新 - 快速响应变更(比距离矢量路由协 ...
- 第6章 静态路由和动态路由(4)_OSPF动态路由协议
6. OSPF动态路由协议 6.1 OSPF协议(Open Shortest Path First,OSPF开放式最短路径优先协议) (1)通过路由器之间通告链路的状态来建立链路状态数据库,网络中所有 ...
随机推荐
- iOS耳机监听
1 .插入耳机的时候并没有切换到耳机播放 仍然是扬声器播放 2 .当一开始手机上已经插入耳机时 ,这时候开启音频播放时 仍然是扬声器播放 因此今天主要谈的就是从这两个问题: 先来解决第一个问题:其实解 ...
- 【linux】常见问题&常用命令笔记
1.重启以及关机命令: Linux centos重启命令: (1)reboot 普通重启 (2)shutdown -r now 立刻重启(root用户使用) (3)shutdown -r 10 过 ...
- REUSE_ALV_FIELDCATALOG_MERGE
作用: 根据程序中的数据内表结构,来自动生成FIELDCAT[]内表,不用定义宏或者Form来一个个加入,会根据内表结构所参照的词典类型来自动完成如表标题字段名的生成,得到大概的FIELDCAT[]后 ...
- day 16 包,random,shutil
包: 函数过多,可以分模块文件去管理函数,模块文件过多,将模块文件分类放在一个个的文件夹中,这个文件夹就叫做包,组织结构更加清晰,合理! 模式就是被别人使用,包既然是一些模块的集合,也是被调用. 文件 ...
- dev-server.js浅析
// 检查NodeJS和npm的版本 require('./check-versions')() // 获取配置 var config = require('../config') // 如果Node ...
- os模块。笔记
os 模块提供了很多允许你的程序与操作系统直接交互的功能 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() ...
- u-boot之start_armboot函数分析
在分析start.S文件过程中提到过,最后从汇编跳到C函数执行的是start_armboot函数,位于lib_arm\board.c文件下,它的执行流程图如下,截图来源于<嵌入式LINUX应用开 ...
- Java并发集合(二)-ConcurrentSkipListMap分析和使用
一.ConcurrentSkipListMap介绍 ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景.ConcurrentSkipListMap和TreeMap, ...
- Oracle_SQL(5) 连接和子查询
一.连接join一般分类: inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行. left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录. right ...
- Hadoop(四)shell脚本定时采集日志数据到hdfs
#!/bin/bash #set java envexport JAVA_HOME=/wocloud/java/jdk1.7.0_45export JRE_HOME=${JAVA_HOME}/jree ...