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. 1010:Tempter of the Bone

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 Problem Description The doggie found a bone in a ...

  2. mabatis的批量新增sql 初级的 初级的 初级的

    简单描述:做开发的时候,会遇到一次插入好多条记录,怎么做好呢? 解决思路:循环insert啊!  哪凉快那呆着去←!←  这样会增加数据库开销的,当然不能这么干了,要在sql上下功夫.看代码,一下就明 ...

  3. 《剑指offer》 数值的整数次方

    本题来自<剑指offer> 数值的整数次方 题目: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 思路: 代码从三个方面处 ...

  4. 怎么加密接口防止,API外部调用?

    服务器端与客户端各自会存储一个TOKEN,这个TOKEN我们为了防止反编译是用C语言来写的一个文件并做了加壳和混淆处理.在客户端访问服务器API任何一个接口的时候,客户端需要带上一个特殊字段,这个字段 ...

  5. C++ Primer 笔记——迭代器

    iostream迭代器 1.虽然iostream类不是容器,但是标准库定义了可以用于IO的迭代器.创建一个流迭代器的时候必须指定要读写的类型.我们可以对任何具有输入运算符(>>)的类型定义 ...

  6. scss文件使用笔记

    1.编写兼容性代码 例如透明度,兼容IE @mixin mOpacity($o){ opacity:$o/100; filter:alpha(opacity=$o); } //引用 .box{ @in ...

  7. ORA-01536: 超出表空间 'tablespace_name' 的空间限额

    表空间限额问题知识总结:    表空间的大小与用户的配额大小是两种不同的概念    表空间的大小是指实际的用户表空间的大小,而配额大小指的是用户指定使用表空间的的大小    把表空间文件增大,还是出现 ...

  8. WMSYS.WM_CONCAT返回CLOB类型的解决办法

    https://blog.csdn.net/cnm_csdn_wt/article/details/80047878

  9. C++ ifstream ofstream

    原文出自[比特网],转载请保留原文链接:http://soft.chinabyte.com/database/460/11433960.sh [导读] ofstream是从内存到硬盘,ifstream ...

  10. ssm又乱码

    以前用mybatis的时候是这样的 mysql.connection.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characte ...