无线adhoc和混合网络中的定位服务(翻译)

如果文章中图显示错误,可以通过此连接查看:
http://hi.baidu.com/rousant/blog/item/948d638959ea91b30f244498.html
原始作者信息:

Location Services in Wireless Ad Hoc and Hybrid Networks: A Survey
Roy Friedman      Gabriel Kliot
Department of Computer Science Technion
Haifa, 32000, Israel April 24, 2006
原文下载地址: 
http://www.cs.technion.ac.il/users/wwwb/cgi-bin/tr-get.cgi/2006/CS/CS-2006-10.pdf
摘要:定位服务(Location services)在移动adhoc和混合网络中被用来定位特定结点的地理位置或定位数据内容.位置定位服务(position location services)的一个主要用途是用于基于位置的路由算法.特别是,定位服务所提供的目的结点的地理位置可以使地理路由协议更有效的路由信息到目的结点.数据定位服务(content location service)为发出请求的结点服务,它们提供请求的数据本身或存储该数据的结点标识.有时还会提供存储数据的结点的位置.这种数据定位服务对实现资料共享应用程序,协作高速缓存和订阅发布系统非常有用.

一、引言
       移动无线ad hoc网络(Mobile wireless ad hoc networks)由相互通信的不使用固定基础设施的无线主机组成。战场上的士兵,紧急救灾人员和便携式电脑的网络都可能用到ad hoc网络。混合无线网络(Hybrid wireless networks)由若干无线接入点(AP)和无线移动终端组成。移动终端可以通过AP相互通信,也可以通过无线Ad hoc网络相互通信。
       定位服务在移动ad hoc网络中有两个主要用途:一个是根据网络中结点的地理位置提供结点位置信息,另一个是数据定位。虽然用于不同的目的,但两种定位服务有很多相似之处,因此在这项工作中把它们放在一起进行研究。
       尽管相似,他们之间还是存在着许多差别: 
       地理信息的使用:位置定位服务通常使用结点的地理位置来实施服务,而数据定位服务不一定会使用地理位置信息。
       移动灵敏性:在位置定位服务中,服务必须对结点的移动做出响应。节点移动的时候,位置发生改变,服务必须根据结点移动的图样进行实时更新。数据定位服务并不关心结点的移动,它关心结点的起点和终点,以及新数据的通知和处理(由于有限的内存,程序可能会处理它所拥有的一些数据,在这种情况下,服务必须进行更新)。
       路由的需要:位置定位服务通常仅仅提供被请求结点的位置,为了与此结点通信,需要实施地理路由。数据定位服务通常不提供数据的地理位置,而是提供数据本身(事实上,如果服务只提供了数据的位置,那么需要用路由获取数据内容)。 
      研究的语境:数据定位服务主要用于传感器网络和服务/资源发现语境中,而位置定位服务主要用于地理路由的语境中。此外,数据定位服务和订阅发布系统在面临的问题和设计标准方面有很多相似性。 
      本文以介绍定位服务的分类开始。然后,在无线ad hoc,混合和有线网络中,根据之前的服务分类,介绍了一些构建位置和数据定位服务的最新技术和算法。
 
二、位置定位服务
2.1 定位服务的分类


图1:定位服务的分类

       [17]介绍了位置定位服务的分类,如图1。
2.2 洪泛型定位服务
       在分类的顶层,定位服务可分为基于洪泛(flooding-based)型和集合(quorum- based)型。洪泛型可以进一步分为主动型(proactive)和反应型(reactive)。主动型的每个(目的)结点定期洪泛它的位置信息到网络中的其他结点,每个结点都维护一个记录着其它结点最新位置信息的表。这种洪泛的间隔和范围可以根据结点的移动速率和距离因素进行优化。例如,高速移动结点的洪泛应更加频繁,近距离结点的洪泛应比远距离结点的频繁。
       Camp,Boleng和Wilcox[13]已经开发了三种定位服务并评估了它们的性能:Simple Location Service (SLS),DREAM Location Service (DLS)和Reactive Location Service (RLS)。DLS和SLS是主动洪泛型定位服务。SLS的结点定期把包含着其它结点位置信息的表发送给邻居结点,而DLS的结点把自己的位置信息以通常的速率传送给邻近的结点,以较慢的速率传送给遥远的结点。结点在收到位置信息包时更新它的位置表。
       Friendman和Korland提出了一种有效的地理定位服务,它作为TIGR路由和框架的一部分[21],把网络区域划分成虚拟网格。这种思想是让网格中每个结点只维护着指向其它结点的方向(北,南,东,西)。这样,当一个结点加入到系统中时,只需执行一次完全洪泛。当某个结点的位置需要更新或它移动到了相邻虚拟网格单元中时,至多只有两行两列会受到影响。
       反应洪泛型(例如,LAR[32],GRID[38]和RLS[13])中的结点如果找不到它想通信的目的结点,它会在网络中洪泛范围查询,以便寻找目的结点。
