论文部分内容阅读
摘要:提出一种新主机加入移动自组网的地址自配置机制。针对OLSR路由协议网络负荷较重的情况,特别考虑了路由协议的原理特点,设计了一种基于代理邻居的简单地址自配置方法;针对代理邻居的发现、局域地址的分配、全局地址的检测与分配提出了完整的解决方案,设计了相关分组格式,并保持了与OLSR通用数据格式的一致性。该方法算法简单,对网络负荷影响极小。
关键词:OLSR;地址自配置;邻居代理;地址池
0 引言
移动自组网MANET(Mobile ad hoc NETworks)是一种临时网络,它由一些固定节点或移动节点组成,没有一些预先存在的节点,可用在军事、救灾和家庭网络及其它一些类似的应用环境。移动自组网中路由问题很复杂,存在各种不同的路由方案,而这些路由方案都有一个基本的前提,即在建立无环路由和实现单播通信之前,网络中所有的节点都必须有一个全网惟一的网络地址。本文提出一种简单的基于OLSR协议的路由方案,只使用极小的网络负荷,并且可以方便地扩展到其它路由协议中去。本文第一部分是对OLSR协议的简单介绍,第二部分提出地址自配置方案的原理及实施方法,第三部分对本方法的效率进行分析,最后总结了本次研究的成果和以后需要完善的问题。
1 OLSR路由协议
移动自组网是由处于一定地理范围内的节点以自组织方式组成的无线网络,节点之间要求互联互通并且协同工作。移动自组网具有高度变化的拓扑结构,各节点可以任意移动,节点之间利用无线技术传送数据包,所以该网络的路由问题很复杂。优化链路状态路由协议OLSR(optimized link state routingprotocol)是解决MANET路由的常用办法之一。
OLSR路由协议是由IETF MANET工作组提出的一种表驱动式的链路状态路由协议,主要采用两种控制分组,HELLO分组和TC(Topology Control)分组。HELLO用于建立一个节点的邻居表,其中包括邻居节点的地址以及本节点到邻居节点的延迟或开销,OLSR采用周期性地广播HELLO分组来侦听邻居节点的状态、节点之间无线链路的状态,同时HELLO分组用于计算该节点的MPR(Multi Point relay),只有MPR节点被用作路由选择节点,非MPR节点不参与路由计算,OLSR还利用MPR节点有效地广播控制信息,非MPR节点不需要转发控制信息。HELLO分组只在一跳的范围内广播,不能被转发。与之相反,TC分组必须被广播到全网,在TC分组中包含了将发送TC分组的节点选为MPR的邻居节点的信息,节点根据收到的TC分组来计算出网络的拓扑图,从而建立网络路由表。
OLSR路由协议是先验式的,也就是说它们查找路由不依赖于路径上的节点是否要发包,而是每个节点都维护一张包含到达其它节点的路由信息表。节点间通过周期性地交换路由信息来不断更新自身的路由表,以便能够及时地反映网络拓扑结构和变化,以维护一致的、及时的、准确的路由信息。OLSR不断地收集节点之间能相互通信的数据,并对每个节点保持一个最优化的路由表,所以连接可以很快地建立。但是OLSR相对比较大而且复杂,同时频繁地找寻网络其他节点,加重了网络负荷,所以建立基于OLSR协议的地址自配置系统一定要充分考虑网络负担问题。本文提出的地址配置方案的特点,即对网络自身的数据量负荷影响很小。
2 基于OLSR的简单地址配置方案
本文中的地址配置方案之所以称为简单方案,是因为该方案的目标网络是一个运行OLSR路由协议的移动自组网。当然该方法可以根据不同路由协议特点方便地进行扩展,另外不考虑网络的合并与分割问题。本自配置方案可分为三个阶段:
(1)所有OLSR网络中的节点周期性发送ADDR_EXPL数据包,以发现新加入节点。将其确定为新节点并进行地址配置的代理节点叫做代理邻居。
(2)在新加入节点与地址配置代理节点确定了代理关系后,代理邻居为新节点配置网络的临时地址,并与新节点进行HELLO数据包的通信,对该过程中出现的各种情况进行处理。
(3)根据整个网络的地址分配表为新加入节点配置全局网络地址,并负责对该网络地址的惟一性进行检查,同时更改全局网络数据表。
下面详细说明在这个三个过程中涉及的问题以及解决方案。
2.1确定代理邻居
在运行OLSR路由协议的网络中,周期性发送HELLO分组和转发TC(TopologyControl)分组的节点,可以作为为新加入节点分配网络地址的代理主机。为了能够及时发现新加入节点,利用OLSR协议中的HELLO交换周期性地发送ADDR_EXPL分组。该分组是一个局部数据包,任何收到该分组的主机不必转发,以减小网络负荷。
新力UN主机收到—个ADDR_EXPL分组后,确定该邻居节点作为自己地址配置的邻居代理,如果同时收到多个ADDR_EXPL分组,则在多个邻冒节点中选择—个地址较低的作为其邻居代理。
OLSR网络中节点可能随时发现新主机,并且为之配置局部临时地址。因为在新主机得到全局性地址前,需要拥有一个局部的临时地址与其进行通信和链路监测,最后再为该主机分配全局永久地址。
如何为新节点分配临时地址,并在局部监测地址冲突?本文采取这样的策略:
(1)每—个OLSR网络中的主饥选取—个局部的地址段,用作新主机分配临时地址的地址池。并目通过不断交换ADDR_EXPL分组来分析网络拓扑结构中是否存在局部的地址冲突。
(2)如果两个或多个没有进行地址代理的节点发生冲突,则由低地址主机重新选择局部地址段。
(3)如果有一个或多个正在为新主机进行地址配置的节点发生了冲突,因为当前的地址配置必须完成,则代理地址节点缩小其临时地址段至当前新节点分配的地址。
(4)如果地址代码段小于一定的空间,需进行重新选择。
为了减少网络负担,所设计的ADDR_EXPL分组格式(如图1所示),与OLSR协议通用数据分组一致。其中全1段对应于HEELO分组的链接代码段,用于表示与新加入主机链接的标识;全零字段与HELLO分组一致,为保留字段。这样ADDR_EXPL分组即可作为HELLO分组的一部分进行周期发送。因为HELLO分组的链接代码段高四位为0,所以经过对这四位非0判断接收方很容易区分这部分内容为ADDR_EXPL分组内容。如果地址代理节点在地址分配过程中出现冲突需要置临时地址池至当前分配地址时,则开始地址置零,结束地址作为当前分配地址的标识。
图1 ADDR_EXPL分组格式
2.2代理邻居分配临时地址
当新主机收到一个或多个ADDR_EXPL分组后,需要确定一个作为其地址配置的邻居代理,可根据所有邻居链路的延迟 或信号强度进行决策。在确定了代理邻居后,对该主机发送ADDR_CONFIG分组,使其确认为代理邻居并进行临时地址的分配,由代理邻居从自己的临时地址池中跳选地址并分配给新的主机。该过程采用以下处理方法:
(1)新主机在给代理邻居发送ADDR_CONFIG分组并请求分配临时地址,同时发送自己的物理地址,为进一步分配全局的永久地址做准备;
(2)代理邻居在收到新主机的ADDR CONFIG分组后,从自己的临时地址池中挑选地址分配给新主机,并从自己的地址池中将相应部分去除;
(3)新主机得的临时地址在自己的一跳范围内并不能保证惟一,所以在等待分配永久地址时,不能使用该地址进行局部通信,而只是周期性地和自己的代理邻居进行HELLO分组的交换,直到得到全局永久地址,从而成为一个完全独立的OLSR网络主机。在此期间两主机链路发生变化,新主机可重新发送ADDR_CONFIG分组或者重新选择代理邻居。
我们所设计的ADDR_CONFIG分组如图2所示,同样采用OLSR的通用数据结构。需要说明的是:如果源地址、局域临时地址及全局永久地址段为O时,表示这个一个新主机请求局域临时地址的ADDR_CONFIG分组;如果只有全局永久地址段为0,表明这是一个分配局域临时地址的分组,否则是一个分配全局永久地址的分组。
图2 ADDR CONFIG分组格式
2.3分配全局地址方案
当新主机和代理邻居利用临时地址进行通信后,代理邻居就需要在全局地址空间中为新主机选择永久地址。对于全局惟一地址的选择可以有多种机制。比如类似DHCP的地址配置方案,在全网范围内建立地址服务器,用以满足地址分配请求和回收。但是这种方案降低了移动自组网的灵活性和网络健壮性,同时也增加了组网代价。
本文采用一种分布式的分配机制。如果代理邻居不是多点中继站MPR(MultiPoint relay),则从其选定的MPR路由表中选取没有使用的地址分配给新的主机。如果代理邻届是—个MPR,则可直接选择一个路由表中没有的全局地址作为新节点的永久地址。考虑到无线局域网的动态性,必要的地址冲突监测是必须的,可以将要分配的全局地址写入TC分组中,由接收该TC分组的主机进行监测,如果存在冲突则通矢口该TC分组的产生主机。
3 性能分析
在上面提出的地址自配置方法中,在OLSR网络中加入了三类数据的分组交换:用于发现新主机的ADDR_EXPL分组;用于确定代理邻居并请求局域临时地址的ADDR_CONFIG分组,代理邻居分配临时地址和全局地址也使用ADDR_CONFIG分组;代理邻居从全局地址空间中获取空闲地址并进行惟一性检查的数据分组。
在以上的三类中,ADDR_EXPL分组是加在HELLO分组后面的,不会额外增加网络负担,ADDR_CONFIG只有在进行地址配置时才会发送,并且长度只有32个字节,这两种数据分组只限于局域,也就是一跳的范围内转发,整个地址分配过程只需要四个分组的交换即可完成,所以对网络的负荷影响很小,这是该地址配置方法的一大特点。
4 结束语
本文提出的基于OLSR路由的移动自组网的简单地址自配置方案,概念清晰实施简单。OLSR网络路由信息交换频繁,额外负荷较重,对于这种先验式的路由协议来讲,本方法有着对网络额外负荷影响极小的好处。
但是本方法只适用于新主机节点加入一个连通的移动自组网的情况,也就是说必须有一个属于OLSR的主机为其地址自配置提供邻居代理,这正是移动自组网中最频繁的一种需要地址自配置的情况。对于两个MANET进行合并时存在的潜在地址冲突问题,还有待进一步研究。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:OLSR;地址自配置;邻居代理;地址池
0 引言
移动自组网MANET(Mobile ad hoc NETworks)是一种临时网络,它由一些固定节点或移动节点组成,没有一些预先存在的节点,可用在军事、救灾和家庭网络及其它一些类似的应用环境。移动自组网中路由问题很复杂,存在各种不同的路由方案,而这些路由方案都有一个基本的前提,即在建立无环路由和实现单播通信之前,网络中所有的节点都必须有一个全网惟一的网络地址。本文提出一种简单的基于OLSR协议的路由方案,只使用极小的网络负荷,并且可以方便地扩展到其它路由协议中去。本文第一部分是对OLSR协议的简单介绍,第二部分提出地址自配置方案的原理及实施方法,第三部分对本方法的效率进行分析,最后总结了本次研究的成果和以后需要完善的问题。
1 OLSR路由协议
移动自组网是由处于一定地理范围内的节点以自组织方式组成的无线网络,节点之间要求互联互通并且协同工作。移动自组网具有高度变化的拓扑结构,各节点可以任意移动,节点之间利用无线技术传送数据包,所以该网络的路由问题很复杂。优化链路状态路由协议OLSR(optimized link state routingprotocol)是解决MANET路由的常用办法之一。
OLSR路由协议是由IETF MANET工作组提出的一种表驱动式的链路状态路由协议,主要采用两种控制分组,HELLO分组和TC(Topology Control)分组。HELLO用于建立一个节点的邻居表,其中包括邻居节点的地址以及本节点到邻居节点的延迟或开销,OLSR采用周期性地广播HELLO分组来侦听邻居节点的状态、节点之间无线链路的状态,同时HELLO分组用于计算该节点的MPR(Multi Point relay),只有MPR节点被用作路由选择节点,非MPR节点不参与路由计算,OLSR还利用MPR节点有效地广播控制信息,非MPR节点不需要转发控制信息。HELLO分组只在一跳的范围内广播,不能被转发。与之相反,TC分组必须被广播到全网,在TC分组中包含了将发送TC分组的节点选为MPR的邻居节点的信息,节点根据收到的TC分组来计算出网络的拓扑图,从而建立网络路由表。
OLSR路由协议是先验式的,也就是说它们查找路由不依赖于路径上的节点是否要发包,而是每个节点都维护一张包含到达其它节点的路由信息表。节点间通过周期性地交换路由信息来不断更新自身的路由表,以便能够及时地反映网络拓扑结构和变化,以维护一致的、及时的、准确的路由信息。OLSR不断地收集节点之间能相互通信的数据,并对每个节点保持一个最优化的路由表,所以连接可以很快地建立。但是OLSR相对比较大而且复杂,同时频繁地找寻网络其他节点,加重了网络负荷,所以建立基于OLSR协议的地址自配置系统一定要充分考虑网络负担问题。本文提出的地址配置方案的特点,即对网络自身的数据量负荷影响很小。
2 基于OLSR的简单地址配置方案
本文中的地址配置方案之所以称为简单方案,是因为该方案的目标网络是一个运行OLSR路由协议的移动自组网。当然该方法可以根据不同路由协议特点方便地进行扩展,另外不考虑网络的合并与分割问题。本自配置方案可分为三个阶段:
(1)所有OLSR网络中的节点周期性发送ADDR_EXPL数据包,以发现新加入节点。将其确定为新节点并进行地址配置的代理节点叫做代理邻居。
(2)在新加入节点与地址配置代理节点确定了代理关系后,代理邻居为新节点配置网络的临时地址,并与新节点进行HELLO数据包的通信,对该过程中出现的各种情况进行处理。
(3)根据整个网络的地址分配表为新加入节点配置全局网络地址,并负责对该网络地址的惟一性进行检查,同时更改全局网络数据表。
下面详细说明在这个三个过程中涉及的问题以及解决方案。
2.1确定代理邻居
在运行OLSR路由协议的网络中,周期性发送HELLO分组和转发TC(TopologyControl)分组的节点,可以作为为新加入节点分配网络地址的代理主机。为了能够及时发现新加入节点,利用OLSR协议中的HELLO交换周期性地发送ADDR_EXPL分组。该分组是一个局部数据包,任何收到该分组的主机不必转发,以减小网络负荷。
新力UN主机收到—个ADDR_EXPL分组后,确定该邻居节点作为自己地址配置的邻居代理,如果同时收到多个ADDR_EXPL分组,则在多个邻冒节点中选择—个地址较低的作为其邻居代理。
OLSR网络中节点可能随时发现新主机,并且为之配置局部临时地址。因为在新主机得到全局性地址前,需要拥有一个局部的临时地址与其进行通信和链路监测,最后再为该主机分配全局永久地址。
如何为新节点分配临时地址,并在局部监测地址冲突?本文采取这样的策略:
(1)每—个OLSR网络中的主饥选取—个局部的地址段,用作新主机分配临时地址的地址池。并目通过不断交换ADDR_EXPL分组来分析网络拓扑结构中是否存在局部的地址冲突。
(2)如果两个或多个没有进行地址代理的节点发生冲突,则由低地址主机重新选择局部地址段。
(3)如果有一个或多个正在为新主机进行地址配置的节点发生了冲突,因为当前的地址配置必须完成,则代理地址节点缩小其临时地址段至当前新节点分配的地址。
(4)如果地址代码段小于一定的空间,需进行重新选择。
为了减少网络负担,所设计的ADDR_EXPL分组格式(如图1所示),与OLSR协议通用数据分组一致。其中全1段对应于HEELO分组的链接代码段,用于表示与新加入主机链接的标识;全零字段与HELLO分组一致,为保留字段。这样ADDR_EXPL分组即可作为HELLO分组的一部分进行周期发送。因为HELLO分组的链接代码段高四位为0,所以经过对这四位非0判断接收方很容易区分这部分内容为ADDR_EXPL分组内容。如果地址代理节点在地址分配过程中出现冲突需要置临时地址池至当前分配地址时,则开始地址置零,结束地址作为当前分配地址的标识。
图1 ADDR_EXPL分组格式
2.2代理邻居分配临时地址
当新主机收到一个或多个ADDR_EXPL分组后,需要确定一个作为其地址配置的邻居代理,可根据所有邻居链路的延迟 或信号强度进行决策。在确定了代理邻居后,对该主机发送ADDR_CONFIG分组,使其确认为代理邻居并进行临时地址的分配,由代理邻居从自己的临时地址池中跳选地址并分配给新的主机。该过程采用以下处理方法:
(1)新主机在给代理邻居发送ADDR_CONFIG分组并请求分配临时地址,同时发送自己的物理地址,为进一步分配全局的永久地址做准备;
(2)代理邻居在收到新主机的ADDR CONFIG分组后,从自己的临时地址池中挑选地址分配给新主机,并从自己的地址池中将相应部分去除;
(3)新主机得的临时地址在自己的一跳范围内并不能保证惟一,所以在等待分配永久地址时,不能使用该地址进行局部通信,而只是周期性地和自己的代理邻居进行HELLO分组的交换,直到得到全局永久地址,从而成为一个完全独立的OLSR网络主机。在此期间两主机链路发生变化,新主机可重新发送ADDR_CONFIG分组或者重新选择代理邻居。
我们所设计的ADDR_CONFIG分组如图2所示,同样采用OLSR的通用数据结构。需要说明的是:如果源地址、局域临时地址及全局永久地址段为O时,表示这个一个新主机请求局域临时地址的ADDR_CONFIG分组;如果只有全局永久地址段为0,表明这是一个分配局域临时地址的分组,否则是一个分配全局永久地址的分组。
图2 ADDR CONFIG分组格式
2.3分配全局地址方案
当新主机和代理邻居利用临时地址进行通信后,代理邻居就需要在全局地址空间中为新主机选择永久地址。对于全局惟一地址的选择可以有多种机制。比如类似DHCP的地址配置方案,在全网范围内建立地址服务器,用以满足地址分配请求和回收。但是这种方案降低了移动自组网的灵活性和网络健壮性,同时也增加了组网代价。
本文采用一种分布式的分配机制。如果代理邻居不是多点中继站MPR(MultiPoint relay),则从其选定的MPR路由表中选取没有使用的地址分配给新的主机。如果代理邻届是—个MPR,则可直接选择一个路由表中没有的全局地址作为新节点的永久地址。考虑到无线局域网的动态性,必要的地址冲突监测是必须的,可以将要分配的全局地址写入TC分组中,由接收该TC分组的主机进行监测,如果存在冲突则通矢口该TC分组的产生主机。
3 性能分析
在上面提出的地址自配置方法中,在OLSR网络中加入了三类数据的分组交换:用于发现新主机的ADDR_EXPL分组;用于确定代理邻居并请求局域临时地址的ADDR_CONFIG分组,代理邻居分配临时地址和全局地址也使用ADDR_CONFIG分组;代理邻居从全局地址空间中获取空闲地址并进行惟一性检查的数据分组。
在以上的三类中,ADDR_EXPL分组是加在HELLO分组后面的,不会额外增加网络负担,ADDR_CONFIG只有在进行地址配置时才会发送,并且长度只有32个字节,这两种数据分组只限于局域,也就是一跳的范围内转发,整个地址分配过程只需要四个分组的交换即可完成,所以对网络的负荷影响很小,这是该地址配置方法的一大特点。
4 结束语
本文提出的基于OLSR路由的移动自组网的简单地址自配置方案,概念清晰实施简单。OLSR网络路由信息交换频繁,额外负荷较重,对于这种先验式的路由协议来讲,本方法有着对网络额外负荷影响极小的好处。
但是本方法只适用于新主机节点加入一个连通的移动自组网的情况,也就是说必须有一个属于OLSR的主机为其地址自配置提供邻居代理,这正是移动自组网中最频繁的一种需要地址自配置的情况。对于两个MANET进行合并时存在的潜在地址冲突问题,还有待进一步研究。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。