ODMRP

来源:互联网 发布:淘宝店一般能赚多少钱 编辑:程序博客网 时间:2024/05/01 13:43

(On-Demand Multicast Routing Protocol inMultihop Wireless Mobile Networks )

原创文章  禁止转载

通过ODMPP这篇论文的讨论,对Ad hoc网络,组播,ODMRP协议,及其路由的建立与维护有了一定程度的了解。

1.Ad hoc 网络

Adhoc网络是一种多跳的、无中心的、自组织无线网络,又称为多跳网(Multi-hop Network)、无基础设施网(Infrastructureless Network)或自组织网(Self-organizing Network)。整个网络没有固定的基础设施,每个节点都是移动的,并且都能以任意方式动态地保持与其它节点的联系。在这种网络中,由于终端无线覆盖取值范围的有限性,两个无法直接进行通信的用户终端可以借助其它节点进行分组转发。每一个节点同时是一个路由器,它们能完成发现以及维持到其它节点路由的功能。

   移动 Ad Hoc 网络是一种特殊的无线网络。它不需要基础网络设施的支持,网络中的节点兼有主机和路由器的功能,其中节点可自由移动,是一种具有高度动态拓扑结构的自组织网络。现有的 Ad hoc 组播协议按照路由策略分为两大类型:基于树(tree)的协议(比如 MADOV、ABAM)和基于网眼(mesh)的协议(比如 ODMRP PatchODMRP_3 )。其中 ODMRP协议是上述自组网组播协议中性能较好的一个,且有吞吐量大、适合高速运动等特性。因此,研究 ODMRP 对于大规模应用 Ad hoc 网络具有重要的意义。

2.组播(多播)

IP多播是一种通过使用一个多播地址将数据在同一时间以高效的方式发往处于TCP/IP网络上的多个接收者的协议。此外,它还常用来与RTP等音视频协议相结合。组播协议的优势在于当需要将大量相同的数据传输到不通主机时,能节省发送数据的主机的系统资源和带宽,组播是有选择地复制给有要求的主机,组播可以穿越公网广泛传播,而广播则只能在局域网或专门的广播网内部传播,组播能节省网络主干的带宽。组播协议的缺点:与单播协议相比,组播没有补包机制,因为组播采用的是UTP的传输方式,并且不是针对一个接受者,所以无法有针对的进行补包。所以直接组播协议传输的数据是不可靠的。

 组播通信具有网络利用率高、节约主机资源等优点,在视频会议、远程交互、文件分发、实时消息发布等许多网络应用中发挥着重要的作用,因此组播一直是网络领域中的研究热点。组播对于 Ad Hoc 网络的应用有着关键作用:第一,现实中的许多工作往往需要多人协同完成,因此需要网络能够支持一到多或多到多的通信;第二,组播也是有效利用有限的无线网络带宽资源的重要手段。

要实现组播通信,关键的就是组播路由协议。目前的组播路由协议根据建立和维护路由的策略方法主要分为三类:基于树的组播路由协议、基于网格的组播路由协议和混合型组播路由协议。由于混合型的组播路由协议在设计上较为复杂,因此前两类组播路由协议成为了研究的重点。但是,目前 Ad Hoc 网络并没有一个标准的组播路由协议,可见这些协议还存在着一定的不足,无法完全满足 Ad Hoc网络组播路由协议的要求。

当前已经提出了很多 Ad Hoc 网络组播路由协议,协议之间的主要差别在于寻路机制和路由结构,可以根据建立和维护路由的策略方法的不同将它们分为以下几类:

(1)基于树的组播路由协议。如:MAODV、AMRIS

    (2)基于网格的组播路由协议。如:ODMRP、CAMP

(3)混合型组播路由协议。如:AMRoute

基于树的组播路由协议的最大特点就是参与组播路由的所有节点的拓扑结构是树状的,在固定网络中大多采用基于树的组播路由协议有以下优点:

(1)组播生成树算法较为成熟,由于在固定网络大多采用这种树型结构,所以在算法的实现上十分容易;

(2)数据传输延时小,效率高。在组播路由树中,两个节点间提供一条路径,组播发送者能以最少的拷贝将数据发送到各个组播成员。对于有 N 个节点的网络,只需要 N-1 条链路来发送同一数据到所有的组播成员;

(3)节点的路由决策简单,开销小。节点只需要将数据转发到能到达的树接口上。这种结构来建立路由。每棵组播树都由一个树根节点及若干个叶节点组成。

其存在的不足就是:

(1)健壮性较差。因为各个节点间没有多重路径,如果某条路径出现故障或者连接中断,那么就要重新建立路由;

(2)传输路径不是最佳的,其传输只会按照预先建立好的路由来进行;

(3)根节点的负载较大。建立树结构及维护组播成员信息都依靠根节点来完成,使其通信量增大;

(4)无法适应于节点频繁移动的网络环境。只要节点一发生移动变化,整个组播树就要重新建立。

基于网格的组播路由协议在节点间存在多条路径相连,其组播成员节点拓扑结构为网格状。同样以源节点 S 发送数据到组播成员节点 R2 为例,如果链路 L1 发生故障,则可通过另一条链路 L2 来实现数据传送。基于网格的组播路由协议弥补了树型结构组播路由协议的缺点,当节点移动或者链路发生故障时,还有其它路径的选择,不需要再次重新建立整个组播树,大大增强了协议的可靠性,非常适用于 Ad Hoc 网络环境。但同时,由于存在多重路径,其节点发生冲突的可能性增大,传输过程中产生的冗余数据较多。

3. ODMRP协议

ODMRP(On-Demand MulticastRouting Protocol)协议是基于网格的组播路由协议典型代表。它通过建立一个连接组播业务发送节点和接收节点的网格结构,利用组播成员节点以及发送节点与接收节点之间的转发节点来进行组播业务的传输。ODMRP 协议最大的一个特点是引入了一种称为“软状态”的机制:组播数据发送节点周期性地发送 JOIN-QUERY 报文,对组播传输结构进行更新与维护。组播数据发送节点或接收节点要离开组播组时只需要停止发送 JOIN- QUERY 报文或者不接收 JOIN-QUERY 报文,而转发节点要退出则只需要将 FG-FLAG 标志置位。

ODMRP 是一个使用“转发组”概念的网格组播路由协议,并使用“软状态”来维护组播成员关系。具体组播路由与网格的创建过程如图 1 所示。

                   图1:组播路由与网格的创建过程

首次发送数据包时,发送节点S以泛洪方式发送该报,并置包头寻路标志(该包即为路由请求)。中间节点收到非重复的路由请求,将上一跳节点的路由信息存入相关的路由信息表, 并修改包中上一跳节点入应答为本身,重新发送该包。收到路由请求时,接收节点R产生应答包并根据路由信息表回送给上一跳节点。应答包包含S和上一跳节点等信息。收到应答包的中间节点将成为转发组成员,并产生新的应答包回送给自己的上一跳节点。不断重复应答过程,直到回送至S。全部应答完毕即可形成转发组。经过上述寻路过程后,S发出的数据包经由转发组的泛洪可到达全部接收节点R。

ODMRP 协议通过建立一个连接组播业务发送节点和接收节点的网格结构,利用组播成员节点和中间转发节点来进行组播业务的传输,这样,在组播业务发送节点与接收节点间存在着冗余路由,因此,该协议十分适合于拓扑结构变化频繁的 Ad Hoc 网络。但是,ODMRP 协议在建立和维护路由时需要周期性的全网发送控制报文,这造成了网络中较大的控制开销,降低了网络整体性能。

ODMRP协议是通过洪泛JION-QUERY分组来建立及刷新路由的。可是过多的洪泛通常会引起拥塞、带宽的竟争、冲突踫撞。