2.3 集合型定位服务
       对于集合型协议,网络中的所有结点(潜在的发送者和接收者),都隐式或显式的把每个结点的唯一标识映射到一个或多个其它结点上。被映射结点作为映射结点的定位服务器。被映射结点承担着存储定期更新和回应查询请求的任务。只要查询到达了服务器,并且服务器上需查询的结点位置是最近更新的,那么,服务器返回的查询结果就是准确的。换句话说,结点任何位置变化都会使服务器进行更新,查询时,若干服务器协商得到一个正确位置。
       通常来说,当更新和查找的服务器集合相同时,quorum-based协议又可以被叫做rendezvous-based协议。因为在更新和查找时,这些服务器集合就如同一个会聚点。
       映射结点到服务器可以用静态方法和随机方法。静态方法利用结点标识或地理位置信息进行映射,而随机方法利用不同的散列算法进行映射。显式和隐式的集合协议根据在实施集合系统时是否使用递归层次来定义子区,可以进一步分为层次型和平面型。
2.3.1 显式集合定位服务
       在显式集合方法中,某个结点的位置更新都会发送给显式定义的子集(更新集合),对此结点的位置查询会发给可能的不同的子集(查询集合)。因为两个子集的交集非空,所以某些在更新集合中的点将满足查询条件。
平面集合定位服务
      平面集合定位服务的操作基于集合概念。在这些方法中,所有的集合服务器都扮演着相同的角色。在这样一个集合系统中没有层次结构。建立平面集合系统的方法已在[25,26,31,10]中讨论过。
       在Haas和Liang的著作里[25,26],虚拟主干中的位置数据库维护着结点的位置信息。[37]提到了虚拟主干的初始化和管理算法。当一个结点移动时,它从包含着离它最近的主干结点的子集中更新自己的位置。每个源结点向离它最近的主干集合查询目的结点的位置,并且利用这个位置来路由信息。[26]中的集合系统的选择是静态的和先验的,在每个确定集合中,要保证属于它的所有结点的一致性。而在[25]中,当运行期间需要集合组时,选择是实时随机进行的。
       [31]集中讨论了在高度动态环境中应用集合系统的效率问题。结点被分配到固定的集合中,每个操作更新一个随机选择的组,因此实现了负载均衡。
       [35]比较了严格集合策略(在[31]中提出)和概率集合策略。模拟结果显示应用概率集合算法会得到更高的速率。
       [10]应用了概率集合。每个集合中的结点都是随机选出的:从优化路由算法维护的成员列表中拣选,或在网络中运用随机路径算法选择结点的子集。在这里,没有确定理想随机集合大小的方法,也没有提供集合选择算法的理论上的评估方法。
平面地理集合定位服务
       在下文讨论的算法中,地理信息用来格式化显式集合系统。例如,行列集合协议[52]每个结点的位置信息周期性的沿北-南方向传播,而任何的位置查询沿东-西方向传播。为了有效的运行,每个结点的位置信息应散布在O(根号n)定位服务器上。
 
图2:Octopus

       为了更好的权衡精确性和负载,Octopus[41]应用一种新的称为同步聚合(synchronized aggregation)的位置更新技术(在[52]中介绍)。Octopus把网络区域用水平和垂直的带划分为带状区域,每个结点的位置信息都会储存在它所在的带状域内的所有结点上。每个位置更新包聚集着若干结点的位置信息并同时更新多个定位服务器。此外,聚集更新是同步的,在一个特定的区域中,只会有一个结点发起聚集更新,因此不存在重复的更新包。图2描述了结点S的邻居以及它所在的带状区域。结点A,B,C和D是图中标出的区域的终端结点。
       GeoQuorums[19]的几何坐标确定了本地服务器的位置。这些焦点坐标定义了地理区域,在这些地理区域中,任何时刻都必须至少有一个服务器。若干个焦点坐标会存在于不同集合的交集中。在无线ad hoc网络中,集合还被用于实现原子内存提取。这种算法会自动重构一组可用的集合。
