AODV路由协议方案优化问题


AODV路由协议在自组织网络中,是如何使用的呢?在前面的文章,这个问题我们已经解答过了。那么今天我们主要讲述一下如何进行优化。那么首先我们还是了解一下网络之中存在的问题。

Ad-hoc网络是由一组带对等的无线移动终端组成的一个网络,这些移动终端本身具有路由功能,所以不需要依靠固定的通信网基础设施就能实现互相通信,现已成为商业领域的一种新兴的无线技术。Ad-hoc网络有着这样一些特点如:全无线多跳转发、移动以及带宽及能量受限等。因此在设计适合于立Ad-hoc网络高效可靠的路由协议时必须要有目的地针对Ad-hoc网络的主要问题来进行,近年来,研究人员提出了多种不同的路由协议,AODV路由协议就是其中的一个经典。

AODV路由协议是一种基于“最小跳数"的按需路由协议,它不用周期的维护路由表,只需在需要的时候才进行路由的建立,从而大幅的减少控制流量开销。但是因为其“最小跳数"的选路准则,很容易就造成网络中间节点负载过高,从而影响了网络的性能。本文主要针对AODV路由协议的缺点,提出一种基于时延控制的AODV优化方案。

1 问题的提出

AODV(Ad-hocOn-DemandDistanceVectorRouting)是一种按需的改进的距离向量路由协议,与表驱动路由协议不同,按需驱动路由协议只有当源节点需要到目的节点的路由或者当某个节点希望加入一个多播组时才寻找路径。当源节点需要一条通往目的节点的路径时,它在网络中发起一次路径发现过程,它并不需要周期的交互路由信息和更新路由表。正是由于这个特性,可以大幅度的减少控制流量开销,这在无线网络中时非常有用的。虽然AODV协议有着这种种的优点,但是由于其基于“最小跳数"作为路由度量的特点,会导致在很多情况下会导致网络的中间节点被多条链路公用,而网络的边界节点却使用频率较低,这不单造成网络资源浪费,而且容易发生拥塞,从而影响网络的端对端时延以及网络吞吐量。

尤其是针对于大型的Ad-hoc网络,负载较高的情况下,会造成中间节点的严重负载过量,形成热点,从而影响经过这些节点的业务,增加其端到端延时,减少业务的吞吐量从而导致网络性能急速下降。由于AODV路由协议中选路是通过“最小跳数"为依据的,所以在S1寻找的D1的路径时,由于节点S1到节点1再到节点D1最短,它会选择这条路径来进行传输业务;而从S2寻找到D2的时候,由于节点S2到节点1再到节点D2最短,所以该链路也会选择这条路,这样就很显然的看到节点1同时作为两条链路的中间节点,就会出现负载较高的现象,而节点2,节点4,节点3,节点5,却一直没有被用到。这样明显的浪费了很多网络资源,是很不合理的。

所以如何来针对不同的业务来进行对AODV协议的改进,以便能更为出色的完成业务的相应业务的传输,有着非常重要的意义,下一张将根据对端到端时延有较高要求的业务提出一种改进方法。

2 基于时延控制的AODV路由协议扩展协议

改进思想

在网络中,端到端时延是由传输时延以及节点处理时延组成的,而传输时延只是与链路中的空间距离有关,对于无线Ad-hoc网络来说是很小的,同时节点的处理时延也是由节点处理单个分组的时延和分组排队等待时延组成的,同样节点处理单个分组的时延基本上是稳定的,所以网络中的链路端到端时延往往由业务分组的排队时延来决定的,尤其是在网络业务量较高的情况下,在节点在网络负载较高的时候,排队时延起到了决定作用。因此,可以利用这一特性来建立较短时延的链路来完成业务的转发。

通过考虑节点的时延,来控制RREQ分组的发送时间,当节点排队时延较大,则会对收到的路由请求RREQ分组进行较大时延延迟然后再把它更新转发出去,以此通过一系列的转发下去,这样,在目的节点中收到的第一个RREQ分组,基本上能保证是通过时延链路最短的一个链路到达的,目的节点可以根据收到的第一个RREQ分组的信息建立一条目的节点到源节点的路由,并将将RREP分组按原路返回,在源节点收到RREP分组时,可以根据RREP分组信息,建立一条源节点到目的节点时延最短的路由,进行相应业务的发送,这样一来,可以减少网络的端到端时延。

AODV路由协议扩展路由方法

首先,节点将周期的统计本节点的分组时延,其统计方法如下:其中iT为本周期内第i个数据分组通过节点k的时延,kT为周期内通过节点k的所有节点的时延之和。

其中maxS为节点最大队列长度。当网络中某节点S需要获得到达另一节点D的路由时,该节点S将向周围节点广播路由求RREQ分组。中间节点收到该路由请求RREQ分组后,根据本节点先判断本节点是否已经收到过该RREQ分组,如果已经收到,将不再处理,如果之前没有收到够过,则进行处理:先更新该节点到源节点的反向路由,然后根据本节点的节点时延进行延迟*kaT时间后再进行转发该路由请求。目的节点收到路由请求后,判断是否是新的RREQ分组,将建立一条到源节点的反向路由,并给源节点回复RREP分组,如果已经收到过该RREQ分组,将不做处理。如此,源节点S通过路由回复即可获得到目的节点D的路径以及路径的质量信息。最后,节点S将路径以及路径质量信息添加到路由缓存中,并查看数据缓存中是否由数据需要发送。

相关内容