一种基于双路径传输的数据采集方法转让专利

申请号 : CN201210255689.3

文献号 : CN102821420B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘昊安钢蒋富龙吴建辉

申请人 : 东南大学

摘要 :

本发明公开了一种基于双路径传输的数据采集方法,该方法节点首先在启动时入网,通过侦听信道并且接受同步包来获得它周围邻居节点的信息,组成邻居列表,然后根据邻居列表选出侦听时槽,信道以及广播帧编号实现入网;节点入网后会在自己选的帧编号的那一帧的第零时槽广播同步包,并且在每一帧的所选时槽进行侦听信道;当网络中有数据要进行传输时,可以迅速建立起从源节点到目的节点的双路径传输,形成pipeline,因为本方法完全利用了网络带宽,故数据包将以极快的速度进行传输,传输完数据包之后,网络中的节点又会进入低能耗侦听状态。本方法不但适用于大量数据采集的情况,也同样适用于数据量不大,但实时性要求较高的场合。

权利要求 :

1.一种基于双路径传输的数据采集方法,其特征在于:该方法节点各个阶段的通信流程包括如下步骤:

1)网络当中的所有节点在首次启动后必须经过入网过程才能参与数据包传输,汇聚节点一开始就处于入网状态,它选择第零帧的第零时槽为自己的广播时槽,进行同步包的广播,其他节点在收到第一个同步包后侦听信道一轮,然后建立邻节点列表,进入步骤2);

2)节点根据建立的邻节点列表的信息,选择自己的侦听信道,侦听时槽并且根据两跳着色算法选出广播帧编号,即节点组成双路径pipeline所需的必要配置信息,此时节点首次具有了发送功能,然后进入步骤3);

3)节点向外广播自己启动后的第一个同步包,如果同步包广播成功则说明已经入网成功,进入步骤4),否则进入步骤2);

4)源节点每个时槽都检测是否有数据包要发送,如果没有数据包要发送,则睡去,如果有数据包要发,在它的上一跳先唤醒的节点中选择一个节点准备进行数据发送,则进入步骤6);

5)对于接收节点,会在其侦听时槽中间某一时刻醒来侦听信道,如果没有数据包传输,则睡去,如果发现有数据包发来,则进入步骤6);

6)此时,进入两个节点在单个时槽内部的数据包传输流程,其过程如下:

61)首先,发送节点在目标节点的唤醒时槽跳转到目标节点的信道上并且发送一个短的前导包序列,用于提示目标节点有数据传输,进入步骤62);

62)目标节点在自己的侦听时槽的中间某一时刻在侦听信道上唤醒,通过低能耗侦听进行信道轮询,如果轮询发现没有数据传输,则进入63),如果有数据传输,则进入64);

63)节点侦听信道后发现没有数据传输,节点睡去,本周期数据传输结束;

64)节点保持唤醒状态,直到接收到发送节点传来的Data包然后发送ACK确认帧,节点睡去,数据包成功接收,对于发送节点,收到此ACK帧,则表示数据包成功传输然后节点睡去,进入步骤7);

7)下一时槽,源节点信道号加1,并在它的上一跳后唤醒的节点中选择一个节点进行发送,同时,先唤醒的节点将刚收到的数据包向上一跳继续转发,然后进入步骤8);

8)下一时槽源节点信道号仍然加1并在它的上一跳先唤醒的节点中选择一个节点进行发送,中间转发节点则信道号加2,然后向它的上一跳节点转发收到的数据包重复步骤

7)和步骤8)直到数据包沿此双路径pipeline成功传到汇聚节点,当传输过程中产生数据包丢失的情况时进入步骤9);

9)发生丢包后,接收节点不会给发送节点回复ACK帧,没有收到ACK帧,发送节点就知道数据包发送不成功,于是会在下一次重新发送这个数据包;而对于接收节点,它没有成功接收到数据包,会在本地生成一个空的Dummy包,继续向上一跳转发,以维持pipeline的正常运行。

说明书 :

一种基于双路径传输的数据采集方法

技术领域

[0001] 本发明属于无线传感器网络领域,特别涉及一种基于双路径传输数据的大量数据的快速采集方法。

背景技术

