OSPF全称是啥我就不絮叨了,什么迪杰斯特拉,什么开放最短路径优先算法都是人尽皆知的事儿,尤其是一提算法还会被学数据结构的童鞋鄙视,干脆就不提了,直接开整怎么用吧。(不过好像真有人不知道OSPF里的F代表了什么...)

一个大概的profile:

89号协议,链路状态协议Link State之一,组播地址会用到224.0.0.5(DR other 用来收听DBD LSR LSU LSA的,也就是下面5种包中的4种) 224.0.0.6(DR BDR用来收听。。。的)

跟大多数dynamic routing protocol一样,它也是Hello包建邻居,生产邻居表;接下来开始传信息,这些信息被OSPF称为LSA,这个LSA不是上面提到的那个LSA,这个是Link State Advertisement, 这些信息被交互过之后就存入Link State Database, 即LSDB,即topology表。这个拓扑表,我个人认为就是被SPF这个算法所直接读取的,然后去给你计算出最短路径,这个拓扑表不光包含了路由,应该算作是路由表的一个母体,它里面会有我的哪个端口接了谁的哪个端口。

Link State Routing Protocol 这是从思科的PPT上抄的,什么EIGRP是道听途说OSPF才是有组织的居委会之类的陈词滥调我就不说了,我今天是以一个长者的身份对你们说,唉?好像哪里不对

  • Link State routers recognize more information about the network than their distance vector counterparts
  • Each router has a full picture of the topology
  • Consequently, link state routers tend to make more accurate decision

Link State Data Structure:

Network Hierarchy 是一个backbone区域周围连几个area 1 2 3 4这样的结构

  • Router A and B are backbone routers
  • Backbone routers make up area 0
  • Routers C, D and E are known as area border routers (ABRs)
  • ABRs attach all other areas to area 0

它的目的是:

  • Minimize routing table entries
  • Localizes impact of a topology change within an area
  • Detailed LSA flooding stops at the area boundary
  • Requres a hierarchical network design

但是说实话,我们公司就没这么做,因为犯不着,具体原因后面再说。

Forming OSPF Adjacencies

  • Point-to-point WAN links:

    • Both neighbors becomes fully adjacent
  • LAN links (MA) including BMA(such as Ethernet) and NBMA(such as FR)
    • Neighbors form a full adjacency with DR and BDR
    • Router s maintain two-way state with the other rotuers(DR other)
  • Routing updates and topology information are passed only between adjacent routers
  • Once an adjacency is formed, LSDBs are synchronized by exchanging LSAs
  • LSAs are flooded reliably throughout the area (or network)

整个topology是触发更新的,但是你要是迟迟不触发它,它自己30min会refresh一次,老化时间是60min.

OSPF有5种包

  • Hello
  • Database Description
  • Link-State Request
  • Link-State Update
  • Link-State Acknowledgment

每个OSPF的speaker都有一个router-id,确定router-id的方法如下,按照先后顺序依次是:

  • 手工指定(任意,唯一)
  • loopback口(if any)最大的地址
  • 物理口最大地址

(要是以上三个都没有,那你还跑个毛的OSPF,不许抬杠哦!)

建立Neighborhood的条件,也就是说这俩speaker得一致的条件  PS. speaker counterpart peer都是常用的这种邻居的英文表达,尤其counterpart 和 peer的意思更是接近,都有对等体的意思,speaker没有对等体的意思

  • Hello and Dead intervals            Hello interval 有两种,一种是10s的默认用在以太网Ethernet link上的,另一种是30s的默认用在non-broadcast link上的,如serial link,如NMBA
  • Area ID
  • Authentiation passwd (if any)
  • Stub area flag

OSPF建立邻居需要经过的几个状态

Initial 正在交换Hello包

Two way Hello包交换完毕,Hello包里有自己的router-id,反正是用于比较router-id的,MA网络在没有改端口优先级的情况下用来选出谁是DR BDR & other,完了 整个地方还牵扯网络类型..整个dr other 之间是没有未来的,他们就停留在two way 状态,所以他们也不算邻居neighbor而是邻接adjacent

Exstart 选主从,router-id大的是Master,小的是slave,整个可以通过 debug ip os adj  debug ip ospf packet 在slave上可以看到"NBR Negotiation Done. We are the SLAVE."这样一条忧伤的信息