层次地理集合定位服务
       显式地理集合定位服务将集合结点部署成层次结构,例如,多区域路由[7]和LLS[6]。
       基于位置的多区域路由方法由Amouris等人[7]提出,它存储了几何渐增圆中每个结点的位置信息,每个圆定位包含着结点的更小的圆。如果一个结点移动了2i的距离,它的位置更新将广播到半径为2i+1的区域内。在2i区域中,位置更新信息被洪泛到所有结点。查询过程用层次方式跟踪位置信息;越靠近目的地,它的位置信息就越精确。
       本地已知定位服务(Locality aware Location Service,LLS[6])用层次螺旋结构来保证查找和公布算法的局部已知(the locality aware)特性。即:如果从起点s定位终点t的代价与从s到t的最短路径代价成比例,那么定位服务将应用局部已知查询(locality aware lookup)算法;如果一个结点从x移动到y,定位服务对此进行更新的代价与x到y的距离成比例,那么,定位服务将应用局部已知公布(locality aware publish)算法。
 

图3:LLS

       图3描述了LLS的基本结构。对每个目的地结点t,LLS以它的位置为原点,层次覆盖虚拟的以指数增长的M×M的平面方形。基本螺旋算法中,结点t的位置信息在层次结构中沿着跨越方形的渐增螺线公布出去。同样的,对t的搜索也是在虚拟层次中按渐增的螺线执行的。包含着源点和终点的方形在第一层次上的焦点保证了查找路径和公布路径会相交(这个结构与GLS[36]的层次网格类似。但GLS除了应用地理层次外,还应用了散列算法)。
      LLS中的移动点用GHT[44]中的技术编址,方法是用方形中的虚拟坐标存储t的信息,而不是搜索某个先前指定的结点。基本算法被进一步加强,来确保诸如结点移动,结点失效等最差情况下的局部已知特性。
      LLS的最差情况下的查找代价为O(d2),平均代价为O(d),d是源点到终点的最短路径长度。另外,一个结点移动了距离d,公布它的新位置需要的平均代价为O(dlogd)。LLS固有的局部特性使它具有对结点失效和网络分割的容错能力。
2.3.2 隐式(散列)集合定位服务
       隐式集合协议通过散列函数选择定位服务器,结点的标识或位置信息被用做函数的参数。
平面散列定位服务
      平面散列协议(例如,[22,51,56]和Terminodes[29]),散列函数将每个结点的标识映射到本地区域(home region),本地区域由网络中位置固定的一个或多个结点组成。本地区域内的所有结点维护着某结点的位置信息,并且能对查询此结点的请求做出回应;它们作为这个结点的定位服务器。通常,本地区域内定位服务器的序号与网络中所有结点的序号是相互独立的,因此,每个结点的位置信息应被分散到O(1)定位服务器上。
       SLALoM[16]每个大的区域被分成小的单元区域,每个结点都被分配到若干分布式本地区域中。本地区域中的某些结点作为其它结点的定位服务器。靠近某个结点的本地区域知道这个结点的精确的位置(结点所在的单元区域),远离某个结点的本地区域只能将这个结点定位在一个较大的区域中。
层次散列定位服务
       层次散列协议,结点所在的区域被越来越小的网格递归划分为层次结构(图4为GLS的层次结构)。对每个结点,层次结构中每层每网格都会选出一个或多个结点作为定位服务器。位置更新和查询按从低层到高层,再从高层到低层的顺序遍历层次结构。这种层次结构的优点在于,如果源点到终点距离很近,遍历查询就只在较低层中进行。
 
 

                        (a)GLS的空间层次                           (b)查询和更新遍历层次结构