[0002] MAC协议处于网络协议的底层部分,它决定无线信道的使用方式,对无线传感器网络的性能有极大影响,是保证无线传感器网络高效通信的关键网络协议之一。
[0003] 随着WSN网络应用的发展,网络中传输的数据已不再局限于小量数据的收集,目前发展的无线传感器网络中单个节点在突发情况下可能会要求传输大量的数据,比如监控应用中,节点可能会对视频数据进行收集。在这种情况下,如何将大量数据尽可能快速准确地传给目标节点就成为一个值得关注的问题。
[0004] 由于无线传感器网络中各个节点出于能耗方面的考虑是处于周期性的睡眠侦听中的,而数据从源节点到目的节点通常要经过许多跳才能传达,这将导致非常大的延迟,很难满足一些无线传感器网络应用对于数据传输的要求。D-MAC协议以前的协议,比如S-MAC、T-MAC等协议在长链状拓扑结构的网络中都面临数据转发中断问题。由于多跳路径中的节点并不能根据串听了解到路径中的数据传输,所以面临相当大的睡眠延时。D-MAC构建了一条Pipeline传输链路,可以使一个数据包无延迟地传输。但是,D-MAC作为单信道的MAC协议,又面临很多限制,其最大的缺点是为了避免中间的转发节点出现相互干扰的情况,源节点发送多个数据包时,必须间隔开多个时槽才能发送第二个数据包。这又使得往来帐包与包的延迟增大,影响了网络吞吐量。
[0005] LEMR-multichannel是为解决无线传感器网络中实时多媒体方面的应用而设计的。其在D-MAC的基础上加入了多信道机制,利用顺序信道跳转思想,避免同一路径前后两股数据流之间的干扰,这样就解决了D-MAC对于网络带宽的限制,使得单链上的连续数据传输可以达到最优化。但是,LEMR-multichannel也有一个十分明显的缺点,那就是由于只有一条数据包传输路径,源节点必须间隔一个时槽才能发送第二个数据包,同时,目标节点也只有隔一个时槽才能接收到第二个数据包,这使得LEMR-multichannel在理想情况下也只能达到理论带宽的一半。

发明内容

