第34卷 第2期 计算机工程 2008年1月 Vo1.34 No.2 Computer Engineering January 2008 ・网络与通信・ 文章编号:1000—-3428(2008)02—__o169—__o2 文献标识码:A 中图分类号:TP393・02 移动自组网中的MAC地址动态分配 杨仕平1,谢胜利 ,黄耕文 (1.广州海格通信产业集团,广州510656;2.华南理工大学电子与信息学院,广州510641) 摘要:减小动态源路由协议DSR的开销、提高无线信道的利用率的关键是在协议运行时,使用1 B的MAC地址对节点进行标识。该文 研究了如何为特定IP地址标识的网络节点动态分配MAC地址,实现了一种基于预测的无冲突MAC地址动态分配方法,其中所引入的开 销较低。实际应用表明,该分配方法具有较强的适用性、可靠性。 关健词:移动自组阀;MAC地址;动态分配;冲突检测 MA C Address Dynamic Assignment for Mobile Ad Hoc Network YANG Shi.ping .XIE Sheng—li2.HUANG Geng-wen (1.Guangzhou Haige Communication Industry Group,Guangzhou 5 1 0656; 2.School of Electronic&Information Engineering South China University of Technology,Guangzhou 5 1(/64 1) [[Abstract]In order to reduce overhead of dynamic source route protocol suppoi’ting mobile Ad Hoc networks,and improve the utilization ratio of wireless channel,it is crucial to use MAC address of l B to identify network node when route protocol is running This paper researches how to dynamically assign a MAC address for node identified by IP address,and a dynamic assignment scheme based on prophet for MAC address is realized,which is conflict—free and low overhead.Practical application validates that the scheme for MAC address is applicable and reliable for mobile Ad HOC network. [Key words]mobile Ad Hoc network;MAC address;dynamic assignment:collision detection 为适应移动分组网高移动性需求,通常使用反应式路由 理,便可利用状态函数 )为网络节点动态分配一个MAC地 协议,如动态源路由协议(DSR)…。在DSR中,每个数据分 址,方法如下: 组中都携带有源路由,以使数据分组根据源路由列表中的节 (1)网络中的初始节点A使用一个随机状态或缺省的状态 点按序进行转发。目前,每个网络节点都由4B的IP地址进 值作为状态函数f(n)的输入种子生成一个整数作为其MAC 行标识。当数据分组所经过的节点较多时,仅源路由列表就 地址; 需要较大开销,若基于IP地址标识节点,网络拓扑结构交换 (2)当节点曰移动接近节点A时,请求节点A为其分配一 时其开销也将很大。为解决该问题,本文引入了1 B的MAC 个空闲的MAC地址时,节点A用状态函数An)得到另一个整 地址对网络节点进行标识,并使数据分组按MAC地址表示 数 。和一个状态值,并提供给节点曰,节点A也同时更新其 的源路由进行转发。移动自组网MAC地址动态分配的实现 状态; 主要借鉴了有线网IP地址动态分配技术,如动态主机配置协 (3)节点曰使用由节点A产生的整数 2作为它的MAC地 议(DHCP) 。根据地址的状态特性可进一步分为有状态方法 址,以及从节点A得到的状态值作为它自己的状态函数f(n) 和无状态方法;根据控制IP地址动态分配的方式可进一步分 的输入种子; 为冲突检测分配和无冲突分配。典型方法有IPv6 J,AAA, (4)此时节点A、节点 都可用自己当前的状态值和状态 Zeroconf PMWRS,Weak DAD ODACP,PROPHET, 函数 )为其他节点产生新的MAC地址。 Passive DAD16 J等。上述方法主要用于移动自组网中IP地址 当节点曰和节点A间的通信范围仅为1跳时,一旦节点 的动态分配,但开销都较大,适用于通信速率较高、通信条 曰接收到节点A为其生成的MAC地址和状态函数f(n)的输入 件较好的场合。 种子,即可完成MAC地址的分配,而无须寻求其他网络节 1基于先知的MAC地址动态分配 点的同意,因此节省了大量的协议开销。 1.1分配原理 假设每个节点都用1个二元组(MAC,State)表示,MAC 在为网络节点动态分配MAC地址时,如果每次分配时 地址动态分配算法的支撑理论是:每个正整数都可被唯一地 都知道当前网内所分配的MAC地址,则冲突可提前避免, 表示为素数的乘积,如168=2 x3x7。对于任一正整数 , 不需要广播消息来实现冲突地址的检测,可大大降低协议开 销l7J0 可表示为n=IIp ,其中,P 为素数,满足P <P <…<P ; i=l 基于先知的MAC地址动态分配正是如此,其基本原理 作者简介:杨仕平(1974一),男,博士,主研方向:移动自组网,抗 是:假设存在一个有状态的函数 )J,如果输入不同的种子, 干扰通信;谢胜利,教授、博士;黄耕文,高级工程师、博士 将生成不同的序列数,同时更新函数f0,)的状态。基于此原 收稿日期:2007一(/3—20 E-mail:yangsp@uestc.edu.cn 维普资讯 http://www.cqvip.com
指数e 为非负整数。 状态值都为(1,l,0)。当节点20.0.0.4入网时,节点2o.0.0.3为 其分配的MAC地址:18(=f3 5。),且节点20.0.0.3的状态值 为(1,2,0)。当节点20.0.0.6入网时,节点20.0.0.2为其分配的 MAC地址:90(=213 5)。当节点20.0.0.5入网时,节点20.0.0.3 为其分配的MAC地址:54(=213 5。o上述MAC地址分配过 显然,对于k元组(e ,e ,…,e ),不同的e ( =1,2,…,k) 将有不同的正整数n。因此,为网络节点分配不同的MAC地 址时,可利用不同的足元组,且足为移动自组网的最大跳数, 生成不同的正整数n。对于每个网络节点,可表示为(MAC, ( ,e2,…,ek)),其中,MAC=2e'3 5 …P“。MAC地址的动 态分配规则是 程结束后,节点20.0.0.1一节点20.0.0.6的MAC地址分别为 l,6,2,l8,54,90,且不存在冲突的MAC地址。 (1)假设 (1≤ ≤k)为某节点坍距网络初始节点的跳数, 当节点坍为某节点n分配MAC地址时,其状态值中的第 个元素e,加l; (2)新节点的状态值从为其分配MAC地址的节点复制, 1.3多节点并发入月时的MAC地址动态分配 在1.1节所介绍的MAC地址分配过程中,各节点相继入 网,这种入网过程为理想过程,实际应用中很少出现。极可 能出现多个节点并发入网,先组成多个小网,多个小网再合 并成一个网络。如图3所示,节点20.0.0.1一节点20.0.0.6可 且状态改变位右移l位,即状态改变位为e 。 1.2新节点按序入月时的MAC地址动态分配 假设存在如图l所示的3跳网络拓扑结构,其网络节点 的入网顺序为20.0.0.1,20.0.0.3,20.0.0.2,20.0.0.4,20.0.0.6, 20 0 0 5 图1节点按序入网时的MAC地址动态分盥 节点20.0.0.1加入网络时,首先广播邻居查询消息 NeighborQuery,并启动neighbor—reply—timer定时器。一旦 网内的某节点 收到Neighbor—Query消息后,向节点20.0.0.1 回送邻居响应Neighbor—Reply。收到Neighbor—Reply后,节 点20.0.0.1便向节点』发送一个MAC地址申请消息 MACRequest,同时忽略其他节点发往本节点的响应消息 NeighborReply。节点 收到节点20.0.0.1的MAC—Request 后,根据其当前状态值为其分配一个MAC值,并在回送 MACAllocated消息中夹带该MAC地址。节点20.0.0.1通过 节点.f分配MAC地址的时序如图2所示。 21 0 01 Nodef NeighborQuery一 NeighborReply MAC Reauest MACAllocated 图2动态分配MAC地址的时序 如果节点20.0.0.1是网内唯一的节点,将不能收到来自 其他节点的任何响应消息,一旦定时器neighbor_reply—timer 超时后,节点20.0.0.1重复上述过程,neighbor—query—retry 次后仍不能收到任何响应消息,便可推断它目前是网内唯一 的节点,则使用缺省状态值(0,0,0)为其生成一个MAC地址, 其MAC地址为l(=203 5)。随后节点20.0.0.3开机进入网络, 并向外发MAC地址分配请求,假设节点20.0.0.1响应了节点 的MAC地址分配请求,根据规则(1),节点20.0.0.1的状态 值变为(1,0,0),并为节点20.0.0.3分配MAC地址:2(=213”5。)。 根据规则(2),节点20.0.0.3的状态为(1,0,0),其状态改变位 为第2元素。当节点20.0.0.2入网时,节点20.0.0.3为其分配 的MAC地址:6(=213 5),且节点20.0.0.3、节点20.0.0.2的 一170一 能先组成一个小网,节点20.0.0.7~节点20.0.0.10可能组成另 一个小网,节点20.0.0.9的入网使2个小网合并成一个大网。 ,lf】n R 图3多节点并发入网酎的MAC地址动态分盥 在节点20.0.0.9入网之前,2个小网内的节点都遵循MAC 地址的分配规则申请各自的MAC地址。节点20.0.0.1一节点 20.0.0.6的MAC地址分别为l,6,2,l8,54,90,而节点 20.0.0.7一节点20.0.0.10的MAC地址分别为6,l,l8,2。可见, 小网合并后将出现重复的MAC地址。为解决此问题,本文 规定在已入网节点为某新节点分配MAC地址时,应同时向 新节点传送当前网络内的原始MAC地址分配者。如节点 20.0.0.1一节点20.0.0.6的MAC地址原始分配者都为20.0.0.1, 而节点20.0.0.7~节点20.0.0.10的MAC地址原始分配者都为 20.0.0.8。这样,当2个网络合并成一个网络时,通过邻居节 点信息的交换能够检测MAC地址原始分配者是否相同,如 果不同,则说明发生了网络的合并,合并后的网络中存在重 复的MAC地址,其中一个小网必须重新为网内各节点分配 不同的MAC地址。为了防止每个小网内的节点同时进行 MAC地址的再分配,本文规定MAC地址原始分配者的IP 地址小则具有高优先权,其网内节点的MAC地址保持不变, 而MAC地址原始分配者的IP地址大则重新分配网内节点的 MAC地址。此时,应在IP地址大的原始分配者的网内广播 MAC地址须重新分配的消息Reconfigure,此消息中应携带 MAC地址原始分配者的IP地址,而发送此消息的节点为最 先检测到不同MAC地址原始分配者的节点。在上述例子中, 广播消息Reconfigure的节点为20.0.0.9。首先改变其MAC 地址的节点也为20.0.0.9,并由节点20.0.0.6为其分配一个 MAC地址630(=213 5 7 )。其后节点20.0.0.10,20.0.0.8, 20.0.0.7 MAC地址的重新分配根据规则(1)、规则(2)进行。 2协议优化 由上文可知,MAC=2e 3 5 …P“,其中,足为移动分组 网最大可能的跳数。当足较大时,所生成的MAC地址值较 大,可能超出l B的表示范围,甚至接近表示IP地址的4B, 这样便失去了使用MAC地址的意义。但实际应用时,足可以 小于移动分组网最大可能的跳数。比如某节点的当前状态值 (下转第l74页) 维普资讯 http://www.cqvip.com 数,来验证表格数据增加对查找时间的影响。查找时间与表 格行数关系曲线如图5所示。 保持较小值。这说明使用AVL树存储表格数据能够显著提高 查找效率。 5结束语 1 400 1 200 测试结果表明,本文提出的实现方案和算法能够有效减 少OID的存储空间,并大大提高动态MIB的查找效率,特 别是表格数据的查找效率,解决了困扰SNMP项目的效率问 题。对比Hash表法,利用结点的父子关系构造的多路径树在 非表格数据结点的内存使用和查找效率方面都取得较好的效 20 40 60 80 翌l 000 800 畦 600 400 200 0 0 果,易于理解和实现。而在Hash表很难解决的表格数据遍历 MIB节点个数 方面,使用AVL树不仅能够实现遍历,还能大大提高查找效 率,使系统整体性能更好。 图4节点的内存消耗曲线 E 匦 30 至 参考文献 【1】Case J D,Fedor M,SchoffstMl M L,et al A Simple Network 萎25 糕20 Management Protocol(SNMP)[S]RFC l157,1991. 【2】McCloghrie K,Rose M Management Information Base for Network Management of TCP/IP-based Intemets:MIB-IIISl RFC 1213, l991 200 400 600 800 1 000 1 200 蠢15 量 0 0 0 露5 铷[3】Cable Television Laboratories Inc.Data-over-cable Service Interface Speciifcations—radio Frequency Interface Speciifcation[Z】SP—RFIv 1.1-106-001215,2002. 表格行数 图5查找时间与表格行数关系曲线 [4】王沁,戴鹏,张晓彤,等一种高效的计算带宽请求微时隙 由图4可以看出,随着结点个数的增加,两种方法消耗 的内存量都呈线性增长,这是因为对于特定的MIB对象来说 OID的长度是固定的,所以占用内存数与对象个数基本成正 比关系。在图4中,两条直线的斜率之比约为l2/18=2/3, 即当节点数大于一定数目后,多路径树法通常能节省大约 33 3%的空间。由图5可以看出,在没有表格数据,也就是仅 查找普通结点的情况下,本文方法与Hash表法消耗时问接 近,几乎都在约1 ms内完成。随着表格行数的递增,Hash 表法查找时间急剧增加,而AVL树的查找时间则增长缓慢且 的算法[J]计算机学报,2006,29(5):705—71 0 [5】Larmouth J.ASN 1 Complete[Z](1999-10—20).http://www.oss. tom, [6】Breitgand D,Raz D,Shavitt Y_SNMP GetPrev:An Eficifent Way to Browse Large MIB Tables[J].IEEE Journal on Selected Areas in Communications,2002,20(4):656-667 [7]Seung-hyun Park,Myong—soon Park An Eficifent Transmission for Large MIB Tables in Polling—based SNMP[J].Telecommunications, 2003,23(1):246-252 (上接第170页) 为(1,1,1),当再为某节点分配一个MAC地址时,按照前面所 描述的MAC分配规则,为新节点分配MAC地址时的状态值 应该是(1,1,1,1),所生成的MAC地址值为210(:2'3 5 7 )。但 Wireless Networks[M][S 1.]:Kluwer Academic Publishers,1996 [2】Droms R Dynamic Host Configuration Protocol[EB/OL](1997-03- 12).http:llwww ietf.org/rfc/rfc213 1.txt 是,如在遵循状态改变位的前提下,为新节点分配MAc地 址时的状态值可为(2,1,1),即状态位移到末尾时,可翻转增 加到第1位状态位上。当状态值为(2,1,1)时,所生成的MAC 地址值为60(=223 5),远小于状态值为(1,1,1,1)时的210。 [3]Thomson S,Narten T IPv6 Stateless Address Autoconfiguration Request orf Comments[S]RFC2462,1998-12 [4]Gunes M,Reibel J An IP Address Configuration Algorithm for Zerocon ̄Mobile Multi-hop Ad—Hoc Networks[C]//Proceedings of the Internationa1 Workshop on Broadband Wireless Ad Hoc 3结束语 为实现MAC地址的动态分配,其分配责任被转移到一 个已配置好MAC地址的节点,称作MAC地址分配代理节点, Networks nd aServices Sophia Antipolis,France:[s n,],2002-09 『51 Vaidya N H Weak Duplicate Address Detection in Mobile Ad Hoc Networs[kC]//Proceedings ofthe ACM Intemational Symposium on Mobile Ad Hoc Networking and Computing.Switzerland:ACM Press,2002—06 它可根据当前状态值及有状态函数/『 )为新到达的节点在整 个移动自组网内分配唯一的MAC地址,且具有较高的鲁棒 性。但当MAC地址的取值范围限制在1 B所表示的范围时, 本文的方法仅能用于规模较小的网络,且未能很好地解决 AC地址回收的问题,这将是今后的工作目标。M 参考文献 [1]Johnson D B,Maltz D A Dynamic Source Routing in Ad Hoc [6]Weniger K Passive Duplicate Address Detection in Mobile Ad Hoc Networks[C]//Proc of WCNC’03 Florence,Italy:ACM Press, 2003.O2. [7】Zhou H,Ni L M,Mutka M W.Prophet Address Allocation for Large Scale Manets[C]//Proc of IEEE INFOCOM’03.San Francisco,CA: IEEE Press.2003.O3. 174一
因篇幅问题不能全部显示,请点此查看更多更全内容