图4:GLS

       层次网格结构在定位服务的负载均衡,完成率,扩展性方面都很有优势。层次高度通常为O(log(N)),因此,每个结点分布于O(log(N))定位服务器上是效率最高的。
       层次散列协议的例子有Grid Location Service (GLS)[36],Distributed Location Management (DLM)[57]和Geographical Region ummary Service (GRSS)[28]。DLM与GLS类似,不同之处在于,对一个结点来说,DLM的定位服务器是对结点的id应用散列函数选出的,而GLS是把同层中与该结点id最接近的结点作为定位服务器。为了进一步减少开销,GRSS用归纳报文和转发数据包的方法来获知结点的位置信息。为了减小数据包的长度,GRSS应用了Bloom过滤器[11,12]。据我们所知,最知名且评价最高的层次集合定位服务是GLS[36]。
 
三、数据定位服务
3.1 地理数据定位服务
地理集合数据定位服务

      地理数据定位协议(GCLP)[54],[9]和[42]使用了与行列集合协议类似的方法。[9]提出以十字形的轨迹传播内容公告和资源查询,这样做可以确保它们有交点。公告和查询轨迹交点处的结点对查询做出回应。GCLP(图5)使用了相似的技术,但进行了改善:结点可以根据与数据服务器之间的距离选择是否转发公告信息。一旦有多个包含相同数据的公告,只有最靠近的副本会被传送下去。
 
图5:GCLP

地理平面散列数据定位服务
       地理散列表(GHT)[44]是一种平面散列数据定位服务,以前它在传感器网络中用于中心数据的存储。GHT要求结点确切知道自身的地理位置,并用GPSR[30]路由协议识别并传送数据包到目的结点(这个点最靠近地理目的地)。GPSR周界路由复制本地周界(本地周界包围着目的地)中结点的键值,并且为了探测结点失效或移动后的拓扑变化,键值会被定期更新。
       聚集区域(Rendezvous Regions(RRs))[49]类似于GHT,但是它用聚集区域代替了聚集点。RRs是一个全面的体系结构,在ad hoc网络中它负责定位服务和引导程序,在传感器网络中,它负责中心数据的存储,配置和任务分配。RRs的网络拓扑被划分成许多地理区域,每个区域用一组键值来表示它所关注的服务或数据。根据类似散列表的映射方案,每个键值都被映射到一个区域上。每个区域中被选中的结点负责维护映射信息。服务或数据的提供者存储着相应区域的信息,探测器会从那里进行检索。包含大量结点的RR非常健壮,可以有效的应对结点失效,结点移动和定位不精确等问题,在这些方面RR较聚集点机制有很大的优势。
3.2 非地理服务发现协议
集中式服务发现
       服务发现的传统解决方案,例如Jini[8],UDDI[3],Salutation[5]和Salutation Lite[43],依靠一个中心目录存储网络中可用服务的信息。服务探测器和提供者通常使用多播技术发现中心目录。[34]比较了中心目录解决方案(也包括一些洪泛解决方案)。
洪泛和DNS服务发现
       洪泛分散资源发现协议的服务提供者和客户端广播服务查询和服务公告,以便发现对方,例如SLP[24]和UPnP[4]。
       通用即插即用(UPnP)主要工作在网络低层协议栈(例如TCP/IP)中。在IP网络中,UPnP用简单服务发现协议(SSDP)发现服务。服务加入到网络中时,它会发送公告信息来表明它的存在。公告信息中包含着指向服务器的统一资源定位符(URL),和一个指向服务介绍文件的URL。当客户端想使用一个服务的时候,可以直接根据公告信息中的URL与服务器通信,也可以广播发送查询请求。
        苹果公司的Bonjour[1],以前叫做Rendezvous,扩展了DNS服务发现[2],并且作为局域网通用的服务发现方法。现在它在Mac OS X系统中用来查找打印和文件共享服务,它还用于系统中的其他程序,例如,iTunes查找共享音乐,iPhoto查找共享图片,iChat查找本地其他的iChat用户,TiVo Desktop查找数字影音,SubEthaEdit查找文档作者,Safari浏览器查找本地服务器并可配置本地设备。
       Konark[27]结合了发现协议和网络层多播,是MANET的专有协议。发现协议的扩展性和效率问题不在本文中讨论。在MANET中,Nom[20]使用类似Gnutella的受控洪泛技术来发现和定位资源。资源发现协议的例子还有[39]和[46]。