[0006] 本发明针对短时间内产生大量数据的突发场景,进行快速数据采集的应用场景,提供了一种空闲时采用低能耗侦听,大量数据传输时能够完全利用网络带宽,进行高效数据采集的方法。
[0007] 本发明采用的技术方案为:一种基于双路径传输的数据采集方法,该方法节点各个阶段的通信流程包括如下步骤:
[0008] 1)网络当中的所有节点在首次启动后必须经过入网过程才能参与数据包传输,汇聚节点一开始就处于入网状态,它选择第零帧的第零时槽为自己的广播时槽,进行同步包的广播,其他节点在收到第一个同步包后侦听信道一轮,然后建立邻节点列表。进入步骤2);
[0009] 2)节点根据建立的邻居列表的信息,选择自己的侦听信道,侦听时槽并且根据两跳着色算法选出广播帧编号,即节点组成双路径pipeline所需的必要配置信息,此时节点首次具有了发送功能,然后进入步骤3);
[0010] 3)节点向外广播自己启动后的第一个同步包,如果同步包广播成功则说明已经入网成功,进入步骤4),否则进入步骤2);
[0011] 4)源节点每个时槽都检测是否有数据包要发送,如果没有数据包要发送,则睡去,如果有数据包要发,在它的上一跳先唤醒的节点中选择一个节点准备进行数据发送,则进入步骤6)
[0012] 5)对于接收节点,会在其侦听时槽中间某一时刻醒来侦听信道,如果没有数据包传输,则睡去,如果发现有数据包发来,则进入步骤6);
[0013] 6)此时,进入两个节点在单个时槽内部的数据包传输流程,其过程如下:
[0014] 61)首先,发送节点在目标节点的唤醒时槽跳转到目标节点的信道上并且发送一个短的前导包序列,用于提示目标节点有数据传输,进入步骤62);
[0015] 62)目标节点在自己的侦听时槽的中间某一时刻在侦听信道上唤醒,通过低能耗侦听进行信道轮询,如果轮询发现没有数据传输,则进入63),如果有数据传输,则进入64);
[0016] 63)节点侦听信道后发现没有数据传输,节点睡去,本周期数据传输结束。
[0017] 64)节点保持唤醒状态,直到接收到发送节点传来的Data包然后发送ACK确认帧,节点睡去,数据包成功接收,对于发送节点,收到此ACK帧,则表示数据包成功传输然后节点睡去,进入步骤7);
[0018] 7)下一时槽,源节点信道号加1,并在它的上一跳后唤醒的节点中选择一个节点进行发送,同时,先唤醒的节点将刚收到的数据包向上一跳继续转发,然后进入步骤7);
[0019] 8)下一时槽源节点信道号仍然加1并在它的上一跳先唤醒的节点中选择一个节点进行发送,中间转发节点则信道号加2,然后向它的上一跳节点转发收到的数据包重复步骤7)、8)直到数据包沿此双路径pipeline成功传到汇聚节点,当传输过程中产生数据包丢失的情况时进入步骤9);
[0020] 9)发生丢包后,接收节点不会给发送节点回复ACK帧,没有收到ACK帧,发送节点就知道数据包发送不成功,于是会在下一次重新发送这个数据包;而对于接收节点,它没有成功接收到数据包,会在本地生成一个空的Dummy包,继续向上一跳转发,以维持pipeline的正常运行。
[0021] 本发明的快速数据采集应用的同步双路径并行传输方法中,节点首先在启动时入网,通过侦听信道并且接受同步包来获得它周围邻居节点的信息,组成邻居列表,然后根据邻居列表选出侦听时槽,信道以及广播帧编号实现入网;节点入网后会在自己选的帧编号的那一帧的第零时槽广播同步包,并且在每一帧的所选时槽进行侦听信道;当网络中有数据要进行传输时,可以迅速建立起从源节点到目的节点的双路径传输,形成pipeline,因为本方法完全利用了网络带宽,故数据包将以极快的速度进行传输。传输完数据包之后,网络中的节点又会进入低能耗侦听状态。
[0022] 有益效果:本发明方法与传统的MAC协议数据传输方案相比,具有以下明显优点:通过入网过程使不同跳数节点的唤醒时槽形成梯度分布,有效的避免了数据转发中断问题,以及数据发送时的流内干扰:通过采用双pipeline路径传输方式,解决了无线收发器半双工对数据传输效率的限制,使得网络带宽得到充分利用,网络吞吐量明显增大,批量数据采集的效率也明显提高;虽然是同步协议,但在时槽内部侦听信道时,采用低能耗侦听方式,有效地控制了本方法在网络空闲时的功耗。当数据转发时发生丢包情况时,本方法也有十分可靠的处理方式,提高了本方法在相对恶劣环境中运行的健壮性,提高了其适用范围。
[0023] (1)在传统的多信道同步协议中,进行大量数据包传输时,多跳节点之间会产生数据转发中断问题,导致非常大的延时,这会极大程度地降低数据采集的效率,还可能带来不必要的能量消耗,这在信道调度时有可能带来数据包的碰撞和重传,引起协议性能的下降使节点寿命降低。本发明方法中,节点在入网阶段通过根据各个节点的距离汇聚节点的跳数形成的双路径调度时槽梯度有效解决了数据转发中断问题,这样在数据采集时,数据包可以毫无延迟的经过多跳节点转发将数据包从源节点传递到汇聚节点,减小延迟的同时增大了网络吞吐量。
[0024] (2)本方法采用了双路径同时传输数据的方式进行数据采集,这解决了单双工无线收发器的限制,使得无线带宽得到完全利用。
[0025] (3)在随机撒布的环境中,节点所处的通信环境可能比较恶劣,从而导致节点通信状态不稳定,可能会发生丢包的情况,一般同步协议处理丢包的方法是,在下一时槽,或者下一周期重新发送,而本方法采用的是如果发生丢包,则接收节点还是会向上一跳节点发送一个空数据包,空包也会传递到汇聚节点,然后丢弃,这样做的好处是,可以维持网络的双路径pipeline不会因为丢包而断裂,从而保证了网络的可靠性。

附图说明

[0026] 图1为本发明方法整体流程图;
[0027] 图2为入网后各跳节点的状态分布;
[0028] 图3为节点加入网络过程图;
[0029] 图4为建立pipeline传输链路流程图;
[0030] 图5为一个时槽内部节点之间通信的流程图;
[0031] 图6为双路径数据采集的示意图。

具体实施方式

