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发现,原来 ...
随机推荐
- 分块读取Blob字段数据(MSSQL)
MSSQL中提供了一个功能,能够分块读取Blob字段中的数据,写了一个存储过程代码如下: CREATE PROCEDURE PRO_GET_FILE_DATA @PKG_ID INT, ...
- 题解——洛谷P4095 [HEOI2013]Eden 的新背包问题(背包)
思路很妙的背包 用了一些前缀和的思想 去掉了一个物品,我们可以从前i-1个和后i+1个推出答案 奇妙的思路 #include <cstdio> #include <algorithm ...
- (转)Applications of Reinforcement Learning in Real World
Applications of Reinforcement Learning in Real World 2018-08-05 18:58:04 This blog is copied from: h ...
- vs添加webservice
VS2010中添加WebService注意的几个地方 添加web引用和添加服务引用有什么区别? 2.4.1 基础知识——添加服务引用与Web引用的区别 C#之VS2010开发Web Service V ...
- Python 爬虫入门3种方法
Python 2.0 url = "http://www.baidu.com" print '第一种方法' response1 = urllib2.urlopen(url) pri ...
- RN原生调用一:安卓Toast
首先安卓原生方法:Toast.makeText(getApplicationContext(), "默认的Toast", Toast.LENGTH_SHORT); 在RN中js如何 ...
- 理解 Redis(8) - Ordered set 值
ordered set 是根据 score值有序排列的数据集合. 首先还是清空数据, 并清屏, 此步骤省略~~~~ 新建一条 ordered set 数据 myset1, 并存入4个字符串, scor ...
- _faction
一.自定义阵营独立于联盟,部落,联盟和部落玩家可以加入同一阵营 二._function_menu表可以配置自定义阵营开启 二.配合_pvp表,可以实现区域的自定义阵营PVP 三.配合_req表fact ...
- WebStorm破解方法
http://www.jianshu.com/p/85266fa16639 http://idea.lanyus.com/ webstorm 入门指南 破解方法 1. 下载的WebStorm http ...
- docker启动:Got permission denied while trying to connect to the Docker daemon
权限问题: 1.查看所有用户组与用户 vim /etc/group /etc/group 的内容包括用户组(Group).用户组口令.GID及该用户组所包含的用户(User),每个用户组一条记 ...