1.一种资源发布方法,应用于移动自组网络,其特征在于,该方法包括:
拥有资源的节点根据自身的地理坐标和所述移动自组网络的地理覆盖范围的多级区域的划分结果,确定出自身所属各级区域,将所述多级区域中最低一级区域定义为单位区域,所述单位区域的覆盖范围小于或等于移动自组网络节点的无线通信覆盖范围;
根据资源的对应键值和所属各级区域的区域边界,采用哈希算法计算出对应各级区域的哈希点;
所述拥有资源的节点将所述资源的索引信息发布至所述哈希点对应的单位区域内的索引节点。
2.如权利要求1所述的方法,其特征在于,与所述拥有资源的节点属于同一单位区域的索引节点存储所述拥有资源的节点的索引信息;
与所述拥有资源的节点不属于同一单位区域的索引节点存储其对应区域中的各个下级区域是否存在所述资源索引信息的指示信息。
3.如权利要求1所述的方法,其特征在于,当所述哈希点对应的单位区域为真空区域时,将与该哈希点距离最近的单位区域内的网络节点,作为所述资源的索引节点;所述真空区域指新加入节点所属单位区域没有其他节点的单位区域。
4.如权利要求1所述的方法,其特征在于,所述拥有资源的节点在退出所述移动自组网络时,向所述索引节点发布资源撤消;所述索引节点删除保存的对应资源的索引信息。
5.如权利要求4所述的方法,其特征在于,所述拥有资源的节点在退出所述移动自组网络时,若其所属单位区域没有其它网络节点,还包括:
所述拥有资源的节点将自身保存的资源索引信息转交给距离最近的单位区域内的网络节点保存。
6.如权利要求1所述的方法,其特征在于,当所述拥有资源的节点在所述移动自组网络中移动时,执行下列步骤:
所述拥有资源的节点向所述索引节点发布资源撤消;所述索引节点删除保存的对应资源的索引信息;
所述拥有资源的节点根据自身移动后所属的各级区域,重新确定出所拥有的资源对应的索引节点,并将资源的索引信息发布至重新确定出的索引节点保存。
7.如权利要求6所述的方法,其特征在于,当所述拥有资源的节点移出m级区域,但未移出(m-k)级区域时,其中m为网络划分的等级数,k为小于m的自然数;所述拥有资源的节点仅向m、(m-1)、...(m-k)各级区域所对应的索引节点发布资源撤消;
所述拥有资源的节点在重新确定出所拥有的资源对应的索引节点时,仅确定m、(m-1)、...(m-k)各级区域所对应的索引节点。
8.如权利要求1所述的方法,其特征在于,所述地理坐标包括但不限于通过GPS全球定位系统获取。
9.一种资源查找方法,应用于移动自组网络,其特征在于,所述移动自组网络中拥有资源的节点采用如权利要求1所述的方法进行资源发布,该资源查找方法包括:
请求查找资源的查找节点根据所查找资源的对应键值和自身所属各级区域的区域边界,采用哈希算法计算出对应各级区域的哈希点;将所述哈希点对应的单位区域内的网络节点,作为所述查找资源的索引节点;
从低一级索引节点逐级向高一级索引节点发送资源查找请求,直到找到包含有所述查找资源的索引信息的索引节点;
根据所述查找资源的索引信息,从所述查找资源对应的查找资源节点获取所述查找资源。
10.如权利要求9所述的方法,其特征在于,所述拥有资源的节点进行资源发布时,与所述拥有资源的节点属于同一单位区域的索引节点存储所述拥有资源的节点的详细索引信息;与所述拥有资源的节点不属于同一单位区域的索引节点存储其对应区域的各个下级区域是否存在所述资源索引信息的指示信息;
当找到的索引节点指示其下级区域中存在所述查找资源的指示信息时,再由该索引节点逐级向下一级区域中的索引节点发送所述资源查找请求,直到找到拥有所述查找资源的查找资源节点所属单位区域的索引节点。
11.如权利要求10所述的方法,其特征在于,所述资源查找请求中包含所述查找节点的IP地址、节点标识及地理坐标信息;
在找到所述查找资源节点所属单位区域的索引节点后,由所述单位区域的索引节点向查找资源节点发送资源传递请求,所述资源传递请求中携带查找节点的IP地址、节点标识及地理坐标信息;
所述查找资源节点向所述查找节点发送所述查找资源。
12.一种移动自组网络节点设备,所述移动自组网络的地理覆盖范围被划分为多级区域,将最低一级区域定义为单位区域,所述单位区域的覆盖范围小于或等于移动自组网络节点的无线通信覆盖范围;其特征在于,所述移动自组网络节点设备包括:地理信息单元、资源查找单元和资源交互/存储单元;
所述地理信息单元,用于获取和存储网络各级区域的地理坐标信息以及节点自身的实际地理坐标位置信息,确定自身所属各级区域;
所述资源查找单元,用于根据所述地理信息单元中确定出的本节点所属各级区域,采用哈希算法计算出查找资源的索引节点并发起资源查找请求;还用于转发接收的资源查找请求给上一级/下一级索引节点,当所述资源交互/存储单元中存储有查找资源时,指示所述资源交互/存储单元发送查找资源给查找节点;
资源交互/存储单元,用于发送资源给其它网络节点,或从其它网络节点中获取资源并存储。
13.如权利要求12所述的移动自组网络节点设备,其特征在于,还包括:资源发布/撤消单元和索引信息存储/更新单元;其中,
所述资源发布/撤消单元,用于根据所述资源交互/存储单元中存储的本地资源的对应键值和本节点所属各级区域的区域边界,采用哈希算法计算出对应各级区域的哈希点;
将所述哈希点对应的单位区域内的网络节点,作为所述资源的索引节点;将所述资源的索引信息发布至所述索引节点保存;还用于向所述索引节点发布资源撤消;
所述索引信息存储/更新单元,用于接收资源发布或资源撤消,存储/更新资源索引信息;还用于与同一单位区域的节点共享资源索引信息;
所述资源查找单元从其它网络节点接收到资源查找请求后,还查询所述索引信息存储/更新单元是否存储有查找资源的索引信息。
14.如权利要求12所述的移动自组网络节点设备,其特征在于,所述地理信息单元中包含由全球定位系统GPS获取到的位置。
15.如权利要求12所述的移动自组网络节点设备,其特征在于,所述地理信息单元中预置有所述移动自组网络的各级区域的地理坐标信息。
移动自组网资源发布与查找方法及移动自组网络节点设备\n技术领域\n[0001] 本发明涉及计算机与通信技术领域,尤其涉及一种移动自组网资源发布与查找的\n方法及移动自组网络的节点设备。\n背景技术\n[0002] 移动计算设备和移动通信设备(如笔记本电脑、PDA、移动电话)为信息社会带来\n了革命性的变化,使我们正从个人计算时代转向移动计算时代。随着移动自组网络(Mobile Ad-hoc Network,MANET)的普及,将对等网络(Peer-to-Peer,P2P)相关技术应用于MANET\n之上成了一个研究的热点,其应用前景也非常看好。\n[0003] P2P是目前宽带网络非常热门的网络应用技术,被认为是代表宽带互联网未来的\n关键技术。依照P2P网络节点信息存储与搜索方式的不同,诸多P2P协议可以分为2大类:\n结构化(Structured)的系统与非结构化(Unstructured)的系统。\n[0004] 在结构化P2P系统中,每个节点只存储特定的信息或特定信息的索引。当用户需\n要在P2P系统中获取信息时,他们必须知道这些信息(或索引)可能存在于哪些节点中。由\n于用户预先知道应该搜索哪些节点,避免了非结构化P2P系统中使用的泛洪式查找,因此\n提高了信息搜索的效率。\n[0005] 结构化P2P的核心技术是分布式哈希表(Distributed Hash Table,DHT)结构,其\n主要特点是通过将数据资源的特征(关键字)经过哈希运算,得到键值(Hash Key),数据资\n源的分布存储依据键值来进行。标准的DHT结构视整个网络标识(IDentity,ID)空间为平\n面空间,因此数据资源以均匀概率密度随机哈希到整个空间中的某一点。例如,在采用标准DHT结构的内容寻址网络(Content-Addressable Network,CAN),建立了一个虚拟的d维笛\n卡儿坐标空间,d是一个由网络系统规模决定的常量。该坐标空间完全是逻辑意义上的,与任何实际的物理坐标空间无关。在任一时间,每个节点自身的ID经由哈希算法后得到一个\nd维向量,整个P2P系统被映射到d维笛卡尔空间中,每个节点的位置由其自身ID决定。每\n个节点在这整个空间中都有一个属于自己的独立空间,数据资源被均匀随机地哈希到整个\n空间中的某一单点上。\n[0006] 如果采用上述的结构直接作为MANET上P2P协议的基础设计,MANET上P2P协议\n将难以实现资源查找的局部化。例如,设想一个节点a欲查找资源D,并假设资源D就位于\n节点a附近的节点上,而资源D被均匀随机哈希到整个ID空间中的某一点,该点就有可能\n和节点a相距甚远,使得节点a平均必须穿过整个ID空间的一半距离方能获得资源D,尽管\n节点a和资源D所属的节点的实际距离仅在咫尺。这在MANET上会带来极大的资源浪费,\n造成网络整体效率低下,有违系统高效性的原则要求。\n[0007] DHT的现有结构解决了数据的分布式存储问题,提高了网络系统的可扩展性,但不能很好地适合网络节点的移动性,无法达到高效性和移动适应性的要求,因此,直接将DHT结构引入MANET无法完成资源的快速定位和查找。\n[0008] 发明内容\n[0009] 本发明实施例提供一种移动自组网资源发布与查找的方法及其网络节点,用以解\n决现有技术中无法在MANET上实现快速资源发布与查找的问题。\n[0010] 一种资源发布方法,应用于移动自组网络,包括:\n[0011] 拥有资源的节点根据自身的地理坐标和所述移动自组网络的地理覆盖范围的多\n级区域的划分结果,确定出自身所属各级区域,将所述多级区域中最低一级区域定义为单\n位区域,所述单位区域的覆盖范围小于或等于移动自组网络节点的无线通信覆盖范围;\n[0012] 根据资源的对应键值和所属各级区域的区域边界,采用哈希算法计算出对应各级\n单位区域的哈希点;\n[0013] 所述拥有资源的节点将所述资源的索引信息发布至所述哈希点对应的单位区域\n内的索引节点。\n[0014] 一种资源查找方法,应用于移动自组网络,所述移动自组网络中拥有资源的节点\n采用如上所述的方法进行资源发布,该资源查找方法包括:\n[0015] 请求查找资源的查找节点根据所查找资源的对应键值和自身所属各级区域的区\n域边界,采用哈希算法计算出对应各级区域的哈希点;将所述哈希点对应的单位区域内的\n网络节点,作为所述查找资源的索引节点;\n[0016] 从低一级索引节点逐级向高一级索引节点发送资源查找请求,直到找到包含有所\n述查找资源的索引信息的索引节点;\n[0017] 根据所述查找资源的索引信息,从所述查找资源对应的查找资源节点获取所述查\n找资源。\n[0018] 一种移动自组网络节点设备,所述移动自组网络的地理覆盖范围被划分为多级区\n域,将最低一级区域定义为单位区域,所述单位区域的覆盖范围小于或等于移动自组网络\n节点的无线通信覆盖范围;所述移动自组网络节点设备包括:地理信息单元、资源查找单\n元和资源交互/存储单元;\n[0019] 所述地理信息单元,用于获取和存储网络各级区域的地理坐标信息以及节点自身\n的实际地理坐标位置信息,确定自身所属各级区域;\n[0020] 所述资源查找单元,用于根据所述地理信息单元中确定出的本节点所属各级区\n域,采用哈希算法计算出查找资源的索引节点并发起资源查找请求;还用于转发接收的资\n源查找请求给上一级/下一级索引节点,当所述资源交互/存储单元中存储有查找资源时,\n指示所述资源交互/存储单元发送查找资源给查找节点;\n[0021] 资源交互/存储单元,用于发送资源给其它网络节点,或从其它网络节点中获取\n资源并存储。\n[0022] 本发明实施例首先提出了一个基于地理位置信息的分级分布式索引结构\n(Hierarchical Geographic-information-based Index,HGI)。HGI结构中,以实际地理坐标为依据,将移动自组网络覆盖区域逐级划分为多个子区域,直到划分得到的最低一级子\n区域为单位区域;拥有资源数据的源节点以自身所在的地理坐标为依据,分别对应于各个\n单位区域;各级区域对应的索引节点依据本区域的地理坐标维护所述源节点的索引信息。\n然后提出了P2P节点基于HGI结构的节点加入网络、节点离开网络、节点移动以及资源查找\n等一系列资源定位和获取的方法,本发明实施例提供的方法,有效结合了MANET与P2P技术\n的特点,能够为MANET环境下构建P2P应用提供高效的基础结构,使原有的P2P协议能通过\n该结构运行于MANET环境,解决了现有技术中无法在MANET上实现快速资源发布与查找的\n问题。\n附图说明\n[0023] 图1为本发明实施例提出的一个4级HGI结构网络划分示意图;\n[0024] 图2为本发明实施例提供的P2P节点资源发布(加入网络)过程流程图;\n[0025] 图3为本发明实施例提供的P2P节点资源撤销(离开或退出网络)过程流程图;\n[0026] 图4为本发明实施例提供的P2P节点在网络中移动过程流程图;\n[0027] 图5为本发明实施例提供的P2P节点在网络中资源查找与定位过程流程图;\n[0028] 图6为本发明实施例提出的一个4级HGI结构网络资源查找过程示意图;\n[0029] 图7为本发明实施例提供的移动自组网节点功能结构示意图;\n[0030] 图8为本发明提供的一个较佳实施例的自组网节点功能结构示意图;\n[0031] 图9A为网络的平均查找路径长度对CAR方法的影响及与CAN方法的比较示意图;\n[0032] 图9B为网络的平均查找路径伸展对CAR方法的影响及与CAN方法的比较示意图;\n[0033] 图9C为网络的节点平均消息数对CAR方法的影响及与CAN、Flood方法的比较示\n意图;\n[0034] 图10为网络的节点移动速度对CAR方法的节点平均消息数的影响及与CAN、Flood\n方法的比较示意图。\n具体实施方式\n[0035] 本发明实施例基于一个基于地理位置信息的分级分布式索引结构(Hierarchical \nGeographic-information-based Index,HGI)。通过确定移动自组网络的地理覆盖范围,将移动自组网络的地理覆盖范围逐级划分子区域,直到划分后的最低一级子区域的覆盖范围\n小于或等于移动自组网络节点的无线通信覆盖范围;将最低一级子区域定义为单位区域;\n移动自组网络中拥有资源的源节点根据自身的地理坐标和各级区域划分结果,确定出自身\n所属各级子区域;根据资源的对应键值和所属各级子区域的区域边界,采用哈希算法计算\n出对应各级区域的哈希点;将哈希点对应的单位区域内的移动自组网络节点,作为所述资\n源的索引节点,存储所述资源的索引信息。\n[0036] 本发明实施例所提供的HGI结构采用分布式哈希索引,所采用的ID空间是与用经\n纬度表示的地理坐标系有着严格的对应关系的坐标空间,并且,该坐标空间不是平面的,而是分等级的。在任一时间,整个坐标空间都是静态的,并依据地理坐标进行分等级的区域划分。在HGI结构中,每个目标资源的相关信息会被映射到负责不同级区域的索引节点上。在单位区域内,可能会有多个节点存有同一目标数据的索引信息,当某一资源被哈希到坐标\n空间的某个坐标时,该坐标所处的单位区域内的所有节点或者距其最近的一个节点将保存\n该数据资源的索引信息。\n[0037] 本发明实施例所指的地理坐标信息,可以通过全球定位系统(GlobalPosition \nSystem,GPS)获取,也可以通过其它任何能够实时获取地理坐标位置信息的系统或装置获取。\n[0038] 本发明实施例所指的移动自组网络的地理覆盖范围逐级划分子区域的方法为:\n[0039] 将移动自组网络的地理覆盖范围作为第一级区域;将第一级区域划分为任意多个\n子区域,得到第二级区域的对应子区域;将每一个第二级区域对应的子区域再划分为任意\n多个子区域,得到第三级区域的对应子区域;重复进行子区域划分,直到最低一级区域的对应子区域为单位区域。单位区域内,所有的网络节点都可以互相直接通信。\n[0040] 特别的,这里的索引节点分为与源节点在同一单位区域内的索引节点和与源节点\n不属于同一个单位区域的索引节点。为了避免与源节点不属于同一单位区域的索引节点维\n护太多的索引信息,只有与源节点属于同一单位区域的索引节点维护存储源节点的IP地\n址、节点标识及所述源节点的地理坐标信息。\n[0041] 与源节点不属于同一单位区域的索引节点,也就是更高一级的索引节点只维护存\n储本级区域所属各个子区域是否存在源节点的指示信息。具体来说,就是更高一级的索引\n节点维护存储本级区域所属各个子区域的子区域标识和表明对应子区域是否存在源节点\n索引信息的一个布尔变量值。这个布尔变量值可以取1或0,以表明对应子区域是否存在源\n节点的索引信息。\n[0042] 为了便于理解本发明实施例的索引结构,本实施例中,以将网络覆盖范围划分为4个面积相同的正方形区域为例,每个正方形区域又进一步划分为4个面积相同的正方形的\n子区域。每一级区域均为正方形,并且每一级区域划分为4个面积相同的子区域。HGI采用\n的哈希函数H,以及数据资源的键值(Key)和某一正方形区域标识(Zxx...x)为输入参数,输出的结果H(Key,Zxx...x)是一个落在参数区域(Zxx...x)范围内的一个地理坐标值,即为哈希点(Hash Point)。实际应用中,每级区域可以划分为任意个子区域,并且,每级区域划分的子区域数目可以不同,每个子区域的面积也可以不同。\n[0043] 下面我们以图1所示的一个m级HGI网络为例,详细描述本发明实施例所提供的\nHGI结构的主要原理。\n[0044] 图1中,HGI的区域划分是这样的,整个正方形区域被等分为4个相同大小的正方\n形区域,每个划分后的区域又进而被划分成4个更小的子区域,这个过程一直继续,直到所划分的区域其边长小于 为止,r是节点无线覆盖范围的半径。这些最小区域被定义为\n单位区域。在同一个单位区域范围内的任意两个节点彼此都在对方的通信覆盖范围之内,\n所以在同一个单位区域范围内的任意两个节点间可以相互直接通信。\n[0045] 这里,HGI结构对区域等级划分是从整个区域开始,直至单位区域,依次将其定义为1级、2级、3级直至m级区域,m则表征着整个区域被划分的等级数量,即共有m个等级,\n2(i-1)\n图1中m=4。整个区域中属于同个等级的区域的个数为2 ,其中,i表示网络等级。例\n2(1-1) 2(2-1)\n如,网络中1级区域的个数为2 =1,2级区域的个数为2 =4,m级区域的个数则为\n2(m-1) 2(j-i)\n2 。除了单位区域外,每个i级区域都包含有2 个j级区域,其中,j为网络等级,并\n且j≥i。\n[0046] 对于i级区域的各个区域标识编号用Zxx...x的(i-1)位下标来区分,(xx...x)从\n左边开始的第i位则表示该区域位于其所属的i级区域所包含的第x象限的(i+1)级区域\n内。比如,编号第一位表示该区域位于1级区域所包含的第x象限的2级区域内,编号第二\n位则表示该区域位于其所属的2级区域所包含的第x象限的3级区域内。象限划分从左上\n象限开始顺时针依次为第一、二、三、四象限。例如,在图1中,Z表示整个网络区域的区域标识,就是1级区域,Z1、Z2、Z3、Z4分别表示2级区域的区域标识,并且,Z1表示位于区域Z的第一象限,Z2表示位于区域Z的第二象限,Z3表示位于区域Z的第三象限,Z4表示位于区域\nZ的第四象限。同理,Z11、Z12、Z13、Z14等表示3级区域的区域标识,并且,Z11表示位于Z1区域的第一象限,Z12表示位于Z1区域的第二象限,Z13表示位于Z1区域的第三象限,Z14表示位于Z1区域的第四象限。Z111、Z112、Z113、Z114等区域编号表示4级区域,并且,Z111表示位于区域Z11的第一象限,Z112表示位于区域Z11的第二象限,Z113表示位于区域Z11的第三象限,Z114表示位于区域Z11的第四象限。\n[0047] 特别的,这里以象限划分为例,说明实际各个子区域的区域标识方法,实际应用中可以是任何其它的区域标识方法。\n[0048] 图1中,节点a、b、c、d、e、f、g为网络中的节点。为了描述方便,定义节点a拥有资源A,即节点a是资源A的源节点,同样,其它b、c、d、e、f、g节点亦是如此,分别是资源B、C、D、E、F、G的源节点。节点IX,m代表该节点是资源X在m级区域的索引节点,例如,图1中所示的节点IA,1、IA,2、IA,3、IA,4以及IF,1、IF,2、IF,3、IF,4。\n[0049] 如表1所示,为HGI中每个节点所维护的信息,节点标识(nodeID)表示该节点的\n标识信息,节点位置(Lat Long)表示该节点的实际所处的物理位置信息,单位区域标识\n(zoneID)表示该节点所属的单位区域的标识。\n[0050] 表1\n[0051] \n 节点标识 节点位置 单位区域标识\n \n[0052] 实际应用中,如果每个等级区域的索引节点IX,m都要维护资源X的每个拥有者节\n点的精确信息,即包括资源X源节点的IP地址、节点nodeID及GPS位置信息等,则会造成:\n较高一级(指维护区域较广的一级)的索引节点需要维护众多的索引信息;每当一个节\n点欲发布或撤销一个资源时,不得不通知其所在区域更高一级的索引节点以做出相应的更\n新。\n[0053] 为了克服上述缺陷,HGI只在单位区域一级的索引节点才维护该资源所有者的精\n确索引信息,例如图1中的IA,4和IF,4节点。\n[0054] 如表2所示,为HGI中单位区域内的索引节点所维护的资源索引信息。其中,资源\nID为目标资源的特征信息,也就是哈希算法中需要应用到的Key值;哈希点表示根据哈希\n算法得到的目标资源在本坐标空间中的位置;资源所有者列表是所有本单位区域中目标资\n源的源节点的信息列表。\n[0055] 表2\n[0056] \n 资源索引(单位区域级)\n[0057] [0056]\n 资源ID\n 哈希点\n 资源所有者列表\n[0058] 单位区域级以外的较高一级的节点(即等级n<m的索引节点)只维护较粗略的\n信息,例如图1中的IA,1、IA,2、IA,3以及IF,1、IF,2、IF,3节点。此时,HGI为这些非单位区域一级的索引节点只设置一个布尔变量,表示该节点所属的区域象限是否存在资源X。如表3所\n示。其中,各个资源索引节点除了要维护资源ID、哈希点信息外,不需要维护具体的目标资源的位置索引信息,只需要通过区域标识来确定在本区域所述的各个子区域内是否存在目\n标资源的索引信息。本实施例中,各级非单位区域索引节点维护在本区域的每个象限是否\n存在目标资源的索引信息即可。\n[0059] 表3\n[0060] \n 资源索引(非单位区域级)\n 资源ID\n 哈希点\n 第一象限资源指示\n 第二象限资源指示\n 第三象限资源指示\n 第四象限资源指示\n[0061] 基于上述的HGI结构的移动自组网络,本发明实施例提出了P2P节点资源发布\n(加入网络)、资源撤销(离开网络)、资源移动(节点移动)、资源定位以及资源获取等一\n系列的方法,下面结合各个附图对本发明实施例的技术方案的主要实现原理、具体实施方\n式及其对应能够达到的有益效果进行详细的阐述。\n[0062] 如图2所示,为本发明实施例提供的P2P节点资源发布(加入网络)过程流程图,\n其中,\n[0063] 步骤101,当一个P2P节点加入移动自组网络时,首先需要获取网络的基于地理坐\n标的各级区域的区域标识和边界坐标,这里所述的网络各级区域的边界坐标也可以预置在\n节点终端内。\n[0064] 新加入节点根据区域的划分及自身的地理坐标位置获得自己的所属单位区域的\n区域标识(zoneID),加入网络时无需专门的引导节点(bootstrap node),而是与其单位区\n域内的任一节点进行信息交互,交互方法为:\n[0065] 1、新加入节点广播HELLO消息,该消息包含节点自身的nodeID,由于单位区域的\n面积小于等于节点无线信号的半功率覆盖面积,所以任何位于该单位区域内的其它节点可\n以接收到该HELLO消息;\n[0066] 2、单位区域内的任意节点在收到新加入节点发送的HELLO消息后,等待一个随机\n的时间间隔后进行应答。网络内的其它节点在接收到有节点应答后不再对该HELLO消息进\n行回复。其中,应答消息主要包含HGI结构该单位区域的索引信息。新加入节点在接收到\n应答消息后,根据应答消息所包含的索引信息设置自身的索引信息,使新加入节点成为该\n单位区域相应的索引节点(IndexNode)。\n[0067] 特别的,当新加入节点所属单位区域没有其它节点时,该单位区域称为真空区域\n(Vacuum Zone),新加入节点发送的HELLO信息由附近单位区域内最近的节点应答,并在应\n答消息中包含新加入节点所述单位区域的索引信息。\n[0068] 步骤102、新加入节点为所需要发布的每一个数据资源首先利用哈希函数H计\n算出每个资源的键值(Hash Key),根据新加入节点所属的各级区域的区域标识和地理边\n界(Zxx...x)及每个资源的键值,哈希运算出每个资源对应各级区域的一系列哈希点(Hash Point)的坐标值H(Key,Zxx...x)。\n[0069] 步骤103、新加入节点将每个数据资源对应的索引信息用资源发布请求函数\npublish()发布到其所对应各级区域的哈希点所落在的单位区域内,该区域内所有节点在\n接收到该索引信息后,更新自身所维护的索引信息,则该区域成为该资源的索引区域,而区域内的所有节点就成为该资源的索引节点,存储该资源的索引信息。\n[0070] 特别的,如果新加入节点在发布资源索引信息时,某级区域为真空区域,则距离该哈希点最近的单位区域作为该资源索引区域。其中,距离是通过附近的单位区域最靠近该\n哈希点的一边,与该哈希点之间的最短垂直距离来确定的。\n[0071] 如图3所示,为本发明实施例提供的P2P节点离开或退出网络过程流程图,其中,\n[0072] 步骤201、退出节点为自身所发布的每一个数据资源首先利用哈希函数H计算\n出每个资源的键值(Hash Key),根据退出节点所属的各级区域的区域标识和地理边界\n(Zxx...x)及每个资源的键值,哈希运算出每个资源对应各级区域的一系列哈希点(Hash \nPoint)的坐标值H(Key,Zxx...x)。\n[0073] 步骤202、退出节点将每个数据资源对应的索引信息用资源撤销请求函数\nwithdraw()发布到其所对应各级区域的哈希点所落在的单位区域内,以告知该资源的所有\n索引节点该资源已退出系统。该区域内所有节点在接收到该索引信息后,更新自身所维护\n的索引信息,则该区域不再是该资源的索引区域,而区域内的所有节点都不再是该资源的\n索引节点,不再存储该资源的索引信息。\n[0074] 特别的,如果退出节点退出时会导致所属的单位区域变成真空区域,则该退出节\n点应将其保存的索引信息发送给距离最近的单位区域,由距离最近的单位区域内的所有节\n点来接管本单位区域的相关索引信息。其中,距离是通过附近的单位区域最靠近该退出节\n点的一边,与该哈希点之间的最短垂直距离来确定的。\n[0075] 如图4所示,为本发明实施例提供的P2P节点在网络中移动过程流程图,其中,\n[0076] 步骤301、移动节点不断获取自身的地理坐标位置信息。\n[0077] 步骤302、移动节点根据自身的地理坐标位置信息和所属单位区域的边界信息来\n检查自身是否仍然在原属单位区域,判断自身是否已经离开原属单位区域。如果是,执行步骤303,否则执行步骤301;\n[0078] 步骤303、移动节点离开原属单位区域并进行相关资源索引撤销。移动节点为自身所发布的每一个数据资源首先利用哈希函数H计算出每个资源的键值(Hash Key),根据移\n动节点所属的各级区域的区域标识和地理边界(Zxx...x)及每个资源的键值,哈希运算出每个资源对应各级区域的一系列哈希点(HashPoint)的坐标值H(Key,Zxx...x)。\n[0079] 移动节点将每个数据资源对应的索引信息用资源撤销请求函数withdraw()发布\n到其所对应各级区域的哈希点所落在的单位区域内,以告知该资源的所有索引节点该资源\n已退出系统。该区域内所有节点在接收到该索引信息后,更新自身所维护的索引信息,则该区域不再是该资源的索引区域,而区域内的所有节点都不再是该资源的索引节点,不再存\n储该资源的索引信息。\n[0080] 特别的,根据移动节点离开的区域等级不同,该资源撤销请求函数withdraw()无\n需发送到系统中的各级索引节点。如果移动节点移出m级区域但尚未移出(m-i)级区域(i\n<m),则需通知原m、(m-1)、(m-2)......(m-i)级索引节点,(i+1)为移动节点索引信息的通知深度。例如,当移动节点仅移出m级区域,但尚未移出(m-1)级区域,则只需通知原m\n级区域所属的索引节点和(m-1)级区域所属的索引节点。\n[0081] 步骤304、移动节点加入新的单位区域并进行相关资源发布。移动节点在新的单\n位区域内广播HELLO消息,该消息包含节点自身的nodeID,由于单位区域的面积小于等于\n节点无线信号的半功率覆盖面积,所以任何位于该单位区域内的其它节点可以接收到该\nHELLO消息。\n[0082] 新的单位区域内的任意节点在收到移动节点发送的HELLO消息后,等待一个随机\n的时间间隔后进行应答。网络内的其它节点在接收到有节点应答后不再对该HELLO消息进\n行回复。其中,应答消息主要包含新单位区域的索引信息。移动节点在接收到应答消息后,根据应答消息所包含的索引信息设置自身的索引信息,使移动节点成为新单位区域相应的\n索引节点(IndexNode)。\n[0083] 特别的,当移动节点新加入的单位区域为真空区域时,移动节点发送的HELLO信\n息由附近单位区域内最近的节点应答,并在应答消息中包含移动节点所述单位区域的索引\n信息。\n[0084] 移动节点为需要发布的每一个数据资源首先利用哈希函数H计算出每个资源的\n键值(Hash Key),根据移动节点所属的各级区域的区域标识和地理边界(Zxx x)及每个资\n源的键值,哈希运算出每个资源对应各级区域的一系列哈希点(Hash Point)的坐标值\nH(Key,Zxx x)。移动节点将每个数据资源对应的索引信息用资源发布请求函数publish()发布到其所对应各级区域的哈希点所落在的单位区域内,该区域内所有节点在接收到该索引\n信息后,更新自身所维护的索引信息,则该区域成为该资源的索引区域,而区域内的所有节点就成为该资源的索引节点,存储该资源的索引信息。\n[0085] 特别的,根据移动节点索引信息的通知深度不同,该资源发布请求函数publish()无需发送到系统中的各级索引节点。如果移动节点移出m级区域但尚未移出(m-k)级区\n域,其中,m为网络划分的等级数,i为小于m的自然数,k=1、2...(m-1),则需通知原m、(m-1)、(m-2)...(m-k)各级区域所对应的索引节点。例如,当移动节点仅移出m级区域,但尚未移出(m-1)级区域,则只需通知原m级区域所属的索引节点和(m-1)级区域所属的索\n引节点。\n[0086] 如图5所示,为本发明实施例提供的P2P节点在网络中资源查找与定位过程流程\n图,其中,\n[0087] 步骤401、当一个位于Zm区域的节点s欲查找资源ε,首先向其所属单位区域的\n索引节点Iε,m发出资源查找请求(search request),其中,m为网络划分的等级数,Iε,m即表示资源ε在m级区域的索引节点。\n[0088] 步骤402、判断节点s所属的单位区域是否包含有资源ε的索引信息。如果Iε,m\n包含有资源ε的索引信息,则执行步骤411,否则执行步骤403。\n[0089] 步骤403、如果节点Iε,m本身不含有资源的索引信息,则它将递归查询其上一级索引节点,即Iε,(m-k),向Iε,(m-k)发出资源查找请求。这里,由于k=0时,Iε,(m-k)所属区域即为Iε,m,因此,k=1、2...(m-1),k的初值为1。\n[0090] 步骤404、判断当前节点是否包含有资源ε的索引信息,如果当前节点包含有资\n源ε的索引信息,执行步骤405,否则,执行步骤408。\n[0091] 步骤405、根据当前节点HGI结构中的索引指示信息向拥有资源ε索引信息的子\n区域(布尔值为1)索引节点发出查询,如果当前索引节点为Iε,(m-k),则向其子区域Iε,(m-k+1)发出资源查找请求。\n[0092] 步骤406、判断Iε,(m-k+1)中的变量k的值是否等于1,也就是判断当前发出资源查找的区域是否为单位区域。如果当前发出查询的区域是单位区域,k=1,执行步骤411,否则,执行步骤407。\n[0093] 步骤407、将当前的k的值减1,并返回执行步骤405。此时,步骤405中根据变更\n的k的值向Iε,(m-k-1)发出资源查找请求。\n[0094] 步骤408、当向Iε,(m-k)节点发出资源查找请求,Iε,(m-k)仍然没有资源ε的索引信息,则判断当前的(m-k)是否等于1。如果当前的(m-k)的值等于1,则表示Iε,(m-k)所属的节点已经是网络的顶级索引节点,此时在Iε,(m-k)上仍然没有包含资源ε的索引信息,表明在本网络系统尚无资源ε可用,执行步骤410。如果当前的(m-k)的值不等于1,表明Iε,\n(m-k)所属的节点不是网络的顶级索引节点,还可以继续向上级节点查询,执行步骤409。\n[0095] 步骤409、对当前的k的值加1,并返回执行步骤403。此时,步骤403中,根据变更的k的值向Iε,(m-k)发出资源查找请求。\n[0096] 步骤410、此时,(m-k)=1,由该顶级节点Iε,1发回一个消息给查找节点s以告知当前网络系统中没有所要查找的资源ε。\n[0097] 步骤411、Iε,m将给资源ε的源节点O发出资源传递请求(transfer request),\n即向节点O请求将资源ε传递给s。\n[0098] 特别的,本发明实施例中,Iε,m向资源ε的源节点O发送的传递请求信息中包含查找节点s的节点索引信息(nodeID)、地理坐标位置和IP地址信息。这些信息在资源查找\n的过程中,已经由节点s的单位区域索引节点逐级传送到了Iε,m,并由Iε,m传送给资源ε的源节点O。资源ε的源节点O根据这些信息,自动将资源ε传送给查找节点s。\n[0099] 而在现有技术中,各级索引节点只是将资源源节点的索引信息返回给资源请求节\n点,然后再由资源请求节点根据资源源节点的索引信息向资源源节点索取资源。因而,本发明实施例所提供的方案,可以比现有技术中的资源查找方法节省一条路由,节约了资源查\n找的时间,减少了网络资源的开销,从而提高了资源查找效率应用的实时性。\n[0100] 在资源所有者节点获得资源请求者节点的索引信息后,可以根据MANET相关路由\n寻址协议将资源发送给资源请求者节点,这是现有技术领域中的公知技术,此处不再赘述。\n[0101] 下面,以一个如图6所示的4级的HGI结构网络为例,HGI网络架构在前面的描述\n已经很清楚,此处不再赘述,下面侧重于说明本发明实施例所提供的P2P节点入网、离网、移动和资源定位的过程。\n[0102] 如图6所示,是一个4级的HGI网络架构。其中,Z2、Z3、Z4、Z12、Z13、Z14、Z112、Z113、Z114均为网络的各级区域的区域标识。假设在网络的Z111单位区域存在节点a拥有资源A,\n即节点a是资源A的源节点,节点f拥有资源F,是资源F的源节点。\n[0103] 在节点a加入网络的过程中,首先需要获取网络的基于地理坐标的各级区域的区\n域标识和边界坐标,根据区域的划分及自身的地理坐标位置获得自己的所属单位区域的区\n域标识,图6中节点a在单位区域Z111内。\n[0104] 节点a在单位区域Z111内广播HELLO消息,单位区域Z111内任意节点在收到该消息\n后,等待一个随机的时间间隔后进行应答。网络内的其它节点在接收到有节点应答后不再\n对该HELLO消息进行回复。其中,应答消息主要包含单位区域Z111的索引信息。节点a在\n接收到应答消息后,根据应答消息所包含的索引信息设置自身的索引信息,成为该单位区\n域相应的索引节点。\n[0105] 节点a为所需要发布的资源A利用哈希函数H计算出键值,根据所属的各级区域\n的区域标识和地理边界Z111、Z11、Z1、Z及资源A的键值,哈希运算出资源A对应Z111、Z11、Z1、Z的一系列哈希点的坐标值,用资源发布请求函数publish()将资源A的索引信息发布到对\n应各级区域的哈希点所落在的单位区域内,该区域内所有节点在接收到该索引信息后,更\n新自身所维护的索引信息,则该区域成为该资源的索引区域,而区域内的所有节点就成为\n该资源的索引节点,存储该资源的索引信息。也就是找到资源A对应Z111、Z11、Z1、Z的一系列索引节点IA,4、IA,3、IA,2、IA,1,完成节点a加入网络和资源A的发布过程。\n[0106] 在节点a离开网络的过程中,节点a为资源A利用哈希函数H计算出键值,根据所\n属的各级区域的区域标识和地理边界Z111、Z11、Z1、Z及资源A的键值,哈希运算出资源A对应Z111、Z11、Z1、Z的一系列哈希点的坐标值,用资源撤销请求withdraw()将资源A的索引信息发布到对应各级区域的哈希点所落在的单位区域内,以告知该资源的所有索引节点该资\n源已退出系统。也就是将资源A离开网络的信息发送给资源A对应Z111、Z11、Z1、Z的一系列索引节点IA,4、IA,3、IA,2、IA,1,节点IA,4、IA,3、IA,2、IA,1更新各自所维护的索引信息,完成资源A的撤销和节点a离开网络的过程。\n[0107] 在节点a移动的过程中,假定节点a从Z111区域移动至Z112区域。节点a首先要不\n断根据自身的地理坐标信息和所属单位区域Z111的边界地理坐标信息确定是否已经离开单\n位区域Z111。如果确认节点a已经离开Z111并进入Z112,则节点a需要对原索引节点进行资\n源撤销。由于节点a只是移动出了Z111尚没有移动出Z11区域,所以,这个资源撤销过程的\n资源撤销请求函数withdraw()只发送至Z111区域和Z11区域,各索引节点中也只更新IA,4、IA,3。\n[0108] 同理,节点a在单位区域Z112内需要执行资源发布过程,只是这里根据资源发布的通知深度只在单位区域Z112和区域Z11内发布,也就是只更新索引节点IA,4、IA,3,这时索引节点IA,4所属的单位区域由Z111变更为Z112。\n[0109] 在节点对资源的查找过程中,如图6所示,假定节点a要查找资源F,资源F的源节\n点f位于单位区域Z231内。\n[0110] 节点a首先根据所属单位区域Z111的边界地理坐标和资源F的键值,通过哈希运\n算,计算出资源F在单位区域Z111内的索引节点IF,4′,然后向节点IF,4′发送资源查找请求。该索引节点IF,4′未能找到资源F的记录,于是IF,4′根据所属区域Z11的边界地理坐标和资源F的键值,通过哈希运算,计算出资源F在高一级区域Z11内的索引节点IF,3′。由于节点IF,3′也无资源F的相关记录,继而由节点IF,3′以所属区域Z1的边界地理坐标和资源F的键值,通过哈希运算,计算出资源F在高一级区域Z1内的索引节点IF,2′。节点IF,\n2′中也没有资源F的相关索引信息,则由节点IF,2′继续向上查找到资源F在顶级区域Z的索引节点IF,1。节点IF,1保存有资源F的相关记录,并得知资源F的索引信息在节点IF,1所属区域Z的第二象限子区域,即Z2区域。于是节点IF,1根据资源F的键值和区域Z2的边界\n坐标信息,计算出资源F在区域Z2的索引节点IF,2,并将查询请求转发到节点IF,2。节点IF,\n2通过同样的办法将节点a的资源查找请求一直转送到最底层区域即单位区域Z231的F资\n源索引点IF,4。在节点IF,4上详细记录了资源F的详细索引信息,包含了资源F的源节点f的nodeID、IP地址及GPS位置等信息。资源的所有者节点f和IF,4在同一个单位区域,因\n此,节点IF,4可立即给节点f发送资源传递请求,即告知节点f关于资源请求节点a的相关\n信息,并请求节点f将资源F传递给节点a。节点f收到该请求消息后,立即将资源F传送\n给资源请求节点a,至此整个资源定位获取过程结束。\n[0111] 图6中虚线表示具体的资源查找定位的路由,带箭头的实线表示具体的资源传输\n路径。图6中的节点g、h、i、j、k均为节点f与节点a之间传递数据资源的实际路由经过\n节点。\n[0112] 特别的,节点IF,4向资源F的源节点f发送的传递请求信息中包含节点a的节点索\n引信息、地理坐标位置和IP地址信息。这些信息在资源查找的过程中,已经由节点a逐级\n传送到了IF,4,并由IF,4传送给资源F的源节点f。资源F的源节点f根据这些信息,自动将资源F传送给查找节点a。因此,本方法具有资源自动获取功能,可以比现有技术节省一条\n路由,节约了资源定位的时间,减少了网络资源的开销,从而提高了应用的效率及实时性。\n[0113] 本发明实施例还提供了一种移动自组网络节点设备,如图7所示,该节点设备主\n要包括地理信息单元、资源查找单元和资源交互/存储单元;其中:\n[0114] 地理信息单元10,用于获取和存储网络各级区域的地理坐标信息以及节点自身的\n实际地理坐标位置信息,确定自身所属各级区域,并向资源查找单元20输出自身所属区域\n信息。\n[0115] 特别的,这里所述的地理坐标信息,可以通过全球定位系统GPS获取,也可以通过其它任何能够实时获取地理坐标位置信息的系统或装置获取。网络各级区域的地理坐标信\n息可以预置在节点中,也可以在节点入网前通过与网络中任意节点的信息交互获取。\n[0116] 资源查找单元20,用于根据自身所属区域信息,采用哈希算法计算出查找资源的\n索引节点并发起资源查找请求;还用于转发接收的资源查找请求给上一级/下一级索引节\n点,当资源交互/存储单元30中存储有查找资源时,向资源交互/存储单元30发送资源交\n互信息。\n[0117] 资源交互/存储单元30,用于根据资源交互信息发送资源给其它网络节点,或从\n其它网络节点中获取资源并存储。\n[0118] 特别的,如图8所示,在本发明的一个较佳实施例中,移动自组网节点设备还包\n括:资源发布/撤消单元40和索引信息存储/更新单元50;其中:\n[0119] 资源发布/撤消单元40,用于根据资源交互/存储单元30中存储的本地资源的对\n应键值和本节点所属各级区域的区域边界,采用哈希算法计算出对应各级区域的哈希点;\n将哈希点对应的单位区域内的网络节点,作为资源的索引节点;将所述资源的索引信息发\n布至所述索引节点保存;还用于向索引节点发布资源撤消。\n[0120] 索引信息存储/更新单元50,用于接收资源发布或资源撤消,存储/更新资源索引\n信息;还用于与同一单位区域的节点共享资源索引信息。\n[0121] 所述资源查找单元20从其它网络节点接收到资源查找请求后,还查询索引信息\n存储/更新单元50是否存储有该查找资源的索引信息。\n[0122] 下面通过对现有技术中的CAN算法进行一定修改后使其成为运行于HGI结构的\n一个实例,并对此进行模拟分析以进一步介绍本发明实施例的实施方式和实际应用中的优\n势。\n[0123] 仿真的平台使用Network Simulator 2(NS2)。首先在MANET上模拟实现常用的非\n结构化P2P中使用的泛洪Flood方法和DHT结构化的P2P中常用的CAN方法,然后再对本\n发明实施例提出的CAR方法进行模拟,并将模拟结果进行比较,从而验证本发明实施例提\n供的方案的切实可行性和相对较好的性能。\n[0124] 如图9A所示,为网络的平均查找路径长度对CAR方法的影响及与CAN方法的比较\n示意图。其中,当我们把网络中的节点数从64到4096增加时,随着节点数的增加,平均查\n找路径长度缓慢增长,但是CAR方法的性能较CAN方法有一定提高。\n[0125] 如图9B所示,为网络的平均查找路径伸展对CAR方法的影响及与CAN方法的比较\n示意图。其中,当我们把网络中的节点数从64到4096增加时,随着节点数的增加,平均查\n找路径伸展缓慢增长,但是CAR方法的性能较CAN方法有一定提高。\n[0126] 如图9C所示,为网络的节点平均消息数对CAR方法的影响及与CAN、Flood方法的\n比较示意图。其中,当我们把网络中的节点数从64到4096增加时,随着节点数的增加,每\n节点每秒的平均消息数有一定增长,显然的,CAN方法与CAR方法的性能远较Flood方法为\n高,而CAR方法比起CAN方法来又有一定提高。应该说CAR方法和CAN方法对节点数的增\n加都不是很敏感,因为它们都采用了分布式结构,扩展性较好。而CAR方法要比CAN方法较\n好一些,它是基于地理位置信息的,而且,CAR方法设计了资源自动获取机制,从而也节省了一条路由,由此可以验证CAR方法的可扩展性及较其它方法的相对高效性。\n[0127] 如图10所示,为网络的节点移动速度对CAR方法的节点平均消息数的影响及与\nCAN、Flood方法的比较示意图。其中,\n[0128] 在进行消息数比较时,对参与比较的Flood、CAN和CAR方法规定,该平均消息数是在包括查找相关的消息,索引发布、更新相关的消息,接受、请求资源相关的消息,及其它控制用消息的所有消息的平均。图10中,节点每秒消息数与节点移动速度基本呈线性关系,\nFlood方法的节点平均消息数受速度影响较小,CAR方法次之,CAN方法受影响最大。但是\n即使节点移动速度达到最大预设速度20m/s,CAR方法节点的每秒平均消息数仍然远低于\nFlood方法,也低于CAN方法。而与CAN方法在速度较低时相差不大。但随着速度的增加,\nCAN方法的平均消息数要比CAR方法的增加快。\n[0129] Flood方法基本上不受节点移动的影响主要是因为其并没有当节点移动时而做出\n多余的处理,无需维护索引结构,而CAR方法和CAN方法则需要对节点移动做出反应,主要\n是更新索引节点及相应的索引信息。而CAR方法较之CAN方法的消息增加的更慢,主要是\n因为CAR方法可以将信息发布的范围局部化,而且它们的区域划分也是固定的,CAN方法的\n节点移动时可能还会带来区域的重新划分,因此较受节点移动性的影响。该模拟结果验证\n了CAR方法对节点移动的适应性。\n[0130] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精\n神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围\n之内,则本发明也意图包含这些改动和变型在内。
法律信息
- 2010-09-22
- 2009-03-25
- 2009-01-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2007-03-28
|
2006-09-05
| | |
2
| |
2006-04-12
|
2005-08-17
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |