OSPF和EIGRP一样都是通过发送hello包建立邻居关系

邻居关系通过周期性发送Hello包来建立,Hello包建立的表叫邻居表,邻居表的内容比较简单,就是我本地哪个接口连接了哪个邻居。

建立完邻居之后我就开始传送路由信息了,而传送的路由信息叫做LSA,通过传送LSA来构建链路状态数据库;

链路状态数据库里面存放LSA,它包含了本区域完整的链路状态信息(其实跟EIGRP的拓扑表类似,但比EIGRP的拓扑表详细)

LSDB构建好了之后,OSPF利用SPF算法从链路状态数据库中算出一条最优的路径放到路由表

LS路由协议比DV路由协议更了解网络中的信息,因此更能找到最佳网络的路径(如何来理解?)

每台路由器有一个完整的网络拓扑信息;

所以,链路状态路由器更能找到最佳网络的路径;

可以和EIGRP做一个对比:

R1-R2-R3

比如运行的是EIGRP,R3宣告Lo0,R3通过EIGRP邻居把路由发给R2,R2再传给R1,R1上查看路由表或者拓扑表时无法判断路由的始发者是谁,只知道是R2传过来的,所以这种DV协议也叫传闻式的协议。

而如果运行的是OSPF的话,那OSPF的数据库中不仅包含R3的Lo0路由而且还包含拓扑信息,比如R1清楚的知道该条路由是谁通告出来的。

EIGRP是高级的DV是因为EIGRP有拓扑表,但拓扑表相对简单,只有路由!

OSPF是LS,拓扑表不仅包含路由还包含拓扑信息(lsa)

如:路由通告的源,DV是传闻路由协议也在此体现出来,来源只有邻居而不是路由通告的源

这也是DV和LS的一个区别!!!

ospf三张表:

邻居表:

通常也被称为邻接数据库;

包含所有直连的邻居列表;

拓扑表:

通常也称为LSDB(链路状态数据库);

包含本区域所有的链路状态信息;

同一个区域内的所有路由器有相同的LSDB(链路状态数据库);

拓扑表不仅包含路由还包含拓扑信息(lsa),如:路由通告的源、掩码等等信息

路由表:

通常也叫转发数据库;

存放到达目的地的最佳路径;

链路状态路由协议一定要分层,层次化的网络设计在OSPF中被强制,即规划OSPF时一定要划分区域;

OSPF中主要分两大区域:

主干区域(骨干区域 or Area0)

常规区域(非骨干区域)

这是DV和LS的另一个区别!!!

衔接:

那我们看一下划分区域有哪些作用?

1、减小路由表条目(如何减小呢?其实是可以做域间汇总!可以根据PPT说明一下汇总的好处可以使得H、G上的路由条目更少)

2、本地拓扑的变化只影响本区域(为什么?其实也是因为做了汇总,例如,在C上汇总Area1的路由,F上路由的变化不会影响其他区域)

3、某些LSA不会泛洪到整个OSPF域,减少网络流量(有些LSA只在本区域泛洪,有些LSA会泛洪到整个OSPF域)

4、需要分层的网络设计

区域术语;

骨干路由器BR:A、B

内部路由器IR:F\G\H

ASBR:A

ABR:CDE

OSPF通过互相发送Hello包来建立邻居;

Hello包中会包含一些建立OSPF邻居必要的参数;

我们先回顾一下EIGRP建立邻居的条件:

1.K值要匹配  2.AS号要一致  3.验证要一致

那OSPF建立邻居需要哪些必要条件呢:我们在后面再做详细的探讨

1. Hello和Dead intervals 时间要一致;

2. 区域ID要一致;

3. 验证要一致;

4. Stub 标记要一致;即:stub区域中的所有路由器都要配置成stub路由器

首先,两个概念要区分开,即邻居和邻接的区别:

邻居:仅仅交互了Hello包!没有交互路由信息!!!

邻接:不仅交互了Hello包,还交互了LSA(路由信息)!!!

所以,形成邻接的一定是邻居,反过来就不一定了!!!

OSPF大致分为两种网络类型:

Point-to-Point类型(典型:Serial口)

所有的邻居(neighbor)都会变成邻接(adjacent)

MA类型(BMA、NBMA)(路由器之间有些能够到adjacent状态,有些只能到neighbor状态)

所有邻居都和DR、BDR形成Adjacent关系;

DROTHERs之间只能到达two-way状态;

路由的更新只会在两台adjacent状态的路由器之间传送;

一旦形成adjacent关系,LSDBs就会通过交互LSAs同步;

LSAs泛洪到整个区域;

OSPF计算:

通过应用Dijkstra的SPF算法的对链路状态数据库进行计算路由器找到最好的到达目的地的路径:

在同一个区域内的每台路由器都有一致的LSDB;

每台路由器以自己为根算出最短路径;

最优路径是Cost值最小的路径;

黑色的线是实际的物理线路,假设都是Ethernet,cost值都是10;

路由器X以自己为根到达其他路由器的路径如图所示,都是选择Cost最小的路径;

Cost 值的计算也是路由流向的入接口;

1

ospf地metric根据cost进行计算

cost=10^8/带宽

B--->Byte

b--->bit

1B=8bit

接下来我们看一下lsa地运行是怎么样地?

当两台路由器间R1--->R2建立了邻居关系,就会互相发送LSA,当路由器收到LSA以后怎么处理的呢?我们看图所示

Step1.

如果本路由器从来没有收到过此LSA,那么路由器就将其加入LSDB,并且转发/泛洪此LSA,同时继续SPF计算,得出到达此目标的最佳路由。

