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 还提供了很强的协议可扩展性,比如节点睡眠模式,组播路由等等。