廖 昀
(厦门亿联网络技术股份有限公司,福建 厦门 361000)
移动自组网中节点的IP地址自动分配技术就是在分布式运行的网络中,新加入的节点通过向网络中已经存在的节点申请自己的IP地址,或通过自身所获取的网络IP地址信息并进行相关的运算,得出自己可用的IP地址,进而为自己进行IP地址配置的协议。通过以上描述得出,移动自组网中节点的IP地址自动配置需要通过节点自身已有的信息和网络中其他节点已有的信息相互协助共同完成。由于移动自组网中节点能够随机移动,并且该网络不存在集中的地址管理节点,因此网络中新加入的节点正在寻求一种方式来自动完成IP地址的配置。移动自组网的IP地址自动分配是在某些已存在节点的协同作用下共同完成的,并不是仅仅依赖于网络中固定的IP地址管理节点。
由移动自组网中节点IP地址自动配置的含义可知,移动自组网中节点的IP地址自动配置协议具有如下特点:
(1)自组织。由于移动自组网是一种节点经常变化、无中心节点的无线网络,移动自组网中IP地址自动配置协议能够在这种网络环境中完成每个节点的IP地址自动配置过程。
(2)分布式。由于移动自组网是一种分布式的网络,网络中节点的IP地址自动配置协议是网络中一个或几个节点共同参与完成的,网络中的每一个节点都有可能是节点IP地址自动配置协议中的一部分。
(3)自愈性。当网络中可用IP地址耗尽,移动自组网中IP地址自动配置协议能够获得新的可用地址,从而使IP地址自动配置过程不会因为lP资源的耗尽而终止。
(4)抗毁性。因为某些原因导致网络中的某些节点无法进行通信时,新加入网络的节点也能完成IP地址自动配置过程。
基于硬件地址的IP地址分配协议是采用基于硬件MAC地址的已知网络前缀和后缀组成的IP地址。此协议认为每块以太网卡的硬件地址具有唯一性,所以网络中节点的IP地址不能产生重复。但是该协议应该注意以下情况:①移动自组网中节点的硬件地址有可能不是采用标准的以太网MAC地址,而是使用其它格式的硬件地址;②无法保证MAC地址的唯一性,因为通过ifconfig命令或重编EEPROM可以改变网卡的MAC地址;③相同生产厂家制造的多块网卡的MAC地址有可能相同;④由于IP地址中隐含着硬件地址,所以通过节点的IP地址就能推出节点的MAC地址,这就使节点的安全性受到威胁。因此,采用基于硬件地址为节点自动配置IP地址的方法存在不足之处。
基于预知地址分配法的IP地址分配协议的原理是,首先网络中的第一个节点选择一个能够产生随机数的函数f(n),由此函数产生的随机数作为节点的IP地址,函数f(n)需要很长的时间间隔才能产生两个相同的随机数。当网络中有新节点加入时,该节点便向网络中已存在节点申请IP地址,网络中已存在的节点便通过函数f(n)生成一个随机的IP地址,然后将该IP地址回复给网络中新加入的节点,下一个新加入节点的IP地址自动配置以此类推。此方法中函数f(n)能够产生的IP地址数量远远大于网络中的节点数。虽然函数f(n)需要较长的间隔时间才能生成两个相同IP地址,但是伴随移动自组网中节点的随机移动、节点间位置关系的不断变化,最终有可能导致不同节点间的IP地址冲突。
在MANETconf协议中,移动自组网中的所有节点都保存着两张表:可分配IP地址表和已分配IP地址表,节点间周期性的通过广播的形式使新这两张表中的信息达到同步。网络初始化时仅存在一个节点,该节点便从可分配IP地址表中选取一个IP地址完成自身地址的配置。以后网络中新加入的节点通过网络中已存在的邻居节点来为自身配置IP地址,邻居节点选择1个未分配的地址(该地址存在于可分配IP地址表中但不在已分配IP地址表中),随后向整个网络内的其他节点广播一种特定的消息,来请求所有节点的同意,在网络中所有的节点都认为该IP地址没有被使用的前提下,邻居节点回复该IP地址给新加入的节点,同时,同步所有节点的已分配IP地址表。否则,它将重新选取地址并进行上述过程。
该协议采用广播的方式对网络中所有节点的IP地址表信息进行更新,有效避免了IP地址冲突,但是具有很大开销;当网络中加入新节点时,选择的邻居节点需要在征求网络中其它节点的同意后,才能给新加入节点分配预选好的地址,具有较大的配置延时;此外,随着网络规模的扩大,此协议的时延和开销明显增加,该算法不具有很好的扩展性。
由Perkins,Malinen,Wakikawa,RoyerandSun等人研究的一个为移动自组网节点自动配置IP地址的方法,简称其为PMWRS算法。该算法的原理是,网络中新加入的节点在IP地址池169.254/16中随机选取一个IP地址,然后在网络中泛洪达到该地址的请求报文,并启动计时器。如果在计时器超时后,新加入节点没有收到任何节点的地址回复报文,该节点重新发送地址请求报文。如果节点进行几次尝试后,还是没有收到地址回复报文,该节点就认为它所选的IP地址没有被其它节点使用,并为自己配置该IP地址。但是PMWRS算法也存在着缺陷。
使用PMWRS算法的节点在泛洪地址请求报文后,如果在一定的时间内没有收到相应的应答报文,节点就以为它所选的IP地址没有被其它节点使用。但是选取计时器超时时间是一个难题。计时器超时时间太短则地址请求报文不能够被网络中的所有节点接收到。为了解决这个问题,计时器的超时时间应与移动自组网中的总节点数成正比。这样,大型的移动自组网中节点的IP地址自动配置延时将会很长。
PACMAN算法中节点采用了PDAD的方式以避免进行DAD(主动冲突检测)所导致的大量开销。新加入到网络中的节点从地址空间中为自己选取1个IP地址。该算法通过分析节点进行路由更新时的数据信息,寻找存在地址重复时才可能发生的事件来发现地址冲突,并采取相应措施进行处冲突理。例如在典型的链路状态路由协议中,每个节点都需要周期性地交换含有序列号、源地址等信息链路状态消息。假如链路状态消息中每个节点序列号的变化都是有规律的,当某个节点收到的某条链路状态消息中具有与自己的IP地址相同的源地址,消息中的序列号大于自己当前的序列号,则该节点确定网络中发生地址冲突。
在地址分配过程中不产生控制信息是该算法的最大特点,该算法通过特有的路由事件来判断地址冲突,并采取相应的措施处理地址冲突,具有较小的协议开销。但该算法需要的IP地址数远远大于网络中存在的节点数,否则容易导致地址冲突,引入冲突处理算法会增大协议的开销。此外,该算法的实现针对具体的路由协议,适应范围过于狭窄。
这类算法的共同特点是对整个网络先进行分群,一个群中的所有节点相距小于或等于r跳,根据节点邻居数目的多少来选举群首节点,孤立节点自立为群首。所有群内节点属于同一个子网,群首节点随机选择一个子网ID,为了保证该子网ID的唯一性,该群首节点在所有群首节点中进行DAD(主动冲突检测)。群首节点在确定下子网ID后,便向群内所有节点周期性地广播子网ID。新加入到网络中的节点首先选择一个临时IP地址,并以该IP地址在群内所有节点间进行主动检测冲突,如果发生地址冲突,则节点重新选择临时地址,并进行主动检测冲突,如果没有发生地址冲突,则将该临时地址和群首广播的子网ID合并为节点的IP地址。
该算法使整个网络实现了分群,将子网ID的DAD检测限制在群首节点之间,而临时地址的DAD检测限制在群内,降低了协议开销。但随着网络拓扑动态变化,节点的移动,维护网络分群结构的本身也需要很大的开销,所以该算法并不适合于网络拓扑变化剧烈、节点移动快的移动自组网。
本文主要针对论文研究的主要内容,详细阐述了移动自组网IP地址自动配置的定义,IP地址自动配置协议的特点,为后面章节中提出的改进算法做理论铺垫。然后重点介绍了几类IP地址自动分配协议,并针对每一类IP地址自动分配协议列举了典型的、具有代表性的IP地址自动分配算法进行了简要概述,最后对这些典型算法的优劣进行了简要分析。
[1]陈爱国,张曦煌.移动自组网的IP地址自动配置技术研究[J].计算机工程与应用,2007,43(35):146-149.