CN109413706B - 预约多跳节点的同步rm-mac协议的实现方法 - Google Patents
预约多跳节点的同步rm-mac协议的实现方法 Download PDFInfo
- Publication number
- CN109413706B CN109413706B CN201811502947.7A CN201811502947A CN109413706B CN 109413706 B CN109413706 B CN 109413706B CN 201811502947 A CN201811502947 A CN 201811502947A CN 109413706 B CN109413706 B CN 109413706B
- Authority
- CN
- China
- Prior art keywords
- node
- frame
- nodes
- sleep
- stage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000001360 synchronised effect Effects 0.000 title claims abstract description 15
- 230000006854 communication Effects 0.000 claims abstract description 49
- 238000004891 communication Methods 0.000 claims abstract description 46
- 230000005540 biological transmission Effects 0.000 claims abstract description 36
- 230000007246 mechanism Effects 0.000 claims abstract description 22
- 238000005265 energy consumption Methods 0.000 claims abstract description 14
- 101100172132 Mus musculus Eif3a gene Proteins 0.000 claims abstract description 11
- 230000000737 periodic effect Effects 0.000 claims abstract description 8
- 230000008667 sleep stage Effects 0.000 claims description 32
- 230000000977 initiatory effect Effects 0.000 claims description 13
- 230000004622 sleep time Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 8
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002618 waking effect Effects 0.000 description 2
- 108700026140 MAC combination Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/005—Routing actions in the presence of nodes in sleep or doze mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/24—Connectivity information management, e.g. connectivity discovery or connectivity update
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种预约多跳节点的同步RM‑MAC协议的实现方法,属于无线通信技术领域,按照周期性的方式运行,且将每个工作周期划分为3个阶段:Sync,Reserve和Sleep。具体操作过程为:在Sync阶段,来自同一个虚拟簇的所有节点同步唤醒;在Reserve阶段,利用CSMA/CA竞争机制获得信道的节点及其后续节点通过发送几种控制帧预约未来的多跳节点,节点间按照预约时间进行数据通信。在Sleep阶段,节点关闭无线收发器进入睡眠模式。该协议有效减少了在无线传感器网络中进行多跳数据传输时的睡眠延迟和节点能耗,提高了网络吞吐量,同时有效避免了冲突和串音问题。
Description
技术领域
本发明涉及一种预约多跳节点的同步RM-MAC协议的实现方法,属于无线通信技术领域。
背景技术
无线传感器网络(Wireless Sensor Networks,WSNs)是由大量的传感器节点通过自组织的方式形成的一个无线多跳网络,具有自组织,大规模,低成本,以及多跳路由等特点,目前广泛应用于环境监测、工业控制、国防军事、健康医疗、以及公共安全等领域。在WSNs中,MAC(Medium Access Control,MAC)协议解决的基本问题是如何让多个节点之间利用共享信道传输数据,同时避免碰撞,所以MAC协议是确保网络高效运作的关键协议之一。
由于传感器节点主要通过电池供电且能量有限,因此在WSNs的多数MAC协议中,每个节点周期性地进入侦听/睡眠模式,以便减少能量消耗,延长网络的生存时间。通常情况下,协议将时间分为多个固定长度的工作周期,每个工作周期又分为侦听和睡眠两个阶段。在侦听阶段,节点唤醒以进行数据通信。在睡眠阶段,节点睡眠以节省能量消耗。此外,为了减少开销,多数同步MAC协议对节点采用的侦听/睡眠调度表进行同步,同步节点采用相同调度表,形成虚拟簇,同时进入侦听/睡眠模式。
虽然节点周期性睡眠为节约能耗做出了突出贡献,但同时引入了大量的睡眠延迟,其主要原因是在数据的多跳传输中,当上一跳节点接收完数据后,必须等到它的下一跳节点唤醒时才可以将数据进行转发,大大降低了数据传输的实时性。特别地,当数据传输经过的跳数越多时,受睡眠延迟的影响就越大。此外,节点周期性地睡眠还导致节点处于活跃状态的时间较短,这很大程度上限制了网络的吞吐量和信道的利用率。
发明内容
本发明的目的在于提供一种预约多跳节点的同步RM-MAC协议的实现方法,通过预约未来的多跳节点,进而可以在预约的多跳节点之间实现无中断地数据传输,解决了现有技术中出现的问题。
本发明所述的预约多跳节点的同步RM-MAC协议的实现方法,包括以下步骤:
(1)通过多种控制帧及虚拟载波侦听机制预约无线传感器网络传输路径上的多跳节点;
(2)在步骤(1)中预约的多跳节点之间进行无中断的数据传输。
所述的步骤(1)和步骤(2)中操作按照周期性的方式运行,且每个周期包括Sync阶段、Reserve阶段和Sleep阶段。
通过多种控制帧及虚拟载波侦听机制预约未来的多跳节点,进而可以在预约的多跳节点之间实现无中断地数据传输,大大减少了多跳数据传输过程中的睡眠延迟。
所述的步骤(1)中Sync阶段、Reserve阶段和Sleep阶段的具体操作步骤包括:
(11)在Sync阶段,来自同一个虚拟簇的所有节点同步唤醒,进入侦听模式,且根据精度要求,同步节点间的时钟;
(12)在Reserve阶段,利用CSMA/CA竞争机制获得信道的节点及其后续节点,通过发送多种控制帧以及利用虚拟载波侦听机制,预约未来的多跳节点;即让未来的多跳节点可以根据控制帧中的相关信息计算得知与其上一跳节点开始通信的时间,且节点间按照预约时间进行通信,未到达预约时间的节点进入睡眠模式;
(13)在Sleep阶段,节点关闭无线收发器进入睡眠模式,若节点在此阶段有通信任务,则按照相应条件进行通信。
步骤(12)中侦听到发送给其它节点的一个或多个控制帧的节点根据帧中的相关信息设置自己的睡眠时间,以便在Reserve阶段实现提前睡眠;未侦听到任何控制帧的节点在Reserve阶段一直保持唤醒。
步骤(13)中若节点在Reserve阶段的通信过程延续到Sleep阶段,或节点按照预约的时间唤醒后正处于Sleep阶段,则节点保持唤醒且进行数据通信,若通信完成后节点仍处于Sleep阶段,则根据相应地条件判断是否需要进入睡眠模式。
侦听模式:节点侦听信道时处于侦听模式,侦听分为载波侦听和空闲侦听
载波侦听:节点在传输数据之前需要先侦听信道,当信道为空闲时,才可以传输。
空闲侦听:节点不需要发送数据,但是需要随时侦听信道以便接收信道中可能的传输,如果什么也没有侦听到,则处于空闲模式。
睡眠模式:节点关闭无线收发器进行睡眠时处于睡眠模式。
所述的步骤(12)中的控制帧包括RTS(Request-to-Send)帧,CTS-Special(Clear-to-Send-Special)帧和RTS-Order(Request-to-Send-Order)帧。
所述的步骤(12)中利用CSMA/CA竞争机制获得信道的节点及其后续节点为:发起节点为A节点通过CSMA/CA竞争机制接入信道,它的后续节点包括A节点的下一跳节点B,B节点的下一跳节点C,C节点的下一跳节点D,以此类推,直至最后一跳节点。
所述的①RTS帧由本次通信的发起节点A发出,用于向它的下一跳节点B请求通信;②CTS-Special帧由B节点侦听到RTS帧后发起,既可用于确认来自A节点的通信请求,又可预约它的下一跳节点C,即让C节点根据CTS-Special帧中的相关信息计算得知与B节点开始通信的时间;③RTS-Order帧由C节点侦听到CTS-Special帧后发起,用于预约它的下一跳节点D,即让D节点根据RTS-Order帧中的相关信息计算得知与C节点开始通信的时间。
所述的当A节点开始向B节点传输DATA帧时,C节点和D节点由于还未到达预约时间所以仍然处于睡眠模式;当B节点成功收到来自A节点的每个DATA帧后,B节点会回复一个确认帧;确认帧包括ACK帧和ACK-RTS帧;其中ACK-RTS帧用于接收节点对成功接收的来自其发送节点的最后一个DATA帧进行确认,ACK帧用于接收节点对成功接收的来自其发送节点的其余DATA帧进行确认。
其中ACK-RTS帧既用于接收节点(DATA帧中的DstAddr字段表示的节点,ACK-RTS帧中的SrcAddr字段表示的节点)对成功接收的来自其发送节点(DATA帧中的SrcAddr字段表示的节点,ACK-RTS帧中的DstAddr字段表示的节点)的最后一个DATA帧进行确认,又用于向接收节点的下一跳节点请求通信,ACK帧用于接收节点(DATA帧中的DstAddr字段表示的节点,ACK帧中的SrcAddr字段表示的节点)对成功接收的来自其发送节点(DATA帧中的SrcAddr字段表示的节点,ACK帧中的DstAddr字段表示的节点)的其余DATA帧进行确认。
所述的节点通信结束后若处于Sleep阶段,是否需要进入睡眠模式的判断条件为:节点计算从现在开始到本周期Sleep阶段截止时的剩余时间;若节点在剩余时间内进行模式切换以及进行睡眠消耗的总能量小于或等于在剩余时间内持续保持侦听消耗的能量,则节点进入睡眠模式,节省能耗;反之,节点保持唤醒,等待下一个周期的到来;如下所示:
Eswich(Tremain)+Esleep(Tremain)≤Elisten(Tremain)
其中,Tremain表示节点从现在开始到本周期Sleep阶段截止时的剩余时间;Eswich(Tremain)表示在Tremain内节点从侦听模式切换到睡眠模式切换消耗的能量,Esleep(Tremain)表示在Tremain内节点睡眠消耗的能量,Elisten(Tremain)表示在Tremain内节点保持侦听消耗的能量。
所述的设置节点睡眠时间的步骤为:
(21)采用虚拟载波侦听机制,每个控制帧中都携带Duration字段用于表示剩余通信的时间;
(22)串听到控制帧的节点则根据控制帧中Duration字段中的值设置它内部的NAV(Network Allocation Vector)值;
(23)当NAV值为非0时,节点处于睡眠模式以减少能耗;当NAV值减为0时,被预约的节点立即唤醒且接收来自其上一跳节点的数据;而未被预约的节点当NAV值减为0时若正好处于侦听阶段,则唤醒;否则,继续保持睡眠模式,直到下一个侦听阶段的到来。
(24)为了确保DATA帧在预约的多跳节点之间可以实现无中断地数据传输,以及避免在此期间出现隐藏终端问题,控制帧通过Duration字段为所有的DATA帧传输多跳距离预留了信道。
本发明与现有技术相比,具有如下有益效果:
本发明所述的预约多跳节点的同步RM-MAC协议的实现方法,通过多种控制帧及虚拟载波侦听机制预约未来的多跳节点,进而可以在预约的多跳节点之间实现无中断地数据传输,大大减少了多跳数据传输过程中的睡眠延迟;在Reserve阶段串听到一个或多个控制帧的节点可以提前进入睡眠模式,有效避免了冲突和串音,节省了能耗。此外,数据的快速转发,亦提高了网络吞吐量和信道利用率。解决了现有技术中无线传感器网络中进行多跳数据传输时由于节点周期性睡眠而引入的睡眠延迟问题。
附图说明
图1为本发明中RM-MAC协议的操作过程图;
图2为本发明中的RTS帧,RTS-Order帧,CTS帧和ACK帧的格式;
图3为本发明中DATA帧的格式;
图4为本发明中的CTS-Special帧和ACK-RTS帧的格式;
图5为本发明中节点分布及传输路径举例。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明:
实施例1:
如图1所示,图1为本发明中RM-MAC协议的操作过程图,其中A节点有数据需要传输给距离多跳的Sink节点(汇聚节点);此外,
图2为本发明中的RTS帧,RTS-Order帧,CTS帧和ACK帧的格式;其中,
图3为本发明中DATA帧的格式;其中,
图4为本发明中的CTS-Special帧和ACK-RTS帧的格式;其中,
图5为本发明中节点分布及传输路径举例。其中A节点有数据需要传输给距离多跳的Sink节点(汇聚节点);此外,
本发明所述的预约多跳节点的同步RM-MAC协议的实现方法,包括以下步骤:
(1)通过多种控制帧及虚拟载波侦听机制预约无线传感器网络传输路径上的多跳节点;
(2)在步骤(1)中预约的多跳节点之间进行无中断的数据传输。
所述的步骤(1)和步骤(2)中操作按照周期性的方式运行,且每个周期包括Sync阶段、Reserve阶段和Sleep阶段。
实施例2:
在实施例1的基础上,
(1)在Sync阶段,来自同一个虚拟簇的所有节点同步唤醒,进入侦听模式,且根据精度要求,同步节点间的时钟;
(2)在Reserve阶段,利用CSMA/CA机制竞争获得信道的节点及其后续节点通过发送几种控制帧:RTS帧,CTS-Special帧和RTS-Order帧,以及利用虚拟载波侦听机制,让未来的多跳节点可以知道与其上一跳节点开始通信的时间,具有预约多跳节点的作用;节点间按照预约时间进行通信,未到达预约时间的节点进入睡眠模式。串听到一个或多个控制帧的节点根据帧中的相关信息设置自己的睡眠时间,以便在Reserve阶段实现提前睡眠,节省能耗。未侦听到任何控制帧的节点在Reserve阶段一直保持唤醒。
所述利用CSMA/CA竞争机制获得信道的节点及其后续节点为:如图1所示,A节点通过CSMA/CA竞争机制接入信道,它的后续节点包括A节点的下一跳节点B,B节点的下一跳节点C,C节点的下一跳节点D,以此类推。
所述RTS帧,CTS-Special帧和RTS-Order帧的作用为:如图1所示,①RTS帧由本次通信的发起节点A发出,用于向它的下一跳节点B请求通信;②CTS-Special帧由B节点侦听到RTS帧后发起,既可用于确认来自A节点的通信请求,又可预约它的下一跳节点C,即让C节点根据CTS-Special帧中的相关信息计算得知与B节点开始通信的时间;③RTS-Order帧由C节点侦听到CTS-Special帧后发起,用于预约它的下一跳节点D,即让D节点根据RTS-Order帧中的相关信息计算得知与C节点开始通信的时间。
如图1-5所示,①在Reserve阶段A节点通过CSMA/CA竞争机制获得信道后,立即向它的下一跳节点B发送一个RTS帧。侦听到RTS帧的所有节点(如图5中的X节点,Y节点,B节点和C节点),根据帧中的DstAddr字段进行判断,若该节点是RTS帧中的DstAddr字段表示的节点即B节点,则该节点向A节点反馈一个CTS-Special帧,然后等待接收来自A节点发送的数据帧;若该节点是RTS帧中的DstAddr字段表示的节点的邻居即B节点的邻居(如图5中的C节点,Y节点),则该节点继续保持侦听,因为它有可能是B节点的下一跳节点;若节点既不是B节点,亦不是B节点的邻居(如图5中的X节点),则根据RTS帧中Duration字段计算得知它的NAV值,然后在Reserve阶段提前进入睡眠模式,避免冲突和串音,节省能耗。
②侦听到由B节点发出的CTS-Special帧的所有节点(如图5中的A节点,Y节点,C节点,D节点),根据帧中的DstAddr字段和NextAddr字段进行判断,若该节点是CTS-Special帧中的DstAddr字段表示的节点即A节点,为了避免其它节点占用信道,则该节点先向B节点发送一个DF帧,然后再向B节点传输正常的数据帧;若该节点是CTS-Special帧中的NextAddr字段表示的节点即C节点,则该节点向D节点发送一个RTS-Order帧,然后该节点立即根据CTS-Special帧中Duration字段计算得知它的NAV值进入睡眠模式,以便在正确的时间唤醒且接收来自B节点的数据;若该节点是CTS-Special帧中的NextAddr字段表示的节点的邻居即C节点的邻居(如图5中的D节点),则该节点继续保持侦听,因为它有可能是C节点的下一跳节点;若节点不是A节点,不是C节点,亦不是C节点的邻居(如图5中的Y节点),则根据CTS-Special帧中的Duration字段计算得知它的NAV值,然后在Reserve阶段提前进入睡眠模式,节省能耗。值得注意的是,A节点发出的DF帧和C节点发出的RTS-Order帧在B节点处由于冲突而丢弃,但是对接下来的数据帧传输没有任何影响,因为DF帧不含任何有效信息。
③侦听到由C节点发出的RTS-Order帧的所有节点(如图5中的D节点,Z节点),根据帧中的DstAddr字段进行判断,若该节点是RTS-Order帧中的DstAddr字段表示的节点即D节点,则该节点根据RTS-Order帧中的Duration字段计算得知它的NAV值进入睡眠模式,以便在正确的时间唤醒且接收来自C节点的数据。若该节点不是RTS-Order帧中的DstAddr字段表示的节点(如图5中的Z节点),则该节点也需要根据RTS-Order帧中的Duration字段计算得知它的NAV值,然后在Reserve阶段提前进入睡眠模式,避免冲突和串音节省能耗,但是这些节点与D节点设置的NAV值不一样。
④如图1所示,当A节点开始向B节点传输DATA帧时,C节点和D节点由于还未到达预约时间所以仍然处于睡眠模式。当B节点成功收到来自A节点的每个DATA帧后,B节点会回复一个确认帧。本发明中采用了2种确认帧:ACK帧(如图2所示),ACK-RTS(ACKnowlegment-Request-to-Send)帧(如图4所示)。其中ACK-RTS帧既用于接收节点对成功接收的来自其发送节点的最后一个DATA帧进行确认,又用于向接收节点的下一跳节点请求通信,ACK帧用于接收节点对成功接收的来自其发送节点的其余DATA帧进行确认。
其中ACK-RTS帧既用于接收节点(DATA帧中的DstAddr字段表示的节点,ACK-RTS帧中的SrcAddr字段表示的节点)对成功接收的来自其发送节点(DATA帧中的SrcAddr字段表示的节点,ACK-RTS帧中的DstAddr字段表示的节点)的最后一个DATA帧进行确认,又用于向接收节点的下一跳节点请求通信,ACK帧用于接收节点(DATA帧中的DstAddr字段表示的节点,ACK帧中的SrcAddr字段表示的节点)对成功接收的来自其发送节点(DATA帧中的SrcAddr字段表示的节点,ACK帧中的DstAddr字段表示的节点)的其余DATA帧进行确认。
实施例3:
在实施例1和实施例2的基础上,在Sleep阶段,节点关闭无线收发器进入睡眠模式,以便节省能耗。若节点在Reserve阶段的通信过程延续到本阶段,或节点按照预约的时间唤醒后正处于本阶段,则节点保持唤醒且进行通信。若通信完成后节点仍处于Sleep阶段,则根据相应地条件判断是否需要进入睡眠模式。
所述节点通信结束后若处于Sleep阶段,是否需要进入睡眠模式的判断条件为:节点计算从现在开始到本周期Sleep阶段截止时的剩余时间。若节点在剩余时间内进行模式转换(侦听模式切换到睡眠模式)以及进行睡眠消耗的总能量小于或等于在剩余时间内持续保持侦听消耗的能量,则节点进入睡眠模式,节省能耗。反之,节点保持唤醒,等待下一个周期的到来。如下所示:
Eswich(Tremain)+Esleep(Tremain)≤Elisten(Tremain)
其中,Tremain表示节点从现在开始到本周期Sleep阶段截止时的剩余时间。Eswich(Tremain)表示在Tremain内节点从侦听模式切换到睡眠模式切换消耗的能量,Esleep(Tremain)表示在Tremain内节点睡眠消耗的能量,Elisten(Tremain)表示在Tremain内节点保持侦听消耗的能量。
如图1所示,进一步说明本发明在Sleep阶段的操作过程。①A节点与B节点间的通信从Reserve阶段延续到了Sleep阶段。在Sleep阶段当A节点向B节点传输完最后一个DATA帧后,B节点向A节点回复一个ACK-RTS帧进行确认。当A节点侦听到该ACK-RTS帧时,说明A节点与B节点间的通信结束,由于此时仍然处于Sleep阶段,因此A节点立即计算从现在开始到本周期Sleep阶段截止时的剩余时间Tremain。若A节点在Tremain内进行模式切换以及进行睡眠消耗的总能量小于或等于在Tremain内持续保持侦听消耗的能量,则A节点进入睡眠模式。反之,A节点保持唤醒,等待下一个侦听阶段的到来。
②如图1所示,在Sleep阶段当A节点向B节点传输完最后一个DATA帧后,C节点按照预约的时间唤醒。当C节点侦听到由B节点发送的ACK-RTS帧后,则向B节点回复一个CTS帧,以便与B节点建立握手。当B节点侦听到该CTS帧后,则向C节点转发DATA帧,以便实现数据的传输。当B节点向C节点传输完最后一个DATA帧后,C节点向B节点回复一个ACK-RTS帧进行确认。当B节点侦听到该ACK-RTS帧时,说明B节点与C节点间的通信结束,由于此时仍然处于Sleep阶段,因此B节点立即判断它是否需要进入睡眠模式。按照同样的过程,C节点与D节点之间进行数据传输,且传输完毕后,C节点和D节点立即判断它们是否需要进入睡眠模式。
实施例4:
在实施例3的基础上,设置节点睡眠时间的步骤为:本发明采用虚拟载波侦听机制,即每个控制帧中都携带Duration字段用于表示剩余通信的时间。串听到控制帧的节点则根据控制帧中Duration字段中的值设置它内部的NAV(Network Allocation Vector)值。
在本发明中,当NAV值为非0时,节点处于睡眠模式以减少能耗。当NAV值减为0时,被预约的节点立即唤醒且接收来自其上一跳节点的数据;而未被预约的节点当NAV值减为0时若正好处于侦听阶段,则唤醒;否则,继续保持睡眠模式,直到下一个侦听阶段的到来。此外,为了确保数据帧在预约的多跳节点之间可以实现无中断地数据传输,以及避免在此期间出现隐藏终端问题,RTS帧,CTS-Special帧和RTS-Order帧通过Duration字段为所有的DATA帧传输3跳距离预留了信道。
以下为设置睡眠时间的具体操作步骤,如图5所示:
①侦听到由A节点发送的RTS帧的所有节点,若节点既不是B节点,亦不是B节点的邻居(如图5中的X节点),则根据RTS帧中Duration字段中的值计算得知它们的NAV值,然后在Reserve阶段提前进入睡眠模式。因为这些节点的操作对C节点的传输没有任何影响,所以为了提高网络吞吐量,当B节点向C节点传输完最后一个DATA帧后,这些节点的NAV值恰好减为0,若此时它们正好处于Sleep阶段,则应继续保持睡眠而不必唤醒。否则,节点唤醒,进行相关的操作;
②侦听到由B节点发送的CTS-Special帧的所有节点,若节点不是A节点,不是C节点,亦也不是C节点的邻居(如图5中的Y节点),则根据CTS-Special帧中Duration字段中的值计算得知它们的NAV值,然后在Reserve阶段提前进入睡眠模式。因为这些节点的操作对D节点的传输没有任何影响,所以为了提高网络吞吐量,当C节点向D节点发送完最后一个DATA帧后,这些节点的NAV值恰好减为0,若此时它们正好处于Sleep阶段,则该节点应该继续保持睡眠模式而不必唤醒。否则,节点唤醒,可以进行相关的操作;
③C节点根据CTS-Special帧中Duration字段中的值计算得知它内部的NAV值且进入睡眠模式。当A节点向B节点传输完最后一个DATA帧后,C节点的NAV值恰好减为0且唤醒,然后等待接收来自B节点的数据;
④侦听到由C节点发送的RTS-Order帧的所有节点,若节点不是D节点(如图5中Z节点),则根据RTS-Order帧中Duration字段中的值计算得知它们的NAV值,然后在Reserve阶段提前进入睡眠模式。当D节点向C节点传输完最后一个ACK-RTS确认帧后,这些节点(如图5中Z节点)的NAV值恰好减为0。若此时这些节点正好处于Sleep阶段,则它们应该继续保持睡眠模式而不必唤醒。否则,节点唤醒,可以进行相关的操作;
⑤D节点根据RTS-Order帧中Duration字段中的值计算得知它内部的NAV值且进入睡眠模式。当B节点向C节点传输完最后一个DATA帧后,此时D节点的NAV值减为0且唤醒,然后等待接收来自C节点的数据。
设置不同类型节点的NAV值计算公式:
①侦听到由A节点发送的RTS帧的所有节点,若节点既不是B节点,亦不是B节点的邻居(如图5中的X节点),则根据RTS帧中Duration字段中的值计算得知它的NAV值即SrcNeiNAV,计算公式如下:
SrcNeiNAV=RTS(Dur)-durRTS-2(proc_delay+SIFS+durACK-RTS)-(proc_delay+SIFS+durCTS)
-i*(proc_delay+SIFS+durDATA)-(i-1)*(proc_delay+SIFS+durACK)
其中RTS(Dur)表示RTS帧中Duration字段中的值,durRTS表示传输一个RTS帧所需时间,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durACK-RTS表示传输一个ACK-RTS帧所需时间,durCTS表示传输一个CTS帧所需时间,i表示传输的DATA帧数量,durDATA表示传输一个DATA帧所需时间,durACK表示传输一个ACK帧所需时间。
②侦听到由B节点发送的CTS-Special帧的所有节点,若节点不是A节点,不是C节点,亦也不是C节点的邻居(如图5中的Y节点),则根据CTS-Special帧中Duration字段中的值计算得知它的NAV值即FstNeiNAV,计算公式如下:
FstNeiNAV=CTS-Special(Dur)-(proc_delay+SIFS+durCTS-Special)-(proc_delay+SIFS+durACK-RTS)
其中CTS-Special(Dur)表示CTS-Special帧中Duration字段中的值,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durCTS-Special表示传输一个CTS-Special帧所需时间,durACK-RTS表示传输一个ACK-RTS帧所需时间。
③C节点根据CTS-Special帧中Duration字段中的值计算得知它内部的NAV值即SecNAV,计算公式如下:
SecNAV=CTS-Special(Dur)-(proc-delay+SIFS+durCTS-Special)-3(proc_delay+SIFS+durCK-RTS)
-2(proc_delay+SIFS+durCTS)-2i*(proc_delay+SIFS+durDATA)
-2(i-1)*(proc_delay+SIFS+durACK)
其中CTS-Special(Dur)表示CTS-Special帧中Duration字段中的值,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durCTS-Special表示传输一个CTS-Special帧所需时间,durACK-RTS表示传输一个ACK-RTS帧所需时间,durCTS表示传输一个CTS帧所需时间,i表示传输的DATA帧数量,durDATA表示传输一个DATA帧所需时间,durACK表示传输一个ACK帧所需时间。
④侦听到由C节点发送的RTS-Order帧的所有节点,若节点不是D节点(如图5中Z节点),则根据RTS-Order帧中Duration字段中的值计算得知它们的NAV值即ThiNeiNAV,计算公式如下:
ThiNeiNAV=RTS-Order(Dur)-(proc_delay+SIFS+durRTS-Order)
其中RTS-Order(Dur)表示RTS-Order帧中Duration字段中的值,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durRTS-Order表示传输一个RTS-Order帧所需时间。
⑤D节点根据RTS-Order帧中Duration字段中的值计算得知它内部的NAV值即ThiNAV,计算公式如下:
ThiNAV=RTS-Order(Dur)-(proc_delay+SIFS+durRTS-Order)-2(proc_delay+SIFS+durACK-RTS)
-(proc_delay+SIFS+durCTS)-i*(proc_delay+SIFS+durDATA)
-(i-1)*(proc_delay+SIFS+durACK)
其中RTS-Order(Dur)表示RTS-Order帧中Duration字段中的值,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durRTS-Order表示传输一个RTS-Order帧所需时间,durACK-RTS表示传输一个ACK-RTS帧所需时间,durCTS表示传输一个CTS帧所需时间,i表示传输的DATA帧数量,durDATA表示传输一个DATA帧所需时间,durACK表示传输一个ACK帧所需时间。
其中在上述公式中:
①RTS帧中的Duration字段中的值即RTS(Dur)表示的时间为:传输一个RTS帧,一个CTS-Special帧,以及一个RTS-Order帧的时间,加上所有DATA帧传输3跳的时间,加上传输多个确认帧的时间,加上传输2个CTS帧的时间,加上中间经历的多个SIFS时间,以及加上每个帧的处理延迟时间。计算公式如下:
RTS(Dur)=durRTS+(proc_delay+SIFS+durCTS-Special)
+(proc_delay+SIFS+durRTS-Order)
+3i*(proc_delay+SIFS+durDATA)
+3(i-1)*(proc_delay+SIFS+durACK)
+3(proc_delay+SIFS+durACK-RTS)
+2(proc_delay+SIFS+durCTS)
其中durRTS表示传输一个RTS帧所需时间,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durCTS-Special表示传输一个CTS-Special帧所需时间,durRTS-Order表示传输一个RTS-Order帧所需时间,i表示传输的DATA帧数量,durDATA表示传输一个DATA帧所需时间,durACK表示传输一个ACK帧所需时间,durACK-RTS表示传输一个ACK-RTS帧所需时间,durCTS表示传输一个CTS帧所需时间。
②CTS-Special帧中的Duration字段中的值即CTS-Special(Dur)根据RTS帧中Duration字段中的值计算而来:
CTS-Special(Dur)=RTS(Dur)-durRTS
其中RTS(Dur)表示RTS帧中Duration字段中的值,durRTS表示传输一个RTS帧所需时间。
③RTS-Order帧中的Duration字段中的值即RTS-Order(Dur)根据CTS-Special帧中的Duration字段中的值计算而来:
RTS-Order(Dur)=CTS-Special(Dur)-(proc_delay+SIFS+durCTS-Special)
其中CTS-Special(Dur)表示CTS-Special帧中Duration字段中的值,proc_delay表示每个帧的处理延迟,SIFS表示最短帧间间隔,durCTS-Special表示传输一个CTS-Special帧所需时间。
采用以上结合附图描述的本发明的实施例的预约多跳节点的同步RM-MAC协议的实现方法,解决了现有技术中无线传感器网络中进行多跳数据传输时由于节点周期性睡眠而引入的睡眠延迟问题。但本发明不局限于所描述的实施方式,在不脱离本发明的原理和精神的情况下这些对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。
Claims (6)
1.一种预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:包括以下步骤:
(1)通过多种控制帧及虚拟载波侦听机制预约无线传感器网络传输路径上的多跳节点;
(2)在步骤(1)中预约的多跳节点之间进行无中断的数据传输;
所述的步骤(1)和步骤(2)中操作按照周期性的方式运行,且每个周期包括Sync阶段、Reserve阶段和Sleep阶段;
步骤(1)中Sync阶段、Reserve阶段和Sleep阶段的具体操作步骤包括:
(11)在Sync阶段,来自同一个虚拟簇的所有节点同步唤醒,进入侦听模式,且根据精度要求,同步节点间的时钟;
(12)在Reserve阶段,利用CSMA/CA竞争机制获得信道的节点及其后续节点,通过发送多种控制帧以及利用虚拟载波侦听机制,预约未来的多跳节点;即让未来的多跳节点可以根据控制帧中的相关信息计算得知与其上一跳节点开始通信的时间,且节点间按照预约时间进行通信,未到达预约时间的节点进入睡眠模式;
(13)在Sleep阶段,节点关闭无线收发器进入睡眠模式,若节点在此阶段有通信任务,则按照相应条件进行通信;
所述的步骤(12)中的控制帧包括RTS帧,CTS-Special帧和RTS-Order帧;
所述的步骤(12)中利用CSMA/CA竞争机制获得信道的节点及其后续节点为:发起节点为A节点通过CSMA/CA竞争机制接入信道,它的后续节点包括A节点的下一跳节点B,B节点的下一跳节点C,C节点的下一跳节点D,以此类推,直至最后一跳节点,DATA帧在预约的多跳节点之间实现无中断地数据传输;
①RTS帧由本次通信的发起节点A发出,用于向它的下一跳节点B请求通信;
②CTS-Special帧由B节点侦听到RTS帧后发起,既可用于确认来自A节点的通信请求,又可预约它的下一跳节点C,即让C节点根据CTS-Special帧中的相关信息计算得知与B节点开始通信的时间;
③RTS-Order帧由C节点侦听到CTS-Special帧后发起,用于预约它的下一跳节点D,即让D节点根据RTS-Order帧中的相关信息计算得知与C节点开始通信的时间。
2.根据权利要求1所述的预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:所述的步骤(12)中侦听到发送给其它节点的一个或多个控制帧的节点根据帧中的相关信息设置自己的睡眠时间,以便在Reserve阶段实现提前睡眠;未侦听到任何控制帧的节点在Reserve阶段一直保持唤醒。
3.根据权利要求1所述的预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:步骤(13)中若节点在Reserve阶段的通信过程延续到Sleep阶段,或节点按照预约的时间唤醒后正处于Sleep阶段,则节点保持唤醒且进行数据通信,若通信完成后节点仍处于Sleep阶段,则根据相应地条件判断是否需要进入睡眠模式。
4.根据权利要求1所述的预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:当A节点开始向B节点传输DATA帧时,C节点和D节点由于还未到达预约时间所以仍然处于睡眠模式;当B节点成功收到来自A节点的每个DATA帧后,B节点会回复一个确认帧;确认帧包括ACK帧和ACK-RTS帧;其中ACK-RTS帧既用于接收节点对成功接收的来自其发送节点的最后一个DATA帧进行确认,又用于向接收节点的下一跳节点请求通信,ACK帧用于接收节点对成功接收的来自其发送节点的其余DATA帧进行确认。
5.根据权利要求3所述的预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:所述的节点通信结束后若处于Sleep阶段,是否需要进入睡眠模式的判断条件为:节点计算从现在开始到本周期Sleep阶段截止时的剩余时间;若节点在剩余时间内进行模式切换以及进行睡眠消耗的总能量小于或等于在剩余时间内持续保持侦听消耗的能量,则节点进入睡眠模式,节省能耗;反之,节点保持唤醒,等待下一个周期的到来;如下所示:
Eswich(Tremain)+Esleep(Tremain)≤Elisten(Tremain)
其中,Tremain表示节点从现在开始到本周期Sleep阶段截止时的剩余时间;Eswich(Tremain)表示在Tremain内节点从侦听模式切换到睡眠模式消耗的能量,Esleep(Tremain)表示在Tremain内节点睡眠消耗的能量,Elisten(Tremain)表示在Tremain内节点保持侦听消耗的能量。
6.根据权利要求2所述的预约多跳节点的同步RM-MAC协议的实现方法,其特征在于:所述的设置睡眠时间的步骤为:
(21)采用虚拟载波侦听机制,每个控制帧中都携带Duration字段用于表示剩余通信的时间;
(22)侦听到控制帧的节点则根据控制帧中Duration字段中的值设置它内部的NAV(Network Allocation Vector)值;
(23)当NAV值为非0时,节点处于睡眠模式以减少能耗;当NAV值减为0时,被预约的节点立即唤醒且接收来自其上一跳节点的数据;而未被预约的节点当NAV值减为0时若正好处于侦听阶段,则唤醒;否则,继续保持睡眠模式,直到下一个侦听阶段的到来;
(24)为了确保DATA帧在预约的多跳节点之间可以实现无中断地数据传输,以及避免在此期间出现隐藏终端问题,控制帧通过Duration字段为所有的DATA帧传输多跳距离预留了信道。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811502947.7A CN109413706B (zh) | 2018-12-10 | 2018-12-10 | 预约多跳节点的同步rm-mac协议的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811502947.7A CN109413706B (zh) | 2018-12-10 | 2018-12-10 | 预约多跳节点的同步rm-mac协议的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109413706A CN109413706A (zh) | 2019-03-01 |
CN109413706B true CN109413706B (zh) | 2022-02-01 |
Family
ID=65458118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811502947.7A Active CN109413706B (zh) | 2018-12-10 | 2018-12-10 | 预约多跳节点的同步rm-mac协议的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109413706B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110290121B (zh) * | 2019-06-13 | 2021-10-08 | 曲阜师范大学 | 低延迟高吞吐量的异步alt-mac协议的实现方法 |
CN113453304B (zh) * | 2021-06-29 | 2022-07-05 | 中南大学 | 基于虚拟分簇和路径预约的自适应同步mac协议 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184005A (zh) * | 2007-03-16 | 2008-05-21 | 中科院嘉兴中心微系统所分中心 | 基于双重分簇无线传感器网络的自适应通信方法 |
CN101409660A (zh) * | 2008-08-14 | 2009-04-15 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络的信道接入控制方法 |
CN104302010A (zh) * | 2014-04-08 | 2015-01-21 | 河南科技大学 | 一种同步无线传感器网络的mac协议通信方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140334387A1 (en) * | 2013-05-08 | 2014-11-13 | Nokia Corporation | Method, apparatus, and computer program product for protecting shared transmission opportunity |
-
2018
- 2018-12-10 CN CN201811502947.7A patent/CN109413706B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184005A (zh) * | 2007-03-16 | 2008-05-21 | 中科院嘉兴中心微系统所分中心 | 基于双重分簇无线传感器网络的自适应通信方法 |
CN101409660A (zh) * | 2008-08-14 | 2009-04-15 | 宁波中科集成电路设计中心有限公司 | 一种无线传感器网络的信道接入控制方法 |
CN104302010A (zh) * | 2014-04-08 | 2015-01-21 | 河南科技大学 | 一种同步无线传感器网络的mac协议通信方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109413706A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xie et al. | R-MAC: An energy-efficient MAC protocol for underwater sensor networks | |
US7496059B2 (en) | Energy-efficient medium access control protocol and system for sensor networks | |
EP2157739B1 (en) | Communication system, communication device, communication method, and computer program | |
CN101409660B (zh) | 一种无线传感器网络的信道接入控制方法 | |
KR101174406B1 (ko) | 환경 에너지 획득 기반 센서네트워크를 위한 저전력 mac 통신 방법 | |
CN102946631B (zh) | 一种基于信标帧同步和通信异步的mac层节点调度方法 | |
US20080232286A1 (en) | System and Method for Hibernation Mode for Beaconing Devices | |
CN102695265A (zh) | 一种基于无线传感器网络的混合机制mac协议通信方法 | |
JPWO2004071020A1 (ja) | 通信方法及び通信装置、並びにコンピュータプログラム | |
CN107409409B (zh) | 用于介质保留的分布式机制以及ioe通信的优先化 | |
Alessandrelli et al. | Implementation and validation of an energy-efficient MAC scheduler for WSNs by a test bed approach | |
CN109413706B (zh) | 预约多跳节点的同步rm-mac协议的实现方法 | |
CN113453304A (zh) | 基于虚拟分簇和路径预约的自适应同步mac协议 | |
CN107534939B (zh) | 用于ioe设备传输信令和调度的方法和装置 | |
Yessad et al. | R-MAC: Reservation medium access control protocol for wireless sensor networks | |
Singh et al. | A cross-layer MAC protocol for contention reduction and pipelined flow optimization in wireless sensor networks | |
Yong et al. | EE-RI-MAC: An energy-efficient receiver-initiated asynchronous duty cycle MAC protocol for dynamic traffic loads in wireless sensor networks | |
Ray et al. | ADV-MAC: advertisement-based MAC protocol for wireless sensor networks | |
Arifuzzaman et al. | A hybrid MAC with intelligent sleep scheduling for wireless sensor networks | |
Ramadan et al. | Energy-efficient dual-layer MAC protocol with adaptive layer duration for WSNs | |
Jacob et al. | Reducing energy consumption by cross layer design in wireless sensor networks | |
Chang et al. | ADCA: an asynchronous duty cycle adjustment MAC protocol for wireless sensor networks | |
Wang et al. | An adaptive energy-efficient and low-latency MAC protocol for wireless sensor networks | |
Pak et al. | A MAC protocol using separate wakeup slots for sensor network | |
Chang et al. | An asynchronous duty cycle adjustment MAC protocol for wireless sensor networks |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 276826 No. 80, Yantai, Rizhao City, Donggang District, Shandong Applicant after: qufu normal university Address before: 273100, No. 57, Xuan Xuan West Road, Qufu, Shandong, Jining Applicant before: qufu normal university |
|
GR01 | Patent grant | ||
GR01 | Patent grant |