LANMAR协议
先应式层次路由协议
LANMAR(Landmark Ad hoc Routing)是一种先应式层次路由协议,它将整个网络划分为许多逻辑子网,每个逻辑子网中的成员有共同的爱好并很可能作为一个整体移动(如战场上的一个班),而且在每个逻辑子网中选择一个Landmark节点,依靠Landmark节点进行全网范围内数据分组的路由。
简单介绍
在LANMAR协议中,每个节点都维护两种路由:到自己某个限定范围内所有节点的本地路由和到网络中所有Landmark节点的距离矢量路由。当目的节点在本地路由范围内时,根据本地路由转发数据分组;否则首先向目的节点所属逻辑子网的Landmark节点转发,一旦目的节点出现某一中间节点的本地路由范围内时,就根据中间节点的本地路由进行转发。
关键技术问题
1、本地路由和全局Landmark路由
在LANMAR协议中,网络中每个节点都要维护下列两种路由:
(1) 本地路由
指节点要维护自己到邻近区域内所有节点的路由。LANMAR采用FSR协议作为本地路由协议,但与基本FSR路由协议维护到网络中所有节点路由信息不同的是,这里限定一个FSR路由范围N,节点仅维护到该范围内所有节点的路由,如果某节点与本节点的距离超过该范围,本节点不再维护其路由信息,发送的FSR路由分组中也不包含其相关条目。
(2) 全局Landmark路由
指节点要维护到网络中所有Landmark节点的距离矢量路由。节点通过周期性地向邻节点传递Landmark消息,包含到网络中所有Landmark节点的距离矢量信息,来完成到网络中所有Landmark节点全局路由的建立与更新。该Landmark路由消息可以附带在FSR路由分组中传递。
2、逻辑子网内的分布式Landmark选举算法
(1) Landmark节点的初始化
LANMAR协议刚开始运行时,系统中没有Landmark节点,仅仅是FSR协议起作用。FSR协议运行一段时间后,如果某个节点根据其FSR路由表,发现在自己的FSR路由范围内,与自己在同一逻辑子网内的节点有一定的数量(如n),则宣布自己为该逻辑子网的Landmark节点,并通过随后的拓扑更新消息,捎带广播消息至邻节点。
(2) Landmark节点的交替
如果有两个以上的节点宣布自己为同一个逻辑子网的Landmark节点,则选择FSR路由范围内可达的同一逻辑子网内的节点数目最大的节点作为Landmark节点;如果出现相等的情况,则选择ID号最小的节点作为Landmark节点。为了避免出现Landmark节点的频繁交替,可以使用滞后算法,仅当新Landmark节点可达的同一逻辑子网内的节点数目比旧Landmark节点可达的同一逻辑子网内的节点数目多出一个门限值时,才进行Landmark节点的更新。
(3) Landmark节点失效的处理
当一个逻辑子网的Landmark节点失效后,Landmark节点的邻节点会在给定的时间后发现这一情况,与Landmark节点在同一个逻辑子网的邻节点将宣布自己为新的Landmark节点并广播这一消息,网络中开始一轮新的Landmark节点选举过程。
3、漂移节点和孤立节点问题
漂移节点是指归属于某个Landmark节点而又在其FSR路由范围以外的节点,它们需要定期向自己归属的Landmark节点进行注册,以创建从归属Landmark节点到漂移节点的反向路径。目的节点是漂移节点的数据分组首先被其归属Landmark节点接收,然后再由归属Landmark节点转发至相应的漂移节点。通向漂移节点的路由条目虽然增加了路由表的存储和处理开销,但是在漂移节点所占比例较小的情况下,这种开销还是很低的。
孤立节点是指组的大小为1的节点。如果网络中只有个别孤立节点,则可以作为Landmark节点来处理,否则需要采用一定的方法来处理,这会导致路由开销的增加。
路由协议描述
1、信息种类
(1) 存储消息
任何一个节点i中与路由相关的主要信息如下:
图1-1 LANMAR协议中节点拓扑表的结构
在图1-1中,LS(j)字段中存储节点j报告的链路状态,SEQ(j)字段中存储该链路信息的时间戳。
(2) 交换的消息
每个节点周期性地与邻节点交换拓扑等信息,包含FSR范围N内所有节点的路由条目,还附带传送到网络中所有Landmark节点的距离矢量信息。
2、工作过程
(1) 路由的建立与维护
路由信息的建立与更新与FSR协议很相似,每个节点周期性地与邻节点交换拓扑信息,包含FSR范围N以内所有节点的路由条目并附带到网络中所有Landmark节点的距离矢量信息。
(2) 数据分组转发
当目的节点在源节点的FSR路由范围内时,在FSR路由表中有相应的路由条目,则直接根据FSR协议建立的下一跳表NEXTi,利用节点的物理地址进行数据分组转发。如果目的节点与源节点不属于同一个逻辑子网,则按照数据分组的目的逻辑子网地址查找LMDVi表,将数据分组向目的节点所在逻辑子网的Landmark节点转发,当目的节点出现在某一中间节点的FSR路由范围内时,则使用中间节点的本地路由转发。按照这种转发方式,数据分组在从源节点到目的节点的过程中,中间并不一定经过目的节点的归属Landmark节点。
图1-2为LANMAR协议运行的一个场景,此时有4个逻辑组(对应不同的逻辑子网)存在,LMi为每个组的Landmark节点,每个节点的FSR范围为2。图1-2中显示了3条不同的路径:第一条路为从A到D,由于D两跳可达B,在B的FSR协议范围内,因此B发送给A的路由更新中包含D的信息,所以A中包含D的全部信息,可以直接沿着最短路径将分组传送至D。第二条路为从H到L,H不知道L的路由,它通过I把分组路由至L所在逻辑子网的Landmark节点LM4,I知道L的路由,可以直接沿最短路径把分组转发至目的节点。最后一条路为从O到P,开始这条路通向P所在组的Landmark节点LM3,随着分组接近LM3,获得了到达P的直接路径,因而绕过了LM3直接两跳到达了P。
总结
LANMAR路由协议是一种基于组移动模型的层次化路由协议,它需要在每个组构成的逻辑子网内选择一个Landmark节点。每个节点均维护FSR本地路由和到网络中所有Landmark节点的路由。如果目的节点在本地范围内,则直接使用本地路由转发,否则先向目的节点所属逻辑子网的Landmark节点方向转发,一旦目的节点位于某个中间节点的本地路由中,则沿该本地路由转发,避免了Landmark节点的过重负载。该协议适用于节点比较密集的网络,但在漂移节点和孤立节点数目过多的情况下,协议的控制和存储开销较大。
参考资料
最新修订时间:2022-09-20 17:34
目录
概述
简单介绍
关键技术问题
参考资料