CN103701698A - 一种物联网表面自适应定向路由算法 - Google Patents
一种物联网表面自适应定向路由算法 Download PDFInfo
- Publication number
- CN103701698A CN103701698A CN201310605276.8A CN201310605276A CN103701698A CN 103701698 A CN103701698 A CN 103701698A CN 201310605276 A CN201310605276 A CN 201310605276A CN 103701698 A CN103701698 A CN 103701698A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- node
- routing
- internet
- things
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种物联网表面自适应定向路由算法,该算法充分发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择,算法具备渐近最优性。DAFR是局部状态路由算法,它在节点的存储容量和计算通信量之间获取折中,通过在每个节点缓存中加入一些字段避免了重复搜索,只需局部节点的状态信息便可进行全局的路由,算法降低了大量额外的通信和计算开销,同时保证了算法在最坏情况下的最优性,尤其更适于大型的物联网网络。
Description
技术领域
本发明是一种用于信息网络,特别是适用于物联网发现路径的基于位置的路由新算法,属于物联网路由应用技术领域。
背景技术
近年来,无线通信和定位技术有着突飞猛进的发展,GPS和Galileo等全球定位系统的成本越来越低,在物联网中的应用也越来越广泛。利用这些定位系统提供的定位服务,物联网中的节点均能获悉自身位置。根据这些位置信息,基于位置的物联网路由算法仅依据当前节点所缓存的邻居节点位置以及消息报文中的控制信息便做出转发决策,无须建立和维护全局的路由状态表,大大缩减了节点的存储、通信和计算开销,已成为物联网研究的热点。
另一方面,目前物联网正朝着大规模方向发展,网络中的节点个数可能增加到几百甚至上千。为了处理这么大规模的网络,目前提出的诸多适用于小规模网络的路由协议,包括基于表驱动方式的、基于按需方式的、采用平面结构的、采用分层结构的等等,都不能很好地适应大规模的网络环境。
最早能确保到达目标的位置物联网路由算法是第二代指南针路由算法,但它的时间复杂度为O(n)(n是网络节点数目),这可通过泛洪获得同样的复杂度且操作更为简单。随后出现AFR是一种纯表面路由选择,但它缺少贪婪转发,在现代的大型密集网络中缺乏实用价值。B. Karp和H. Kung提出了一种结合了贪婪和表面路由转发的GPSR算法,其花费很小且在平均情况下有着很好的性能,但它由于过早地切换回贪婪路由算法,失去了在最坏情况下的最优性。F. Kunth等在AFR的基础上引入GOAFR保证了路由的最坏情况的最优性,不足的地方是每轮转发失败后都要重新调用算法回到源点并且下一轮开始时又要全部重新搜索,多次的重复计算增加了物联网节点通信和计算的开销。
发明内容
本发明的目的就是针对物联网中基于位置的路由算法中存在的重复搜索和冗余计算问题,提出了一种适用于发现路径的基于位置的物联网表面自适应定向路由算法DAFR (Directed Adaptive Face-Based Routing),该算法充分发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择。DAFR是局部状态路由算法,它在节点的存储容量和计算通信量之间获取折中,通过在每个节点缓存中加入一些字段避免了重复搜索,只需局部节点的状态信息便可进行全局的路由,因此其开销相比于传统路由大为降低,同时保证了算法在最坏情况下的最优性。
本发明的技术方案是这样实现的:一种物联网表面自适应定向路由算法,其特点是:发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择;
a) 算法通过在节点缓存中加入上一跳节点标识(L),下一跳节点标识(N)和算法重搜索(R)字段使得节点“记忆”了有效搜索的状态;
b) 算法发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择,算法具备渐近最优性;
c) 算法通过在每个节点缓存中加入一些字段避免了重复搜索,只需局部节点的状态信息便可进行全局的路由;
d) 当在一轮遍历失败后,它避免了重复的反向查找,直接定向回到源点,且在下一轮遍历时继续利用这些有效字段来简化搜索,大大降低了路由通信量和计算量,获得平均情况下的高性能;
e) 算法在最坏情况下的路由代价仅需O(c2(p*)),满足了最坏情况下的最优性条件。
本发明设定物联网节点具有相同的传输半径,并支持多跳路由;节点通过已有的定位服务获得自身位置;节点通过交换hello报文获悉其所有邻居节点的标识和位置;消息源节点知道目标节点的位置;消息报文所包含的控制字段在O(1)阶数内,除本身和邻居节点相关信息以及临时存储报文消息外,节点不存储任何其他信息。本发明的算法完全本地化,节点无须维护全局的拓扑信息和链路状态,大大降低了对节点存储量和计算能力的要求,同时也增强了对网络拓扑变化的适应能力。
附图说明
图1是HELLO报文格式。
图2是节点存储内容。
图3是DAFR消息报文格式。
图4是DAFR算法顶层结构图。
图5是DAFR算法结构图。
图6是模块b结构图。
图7是DAFR算法实例图。
具体实施方式
结合图1至图7对本发明做具体说明。本发明发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择;
f) 算法通过在节点缓存中加入上一跳节点标识(L),下一跳节点标识(N)和算法重搜索(R)字段使得节点“记忆”了有效搜索的状态;
g) 算法发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择,算法具备渐近最优性;
h) 算法通过在每个节点缓存中加入一些字段避免了重复搜索,只需局部节点的状态信息便可进行全局的路由;
i) 当在一轮遍历失败后,它避免了重复的反向查找,直接定向回到源点,且在下一轮遍历时继续利用这些有效字段来简化搜索,大大降低了路由通信量和计算量,获得平均情况下的高性能;
j) 算法在最坏情况下的路由代价仅需O(c2(p*)),满足了最坏情况下的最优性条件。
(1)节点存储和报文格式
在算法开始执行前,物联网节点通过各种定位服务已获悉了自己的位置,接下来就是相邻节点之间交换单跳HELLO报文。当节点接收到邻节点的HELLO报文后,把报文中的节点位置以及有效时间(时隙)写入缓存,同时记下报文接收的时间点并为此发送节点分配一个标识。分配标识的原则是“0”为当前节点标识,若当前节点有m个邻居,就把1~m这m个整数随机分配给其m个邻居作为其标识。这样既保证了算法的完全本地化又不必为所有的节点都分配一个全局唯一的标识,降低复杂度同时增强了健壮性。这个过程每隔固定的时间执行一次,此外,当一个节点收到信息报文的时候,也检查自己的缓存,以便从信息报文重提取上一跳的邻居节点更新。HELLO报文格式如图1,其中分组类型记为0,表示HELLO报文,源节点位置采用二维平面直角坐标系坐标(x,y)表示,可扩展项保留给以后新的功能使用。
物联网节点存储的内容如图2,可以看到节点存储除了与HELLO报文相关的字段外,又加入三个字段:上一跳节点标识(L),下一跳节点标识(N)和算法重搜索(R)字段。其主要涵义为:算法搜索过程中选择性的将上下跳节点标识写入L和N,当节点在一轮表面搜索中失败后原路返回时,就将R字段置为TRUE,以便下轮在此处重新搜索。L和N字段初始化为0(指向本节点),R初始化为FALSE。为适应网络的动态变化,当到达每一项中的有效时间后,L、N和R字段均重新进行初始化。经过简单的计算可得到,R字段仅需1bit信息量(TRUE和FALSE),L和N字段也只需 bit信息量。可见,L、N和R字段都有着极低的空间复杂度,相比与用浮点数存储的位置信息几乎低了一个数量级。
本地信息都具备后,物联网节点开始处理算法启动后的消息报文,这里假设把我们的DAFR消息分组添加到一个IP分组中,于是需要对该IP分组的可扩展首部加以修改,使得DAFR算法能够识别此类报文。如图3,长度标识本扩展首部的长度;Type表示分组的类型,这里是DAFR分组;下一首部标识下一个扩展首部的起始位置(如果存在的话);s和t分别代表源节点和目标节点,Ps和Pt则分别表示源节点和目标节点的位置,cSIZE为当前椭圆边界的长轴长度,短轴长为|st|(固定值)。当进行表面路由遍历时,上一个表面和当前表面的切换点的位置存入PpCurrent,而把搜索到的当前表面和下一个表面的切换点位置写入PpNext,事实上,当进入到下一个表面时均有PpCurrent(当前表面)=PpNext(上一表面),这里pCurrent和pNext代表相应的切换点标识。State描述了消息报文的状态,只取3个值:FACE,AFTERFACE和 FORWARD。当算法进入表面路由时State=FACE;当遍历时第一次碰到椭圆边界是置State=AFTERFACE;当消息第二次碰到椭圆边界或已经完全遍历了整个边界时State=FORWARD。wState是算法的全局状态,也有3个值:NORMAL,FAIL和DISCONNECT。在一轮算法发现t是不可达时,置wState=FAIL,并加大cSIZE进入下一轮;当发现图的非连接性后,置wState=DISCONNECT,算法结束;其他情况以及默认下,均有wState=NORMAL。
(2)DAFR算法描述
为了提高路由效率,提出了一种改进方案,即DAFR算法。这里定义s为源点,t为目标节点,s获悉了t的位置,ρ>ρ0≥1,其中ρ和ρ0都是预先设定的常数。
DAFR算法描述:
STEP0:初始化:在s处,以s,t为焦点,c:=ρ0|st| 为长轴初始化椭圆边界ξ。所有节点的L字段和N字段均初始为0,R字段均置为FALSE,c即消息报文中的cSIZE字段的值,PpCurrent=PpNext=NULL。
STEP 1:定向贪婪路由模式(DGR Mode):
若当前节点的邻节点集包含目标节点t,直接将数据转发到t,算法成功结束;
若当前节点的N≠0则直接转发至N所标识的下一跳节点;反之,若N=0则使用贪婪转发,即每次都转发至距t最近的邻居节点,并将此邻居节点标识写入当前节点的N字段,转发后将上一跳节点标识写入L字段,一直转发到遇到邻居节点为t或到达局部最小点(local minimum)。若是前者,算法成功结束;若是后者,算法转到STEP2。其中只要下一跳节点在椭圆边界ξ外部,便执行c:= ρc,即将半长轴增加ρ倍。
STEP 2:定向表面路由模式(DAFR Mode):
设u是当前的局部最小点,Pu表示u的位置,初始置PpNext=Pu。然后开始利用右手定则检查包含节点u并与线段ut相割的表面F,检查F上是否存在N字段非0或R字段为TRUE的节点。若检查过程中遇到t,算法成功结束;否则,
(1)不存在N≠0的节点:开始遍历表面F,执行b模块。//说明:此表面上一轮没有遍历过(不存在R=TRUE)或上一轮算法在此表面失败并返回 (存在R=TRUE)。
(2)存在N≠0的节点:将距t最近且N≠0的节点位置写入PpNext,
(2.1) PpNext≠Pu且不存在R=TRUE的节点:执行aa模块。//说明:上一轮已完全遍历过此表面。
(2.2) PpNext≠Pu但存在R=TRUE的节点:执行ab模块。//说明:上一轮未完全遍历此表面。
(2.3) PpNext=Pu:执行ac模块。//说明:说明当前表面和贪婪路径或上一表面有重合边,但本表面上一轮没有遍历过(即:不存在R=TRUE)或上一轮遍历此表面失败后并返回到s(即:存在R=TRUE)。
(3)执行a模块。
算法完毕!
下面对各模块做一下简单的描述(所有物联网节点均为当前表面F上的节点):
模块aa:将所有N≠0的节点的L和N字段均置0,只保留u的L字段的值。
模块ab:将R=TRUE的节点置为R=FALSE,并继续遍历,当所遍历的节点和下一跳节点之间的线段和边界ξ相交时,置此节点的R字段为TRUE,然后从原路进行反向遍历;若遇到第二个R=TRUE的节点亦置R=FALSE,继续遍历到第二次碰到边界ξ时,遍历完成,置当前节点的R字段为TRUE。若此过程中发现有比pNext到t的距离更小的节点,则更新PpNext(即将此节点位置写入PpNext)。
模块ac:执行b模块,执行b后若有PpNext≠Pu,利用L字段回到此表面的入口节点,并将此点的位置赋给u,然后执行aa模块。
模块a:将u→pNext路径上的所有L和N字段写入相应的上下跳标识,并在pNext处转到第1步。
模块b:若完成遍历表面F一周后没碰到椭圆边界且PpNext=Pu则在u处利用L字段的上一跳信息直接回到s节点,报告图的非联接性,算法结束;若没有碰到边界但PpNext≠Pu则执行a模块;
若在遍历时碰到边界,则执行ab模块,执行ab后,若仍有PpNext=Pu,则在u处利用L字段的上一跳信息直接路由到s节点,在s处重置椭圆边界长轴c:=ρc,并转到第1步;反之,若存在PpNext≠Pu,执行a模块。
下面,结合实例图7来形象地描述DAFR算法。首先,算法在源点s进行初始化,初始的椭圆边界为ξ1,通过贪婪转发到达u,而u是局部最小点(u的所有邻居到目标节点t的距离都比|ut|长)。于是算法在u处切换到表面路由模式,接着按照右手定则的顺序检查表面F发现不存在N≠0于是执行b模块,即u→a→b,在a→b时碰到椭圆边界ξ1,则置a的R字段为TRUE然后沿原路反向遍历,即b→a→u→c→d,在c→d时第二次碰到椭圆边界ξ1,则置c的R字段为TRUE。而此时的PpNext=Pu(|at|和|ct|均大于|ut|),因此算法使用L字段从u回到s,并在s处定义c:= ρc得到新的椭圆边界ξ2,此时算法利用可用的N字段进行下一轮的转发。于是算法又到了u,在u处检查表面发现不存在N≠0于是再执行b模块,当遍历到a时,置R=FALSE后继续按右手定则遍历a→b→e→f→b→g,在b→g时碰到新的边界ξ2,b处置R=TRUE然后反向遍历,到c处时置R=FALSE后继续搜索,最后在h→g处第二次碰到ξ2,置h的R字段为TRUE,由于此时PpNext=Pv≠Pu,接着执行a模块,即将u→pNext路径上的所有L和N字段写入相应的上下跳标识。并在v(即pNext)处转到贪婪转发,然后一路利用贪婪转发沿着v→w→t,遇到t,算法成功结束。
Claims (1)
1.一种物联网表面自适应定向路由算法,其特征在于:发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择;
a) 算法通过在节点缓存中加入上一跳节点标识(L),下一跳节点标识(N)和算法重搜索(R)字段使得节点“记忆”了有效搜索的状态;
b) 算法发挥表面路由转发和定向选路的优势,依据局部区域节点的状态信息进行整个网络的路由选择,算法具备渐近最优性;
c) 算法通过在每个节点缓存中加入一些字段避免了重复搜索,只需局部节点的状态信息便可进行全局的路由;
d) 当在一轮遍历失败后,它避免了重复的反向查找,直接定向回到源点,且在下一轮遍历时继续利用这些有效字段来简化搜索,大大降低了路由通信量和计算量,获得平均情况下的高性能;
e) 算法在最坏情况下的路由代价仅需O(c2(p*)),满足了最坏情况下的最优性条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605276.8A CN103701698A (zh) | 2013-11-26 | 2013-11-26 | 一种物联网表面自适应定向路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310605276.8A CN103701698A (zh) | 2013-11-26 | 2013-11-26 | 一种物联网表面自适应定向路由算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103701698A true CN103701698A (zh) | 2014-04-02 |
Family
ID=50363100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310605276.8A Pending CN103701698A (zh) | 2013-11-26 | 2013-11-26 | 一种物联网表面自适应定向路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103701698A (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103380640A (zh) * | 2010-12-22 | 2013-10-30 | 思科技术公司 | 通信系统中的自适应智能路由 |
-
2013
- 2013-11-26 CN CN201310605276.8A patent/CN103701698A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103380640A (zh) * | 2010-12-22 | 2013-10-30 | 思科技术公司 | 通信系统中的自适应智能路由 |
Non-Patent Citations (1)
Title |
---|
杨涛、陈建新、杨庚,谈国秀: "《基于表面自适应的定向贪婪选路》", 《南京邮电大学学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuhn et al. | Asymptotically optimal geometric mobile ad-hoc routing | |
Jain et al. | Geographical routing using partial information for wireless ad hoc networks | |
CN102916889B (zh) | Vanet中基于多路径连通时间和信任度的路由选择方法 | |
Chen et al. | ProHet: A probabilistic routing protocol with assured delivery rate in wireless heterogeneous sensor networks | |
Hussein et al. | Design and performance analysis of high reliability-optimal routing protocol for mobile wireless multimedia sensor networks | |
CN108366093B (zh) | 一种基于“虚拟中心”和“移动代理”的分布式无线自组网 | |
CN101437045A (zh) | P2p系统中中转节点的选择方法及p2p节点 | |
Khalid et al. | Comparison of localization free routing protocols in underwater wireless sensor networks | |
CN103260211A (zh) | 一种改进的aomdv路由方法 | |
Frey et al. | Geographical cluster-based routing in sensing-covered networks | |
CN101800694A (zh) | 资源告警处理方法和路由交换设备 | |
Ge et al. | Node-disjoint multipath routing with group mobility in MANETs | |
CN102711213A (zh) | 一种基于剩余能量的无线传感网路由方法 | |
CN103701698A (zh) | 一种物联网表面自适应定向路由算法 | |
CN110784412B (zh) | 基于交通流量的分簇路由查找的方法、装置及系统 | |
Alhanani et al. | CDS-MIP: CDS-based Multiple Itineraries Planning for mobile agents in a wireless sensor network | |
Mitton et al. | Hector is an energy efficient tree-based optimized routing protocol for wireless networks | |
CN102547902B (zh) | 一种基于平面区域划分的Ad Hoc网络多径路由方法 | |
Lehsaini et al. | A novel Cluster-based Fault-tolerant Scheme for wireless sensor networks | |
Revathi et al. | VAGR—Void aware in geographic routing for wireless sensor networks | |
Tsai et al. | VirtualFace: An algorithm to guarantee packet delivery of virtual-coordinate-based routing protocols in wireless sensor networks | |
JP2017139635A (ja) | 経路選択装置及び経路選択方法 | |
OHTA et al. | A hierarchical routing protocol based on autonomous clustering in ad hoc networks | |
Prasanth et al. | Location based routing protocol-A survey | |
Tao et al. | Greedy face routing with face identification support in wireless networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140402 |
|
RJ01 | Rejection of invention patent application after publication |