ODMRP 协议是基于网格的按需组播路由协议,该协议使用了转发组的概念,它是一组负责转发数据包的移动节点,这些节点构成了一个转发网格。ODMRP协议由组播的源节点发起组播路径查找,有数据要发送时才建立和维护转发结构。 ODMRP 协议的路由建立消息通过广播的方式在整个网络发送,这些路由信息构成了以组播源节点为根的反向最短路径树。组播成员节点接收到路由建立消息后,响应一个路由应答消息,沿着反向最短路径树到达源节点,所有以源节点为根的最短路径树节点成为组播组的转发节点,这些最短路径树的叠加组成了一个网格状的结构。组播网格建立完成后就可通过转发节点进行组播数据的转发。

在 ODMRP 协议中,网络中的节点要维护四种数据列表:

(1)    路由信息表:

节点在接收到非重复的 JOIN-QUERY 报文时就更新此信息表或增加一条新的记录。路由信息表主要记录了目的地地址、下一跳节点地址、两节点之间的跳数以及更新时间。值得注意的是,表中的目的地地址指的是发送 JOIN-QUERY 报文的节点地址,而下一跳节点地址是指将 JOIN-QUERY 报文转发过来的最后一跳,同时也是节点接收到 JOIN-REPLY 报文后准备转发的下一跳。该表用于JOIN-REPLY 报文应答 JOIN-QUERY 报文时的寻路。其数据结构见图2:

 

 

发送节点地址

下一跳节点地址

跳数

更新时间

图2:路由信息表结构

(2)转发组信息表

当一个节点是组播的转发组节点时,则会在该信息表中记录组播组的地址和

节点最后更新时间。其数据结构见图3。

组播组地址

刷新时间

 

图3:  中间转发组信息表结构

(3)组播成员信息表

每个组播接收节点在成员信息表中记录组播发送节点的信息。其表中内容包

括组播组本身信息和发送节点信息。发送节点信息包括发送节点地址和最后一次

JOIN-QUERY 报文到达时间。如果在刷新时间到来的时候,没有新的 JOIN-QUERY

报文到来,就将该发送节点的信息从表中删除。

(4)消息缓存表

该表主要用于节点检测重复分组,当收到新的 JOIN-QUERY 报文或数据分组

时,节点就在信息缓存表中记录分组的序列号及发送该分组的源地址,以便与下

一个到达的分组比较。消息缓存的信息不必“永久”保存,常常采用 LRU(Least

Recently Used)或 FIFO(First In First Out)算法覆盖旧的缓存以避免消息缓存溢

出。

4.ODMRP路由的建立与维护

   当 Ad Hoc 网络中的组播源节点有数据发送但不存在组播路由时,则组播源节点周期性地广播一个 JOIN-QUERY 报文,这种周期性的报文能够不断更新节点消息和路由信息。转发节点记录自己的上游节点信息并再次将非重复的JOIN-QUERY 且其 TTL(Time-To-Live)值大于零的报文广播出去。当 JOIN-QUERY

报文到达组播接收节点时,节点生成并广播一个 JOIN-REPLY 报文,该报文中包

含组播源节点和下一跳节点地址,转发节点收到这个报文后,检查自己的地址是

否与报文中的下一跳地址相同,如果相同,则转发节点就知道自己在到达源节点

的路径上,就设置转发标志 FG-FLAG,加入组播网格中,如此下去,直至到达组

播源节点。ODMRP 组播网格的建立包括请求过程和应答过程。

    组播路由的维护过程是:由于 ODMRP 协议是一种按需组播路由协议,所以其建立的路由以及成员节点和转发节点都是暂时存在的,都具有一定的生存期限。转发节点一旦过了生存期限而没有接受到新的控制报文来更新它的路由信息,那么它就认为自己不是网格成员节点,就不会再次转发组播数据。因此组播发送节点要周期性的发送JOIN-QUERY 报文,而接收节点也要回复 JOIN-REPLY 报文,这样转发节点才能不断更新其上游和下游节点的路由信息,维护好整个组播网格。

 

0 0