olsr与其他协议相比较的特色引入了一个MPR机制(multipoint relay)
1,首先,怎么选择MPR呢?
节点在从自己的一跳邻居节点中选择 MPR 时,(1)必须选择和自己之间存在双向对称链路的节点。(2) 节点所发送的分组通过 MPR 的中继,能够到达所有的两跳邻居节点,目的是为了——方便确认数据分组有没有被下个节点成功接收,这就是常说的“反馈”。
2.MPR用干什么?
每个节点在自 己 的 一 跳 邻 居 节 点 之 中 选 择 一 部 分 节 点 作 为 多 点 中 继 站 ,只有被选为 MPR 的邻居节点才负责转发控制消息,节点之间周期性地交换各种控制信息(只有被选择为MPR的才能发控制消息),通过分布式计算来更新和建立自己的网络拓扑图。目的是为了————被选为 MPR 的节点通过发送控制消息周期性地向全网声明通过自己可以到达自己的 MPR Selector
控制消息:控制消息中包含了mpr selector地址信息(mpr selector=m’p’r),序列号
链路状态信息:声明链路状态信息的时候只需要声明与 MPR Selector之间的链路状态信息
3,OLSR有两种控制分组:Hello分组和TC分组(Tologogy Control)
(1)HELLO 用于建立一个节点的邻居表:邻居节点的地址,本节点到邻居节点的延迟或开销(延迟就是指时间)
OLSR 采用周期性地广播 HELLO 分组来侦听邻居节点的状态,包括他们的链路状态。HELLO 分组只在一跳的范围内广播,不能被转发。
——————Hello分组的作用只是为了看链路状态,选择MPR
(2)TC分组全网广播。<MPR一定要被转发>
TC信息中包含“MPR的邻居节点”都将收到"我的TC分组",但收到就收到,只有MPR才能转发。
——————TC分组作用计算出网络的拓扑图
4,知道了所有的工作原理,那究竟怎么工作呢?

5,根据“最短路径优先的原则”选择路由线路。
总结OLSR利用控制消息获得路由计算所要的信息,利用D算法得到一条路由表。
展望OLSR 还提供了很强的协议可扩展性,比如节点睡眠模式,组播路由等等。

一个渣渣对OLSR的简单理解相关推荐

  1. python语言的计算生态规模有多大_【单选题】Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大?...

    [单选题]Python 语言的一个重要特点是它有较多的计算生态,简单理解为第三方提供的可用编程模块 / 函数库 / 组件,这个规模有多大? 更多相关问题 [问答题,简答题] 顾客关系管理系统如何给企业 ...

  2. route map: 转发一个博客,附上自己的简单理解

    最近在做实验需要用到route map,搜到了一个博客感觉挺不错,分享一下: https://blog.csdn.net/ZhangPengFeiToWinner/article/details/85 ...

  3. Jena的简单理解和一个例子

    本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...

  4. 【转载】Deep learning:十九(RBM简单理解)

    Deep learning:十九(RBM简单理解) 这篇博客主要用来简单介绍下RBM网络,因为deep learning中的一个重要网络结构DBN就可以由RBM网络叠加而成,所以对RBM的理解有利于我 ...

  5. 字符串匹配算法Java_如何简单理解字符串匹配算法?

    这篇文章来说说如何简单理解KMP,BM算法.之前看过一些文章说,KMP算法很难理解. 可我并不觉得. 我反而觉得它容易理解.平时我们写java代码的时候, 判断一个字符串是否存在包含另一个字符串都是直 ...

  6. python yield的简单理解

    2019独角兽企业重金招聘Python工程师标准>>> yield是个生成器,它可以使一个方法变成可迭代的方法,每次迭代返回yield后面的值 简单理解: >>>d ...

  7. linun——SElinux的简单理解

    SElinux简单理解 一.什么是SElinux? SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Co ...

  8. git pull 是到工作区还是暂存区_每天一Git之简单理解工作区和暂存区

    每天一Git之简单理解工作区和暂存区 1. 工作区与暂存区命令初体验 1.1. 暂存区文件与文件夹管理 [root@number ~]# cd GitDir/git_learning/ [root@n ...

  9. c语言理解参数,c语言中对可变参数列表的简单理解

    函数原型中一般情况下参数的数目是固定的,但是如果想在不同的时候接收不定数目的参数时该怎么办呢?c语言提供了可变参数列表来实现. 可变参数列表是通过宏来实现的,这些宏定义在stdarg.h的头文件中.头 ...

最新文章

  1. 得到windows系统图标的解决方案(转)
  2. 测量AMS1117的输入输出特性
  3. Java及Android开发环境搭建
  4. 卧槽!Python学习神器~
  5. Vue项目使用百度地图——经纬度地图组件的封装及使用
  6. 2019计算机科学与技术全日制调济,2019年华侨大学计算机科学与技术学院全日制学术型研究生调剂信息(第三批)...
  7. Windows环境下的安装gcc
  8. C++语言基础 例程 派生类的声明与构成
  9. python数据框转化为矩阵_在Python中将系列重塑为Dataframe矩阵
  10. HeadFirst设计模式之命令模式
  11. 《都在用的商务精英礼仪》读书笔记
  12. ES索引重建reindex详解
  13. 如何提高团队开发质量
  14. jDBC连接mysql数据库的5种方式
  15. 三维计算机视觉——相机内参和外参及坐标变换公式
  16. 初学者入门学习Java,如何选择Java培训机构?
  17. Arm汇编寻址方式工作模式
  18. 在创建jsp页面之后保存时提示错误,并提示以UTF-8格式进行保存。
  19. 今日芯声 | Android麻烦了!鸿蒙OS将让它变得更脆弱
  20. 图像分类相关优质开源数据集汇总(附下载链接)

热门文章

  1. 网站颜色配色方案笔记
  2. python练习题:输入某年某月某日,判断这一天是这一年的第几天?
  3. 弧度的定义? 180度(角度)=3.14(3.14弧度)
  4. Win11安装虚拟机出现电脑蓝屏解决方案
  5. 付子玉:丁香园医疗领域图谱的构建与应用
  6. 【C++ set的基本操作】
  7. c语言怎么做翻译软件,使用有道翻译API做翻译(c语言实现)
  8. 手把手代码实现五级流水线CPU——第三篇:流水线控制逻辑
  9. BootStrap工具使用
  10. 【tkinter组件专栏】LabelFrame:规划布局frame的小老弟