Exchange 交换 LSDB

Loading 交换LSR LSU

Full

PS. 感觉能把每个包头部都画出来的绝对是大神...困死了,睡觉去。

OSPF补全计划-1的更多相关文章

  1. OSPF补全计划-0 preface

    哇靠,一看日历吓了我一跳,我这一个月都没写任何东西,好吧,事情的确多了点儿,同事离职,我需要处理很多untechnical的东西,弄得我很烦,中间学的一点小东西(关于Linux的)也没往这里记,但是我 ...

  2. OSPF补全计划-2

    想起来几个面试题: 1. OSPF在什么情况下会stuck in Exstart /Exchange状态? 我知道的一个答案是两个端口的mtu不一致.当然整个也不是绝对,因为可以用ip ospf mt ...

  3. DL基础补全计划(二)---Softmax回归及示例(Pytorch,交叉熵损失)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  4. DL基础补全计划(三)---模型选择、欠拟合、过拟合

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  5. DL基础补全计划(六)---卷积和池化

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  6. DL基础补全计划(一)---线性回归及示例(Pytorch,平方损失)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  7. 【hjmmm网络流24题补全计划】

    本文食用方式 按ABC--分层叙述思路 可以看完一步有思路后自行思考 飞行员配对问题 题目链接 这可能是24题里最水的一道吧... 很显然分成两个集合 左外籍飞行员 右皇家飞行员 跑二分图最大匹配 输 ...

  8. 2018.我的NOIP补全计划

    code: efzoi.tk @ shleodai noip2011 D1 选择客栈 这道题是一道大水题,冷静分析一会就会发现我们需要维护最后一个不合法点和前缀和. 维护最后一个不合法点只要边扫描边维 ...

  9. DL基础补全计划(五)---数值稳定性及参数初始化(梯度消失、梯度爆炸)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

随机推荐

  1. 第三周学习总结-Java

    2018年7月29日 这是暑假第三周.这一周我把找到的Java教学视频看完了. 本周学到了Java剩余的基础知识,比如:抽象类.接口.内部类.几种常用类.IO流.多态.多线程等等. 因为没有书,所以我 ...

  2. 用HBuilderX 打包 vue 项目 为 App 的步骤

    首先打包你的 vue 项目 生成 dist 文件夹,教程请移步  https://www.cnblogs.com/taohuaya/p/10256670.html 看完上面的教程,请确保 你是 将: ...

  3. Python操作MySQL案例

    最近都在学习Python代码,希望学会Python后,能给我带来更高的工作效率,所以每天坚持学习和拷代码,下面是一个Python操作MySQL的一个实例,该实例可以让更多的人更好了解MySQLdb模块 ...

  4. AI-视图组件-五个接口的最终简化版

    五个接口最终版 #url.py # 序列化最贱版本 url(r'^customer/$', views.CustomerView.as_view({"get":"list ...

  5. POJ 1002 487-3279(字典树/map映射)

    487-3279 Time Limit: 2000MS        Memory Limit: 65536K Total Submissions: 309257        Accepted: 5 ...

  6. Dom,查找标签和操作标签

    Dom,查找标签和操作标签 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 ...

  7. SpringBank 开发日志 使用maven构建dubbo服务的可执行jar包

    写这篇日志的时候,我已经完成了这个目标,并且中间经历了一次面试.现在回过头看,已经觉得印象不那么深刻了,果然还是一边思考,一边记录这样最好.但我还是严格要求自己,从新做了梳理,对相关配置进行了整理和说 ...

  8. [转] JavaScript设计模式之发布-订阅模式(观察者模式)-Part1

    <JavaScript设计模式与开发实践>读书笔记. 发布-订阅模式又叫观察者模式,它定义了对象之间的一种一对多的依赖关系.当一个对象的状态发生改变时,所有依赖它的对象都将得到通知. 例如 ...

  9. 二叉查找树及B-树、B+树、B*树变体

    动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的 ...

  10. Tomcat模型结构

    一.请求过程 Tomca的两大组件:Connecter和Container Connecter组件 1.Connecter将在某个指定的端口上侦听客户请求,接收浏览器的发过来的 tcp 连接请求,创建 ...