OPSF - 2,状态机
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,状态机的更多相关文章
- 适合WebApi的简单的C#状态机实现
目标 采用了Restful WebApi的架构,再把业务逻辑状态转移放到后端就有点违背初衷了.实际上只要后端Api的权限设置的好,把状态转移放到前端也未尝不可.我考虑的结果是,一般如果变更这个状态本身 ...
- 趣说游戏AI开发:对状态机的褒扬和批判
0x00 前言 因为临近年关工作繁忙,已经有一段时间没有更新博客了.到了元旦终于有时间来写点东西,既是积累也是分享.如题目所示,本文要来聊一聊在游戏开发中经常会涉及到的话题--游戏AI.设计游戏AI的 ...
- Workflow笔记2——状态机工作流
状态机工作流 在上一节Workflow笔记1——工作流介绍中,介绍的是流程图工作流,后来微软又推出了状态机工作流,它比流程图功能更加强大. 状态机工作流:就是将工作流系统中的所有的工作节点都可以看做成 ...
- Unity Animator动画状态机 深入理解(一)
接触Unity以来就已经有了Animator,Animation用的少,不过也大概理解他俩之间的一个区别于联系. 图中其实就是Animator和Animation之间的区别于联系了,啊!你肯定会告诉我 ...
- FSM(状态机)、HFSM(分层状态机)、BT(行为树)的区别
游戏人工智能AI中最常听见的就是这三个词拉: FSM 这个不用说拉,百度一大堆解释, 简单将就是将游戏AI行为分为一个一个的状态,状态与状态之间的过渡通过事件的触发来形成. 比如士兵的行为有“巡逻”, ...
- JavaScript状态机程序逻辑编辑器
制作背景 之前做Win8 Metro动态加载内容框架的时候,由于采用了XAML+JavaScript的方法,程序复杂的执行逻辑是由JavaScript控制的,而页面一多,流程一复杂,制作起来就非常麻烦 ...
- react+redux教程(二)redux的单一状态树完全替代了react的状态机?
上篇react+redux教程,我们讲解了官方计数器的代码实现,react+redux教程(一).我们发现我们没有用到react组件本身的state,而是通过props来导入数据和操作的. 我们知道r ...
- Game中的状态机
我相信大多数博友都会玩游戏. 玩游戏,牵涉到状态包含 登陆,正常,死亡,复活,下线, 在上面状态的基础上.同时包含 站立,走动,跑动,不可移动施法状态, 战斗状态, 通常这是三个不同的分组.也就说可以 ...
- SharePoint 2013 状态机工作流之扩展自定义状态
当我们使用SharePoint 2013的状态机工作流时,发现一个非常不爽的事情,就是SharePoint 所有的工作流状态,都是固定的那些,没办法显示我们自定义的状态,后来经过Google发现,原来 ...
随机推荐
- topcoder srm 500 div1
problem1 link 如果decisions的大小为0,那么每一轮都是$N$个人.答案为0. 否则,如果答案不为0,那么概率最大的一定是一开始票数最多的人.因为这个人每一轮都在可以留下来的人群中 ...
- Bootstrap3基础 btn-group-vertical 按钮组(横着、竖着排列)
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...
- FileAttributes Enum
https://docs.microsoft.com/en-us/dotnet/api/system.io.fileattributes?view=netframework-4.7.2 读取FileA ...
- 论文笔记:Variational Capsules for Image Analysis and Synthesis
Variational Capsules for Image Analysis and Synthesis 2018-07-16 16:54:36 Paper: https://arxiv.org/ ...
- 论文笔记:Semantic Segmentation using Adversarial Networks
Semantic Segmentation using Adversarial Networks 2018-04-27 09:36:48 Abstract: 对于产生式图像建模来说,对抗训练已经取得了 ...
- 用原型封装一个操作DOM的例子
<script> // 一句话 在构造函数里面写属性 在原型里面写方法 function Elem(d){ this.even=document.getElementById(d); } ...
- using Redis in .net core
Using Redis Cache in .net Core Distributed Cache using Redis and ASP.NET Core ASP.NET Core Data Prot ...
- Linux命令2——b
badblocks:检查磁盘设备中损坏的区块 -b:指定磁盘的区块大小,单位:字节 -c:一次检查几个区块 -i:由文件总读取已知的损坏区块,检查时会忽略这些区块 -o:检查的结果写入指定的输出文件. ...
- powerdesigner反转数据库的设计图
PowerDesigner导入sql文件 1:点击 2:弹出该页面,点击确定 3:弹出一下页面,点击下面按钮选择文件 4:点击确定完成 二 .表转换为中文的执行脚本及步骤 执行脚本为:Option E ...
- OpenLayers中的球面墨卡托投影
最近看OpenLayers,研究到地图投影时找到官方的文档,就翻译了一下,由于英文能力差,翻译不好的地方,请看原文 原文地址:http://docs.openlayers.org/library/sp ...