[0032] 下面结合附图和具体实施方式对本发明做进一步说明。
[0033] 如图1所示,本发明的无线传感器网络的批量数据快速采集方法,节点首先在启动时进行入网过程,入网时首先由汇聚节点发送第一个同步包,此时第一跳节点接收到此同步包,将同步包的信息存储到节点内部维护的邻节点列表当中,收到第一个同步包后,节点侦听信道一轮,然后节点就得知现在已经入网的所有邻节点的信息,并且将他们存入邻节点列表,此时,节点就可以通过两跳着色算法来选取自己的广播同步包所用的帧,侦听时槽,以及侦听信道,并且通过比较各个邻节点的跳数,节点可以确定自己距离汇聚节点的跳数。入网后节点的时槽,信道分配如图2所示,节点根据跳数形成双路径时槽调度梯度,并且根据所选跳数以及节点所处的跳数进行唤醒时槽的选取,唤醒时槽根据(1)式选择,这样双路径中处于不同路径的节点的唤醒信道也会不同,相同路径中的节点处于同一信道中。这样就形成了空闲状态下的pipeline数据传输链路,一旦有数据包从源节点产生,就会沿着此链路,无延迟地向汇聚节点传输并且节点进入数据采集状态,即发送过数据包的节点会在间隔一个时槽后再进行数据包发送,这样节点就可以不停地进行数据包转发,同时信道号会加二以避免数据包碰撞。当批量的数据包采集完成后,节点在没有包可发的情况下会退出数据采集状态,回到空闲的低能耗侦听状态。
[0034] ch_num=(slot_num mod 2)xor(hop_count mod 2) (1)
[0035] 其中,ch_num是选择的信道号,slot_num是入网选择的侦听时槽号,hop_count是入网时确定的节点跳数。
[0036] 网络中节点各个阶段的通信流程包括如下步骤:
[0037] 1)如图3所示,网络当中的所有节点在首次启动后必须经过入网过程才能参与数据包传输,汇聚节点一开始就处于入网状态,它选择第零帧的第零时槽为自己的广播时槽,进行同步包的广播,其他节点在收到第一个同步包后侦听信道一轮,然后建立邻节点列表。进入步骤2);
[0038] 2)节点根据建立的邻居列表的信息,选择自己的侦听信道,侦听时槽并且根据两跳着色算法选出广播帧编号,即节点组成双路径pipeline所需的必要配置信息,此时节点首次具有了发送功能,然后进入步骤3);
[0039] 3)节点向外广播自己启动后的第一个同步包,如果同步包广播成功则说明已经入网成功,进入步骤4),否则进入步骤2);
[0040] 4)如图4所示,源节点每个时槽都检测是否有数据包要发送,如果没有数据包要发送,则睡去,如果有数据包要发,在它的上一跳先唤醒的节点中选择一个节点准备进行数据发送,则进入步骤6)
[0041] 5)对于接收节点,会在其侦听时槽中间某一时刻醒来侦听信道,如果没有数据包传输,则睡去,如果发现有数据包发来,则进入步骤6);
[0042] 6)如图5所示,此时,进入两个节点在单个时槽内部的数据包传输流程,其过程如下:
[0043] 61)首先,发送节点在目标节点的唤醒时槽跳转到目标节点的信道上并且发送一个短的前导包序列,用于提示目标节点有数据传输,进入步骤62);
[0044] 62)目标节点在自己的侦听时槽的中间某一时刻在侦听信道上唤醒,通过低能耗侦听进行信道轮询,如果轮询发现没有数据传输,则进入63),如果有数据传输,则进入64);
[0045] 63)节点侦听信道后发现没有数据传输,节点睡去,本周期数据传输结束。
[0046] 64)节点保持唤醒状态,直到接收到发送节点传来的Data包然后发送ACK确认帧,节点睡去,数据包成功接收,对于发送节点,收到此ACK帧,则表示数据包成功传输然后节点睡去,进入步骤7);
[0047] 7)下一时槽,源节点信道号加1,并在它的上一跳后唤醒的节点中选择一个节点进行发送,同时,先唤醒的节点将刚收到的数据包向上一跳继续转发,然后进入步骤7);
[0048] 8)下一时槽源节点信道号仍然加1并在它的上一跳先唤醒的节点中选择一个节点进行发送,中间转发节点则信道号加2,然后向它的上一跳节点转发收到的数据包重复步骤7)、8),如图6所示,直到数据包沿此双路径pipeline成功传到汇聚节点,当传输过程中产生数据包丢失的情况时进入步骤9);
[0049] 9)发生丢包后,接收节点不会给发送节点回复ACK帧,没有收到ACK帧,发送节点就知道数据包发送不成功,于是会在下一次重新发送这个数据包;而对于接收节点,它没有成功接收到数据包,会在本地生成一个空的Dummy包,继续向上一跳转发,以维持pipeline的正常运行。
[0050] 应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。