3.3 混合网络中的服务发现
       为了增强混合网络中发现协议的扩展性和可用性,[14,18]提出了使用分布式目录的解决方案,它可以部署在基站(或网关)上为相应的区域(例如移动电话的单元)提供服务。[18]可以进行路由和公告/查询的负载均衡。
基于过滤的可扩展服务发现
       GSD[15]是群组服务发现协议,它用洪泛的方式发现本地可用服务。为了实现全局发现,GSD根据DARPA Agent Markup Language (DAML)描述的服务层次把服务器分组。广播公告中包含着离发送者最近的群组列表。利用群组信息,服务器可以有选择的转发服务请求到其它结点。这种解决方案要求:用于交换的公告中都包含群组信息。DAML高效的服务分组和报文选择转发特性减小了洪泛的开销。
 

图6:可扩展服务发现协议的层次结构

      [48]介绍了可扩展服务发现协议。它使用两层重叠的层次结构(图6)。网关结点和部分MANET结点组成了虚拟网络主干,它们起着目录服务器的作用,负责服务的发现。部署这些目录服务器,使结点在H跳内至少可达一个目录,H为固定常数,取决于结点密度。目录存储着H跳范围内可用服务的描述。需要服务的结点只需发送查询到提供本地服务发现的目录服务器。如果服务描述没有存储在本地目录中,目录服务器将选择把请求转发往哪个目录服务器,这样就完成了全局发现。目录服务器之间相互交换档案信息,这些信息帮助目录服务器进行转发地的选择。目录服务器的档案信息中包含压缩过的目录摘要和它的容量信息。档案信息是主动交换的,因为Bloom过滤有效减小了档案信息包的长度。在只消耗较小网络流量的前提下,目录档案保证查询可以发送到包含所需服务的服务器。扩充过的算法可以在混合网络中进行服务查询。
3.4 Bloom过滤
      Bloom过滤[11]是服务定位算法的通用技术,它可以减少内存消耗和处理时间。Bloom过滤主要用在传感器网络的算法中,因为这种网络中设备的资源容量都很有限。此外Bloom过滤还用在服务/资源发现算法(例如,[48])和事件发布订阅系统中。这些系统有着广泛丰富的表达方式(例如服务或事件的描述),因此例如Bloom过滤的汇总技术成为了减小服务定位开销的强大工具。[12]中介绍了在网络程序中应用Bloom过滤的方法。
 
四、有线P2P网络中的定位服务
       有线网络中的定位服务主要有集中式方案(例如Jini[8]和UDDI[3])和DNS方案(DNS服务发现[2])。
       近年来,人们对大规模P2P(peer-to-peer,对等)网络中的目标和数据定位做了大量的研究。尤其是最近Decentralized Object Location and Routing (DOLR)系统(CAN[45],Pastry[47],Chord[50]和Tapestry[58])在网络层结合了定位和路由,它所带来的几个重要特性,例如分散型操作,可扩展性,容错性和负载均衡,都很令人期待。
       DOLRs通常会使用DHT(distributed hash table)提取。DHT映射目标名字到网络结点,并维护着基于覆盖的路由方案,因此它可以根据目标名称所对应的键值或唯一标识路由信息。DOLRs使用最新的基于坐标或多维的路由搜索算法来生成路由表,在保证操作一致性时,结点之间所需跳数是整个网络大小的对数。
       这种基本的DHT和路由方案经常被新技术所扩充,例如镜像和缓存进一步增强了扩展性和数据的可用性。在测量和比较不同的DHT解决方案时,一个重要的标准是"局部认识(locality awareness)"。局部认识的非正式定义是,在任何可能的时候,本地结点从远程结点开采资源的能力。上文中的"本地"和"远程"是相对于源结点和目的结点之间的距离,等待时间,带宽来说的。局部认识的另一个特性是,在正常和故障的情况下,限制局部操作对整体性能的影响。 
       P2P网络中的服务发现解决方案并不适合于移动无线ad hoc网络。第一,它们是针对静态IP网络设计的,IP网络利用已经存在的路由基础设施提供任意两结点间的完全连通性。第二,它们没有考虑移动网络的局限性,例如,有限的存储容量,移动和不使用路由基础设施的特性。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值