CN106851766B - 一种高鲁棒性低延迟的无线传感网路由方法 - Google Patents
一种高鲁棒性低延迟的无线传感网路由方法 Download PDFInfo
- Publication number
- CN106851766B CN106851766B CN201710120547.9A CN201710120547A CN106851766B CN 106851766 B CN106851766 B CN 106851766B CN 201710120547 A CN201710120547 A CN 201710120547A CN 106851766 B CN106851766 B CN 106851766B
- Authority
- CN
- China
- Prior art keywords
- node
- current
- packet
- path
- data
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种高鲁棒性低延迟的无线传感网路由方法,包括网络初始化,周期探测,路径发现,数据转发几个阶段,有以下步骤:基站发出初始化包,节点收到初始化包,建立邻居节点集,周期广播探测包;节点等待随机时间,回复探测ACK包;更新邻居节点集;当需要发送数据时,启动路径发现,寻找一条快速通往目的节点的路径,目的节点收到探测后做出回应,确认路径已经沿途的协助节点,并最终将确认返回源节点,源节点根据探测的结果发送数据,沿途每个节点根据探测的信息以及延迟信息做出决策,最终将数据发送至目的节点。本方法利用可靠的路径发现降低了平均端到端延迟,利用各种容错机制,保证延迟的基础上提高了鲁棒性,并且不需要同步,减少了同步开销。
Description
技术领域
本发明涉及无线传感器网络技术领域,具体涉及一种能够适应各种网络环境的低延迟无线传感网路由方法。
背景技术
近年来,传感器技术飞速发展,芯片集成度日益提升,产生了很多低功耗,功能强大的传感器,使得他们在极小的体积内可以提供数据采集,信息计算,数据通信等功能,同时种类也十分繁多,可以采集多种信息。无线传感网就是由这些传感器节点组成,他们使用无线模块相互通信,根据制定好的协议,自组织成网络,将目标数据进行采集,再通过一定的策略,将数据传输回服务器。因此无线传感网具有广阔的应用前景,如环境监测和预报、医疗护理、监控、交通、工业控制等。其中,很多应用都对延迟性和鲁棒性提出了挑战,例如,在工业控制无线传感网中,延迟可能带来直接经济损失,又如环境监控,很多紧急情况需要迅速处理。而这些环境往往伴随着对鲁棒性的需求,网络条件往往会比较差,面临严寒,很高的湿度或严重的粉尘。
路由协议是无线传感器网络中最重要的部分,也是当今国内外研究的热点之一,想要适应不同的工作环境,完成相应的任务,最重要的部分就是设计相应的路由协议,使网络可以工作在各种各样的环境下,保持较好的延迟表现,并且具有一定的鲁棒性,不会因为环境的恶劣而损失太多的性能。而目前现有的协议往往都是侧重于一个方面的性能,例如,为了达到能量利用率的最优而造成延迟较长,典型的例子是机会路由,机会路由充分利用无线网络的广播传输特性,每次数据包都转发给一组节点,这些节点根据它们到目的节点的度量(Metric)来确定它们优先级,选择优先级最高的那个节点再次转发数据包给另外一组节点,如此重复直到目的节点。这类方法往往有较好的能耗表现,有一定的鲁棒性,但是延迟表现难以满足要求。或者为了达到延迟最短而损失了鲁棒性,当网络环境变化时不能很好的适应。如按需路由协议,如AODV,DSR等。仅当源节点需要到目的节点的路由信息发送数据时,源节点才发起创建路由。这类协议鲁棒性较差,不适合复杂环境。
综上所述,目前的路由协议不能满足对这类需求满足的不是很好,人们需要一种可以在复杂多变的环境下保持较好的延迟表现的路由协议。
发明内容
针对上述方法的缺点和不足,以及实际应用中此类场景的需求,本发明旨在设计一种实时性强,延迟低同时又具有一定的鲁棒性,可以适应各种复杂的环境,在恶劣的条件中具有一定的抗逆性的数据传输协议。本发明利用探测寻路找到一条源节点到目的节点的大概路径和一些协助节点,并对延迟进行评估,根据这些信息,快速有效的容错的将数据从源节点发送到目的节点。本方法充分利用机会路由的优势,使一部分节点参与协作,并根据延迟动态使用多副本传输,达到延迟低鲁棒性好的目的。
一种高鲁棒性低延迟的无线传感网路由方法,包括无线传感器网络的初始化和工作阶段;
所述无线传感器网络的初始化包括:
步骤11,在无线传感器网络中部署若干传感器节点,使所有传感器节点上电;设传感器节点中的网关节点为sink节点;
步骤12,从sink节点开始,依次对所有节点进行初始化,并确定每个节点的最初邻居节点集;
所述工作阶段包括邻居节点周期数据交换和路径发现;
所述邻居节点周期数据交换包括:
依次将无线传感器网络中每个节点作为当前探测节点i;
步骤21,该当前探测节点i在时刻ts时发送一个探测广播包,其中i为大于等于0的正整数,0≤Tp≤5s;
步骤22,设无线传感器网络中任一收到探测广播包的节点为节点j,节点j在延迟Tr后向当前探测节点i发送一个探测ACK包,其中j为大于等于0的正整数,0≤Tr≤2s,i≠j;
当前探测节点i在时刻tr收到节点j发送的探测ACK包后,通过式(1)得到节点j到当前探测节点i的延迟时间Ti,j;
其中,i为探测节点的ID,j为向探测节点回复探测ACK包的节点的ID;
所述路径发现包括:
步骤31,历史探测阶段:
若无线传感器网络中的任一节点有发送数据需求时,该节点查询是否在时间Ta内存在该节点使用过的路径,如果存在,则选择该节点使用过的路径发送数据;否则,转到步骤32;其中,0≤Ta≤20s;
步骤32,路径探测阶段:
设有发送数据需求的节点为源节点,最终接收数据的节点为目的节点;
步骤321,源节点发出一个路径探测包ps,路径探测包ps包括序列号;
步骤322,设发出路径探测包ps的节点为当前发出节点,任一接收到路径探测包ps的节点为当前接收节点;
设当前接收节点在时刻ta时接收到路径探测包ps,则将当前接收节点在时刻ta之前接收过的所有路径探测包的序列号的最大值作为当前序列号;
若该当前接收节点的当前跳数大于阈值MaxHop或者路径探测包ps的序列号不大于当前序列号,则丢弃该路径探测包ps;否则,更新当前序列号,并判断该当前接收节点是否为目的节点,如果该当前接收节点是目的节点,执行步骤33,否则执行步骤323;
其中,5≤MaxHop≤7;
步骤323,设当前发出节点为Ni,i为大于等于0的正整数,则当前发出节点的邻居节点集Si;设当前接收节点为Nj,j≠i,j为大于等于0的正整数,则当前接收节点的邻居节点集Sj,对Si和Sj通过交集运算得到公共节点集CSi,j,CSi,j=Si∩Sj;
步骤324,遍历CSi,j中的每个节点,对于任意一个节点Nk,如果Pik>Pij,Pkj>Pij,则将Nk加入协助节点集Aij中;
步骤325,设置退避时间定时器,所述退避时间定时器的定时时长为Tback;
其中,Hop是当前接收节点的跳数,τ是基本单位时间;
当退避时间定时器的时长到时,将当前接收节点的ID加入路径探测包ps,当前接收节点发出路径探测包ps;
步骤326,重复步骤322~325,直至所有无线传感器网络中的节点都被作为当前接收节点,执行步骤33;
步骤33,探测应答阶段,包括:
步骤331,当目的节点收到路径探测包ps时,若目的节点是第一次收到路径探测包ps,则执行步骤332;否则,丢弃该路径探测包ps;
步骤332,目的节点发出一个路径确认包pr;
步骤333,设任意一个收到路径确认包pr的节点为当前节点,若当前节点是第一次收到路径确认包pr,则执行步骤334;否则,丢弃该路径确认包pr;
步骤334,若该当前节点是路径探测包ps经过的上游节点,则执行步骤335;否则,丢弃路径确认包pr;
步骤335,将该当前节点标记为导航节点,将该当前节点的上游节点以及该当前节点的协助节点集放入路径确认包pr中,当前节点发出该路径确认包pr;
步骤336,重复步骤333~335,直到当前节点为源节点,执行步骤4;
步骤4,数据转发阶段,包括:
步骤41,源节点发出一个数据包;
步骤42,设发送数据包的节点为当前发送数据节点,若当前数据节点的下一跳导航节点的平均延迟时间Td优于当前发送数据节点的协助节点集中的每个节点,则将协助节点集中平均延迟时间Td最优的节点和下一跳导航节点设置为最高优先级,协助节点集中的其余节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;否则,将下一跳导航节点设置为最高优先级,协助节点集中的节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;
步骤43,将当前发送数据节点的下一跳导航节点、当前发送数据节点的协助节点集加入数据包,当前发送数据节点发送该数据包;
步骤44,将收到数据包的任一节点作为当前收到数据节点,当前收到数据包的节点从数据包中查找自己的ID,如果找到,则确定该当前收到数据节点的优先级;否则,丢弃该数据包;
步骤45,设置一个时长为T(v)的定时器。
T(v)=(TSIFS+Td)*v
其中,TSIFS为链路层短帧间间隔帧时长,0≤TSIFS≤50us,Td为当前收到数据节点的平均延迟时间,v为优先级;
步骤46,当前收到数据节点在T(v)时间到时发送ACK,任何节点收到ACK后则抑制自己的正在进行的发送数据包的操作;
步骤47,当前收到数据节点发送数据包;
步骤48,重复步骤42~47,直到当前收到数据节点为目的节点为止。
本发明利用路径发现找到可靠的路径,并结合历史延迟经验,在数据传输时动态决策,使得数据包以最低的延迟流向目的节点,同时,利用协助节点和冗余数据保证一定的鲁棒性,可以使用于各种复杂的网络环境。优势具体体现在:
(1)相对于其他方法,本方法在端到端延迟上具有一定的优势,在相同的网络环境中,使用本方法可以达到更短的平均端到端延迟;
(2)相对于其他方法,本方法可以适用于多种网络环境,对恶劣的环境具有一定的抵抗能力,在网络环境发生变化时,依然能够保持比较好的数据传输效率;
(3)减少了重传,由于协助节点的存在,基本上杜绝了重传现象,只有所有节点都失效才会产生重传;
(4)不需要对时钟进行同步,本方法是一个异步方法,不要求所有节点工作在同一个时钟下,减少了同步开销和复杂度。
附图说明
图1为初始化广播包结构;
图2为探测广播包结构;
图3为探测广播包ACK结构;
图4为路径探测包结构;
图5为路径探测返回包结构;
图6为总体流程图;
图7为实施例1网络拓扑图;
图8为初始化过程流程图;
图9为更新邻居信息过程流程图;
图10为路径发现过程流程图;
图11为数据发送过程流程图。
以下结合附图和实施例对本发明作进一步说明。
具体实施方式
本发明是一种适用于各种环境的低延迟的路由方法,主要内容包括路径发现和数据传输两个步骤,发明思路是当有数据要发送时,先迅速探测找到一条大概的路径,确定一个大方向,然后在发数据的时候动态的小范围调整,使数据最快到达。总体流程图如图6,下面结合具体实例拓扑,对每个步骤进行说明。假设有某野外环境监测传感网,网络拓扑图如图7,需要说明的是,图7中所示网络拓扑是为了说明工作原理随机生成,图中的节点号在实际场景中可指代任意节点,其工作原理是相同的。
实施例1
初始化阶段:
在网络中部署如图7所示的节点,节点号从1-13,sink节点是网关节点,为方便描述,指定sink节点编号为0号。初始化过程流程图如图10。
步骤11,每个节点上电,除0号节点外,都处于待初始化状态,从0号节点开始,依次初始化,直到所有节点都完成初始化过程。
步骤12,0号节点发出一个初始化包,并把0号节点标记为已初始化,初始化包格式如图1。
步骤13,0号节点的邻居节点会收到该初始化包,即节点10,节点11,节点12会收到该初始化包,以12号节点为例,此时他的邻居节点集为空,所以他们将0号节点加入他们的邻居结点集。然后判断发现自己没有经历过初始化,则启动一个定时器,定时器时间为2.28s,并将12号节点标记为已初始化。
步骤14,当定时器时间到,12号节点将初始化包中的节点设置为12,并发送该初始化包。
步骤15,12号节点设置一个30s的定时器,定时器的时间到时进入正常工作阶段。
此时12号节点的邻居节点7,8,11,0都会收到来自12号节点的初始化包,他们会把12号节点加入自己的邻居节点集,然后判断自己是否已经经历过初始化,如步骤S13中描述。这样通过传递的方式,最后图中每个节点都经过了初始化,并且拥有了最初的邻居节点集。
所述工作阶段包括邻居节点周期数据交换和路径发现;
本发明需要邻居节点集的信息以及相关的链路延迟信息,所以需要定期的发送探测包,根据探测包返回的结果更新相关的信息,由于无线传感网中,尤其是野外等恶劣环境,无线链路稳定性比较差,所以更需要周期探测以保证链路情况可知,进而保证低延迟。
所述邻居节点周期数据交换包括:
步骤21,依次将无线传感器网络中每个节点作为当前探测节点i,该当前探测节点i在时刻ts时发送一个探测广播包,其中i为大于等于0的正整数,0≤Tp≤5s;
步骤22,设无线传感器网络中任一收到探测广播包的节点为节点j,节点j在延迟Tr后向当前探测节点i发送一个探测ACK包,其中j为大于等于0的正整数,0≤Tr≤2s,i≠j;
当前探测节点i在时刻tr收到节点j发送的探测ACK包后,通过式(1)得到节点j到当前探测节点i的延迟时间Ti,j;
其中,i为探测节点的ID,j为向探测节点回复探测ACK包的节点的ID;
以节点8为例,如图所示,当节点8的探测周期到时,节点8以周期Tp发送一个探测广播包,其中Tp=5s。节点8的邻居节点为节点4,节点6,节点7,节点11,节点12,则他们会收到这个探测广播包。
节点4,节点6,节点7,节点11,节点12收到这个探测广播包的Tr后,向节点8回复一个探测ACK包,以节点4为例,Tr为1.48s。当节点4收到探测广播包的1.48s后,节点4回复一个探测ACK包。
当节点8收到探测ACK包后,根据探测ACK包中所携带的信息,计算出节点8到节点4本次的链路延迟,然后再迭代计算平均延迟,节点只保持10次探测的平均延迟,当第11次探测返回结果时,会将第一次的值丢弃。
每个节点都会周期的发送自己的探测广播包,由于节点上电的时间是随机的,而且每个节点收到探测广播包都会退避一个随机时间Tr,所以可以减少碰撞,使探测尽量均匀分布。
当节点的邻居节点出现故障,或者由于其他原因导致链路变差,又或是节点进入休眠,都会使得探测包丢包,此时,节点无法收到返回的探测ACK包,例如,节点8的下一条节点4如果失效,此时,节点8收不到返回的信息,则节点8在第二个周期发送前,即第二个5s时间到,发现自己上一个周期还有未返回的探测ACK包,则将4号节点的延迟记为5s,即最长时间,表示不可达。
路径发现:
路径发现旨在寻找一条大概的路径,为数据发送做指导,但是,因为其按需发送的特性,每次数据发送之前才进行,为了保证总延迟尽量低,应该尽量迅。流程图如图10,具体实施步骤如下,同样以图7拓扑为例。假设图中1号节点要给sink(0号)节点发送数据。
历史探测阶段:
步骤31,任何一个节点有发送数据需求时,首先进入历史查询阶段。以节点1为例,1号节点在本地缓存中查找是否有近期已使用过的路径,如果有,返回该路径,如果没有,进入路径探测阶段(S32)。
路径探测阶段:
步骤32,1号节点按照下述方法寻找一条到目的节点的路径。
步骤321,1号节点发出一个路径探测包(RREQ),记为ps,该路径探测包结构如图4,路径探测包ps包括序列号。
步骤322,设发出路径探测包ps的节点为当前发出节点,任一接收到路径探测包ps的节点为当前接收节点;
设当前接收节点在时刻ta时接收到路径探测包ps,则将当前接收节点在时刻ta之前接收过的所有路径探测包的序列号的最大值作为当前序列号;
若该当前接收节点的当前跳数大于阈值MaxHop(5-7)或者路径探测包ps的序列号小于当前序列号,则丢弃该路径探测包ps;否则,判断该当前接收节点是否为目的节点,如果该当前接收节点是目的节点,执行步骤33,否则执行步骤323;
序列号为标识本次路径探测的唯一值,由源节点给出,且随源节点发起探测的时间增大;当前序列号为节点处理过的路径探测包的序列号的最大值。
本实施例中,节点2,3,4,5会收到1号节点的路径探测包ps,且跳数为1,自己不是目标节点。
步骤323,设当前发出节点为Ni(i为大于等于0的正整数),则当前发出节点的邻居节点集Si;设当前接收节点为Nj(j≠i,j为大于等于0的正整数),则当前接收节点的邻居节点集Sj,对Si和Sj通过交集运算得到公共节点集CSi,j,CSi,j=Si∩Sj;
本实施例中,以节点4为例,收到节点1的路径探测包ps,将自己视为导航节点,得知节点3和节点5为公共邻居节点。
步骤324,遍历CSi,j中的每个节点,对于任意一个Nk,如果Pik>Pij,Pkj>Pij,则将Nk加入协助节点集,记为Aij。例如,如果Pij为0.4,则节点3,节点5都是协助节点。
步骤325,设置退避时间定时器,时长为Tback,Tback的值用下面的公式进行计算。
其中,Hop是当前接收节点的跳数,τ是基本单位时间(由网络设备决定),当定时器时间到时,当前接收节点的ID加入路径探测包ps,当前接收节点发出路径探测包ps。此时,计算得Tback=0.54τ。
步骤326,重复步骤322~3256,直至所有无线传感器网络中的节点都被作为当前接收节点,执行步骤33;
同样的,收到1号节点探测包的2,3,5也进行同样的过程,计算一个退避时间,当时间到时,发送路径探测广播包。
此时,如果假设4号节点退避时间最短,则最先发送广播包,这样四号节点的邻居最先收到,这样迭代的,可以产生一条路径,如1->4->8->10->sink。这条路径是本次探测产生的最快的路径。
步骤33,探测应答阶段,包括:
目标节点对收到的路径探测信息做出回应,确认选中的路径以及帮助节点,通过确认信息完成路径构建,具体步骤结合例子说明。
步骤331,当目的节点收到路径探测包ps时,若目的节点是第一次收到路径探测包ps,则执行步骤332;否则,丢弃该路径探测包ps;
本实施例中,0号节点接收到探测包,发现自己是第一次收到路径探测包ps,所以,发出一个路径确认包(RREP)。
步骤332,目的节点发出一个路径确认包pr(RREP),格式如图5。
步骤333,设任意一个收到路径确认包pr的节点为当前节点,若当前节点是第一次收到路径确认包pr,则执行步骤334;否则,丢弃该路径确认包pr;
本实施例中,12,11,10号节点都会收到0好节点发出的RREP包,并且此时都是第一次收到该RREP包。
步骤334,若该当前节点是路径探测包ps经过的上游节点,则执行步骤335;否则,丢弃路径确认包pr;
延用之前的假设,RREQ包是延路径1->4->8->10->0到达的目的节点。所以节点10是路径探测包ps经过的上游节点,节点11,12不是。所以节点10执行S33-5,节点11,12丢弃路径确认包pr。
步骤335,将该当前节点标记为导航节点,将该当前节点的上游节点以及该当前节点的协助节点集放入路径确认包pr中,当前节点发出该路径确认包pr;
本实施例中,节点10重新装填RREP包,并发出该RREP包。
步骤336,重复步骤333~335,直到当前节点为源节点,执行步骤4。
按照此步骤,节点10的下一跳节点也会以相同的策略进行处理,即节点8会发送信息,最后,按照0->10->8->4->1的次序返回到开始探测的节点1。最终,节点1会得到3,4,5为下一跳节点,4为导航节点。节点4会知道自己是导航节点,并且知道3和5是帮助节点,依次类推,每个节点都知道下一跳的节点集合。这样,就可以在数据发送的时候快速的做出决策。
步骤4,数据转发阶段,包括:
根据路径探测阶段所返回的结果,节点将数据发送出去,每个收到数据的节点根据自身的信息做出判断,有的将数据丢弃,有的将数据转发,最后数据成功的发送至目标节点,下面还是以网络拓扑7为例,具体说明数据转发过程。
步骤41:源节点从路径确认包pr中得到下一跳导航节点Ni和协助节点集Aij。
本实施例中,节点1得到其下一跳导航节点为节点4,协助节点为节点3和节点5。
步骤42:设发送数据包的节点为当前发送数据节点,若当前数据节点的下一跳导航节点的平均延迟时间Td优于当前发送数据节点的协助节点集中的每个节点,则将协助节点集中平均延迟时间Td最优的节点和下一跳导航节点设置为最高优先级,协助节点集中的其余节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;否则,将下一跳导航节点设置为最高优先级,协助节点集中的节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;
步骤43,将当前发送数据节点的下一跳导航节点、当前发送数据节点的协助节点集加入数据包,当前发送数据节点发送该数据包;
本实施例中假设最高优先级的节点只有一个,也就是不启用多播时,设置4号节点优先级为0,3号节点优先级为1,5号节点优先级为2。
步骤44,将收到数据包的任一节点作为当前收到数据节点,当前收到数据包的节点从数据包中查找自己的ID,如果找到,则确定该当前收到数据节点的优先级;否则,丢弃该数据包;
本实施例中,当2号节点收到该包时,发现自己不是协助节点也不是导航节点,所以丢弃该包。
步骤45,设置一个时长为T(v)的定时器。
T(v)=(TSIFS+Td)*v
其中,TSIFS为链路层短帧间间隔帧时长,Td为当前收到数据节点的平均延迟时间,v为优先级;
在步骤43中,3,4,5号节点得到了自己的优先级,设置定时器时间,假设TSIFS为50us,Td为100us,则4号节点的退避时间为0,3号节点的退避时间为150us,5号节点的退避时间为300us。
步骤S46,当前收到数据节点在T(v)时间到时发送ACK,任何节点收到ACK后则抑制自己的正在进行的发送数据包的操作;
步骤47,当前收到数据节点发送数据包;
本实施例中,4号节点优先级最高,最先发送数据包。
上述实施例是不启用多播的情况,下面说明当启用多播的时候的情况:假设4号节点不是平均延迟最优的节点,此时,延迟最优的节点和导航节点将同时拥有最高优先级0,即节点3和节点4拥有最高优先级0,当他们收到数据包后都会迅速返回ACK抑制其他节点,然后根据自己所掌握的下一跳信息对数据进行转发,由于链路延迟不同,他们碰撞的概率不大,同时,由于他们都是协助节点或者导航节点,所以数据不会发向错误的方向。通过这种多播,避免了由于偶然原因导致的探测路径不是最优路径的情况。
另外,当数据转发发生偶然丢包或者链路质量突变时,本方法不会产生重传,所以,延迟情况可以得到保障。下面举例说明。
例如当节点4失效时,则他虽然是理想的下一跳节点,但是他无法收到1号节点传来的信息,此时,这种错误会被优先级靠后的节点所修正,此时,例如3号节点没有失效,它将收到数据并启动优先级为1的定时器,由于没有比他更高优先级的ACK压制,所以它的定时器将会到时,并发送ACK压制5号节点,随后他将转发数据。由此可知,只有当所有导航节点和所有协助节点都失效时,才会产生重传,大大减少了重传概率,进而降低了延迟,提升了鲁棒性。
Claims (1)
1.一种高鲁棒性低延迟的无线传感网路由方法,包括无线传感器网络的初始化和工作阶段;
所述无线传感器网络的初始化包括:
步骤11,在无线传感器网络中部署若干传感器节点,使所有传感器节点上电;设传感器节点中的网关节点为sink节点;
步骤12,从sink节点开始,依次对所有节点进行初始化,并确定每个节点的最初邻居节点集;
其特征在于:
所述工作阶段包括邻居节点周期数据交换和路径发现;
所述邻居节点周期数据交换包括:
依次将无线传感器网络中每个节点作为当前探测节点i;
步骤21,该当前探测节点i在时刻ts时发送一个探测广播包,其中i为大于等于0的正整数;
步骤22,设无线传感器网络中任一收到探测广播包的节点为节点j,节点j在延迟Tr后向当前探测节点i发送一个探测ACK包,其中j为大于等于0的正整数,0≤Tr≤2s,i≠j;
当前探测节点i在时刻tr收到节点j发送的探测ACK包后,通过式(1)得到节点j到当前探测节点i的延迟时间Ti,j;
其中,i为探测节点的ID,j为向探测节点回复探测ACK包的节点的ID;
所述路径发现包括:
步骤31,历史探测阶段:
若无线传感器网络中的任一节点有发送数据需求时,该节点查询是否在时间Ta内存在该节点使用过的路径,如果存在,则选择该节点使用过的路径发送数据;否则,转到步骤32;其中,0≤Ta≤20s;
步骤32,路径探测阶段:
设有发送数据需求的节点为源节点,最终接收数据的节点为目的节点;
步骤321,源节点发出一个路径探测包ps,路径探测包ps包括序列号;
步骤322,设发出路径探测包ps的节点为当前发出节点,任一接收到路径探测包ps的节点为当前接收节点;
设当前接收节点在时刻ta时接收到路径探测包ps,则将当前接收节点在时刻ta之前接收过的所有路径探测包的序列号的最大值作为当前序列号;
若该当前接收节点的当前跳数大于阈值MaxHop或者路径探测包ps的序列号不大于当前序列号,则丢弃该路径探测包ps;否则,更新当前序列号,并判断该当前接收节点是否为目的节点,如果该当前接收节点是目的节点,执行步骤33,否则执行步骤323;
其中,5≤MaxHop≤7;
步骤323,设当前发出节点为Ni,i为大于等于0的正整数,则当前发出节点的邻居节点集Si;设当前接收节点为Nj,j≠i,j为大于等于0的正整数,则当前接收节点的邻居节点集Sj,对Si和Sj通过交集运算得到公共节点集CSi,j,CSi,j=Si∩Sj;
步骤324,遍历CSi,j中的每个节点,对于任意一个节点Nk,如果Pik>Pij,Pkj>Pij,则将Nk加入协助节点集Aij中,Pij为节点i向节点j发送数据包的成功率;Pik为当前发出节点Ni到节点Nk的发送数据包的成功率,Pkj为节点Nk到当前接收节点Nj的发送数据包的成功率;
步骤325,设置退避时间定时器,所述退避时间定时器的定时时长为Tback;
其中,Hop是当前接收节点的跳数,τ是基本单位时间,Tp为邻居节点探测周期,0≤Tp≤5s;
当退避时间定时器的时长到时,将当前接收节点的ID加入路径探测包ps,当前接收节点发出路径探测包ps;
步骤326,重复步骤322~325,直至所有无线传感器网络中的节点都被作为当前接收节点,执行步骤33;
步骤33,探测应答阶段,包括:
步骤331,当目的节点收到路径探测包ps时,若目的节点是第一次收到路径探测包ps,则执行步骤332;否则,丢弃该路径探测包ps;
步骤332,目的节点发出一个路径确认包pr;
步骤333,设任意一个收到路径确认包pr的节点为当前节点,若当前节点是第一次收到路径确认包pr,则执行步骤334;否则,丢弃该路径确认包pr;
步骤334,若该当前节点是路径探测包ps经过的上游节点,则执行步骤335;否则,丢弃路径确认包pr;
步骤335,将该当前节点标记为导航节点,将该当前节点的上游节点以及该当前节点的协助节点集放入路径确认包pr中,当前节点发出该路径确认包pr;
步骤336,重复步骤333~335,直到当前节点为源节点,执行步骤4;
步骤4,数据转发阶段,包括:
步骤41,源节点发出一个数据包;
步骤42,设发送数据包的节点为当前发送数据节点,若当前数据节点的下一跳导航节点的平均延迟时间Td优于当前发送数据节点的协助节点集中的每个节点,则将协助节点集中平均延迟时间Td最优的节点和下一跳导航节点设置为最高优先级,协助节点集中的其余节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;否则,将下一跳导航节点设置为最高优先级,协助节点集中的节点按照每个节点的平均延迟时间Td排序每个节点的优先级v;
步骤43,将当前发送数据节点的下一跳导航节点、当前发送数据节点的协助节点集加入数据包,当前发送数据节点发送该数据包;
步骤44,将收到数据包的任一节点作为当前收到数据节点,当前收到数据包的节点从数据包中查找自己的ID,如果找到,则确定该当前收到数据节点的优先级;否则,丢弃该数据包;
步骤45,设置一个时长为T(v)的定时器;
T(v)=(TSIFS+Td)*v
其中,TSIFS为链路层短帧间间隔帧时长,0≤TSIFS≤50us,Td为当前收到数据节点的平均延迟时间,v为优先级;
步骤46,当前收到数据节点在T(v)时间到时发送ACK,任何节点收到ACK后则抑制自己的正在进行的发送数据包的操作;
步骤47,当前收到数据节点发送数据包;
步骤48,重复步骤42~47,直到当前收到数据节点为目的节点为止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120547.9A CN106851766B (zh) | 2017-03-02 | 2017-03-02 | 一种高鲁棒性低延迟的无线传感网路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710120547.9A CN106851766B (zh) | 2017-03-02 | 2017-03-02 | 一种高鲁棒性低延迟的无线传感网路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106851766A CN106851766A (zh) | 2017-06-13 |
CN106851766B true CN106851766B (zh) | 2020-07-31 |
Family
ID=59138745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710120547.9A Active CN106851766B (zh) | 2017-03-02 | 2017-03-02 | 一种高鲁棒性低延迟的无线传感网路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106851766B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108882333B (zh) * | 2018-04-27 | 2020-10-20 | 上海海事大学 | 一种基于发送探测包的自适应性路径信息的收集方法 |
CN108989223B (zh) * | 2018-06-13 | 2021-09-03 | 昆宇蓝程(北京)科技有限责任公司 | 一种强链路约束条件下的卫星路由方法 |
CN111246534B (zh) * | 2018-11-28 | 2021-11-09 | 中国科学院声学研究所 | 一种不需要时钟同步的水下移动节点网络自组织方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635975A (zh) * | 2009-08-04 | 2010-01-27 | 西北大学 | 无线传感器网络数据收集路由方法及装置 |
CN101924605A (zh) * | 2010-08-17 | 2010-12-22 | 重庆大学 | 基于物理层网络编码的两跳协作传输方法 |
-
2017
- 2017-03-02 CN CN201710120547.9A patent/CN106851766B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101635975A (zh) * | 2009-08-04 | 2010-01-27 | 西北大学 | 无线传感器网络数据收集路由方法及装置 |
CN101924605A (zh) * | 2010-08-17 | 2010-12-22 | 重庆大学 | 基于物理层网络编码的两跳协作传输方法 |
Non-Patent Citations (2)
Title |
---|
Efficient Computation of Robust Average of Compressive Sensing Data in Wireless Sensor Networks in the Presence of Sensor Faults;Chun Tung Chou等;《IEEE》;20130831;第24卷(第8期);全文 * |
ODR:一种基于传输方向的无线传感器网络机会路由算法;刘晨等;《小型微型计算机系统》;20121031(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106851766A (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070248067A1 (en) | 802.11 mesh architecture | |
CN106851766B (zh) | 一种高鲁棒性低延迟的无线传感网路由方法 | |
TWI499327B (zh) | 於包含無電池群蜂裝置之網路中通信的方法及其網路與裝置 | |
WO2011140877A1 (zh) | 路由转发方法、路由节点及无线通信网络 | |
WO2020156340A1 (zh) | 一种传输数据的方法及装置 | |
WO2003084129A1 (fr) | Procede de collecte de donnees de topologie de reseau | |
Clausen et al. | Multipoint-to-Point and Broadcast in RPL | |
CN105025545B (zh) | 基于竞争转发的适用于无线网络的路由方法 | |
CN110493885B (zh) | 一种针对数据分片的命名数据网络连续数据推送方法 | |
CN101860981B (zh) | 无线传感器网络的路由方法及系统 | |
Guo et al. | Reliable routing in large scale wireless sensor networks | |
CN102098729B (zh) | 无线网络中树状骨干结构构造方法及相关分组转发方法 | |
Xu et al. | Study on WSN topology division and lifetime | |
Guruswamy et al. | A novel efficient rebroadcast protocol for minimizing routing overhead in mobile ad-hoc networks | |
Herberg et al. | Study of multipoint-to-point and broadcast traffic performance in the “IPv6 Routing Protocol for Low Power and Lossy Networks” | |
CN114040407B (zh) | 一种基于路由回路的虫洞攻击检测与定位方法 | |
Chung | An energy-efficient unicast routing protocol for wireless sensor Networks | |
CN104540182B (zh) | 具有能量捕获特性的无线传感网时延最小化路由选择方法 | |
Bheemalingaiah et al. | Power-aware node-disjoint multipath source routing with low overhead in MANET | |
CN114189898B (zh) | 一种基于RPL路由协议的IPv6无线传感网点对点路由方法 | |
US11457506B2 (en) | Adaptive multipath routing failure recovery in a wireless network | |
Kishore et al. | Multipath Dynamic Source Routing Protocol for Mobile Ad hoc Networks | |
Sulaiman et al. | A Neighbour Coverage-Based Rebroadcast in MANETs Based on Energy Efficient Rebroadcast Probability | |
Wu et al. | A-smart: An advanced controlled-flooding routing with group structures for delay tolerant networks | |
Mank et al. | Mac protocols for wireless sensor networks: Tackling the problem of unidirectional links |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |