1,报文更新地址
     点到点:所有报文发送224.0.0.5
     虚链路:单播地址
     广播网络上:DR OTHER至DR/BDR 224.0.0.6,DR/BDR至DR OTEHER 224.0.0.5
     即:默认都发到224.0.0.5,MA网络发给多出来的DR/BDR是224.0.0.6

2,报文种类
     HELLO:周期性发送给邻居,发现和维持OSPF邻居关系。
                    data包含Neighbors/DR IP address/BDR IP address/RouterID/Router priority(选DR和BDR用到的)/四个打星的参数等。
     LSR:向对方请求自己所缺的LSA,只有双方成功交换DD后才会发送。data包含请求的LSA摘要。
     LSU:包含完整的LSA信息,向对方更新LSA,可以包含多条LSA。data包含详细的LSA信息。
     LSAck:对LSU的确认。data包含空。
     DD(DBD):发送LSA摘要,描述LSDB。data包含所有LSA摘要。
     备注:LSAck对LSU的确认是显示确认,DBD是隐式确认即对方需发一条序列号更新的过来。

3,DBD报文
     有三个字段,3个BIT,组成flag值0X0-0X7
     Init:首次发送1
     More:还有更多1
     Master/Slave:主1
     例如,首次发送认为自己是主0x7,非首次自己是主0x3

4,状态机
     Down :邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
     Attempt : 该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时后仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
     Init :发送Hello报文后状态为Init。
     2-way :建立邻居。收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
     Exstart :如果形成邻居关系,则从Init状态转到Exstart状态,开始协商主从关系,并确定DBD的序列号,对DBD的隐式确认。(第一个DBD报文用来选主从关系,RouterID大的为主)
     Exchange :主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
     Loading :DD报文交换完成即Exchange done,此时状态为Loading。
     Full :建立邻接。LSR重传列表为空,此时状态为Full。

5,状态机简述
down:初始,没有收到信息,但能发hello包
attempt :
Init :收到hello包,但是没有路由器ID
2-way :收到包含自己RouterID的hello包,选DR/BDR
Exstart :通过first DBD,确认主从
Exchange :DBD交互
Loading :LSR和LSU交互
Full 最终状态

OPSF - 2,状态机的更多相关文章

  1. 适合WebApi的简单的C#状态机实现

    目标 采用了Restful WebApi的架构,再把业务逻辑状态转移放到后端就有点违背初衷了.实际上只要后端Api的权限设置的好,把状态转移放到前端也未尝不可.我考虑的结果是,一般如果变更这个状态本身 ...

  2. 趣说游戏AI开发:对状态机的褒扬和批判

    0x00 前言 因为临近年关工作繁忙,已经有一段时间没有更新博客了.到了元旦终于有时间来写点东西,既是积累也是分享.如题目所示,本文要来聊一聊在游戏开发中经常会涉及到的话题--游戏AI.设计游戏AI的 ...

  3. Workflow笔记2——状态机工作流

    状态机工作流 在上一节Workflow笔记1——工作流介绍中,介绍的是流程图工作流,后来微软又推出了状态机工作流,它比流程图功能更加强大. 状态机工作流:就是将工作流系统中的所有的工作节点都可以看做成 ...

  4. Unity Animator动画状态机 深入理解(一)

    接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我 ...

  5. FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别

    游戏人工智能AI中最常听见的就是这三个词拉: FSM 这个不用说拉,百度一大堆解释, 简单将就是将游戏AI行为分为一个一个的状态,状态与状态之间的过渡通过事件的触发来形成. 比如士兵的行为有“巡逻”, ...

  6. JavaScript状态机程序逻辑编辑器

    制作背景 之前做Win8 Metro动态加载内容框架的时候,由于采用了XAML+JavaScript的方法,程序复杂的执行逻辑是由JavaScript控制的,而页面一多,流程一复杂,制作起来就非常麻烦 ...

  7. react+redux教程(二)redux的单一状态树完全替代了react的状态机?

    上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道r ...

  8. Game中的状态机

    我相信大多数博友都会玩游戏. 玩游戏,牵涉到状态包含 登陆,正常,死亡,复活,下线, 在上面状态的基础上.同时包含 站立,走动,跑动,不可移动施法状态, 战斗状态, 通常这是三个不同的分组.也就说可以 ...

  9. SharePoint 2013 状态机工作流之扩展自定义状态

    当我们使用SharePoint 2013的状态机工作流时,发现一个非常不爽的事情,就是SharePoint 所有的工作流状态,都是固定的那些,没办法显示我们自定义的状态,后来经过Google发现,原来 ...

随机推荐

  1. tar+nc传输文件的使用

  2. 【python016--序列】

    一.列表,元组和字符串的共同点 --都可以通过索引得到每一个元素 --默认索引值总是从0开始 --可以通过分片的方法得到一个范围内的元素的集合 --有很多共同的操作符(重复操作符,拼接操作符.成员关系 ...

  3. struts2 action中字符串转json对象出错 java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException

    commons-lang包有错,要么是引入错误,要么是没引入. 报不同错误,引入不同包. commons-beanutils-1.8.0.jar不加这个包 java.lang.NoClassDefFo ...

  4. topcoder srm 710 div1 -23

    1.给定两个长度都为$n$的数组$A,B$,给出一个操作序列将$A$变成$B$.每个操作可以是以下两种之一:(1)选择一个$i,0\leq i <n$且$A_{i} \neq 0$,令$t=A_ ...

  5. Web开发中B/S架构和C/S架构的区别

    在web开发中有两种基本架构,即C/S架构和B/S架构那么这两种架构有什么区别呢?那么就一起来看看吧. C/S架构图: B/S架构图: C/S架构是 浏览/服务器端的交互,是早期的一种分布式架构,在该 ...

  6. Python3 tkinter基础 Label justify 多行字符串左对齐

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. 0-1背包dp|波动数列|2014年蓝桥杯A组10-fishers

    标题:波动数列 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a ...

  8. SSM项目问题中遇到 GET请求中有中文的情况

    GET传参有中文的情况 特别 由于准备春招,所以希望各位看客方便的话,能去github上面帮我Star一下项目 https://github.com/Draymonders/Campus-Shop 问 ...

  9. FastQC结果详解

    REF https://www.plob.org/article/5987.html 解压后,查看html格式的结果报告.结果分为如下几项: 结果分为绿色的"PASS",黄色的&q ...

  10. oracle 之 伪列 rownum 和 rowid的用法与区别

    rownum的用法 select  rownum,empno,ename,job from emp where rownum<6 可以得到小于6的值数据 select rownum,empno, ...