Step2.

如果本路由器,曾经收到过描述同一个网络的LSA:

如果新收到的LSA序号与自己已有的相同,则丢弃此LSA。

如果新收到的LSA序号比自己已有的更新,则同Step1,去计算最佳路由。

如果新收到的LSA的序号,比自己的更旧,就将自己较新的LSA,发送给源。

链路状态数据库(LSDB)中的每一条LSA都有一个序列号

•  4字节

•  从0x80000001到0x7FFFFFFF???

每隔30分钟OSPF将泛洪每一次LSA

•  泛洪时LSA序列号增 加1

•  具有较大(新)序列号的LSA被认为是新的LSA

最终,当序列号用尽时,将重新从0x80000001开始

•  现有的旧的LSA的年龄将被设置为最大年龄(3600秒),并且被清除

每台OSPF路由器为它属于某个区域的那些接口产生一条Router LSA

•  示例中Link ID为192.168.1.67的路由器已经更新了8次;最后一次更新是48秒之前。

图文分析 OSPF 的特点相关推荐

  1. ❤️缓存集合(一级缓存、二级缓存、缓存原理以及自定义缓存—源码+图文分析,建议收藏) ❤️

    ❤️缓存集合(一级缓存.二级缓存.缓存原理以及自定义缓存-源码+图文分析,建议收藏) ❤️ 查询 : 连接数据库 ,耗资源!一次查询的结果,给他暂存在一个可以直接取到的地方!--> 内存 : 缓 ...

  2. [pytorch] monai Vit 网络 图文分析

    monai Vit 网络 图文分析 Vision Transformer (ViT) Network structure Composition 1. PatchEmbeddingBlock Desc ...

  3. 关于Zion真实性问题的图文分析及其他 V1.06

    ★关于Zion真实性问题的图文分析及其他 V1.06★ 作者:cywater2000 版本信息: V1.00 2003.11.18 V1.01 2003.11.22 v1.06 2003.12.07 ...

  4. 应急照明市电检测_图文分析应急照明如何供电? 如何接线?

    原标题:图文分析应急照明如何供电? 如何接线? 对于大部分刚接触建筑电气设计的工作者来说,应急照明的强启原理一直都是很头疼的问题.由于不知道应急照明的强启原理,所以,应急灯具应该用多少根线,其实也就无 ...

  5. 前端开发薪资之各地区对比(图文分析)

    http://www.html5cn.org/article-6769-1.html 前端开发薪资之各地区对比(图文分析) 2014-9-3 09:50| 发布者: html5cn |来自: www. ...

  6. Python数据分析大作业 4000+字 图文分析文档 销售分析

    资源地址:Python数据分析大作业 4000+字 图文分析文档 销售分析 +完整python代码 数据来自某商场,具体商业数据保密 资源地址:Python数据分析大作业 4000+字 图文分析文档 ...

  7. Android开发:图文分析 Handler通信机制 的工作原理

    前言 在Android开发的多线程应用场景中,Handler机制十分常用 下面,将图文详解 Handler机制 的工作原理 目录 1. 定义 一套 Android 消息传递机制 2. 作用 在多线程的 ...

  8. Java NIO原理 图文分析及代码实现

    最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议.可以参考: ...

  9. bytebuf池_图文分析ByteBuf是什么

    ByteBuf是什么 ByteBuf是Netty中非常重要的一个组件,他就像物流公司的运输工具:卡车,火车,甚至是飞机.而物流公司靠什么盈利,就是靠运输货物,可想而知ByteBuf在Netty中是多么 ...

最新文章

  1. 第44节:Java当中的JVM
  2. |Vijos|树状数组|P1512 SuperBrother打鼹鼠
  3. Unity3d中使用自带动画系统制作下雨效果(一)
  4. 【渝粤题库】陕西师范大学100071教育学作业(高起本)
  5. Python字典(Dictionary)的setdefault()方法的详解,字典中的赋值技巧
  6. 信捷plc编程100例梯形图_PLC分类组成与梯形图编程语言
  7. 【BZOJ3218】 a+b Problem
  8. grafna监控Java接口_性能测试之 JVM 的监控 Grafana
  9. 数据结构开发(22):二叉树的转换、深层特性与存储结构设计
  10. 2021-01-27
  11. android 对称加密完毕,通过 Android keystore 和 fingerprint 结合实现数据加密和解密
  12. 移动GIS开发:手机基站定位+离线切片地图(矢量vtpk+栅格tpk)导航安卓APP
  13. 内存虚拟化硬件基础——EPT
  14. 【Spring学习】Bean生命周期
  15. 如何进入他人计算机硬盘,手机如何访问电脑硬盘
  16. 一个完整的软件研发流程是怎样的?
  17. 飞书机器人python给用户发信息api调用
  18. 什么手机杀毒软件最好用?3款很棒的手机用杀毒软件推荐给你
  19. Shit Happens
  20. Transformer的改进

热门文章

  1. pc817光耦参数_光耦在电子电路中有什么作用?关键参数有哪些?一起了解一下...
  2. (56)等待链表,调度链表
  3. 为修复一个代码执行安全漏洞,TensorFlow决定不再支持YAML
  4. 2.2 进阶-禁忌雷炎
  5. ACM入门之【单调栈】
  6. 1043 Is It a Binary Search Tree (25 分)【难度: 中 / 知识点: 构造二叉搜索树(BST) 】
  7. SqlServer数据类型
  8. 精简 opencv python_01_opencv_python_基本图像处理
  9. 划痕麻点检测程序_精密外观检测机设计
  10. python,pycharm,anaconda,tensorflow安装