CN104618245A - 基于簇首协调的mac/路由一体化自组织网络设计方法 - Google Patents
基于簇首协调的mac/路由一体化自组织网络设计方法 Download PDFInfo
- Publication number
- CN104618245A CN104618245A CN201410810509.2A CN201410810509A CN104618245A CN 104618245 A CN104618245 A CN 104618245A CN 201410810509 A CN201410810509 A CN 201410810509A CN 104618245 A CN104618245 A CN 104618245A
- Authority
- CN
- China
- Prior art keywords
- node
- control frame
- field
- time
- moment
- 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.)
- Granted
Links
Landscapes
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种基于簇首协调的MAC/路由一体化自组织网络设计方法,针对车队自组织网络,将MAC控制帧和路由控制帧合并为一个控制帧,并采用TDMA的方式进行交互。解决网络中节点对信道的占用问题,以及路由表的建立与维护问题。
Description
技术领域
本发明属于车载自组织网络通信技术领域,研究重点为MAC层和路由层的一体化设计。
背景技术
传统通信网络为了层次化解决复杂系统的各项关键问题,往往采用分层设计的方式。常见的网络构架是将网络分为5层,从上到下依次是:应用层:即网络节点上运行的程序(进程);运输层:为进程间的通信提供服务,即为上层的程序和下层传输的数据提供交互机制;路由层:解决点到点通信路径的查询和维护问题;MAC层:主要协调网络节点对通信媒介的占用,防止多节点同时占用某段媒介造成通信碰撞;物理层,主要在信号处理层面解决信号与信道编码以及调制解调等问题。
通信网络的层次性划分最早在有线网络的设计中提出,由于经历了长时间的技术积累和完善,该架构被逐步引入到无线网络的建设中。有线网络和无线网络的最大区别在于下三层的差异,即:物理层、MAC层和路由层。物理层的差异主要在于无线通信需要对信号进行调制解调,而有线网络则不需要。MAC层的差异在于,目前有线网络基本采用交换机进行数据包的交互,节点对信道(传输线)的占用是独立的;而无线通信中,相邻节点公用信道(空间的某个时间/频率资源),因此数据容易相互碰撞而使接收方无法正确恢复其中的内容。网络层的差异在于,有线通信的路由表一旦建立后,对路由表的维护往往只是检测通信对象是否还继续存在(即节点是否退网),而无线网络中由于网络节点的移动,其路由表可能发生快速的变更。
由于MAC层和路由层的功能相对独立,因此目前的无线通信网络架构仍独立设计两者。如MANET(移动自组网)采用的MAC层无线组网协议包括:802.11a、802.11b、802.11g等;路由层的协议包括:主动路由协议:OLSR、FSR/DSDV等,以及被动路由协议:DSR、AODV、TORA等。虽然,将无线MAC层和路由层协议独立设计后,再层次化对接能够实现无线组网的功能。但是,将无线网络的MAC层和路由层独立设计存在两个方面的缺陷:(1)MAC层需要发送Beacon帧通知周围节点本节点的存在,而路由层通过洪泛Hello信息使网络内的其它节点获悉自身的存在。虽然Hello信息可以借助Beacon帧进行传递,但由于采用定周期广播的发送方式,因此在节点密集的网络环境下控制帧容易相互碰撞,致使节点的存在信息得不到有效传播。(2)由于路由协议要求以数据包的形式交互路由信息,而路由包的多跳传递势必会占用信道资源,因此会降低数据包的数据率和传送成功概率。
发明内容
要解决的技术问题
为解决MAC层和路由层分层设计带来的通信效率及成功率低下的问题,针对车联网的应用需求(主要针对越野车队和军用连一级装甲车队联网),提出一种基于簇首协调的MAC/路由一体化自组织网络设计方法。该方法同时解决网络中节点对信道的占用问题(本协议采用时分架构,即认为网络内所有节点工作在同一频道上,对信道的占用即对时间和空间的占用),以及路由表的建立与维护问题。
技术方案
一种基于簇首协调的MAC/路由一体化自组织网络设计方法,其特征在于步骤如下:
步骤1:将一个全时段划分为若干个时隙,将时隙划分为控制帧时段和数据帧时段,并根据802.11和MANET主动路由方法设计控制帧;
步骤2:节点进行信道搜索后加入自组织网络,具体过程如下:
步骤2a:节点进行信道搜索,若侦听到其它节点的控制帧,则获取BSSID,根据该控制帧的Time字段,校准本地时钟使本地时钟同步于源节点的时钟,并根据Extreme字段获悉本周期全时段的截止时间,即下一个全时段的开始时间,结合Ocpa字段、Interval字段和Time字段,推测出一个全时段的持续时间,在下一个全时段周期起始时进行步骤2b;
步骤2b:在一个全时段内监听信道,获取所有1跳范围内节点的控制帧,根据这些控制帧的Rank字段首先确定本节点是几级节点,在本节点的上一级节点中选择接收误码率最低的节点作为入网申请帧的目的节点,在入网申请帧的MACdest字段写入本节点的MAC地址,然后根据控制帧的Ocpb字段获悉能够发送申请帧的控制帧时刻,在这些控制帧时刻中随机选择一个时刻将其记为Ocptemp,在下一个全时段周期到来时进行步骤2c;
步骤2c:首先将计数器清0,并从全时段的起始时刻开始,每经过一个Interval时间长度,则将记数器的数值加1,当记数器的值等于Ocptemp时发送入网申请帧;
步骤2d:等待获取由源节分配的控制帧时刻,等待时长以全时段个数为单位,等待的最大时长为M,若经过了M个全时段,仍没有获取源节点给该节点分配的控制帧时刻,则重复步骤2b-2d,若在M个全时段内获取了由源节分配的控制帧时刻,则在指定的控制帧时刻发送控制帧并加入自组织网络;
步骤3:除源节点外的所有节点向源节点周期性的汇报本节点的存在信息,具体过程如下:
步骤3a:将网络中的末端节点的MAC地址填入MACsorc1……MACsorcN字段的首个位置,并将上一级节点的MAC地址写入MACdest字段,在指定时刻发送控制帧;
步骤3b:将中间节点的MAC地址填入MACsorc1……MACsorcN字段的首位,并将一个节点周期内接收到的目的地址指向本节点的控制帧的MACsorc1……MACsorcN字段中的所有地址添加到中间节点MACsorc1……MACsorcN字段上,将一级节点的MAC地址写入MACdest字段,并在指定时刻发送控制帧;
步骤3c:对所有的中间节点重复步骤b直到源节点能获取网络中每个工作节点汇报的节点存在信息;
步骤4:源节点使用Heart字段向除源节点外的所有节点传递源节点的存在信息,具体过程如下:
步骤4a:源节点在Heart字段填1,并在周期起始时刻发送控制帧;
步骤4b:n阶节点,其中n≥1,在一个节点周期内,若解析到某一个或某几个n-1阶节点控制帧的Heart字段为1,则将本节点的Heart字段也填1;若解析到所有n-1阶节点控制帧的Heart字段都为0或接收不到任何n-1阶节点的控制帧,则将本节点的Heart字段也填0,并在指定的时刻发送控制帧;
步骤4c:对于上一周期Heart字段填0的节点,本周期继续监听信道,若监听到某个或某几个节点控制帧的Heart字段为1,则说明本节点并未脱网,根据这些节点的Rank字段重新确定本节点的阶数,并在本节点的Heart字段填1;若收听到的所有节点的Heart字段都为0或收听不到其它任何节点的控制帧,则在Heart字段中继续填0,在指定控制帧时刻,发送控制帧;
步骤4d:重复步骤4c,若m个周期后本节点控制帧的Heart字段仍为0,则说明本节点已退网,对于退网节点,可根据周围节点情况自行组建网络,或重新进入网络搜状态等待再次加入原来的簇;
所述的BSSID为基本服务集标识;Time为时间戳;Extreme为本周期的截止时间;Ocpa为被本节点占用的控制帧时刻;Interval为时隙时长;Rank为本节点等级;MACdest为MAC目的地址;Ocpb为哪些控制帧时刻被本节点及本节点一跳范围内的其它节点占用;MACsorc1……MACsorcN为MAC源地址;Heart为源节点存在指示。
有益效果
本发明提出的一种基于簇首协调的MAC/路由一体化自组织网络设计方法,针对车队自组织网络,采用本发明方法将MAC控制帧和路由控制帧合并为一个控制帧,并采用TDMA的方式进行交互。与现有技术相比有以下两方面的有益效果:
一方面,节点不需要再采用洪泛的方式发送Hello信息,这不但保障了发现节点的正确性和实时性,也降低了网络的拥堵;
另一方面,无需用单独的数据包传递路由信息信息,而是将其和MAC层的Beacon帧进行合并,提高了网络的通信效率。普通节点能够实时维护三跳范围内节点的路由信息,且源节点能够充当网关的角色将本自组网信息与外界网络交互。
附图说明
图1为本发明所采用的全时段时隙划分关系图
图2为本发明所采用的控制帧格式图
图3为本发明所采用的控制帧MACapply field字段的格式图
图4为本发明所采用的申请帧的格式图
图5为节点阶数循环升高场景示意图
图6为本发明所采用的数据帧格式图
图7为节点入网场景示意图
图8a为节点降级场景示意图
图8b为节点退网场景示意图
具体实施方式
现结合实施例、附图对本发明作进一步描述:
本发明通过簇首节点(如越野车队的队长或装甲车队的连长)对信道资源进行划分。控制帧(将MAC层的Beacon帧和路由帧的合成帧称为控制帧)采用TDMA的工作方式,以避免控制帧的相互碰撞;数据帧(用户发送的数据包)采用CSMA/CA的工作方式,以提高突发数据包对信道的利用率。
技术方案主要包括:控制帧设计、节点入网过程、节点阶数变化及退网过程、路由表的建立与维护这四个方面的内容。下面就这四个方面的内容分别进行阐述:
一、控制帧设计
控制帧以TDMA的方式进行收发,将网络内所有节点的控制帧一次收发周期命名为全时段(Round time)。一个全时段被划分为若干个时隙,节点只在每个时隙的起始时刻发送控制帧(将这些时刻命名为控制帧时刻),占用的时长为Beacon Span,余下的时间用作通信数据包的交互,占用时长为Data Span。附图1中全时段被划分为16个时隙,由图可见一个全时段内有16个控制帧时刻。
控制帧包含MAC层信息(信道的占用信息)和路由层信息(路由表),其具体结构如附图2所示,控制帧的各字段含义如下:
MAC_Add:本节点的MAC地址。
BSSID:基本服务集标识,用以标示不同的簇。BSSID由源节点设定(数值上等同于源节点的MAC地址),其它接入本簇的节点仅仅转发该字段。
Kind:帧类型指示,每个控制帧时刻只可能出现两种帧:控制帧(Kind位填0),入网申请帧(Kind位置1)。
Heart:源节点存在指示,源节点存在则填1,否则填0。
Rank:本节点等级,簇首节点(由于簇首节点是簇内所有节点时间同步的源头,也称为源节点)的等级为0,能接收到源节点信息的其它节点为1级节点,能接收到1级节点信息而无法接收到源节点信息的节点为2级节点,以此类推到N级节点。定义簇的覆盖范围是通过多跳能够连接到源节点的空间范围,由于节点的相对位置关系是实时变化的,因此簇的覆盖范围也是实时变化的。
Time:时间戳,源节点发送控制帧时在该字段写入本节点的当前时间值(即一个全时段的起始时刻)。1级节点收到源节点发来的控制帧后首先解析该字段,然后加上天线、收发器的处理时延,得到同步于源节点的当前时刻(此处要求传播延时小于时间戳的步进);1级节点发送控制帧时,在该字段填入同步于源节点的当前时刻值。同理N级节点根据N-1级节点的Time字段,同步到源节点的当前时刻。
Interval:时隙时长,Interval=Beacon Span+Data Span。由于控制帧长度固定,因此Beacon Span的时长主要由通信速率、节点间距等因数决定。Interval字段由源节点指定赋值,其它节点只负责转发该字段。
Extreme:本周期(全时段)的截止时间。该字段由源节点根据组网节点的数量决定,其它节点只负责转发该字段。簇内的每个节点在一周期内最多发送一次控制帧,因此想要加入该簇的节点通过监听旁节点的Extreme字段和Time字段,能够获悉本周期还要持续多长时间。
Ocpa:指明被本节点占用的控制帧时刻。想要加入该簇的节点通过监听旁节点的Ocpa字段、Interval字段和Time字段能够推测出本周期的起始时间,再结合Extreme字段能够推测出一个周期的时长,并能计算出一个周期被划分成的时隙总数N。
Ocpb:指明哪些控制帧时刻被本节点及本节点一跳范围内的其它节点占用。想要加入本簇的节点通过解析周边节点发送的该字段,可以知道哪些控制帧时刻被占用,即能推断出能用于发送申请帧的控制帧时刻。
Hop11……Hop1N:指明和本节点相距一跳间隔的节点的MAC地址。
Hop21……Hop2N:指明和本节点相距两跳间隔的节点的MAC地址。
MACsorc1……MACsorcN:MAC源地址,该字段和MACdest字段配合,用于向源节点通告本簇的节点信息。源节点通过在多个周期积累该字段的信息,可以明确哪些原本存在于本簇的节点已经脱网。若发现脱网节点,则可以将分配给该节点的控制帧时刻分配给其它需要入网的节点。
MACdest:MAC目的地址,用于将节点信息以逐级传递的方式发送给源节点。
MACapply field:入网节点申请字段,具体格式见附图3。该字段用于入网申请帧的上传和下达,上传过程是将申请入网节点的MAC填入到MACblank(1~4)中并将Ocp(1~4)填全0,该信息最终将发送到源节点;下达过程是将申请入网节点的MAC填入到MACblank(1~4)中并将由源节点分配给该节点的控制帧时刻填入Ocp(1~4),该信息最终将发送到申请入网的节点。由附图3可见一次能上传和下达的地址总数量为4。
二、节点的入网过程:
新节点要加入本簇,必须经由源节点给其分配控制帧时刻,因此需要有源节点发现新节点的节点发现机制。MANET架构中节点的发现机制,基本都采用洪泛的方式。虽然利用这种层层广播的方式,能够通知周围节点该节点的存在,但采用广播的方式不但效率低,而且信息容易相互碰撞,一次洪泛往往难以保证其它节点都能发现本节点,而周期性的洪泛又容易造成信息的拥堵。为了确保源节点能够发现目标节点,同时避免洪泛带来的网络拥堵,采用一种定向传播,逐层接力的方式来通知源节点。
附图4为入网申请帧,由图4可见,入网申请帧的前几个字段和控制帧相同;和控制帧不同的是,MACapply字段填写申请入网节点的MAC地址,Kind字段填1,MACdest字段是节点根据对信道的监听结果选择的下一跳目的节点的MAC地址。具体的节点入网过程如下:
1、想要入网的节点首先要监听信道,若侦听到其它节点的控制帧,则说明有可加入的自组网存在,并获取BSSID。根据该控制帧的Time字段,校准本地时钟使其同步于源节点的时钟。并根据Extreme字段获悉本周期全时段的截止时间(即下一个全时段的开始时间),结合Ocpa字段、Interval字段和Time字段,推测出一个全时段的持续时间。在下一个全时段周期起始时进行步骤2
2、在一个全时段内监听信道,获取所有1跳范围内节点的控制帧。根据这些控制帧的Rank字段首先明确自己是几级节点,在本节点的上一级节点中选择一个节点作为入网申请帧的目的节点(选择依据可以是接收误码率最低的节点),在入网申请帧的MACdest字段写入该节点的MAC地址。然后根据控制帧的Ocpb字段获悉在哪些控制帧时刻发送申请帧不会造成碰撞。在这些控制帧时刻中随机选择一个时刻将其记为Ocptemp,在下一个全时段周期到来时进行步骤3。
2、首先将计数器清0,并从全时段的起始时刻开始,每经过一个Interval时间长度,则将记数器的数值加1,当记数器的值等于Ocptemp时发送入网申请帧。
4、等待获取由源节分配的控制帧时刻(其具体过程在申请帧的传递过程中描述),等待时长以全时段个数为单位,等待的最大时长为M。若经过了M个全时段,仍没有获取源节点给该节点分配的控制帧时刻,则重复步骤2~4。若在M个全时段内获取了由源节分配的控制帧时刻,则在指定的控制帧时刻发送控制帧并加入网络。
申请帧的传递过程分为上传过程(申请帧由申请节点传送到源节点)和下达过程(申请帧由源节点传送到申请节点),下面分别对其进行阐述。
申请帧的上传过程:
1、一个全时段内某个n级节点收到若干个n+1级节点的控制帧和入网申请帧,其MACdest字段都指向本节点。本节点根据这些控制帧的MACapply field字段和入网申请帧数目获悉在一个全时段内有p个节点需要通过本节点实现入网。将这p个节点的MAC地址写入一个FIFO中(将该FIFO命名为“上传FIFO”)并等待发送。若在此之前“上传FIFO”中还存在q个尚未发送的MAC地址,则此时FIFO的长度L=p+q。如果L≤4则取出FIFO中所有的MAC地址并转入步骤②,否则取出前4个MAC地址并转入步骤②。
2、如果n=0(即该节点是源节点),则直接将剩余的空闲控制帧时刻分配给需要入网的节点。如果n>0,需要将节点申请入网的信息传送到n-1阶节点,本节点以上传的方式填写MACapply field字段,并在MACdest字段填写本节点一跳范围内的n-1阶节点。在本节点的控制帧时刻到来时,发送填写好MACapply field字段的控制帧。要求节点在m个全时段内保存经由本节点上传的申请节点信息,将申请节点的MAC地址存入缓存中(将该缓存命名为“上传缓存”)。
3、循环步骤1~2,则能保证将节点申请入网的信息传送到源节点。
申请帧的下达过程:
1、源节点填写控制帧的MACapply field字段,把入网申请节点的MAC填入到MACblank(1~4)中并将给其分配的控制帧时刻填入到Ocp(1~4)。在全时段的起始时刻发送控制帧,在本全时段内若等待下达的申请帧数大于4,则采取和申请帧上传过程类似的FIFO缓存机制(将该缓存命名为“下达FIFO”)。
2、对于申请入网的n级节点,若n=1,则收到步骤①中源节点传递的控制帧,1级节点即可确定自己的控制帧发送时刻从而入网。若n>1,则1级节点需要比对源节点MACapply field字段中,分配了控制帧时刻的MACblank(1~4)对应的MAC地址是否包含在本节点的“下达缓存”中,若不包含则不进行任何处理;若包含则将对应的MACblank(n)和Ocp(n)复制到本节点控制帧的MACapply field字段,并在本节点的控制帧时刻到来时将其发送。
3、n级节点以步骤2中的方式,递归的监听n-1级节点的控制帧并发送自身的控制帧。循环步骤2~3一定能保证从源节点发送的控制帧时刻分配信息能被传递到申请入网的节点使其顺利入网。
由于申请帧的上传和下达都是通过控制帧的MACapply field字段进行传递,而区别两者的依据仅在于Ocp(1~4)是全0还是被赋予了某个时刻值。因此有可能某个控制帧同时进行申请帧的上传和下达,而MACapply field字段限制一次传递的申请帧总数为4个。如果某个时刻需要同时进行多个申请帧的上传和下达,应该首先保证申请帧下达。
三、节点阶数变化及退网过程:
节点的阶数越低,说明其越接近源节点则其级别越高;反之节点的阶数越高,则其级别越低。由于节点的运动,或其周围节点的入退网,节点可能“升级”(阶数降低),也可能降级(阶数升高)。
节点在一个节点周期内(节点从本次控制帧发送到下次控制帧发送所经历的时段称为节点周期)通过监听1跳范围内节点控制帧的Rank字段,获悉自己的阶数。确定自己的阶数后,n阶节点需要从n-1阶节点控制帧的time字段获取时钟同步信息。采用时间逐级同步的方式,在数据传输过程中即使经过了多跳传递,由传输时延成造成的收发不同步也仅限制在一跳的传输距离范围内。
若n阶节点在一个节点周期内监听到m阶节点的控制帧(m≤n-2),则该节点升级为m+1阶节点。若n阶节点在一个节点周期内无法监听到所有n-1阶节点的控制帧,则该节点可能降级也可能由于运动脱离了网络的覆盖范围(即退网)。
由于簇内源节点给普通节点分配的控制帧时刻是固定的,因此每个节点发送控制帧都会占据一定的时间频率资源。如果没有节点的退网机制,则已经退网的节点仍然会占用这个资源。当所有可用的控制帧时刻都分配完时,如果不增大全时段的时隙数就不再能加入新节点,而簇内的实际节点数没有达到真正的饱和。
如果节点能在退网前通知簇头,则簇头可以有效收回被占用的控制帧时刻,将这种方式称作主动退网。但实际应用环境下的自组网编队,节点的退网往往是被动的,即由于节点损坏或节点运动脱离网络覆盖范围等因素造成的节点退网,因此无法形成由退网节点到源节点的有效链路。
为解决这一问题,利用MACsorc1……MACsorcN字段实现普通节点(除源节点外的所有节点,都称为普通节点)向源节点周期性的汇报本节点的存在信息。其具体流程如下:
1、网络中的末端节点(本节点一跳范围内没有比自己阶数更高的节点)将本节点的MAC地址填入MACsorc1……MACsorcN字段的首个位置,并将选定的某个上一级节点的MAC地址写入MACdest字段(该过程和节点申请入网过程公用一个MACdest字段,因此这两个过程同时进行时,实际上是指向同一个下一跳节点),在指定时刻发送控制帧。
2、中间节点(本节点的一跳范围内存在更高阶和更低阶的节点)将本节点的MAC地址填入MACsorc1……MACsorcN字段的首位,并将一个节点周期内接收到的目的地址指向本节点的控制帧的MACsorc1……MACsorcN字段中的所有地址添加到本节点MACsorc1……MACsorcN字段上。将选定的某个上一级节点的MAC地址写入MACdest字段,并在指定时刻发送控制帧。
3、重复步骤2则可以保证源节点能以全时段为单位获取网络中每个工作节点汇报的节点存在信息。
如果源节点连续M个周期都获取不到来自某个普通节点的汇报信息,则认为该节点脱离了本簇。为了防止对节点退网的错误判断(即已被判断退网的节点实际仍在使用该控制帧时刻),源节点设立一个“空闲控制帧时刻FIFO”,以及一个“MAC地址与控制帧时刻分配映射关系表”。源节点初始上电时,首先将2~N,共N-1个时刻值(时刻1被本节点占用)放入“空闲控制帧时刻FIFO”中。依次按顺序给申请入网的节点分配这些时刻,每分配一个时刻就将对应申请节点的MAC地址写入“MAC地址与控制帧时刻分配映射关系表”中。当发现退网节点时,首先将收回的控制帧时刻放入“空闲控制帧时刻FIFO”的末尾,只要该控制帧时刻尚未被分配给其它节点,则保留该时刻与这个退网节点的映射关系。若在某个时刻源节点又收到这个退网节点的存在信息,则根据“MAC地址与控制帧时刻分配映射关系表”在FIFO中去除这个时刻,使这个时刻依然被该节点占用。
上述方法能够保证源节点实时检测到哪些普通节点脱离了网络,而无法保证普通节点发现本节点自身的脱网,由此可能造成节点阶数循环上升的问题。
附图5中共有三个节点:源节点S、1阶节点R11、2阶节点R21。若某时刻R11、R21脱离了源节点的覆盖范围,则R11仅收到R21的控制帧,因此将本节点控制帧Rank字段的值由1改为3(节点变为R31);下一个周期R21收到R31的控制帧,将本节点控制帧Rank字段的值由2改为4(节点变为R41)。如此反复则这两个节点的阶数将不断升高,而造成此现象的原因是脱网络节点缺少阶数的唯一参考值。
因此若n阶节点从某时刻开始收不到n-1阶节点的控制帧,应当首先判断本节点是降级了还是脱网了。为了辨别节点是否脱网,必须验证是否存在某条链路能连接到源节点。为实现这一目的,需要使用Heart字段,以传递源节点的存在信息,具体过程如下:
1、源节点在Heart字段填1,并在周期起始时刻发送控制帧。
2、n(n≥1)阶节点在一个节点周期内,若解析到某一个或某几个n-1阶节点控制帧的Heart字段为1,则将本节点的Heart字段也填1;若解析到所有n-1阶节点控制帧的Heart字段都为0或接收不到任何n-1阶节点的控制帧,则将本节点的Heart字段也填0,并在指定的时刻发送控制帧。
3、对于上一周期Heart字段填0的节点,本周期继续监听信道。若监听到某个或某几个节点控制帧的Heart字段为1,则说明本节点并未脱网,根据这些节点的Rank字段重新确定本节点的阶数,并在本节点的Heart字段填1。若收听到的所有节点的Heart字段都为0或收听不到其它任何节点的控制帧,则在Heart字段中继续填0。在指定控制帧时刻,发送本节点的控制帧。
4、重复步骤3,若m个周期后本节点控制帧的Heart字段仍为0,则说明本节点已退网。对于退网节点,可根据周围节点情况自行组建网络,或重新进入网络搜状态等待再次加入原来的簇。
四、路由表的建立与维护问题:
对于车队自组网而言,由于网络规模和传送时延的限制,对通信多跳的要求一般限制在三跳以内。由于控制帧的Hop11……Hop1N字段和Hop21……Hop2N字段包含了本节点所有一跳和两跳节点的MAC信息,因此若某节点收到全部邻居节点的控制帧,则该节点能够获得完备的三跳范围内节点的路由信息,而无需传递单独的路由帧。
普通节点路由表建立与维护过程如下:
1、节点在一个节点周期内收集所有邻居节点的控制帧;
2、根据控制帧的MAC_Add字段,获悉一跳范围内所有节点的MAC地址;
3、合并控制帧Hop11……Hop1N字段的所有MAC地址,去除这些地址中和本节点的MAC地址以及MAC_Add字段中的MAC地址重复的地址,则剩余的地址为本节点两跳通信节点的MAC地址。而传递这些MAC地址的节点为本节点通往这些节点的下一跳节点。要向某个两跳通信节点发送数据时,若发现有多个下一跳节点能连接到这个两跳节点,则根据网络的堵塞程度或误码率选择合适的下一跳节点。
4、合并控制帧Hop21……Hop2N字段的所有MAC地址,去除这些地址中和MAC_Add字段中的MAC以及Hop11……Hop1N字段中的MAC地址重复的地址,则剩余的地址为本节点三跳通信节点的MAC地址。而传递这些MAC地址的节点为本节点通往这些节点的下一跳节点。要向某个三跳通信节点发送数据时,若发现有多个下一跳节点能连接到某个三跳节点,则根据网络的堵塞程度或误码率选择合适的下一跳节点。
5、循环1~4,以节点周期为间隔更新路由信息。
附图6为数据帧格式图,数据帧包含的字段包括:本节点地址:MAC_Add,服务集地址:BSSID,目的节点地址:MAC_dest,下一跳地址:MAC_next,信道占用时间:NAV,数据包内容:DATA。数据包需要多跳传递时,只要正确填写目的地址和下一跳地址,则数据包就能逐跳的发送到目的节点。
战场环境下,往往要求簇头具备网关的功能,即将通过簇头将本簇的簇内信息上传到其它更高层网络或将其它网络下发的信息传递到各个节点。这就需要簇头(车队队长或连长)具有通向簇内每个节点的完备路由表;同时应保证任意一个节点具有通向簇头的链路。
阶数大于3的节点要给源节点发信息,即使源节点不在本节点的路由表内,也可利用与申请帧上传相类似的方式传送数据包。具体方法是:给源节点发送数据包时,将本节点控制帧的MACdest字段复制到数据包的MAC_next字段。中间节点收到传递给源节点的数据包后,以同样的方式填写MAC_next字段。则数据包能以逐阶向上的传输方式最终传送到源节点。
源节点给阶数大于3的节点发送数据时,数据包的传递过程类似于申请帧的下达过程。源节点通过查询收到的控制帧的MACsorc1……MACsorcN字段获悉通向该节点的下一跳节点(1级节点)的MAC地址并把数据包发送给这个相应的1级节点;该1级节点若发现MACdest字段中的目的节点不在本节点的3跳路由表内,也通过查询控制帧的方式将数据包发送给相应的2级节点;以此类推的方式将数据包一直发送到目的节点。
以下根据附图7对第二步节点入网及退网过程作进一步的说明:
1、节点入网具体过程
附图7为节点入网场景示意图,其中S为源节点,Rnm为第n级的第m个节点。图中共有1个源节点,3个一级节点,7个二级节点,共11个节点。
假设所有节点同时上电,下面以逐周期/全时段(每个序号代表一个周期)的方式具体阐述控制帧发送和节点入网的过程。
源节点发送控制帧,确定了一个全时段的起始和终止时刻(此处源节点将全时段划分为16个时隙)。节点R11、R12和R13通过源节点的控制帧校准时钟,并获悉本节点是1级节点,且目前第2~16个控制帧时刻未被占用。
R11、R12和R13在2~16中随机选择一个控制帧时刻发送入网申请帧,其MACdest字段为源节点的MAC地址。假设它们选择的控制帧时刻相互并无碰撞(若有碰撞则等待m个周期后,仍收不到下达给本节点的入网回复帧,则重新发送申请帧),则源节点能正确收到来自R11、R12和R13的申请帧。通过在MACapply field字段填入相应的MACblank(1~3)和Ocp(1~3)的值,源节点分别给这3个节点安排2、3、4时刻作为其控制帧时刻。
源节点发送控制帧,R11、R12和R13在MACapply field字段获取各自的控制帧时刻,并在各自的控制帧时刻到来时发送控制帧。在本周期结束前,R21、R27接收到来自R11的控制帧,R25接收到R12的控制帧,R23、R26接收到R13的控制帧,R22接收到R11和R12的控制帧,R24接收到R11和R13的控制帧。各2级节点校准各自时钟,并选择某个1级节点作为其申请帧的中转节点(即在其MACdest字段写入该1级节点的MAC地址)。各2级节点通过周围1级节点的Ocpb字段获悉哪些控制帧时刻未被占用。
各2级节点随机选择一个未被占用的控制帧时刻发送入网申请帧。以R24为例,R11的Ocpb显示第1、2、3个控制帧时刻被占用(分别被S、R11和R12占用),R13的Ocpb显示第1、4个控制帧时刻被占用(分别被S、R13占用),因此R24从5~16中随机选择一个控制帧时刻发送入网申请帧。R24选择R11作为其申请的中转节点,则只要R24选择的随机时刻不与R21、R22和R27选择的时刻相冲突则其申请信息就能顺利的通过R11传送到源节点。
各1级节点在其MACapply field字段中将申请入网的2级节点的MAC地址填入到MACblank(1~n),并在控制帧中发送该信息,实现申请信息的上传。其中,R11传送R21、R22、R24和R27的信息,R12传送R25的信息,R13传送R23和R26的信息。源节点收到这些信息并将其存入“下达FIFO”,则此时FIFO的长度为7。
源节点发送控制帧,其MACapply field字段MACblank(1~4)的值分别对应R21、R22、R24和R27的MAC地址,Ocp(1~4)的值则分别为5、6、7、8。R11收到该控制帧并将MACblank(1~4)的值和本节点“上传缓存”中MAC地址的值进行对比,发现对应的四个节点正是经由本节转发过申请信息的节点。因此将该MACapply field字段的信息复制到本节点控制帧的MACapply field字段,并在相应时刻发送控制帧。R21、R22、R24和R27收到来自R11的控制帧,解析出源节点给本节点安排的控制帧时刻。R12和R13也收到了源节点发送的控制帧,但由于MACapply field字段中的地址与本节点“上传缓存”中的地址不匹配,因此不作任何处理。
源节点发送控制帧,其MACapply field字段MACblank(1~3)的值分别对应R25、R23和R26的MAC地址,Ocp(1~3)的值则为9、10、11。R12和R13采用和步骤⑥类似的方法分别通过本节点的控制帧通知R25、R23和R26其被安排的控制帧时刻。
至此,全部11个节点都被安排了相应的控制帧时刻,并入网。由该流程可见,从第1个周期到第3个周期,1级节点完成了入网过程(共3个周期);从第3个周期到第6个周期,部分2级节点完成了入网过程(共4个周期)。因此,对于想要入网的n阶节点而言,从信道监听到完成入网最快需要n+2个周期,其中:1个周期用于信道检测,使节点获悉本节点的阶数和空闲的控制帧时刻,n+1个周期用于申请的上传和下达。考虑到节点的FIFO中等待上传或下达的申请信息可能大于4,而超过节点单周期能够传递的申请总数造成传递滞后。
若申请入网的等待回复周期数为M,则可令
M=random(3n+2,4n+2) (1)
式1中,random(a,b)为取[a,b]间的一个随机数。若节点申请入网后超过M个周期,仍无法接获取源节点给本节点分配的Beacon时刻,则重新发送申请帧。
2、节点降级、退网具体过程
附图8a为节点降级场景示意图,簇内有一个源节点S,两个1级节点R11和R12,两个2级节点R21和R22。R11经过一段时间的运动脱离S的覆盖范围(接收不到S的控制帧)。此时,R11首先将Heart字段置0(第1个周期);由于R11是R22的唯一上级节点,因此R22收到R11的控制帧后也将本节点的Heart字段置0(第2个周期);在第3个周期R22收到R11和R21的控制帧,由于R21控制帧的Heart字段为1,因此R22根据R21的Rank字段将本节点的阶数设为3(R22变为R31),并将Heart字段置1;第4个周期R11收到来自R31的信息,根据其Rank字段将本节点的阶数设为4(R11变为R41)。
附图8a中的节点完成降级后如附图8b所示,簇内包含源节点S及1~4级节点各一个。此时,R31经过一段时间的运动脱离网络的覆盖范围,移动到图中RX所在位置。当R31接收不到R21的控制帧时,其将Heart字段置0(第1个周期);由于R31是R41的唯一上级节点,因此R41也将本节点的Heart字段置0(第2个周期);此后R31和R41由于收不到Heart字段置1的控制帧,因此m(可令m=10)个周期后R31、R41将判本定节点脱网。脱网后的R31以RX表示,根据应用层需求,RX可以以本节点为源节点组织新的网络;也可以被动搜索信道,直到再次监听到Heart字段置1的控制帧后,重新申请入网。
Claims (1)
1.一种基于簇首协调的MAC/路由一体化自组织网络设计方法,其特征在于步骤如
下:
步骤1:将一个全时段划分为若干个时隙,将时隙划分为控制帧时段和数据帧时段,并根据802.11和MANET主动路由方法设计控制帧;
步骤2:节点进行信道搜索后加入自组织网络,具体过程如下:
步骤2a:节点进行信道搜索,若侦听到其它节点的控制帧,则获取BSSID,根据该控制帧的Time字段,校准本地时钟使本地时钟同步于源节点的时钟,并根据Extreme字段获悉本周期全时段的截止时间,即下一个全时段的开始时间,结合Ocpa字段、Interval字段和Time字段,推测出一个全时段的持续时间,在下一个全时段周期起始时进行步骤2b;
步骤2b:在一个全时段内监听信道,获取所有1跳范围内节点的控制帧,根据这些控制帧的Rank字段首先确定本节点是几级节点,在本节点的上一级节点中选择接收误码率最低的节点作为入网申请帧的目的节点,在入网申请帧的MACdest字段写入本节点的MAC地址,然后根据控制帧的Ocpb字段获悉能够发送申请帧的控制帧时刻,在这些控制帧时刻中随机选择一个时刻将其记为Ocptemp,在下一个全时段周期到来时进行步骤2c;
步骤2c:首先将计数器清0,并从全时段的起始时刻开始,每经过一个Interval时间长度,则将记数器的数值加1,当记数器的值等于Ocptemp时发送入网申请帧;
步骤2d:等待获取由源节分配的控制帧时刻,等待时长以全时段个数为单位,等待的最大时长为M,若经过了M个全时段,仍没有获取源节点给该节点分配的控制帧时刻,则重复步骤2b-2d,若在M个全时段内获取了由源节分配的控制帧时刻,则在指定的控制帧时刻发送控制帧并加入自组织网络;
步骤3:除源节点外的所有节点向源节点周期性的汇报本节点的存在信息,具体过程如下:
步骤3a:将网络中的末端节点的MAC地址填入MACsorc1……MACsorcN字段的首个位置,并将上一级节点的MAC地址写入MACdest字段,在指定时刻发送控制帧;
步骤3b:将中间节点的MAC地址填入MACsorc1……MACsorcN字段的首位,并将一个节点周期内接收到的目的地址指向本节点的控制帧的MACsorc1……MACsorcN字段中的所有地址添加到中间节点MACsorc1……MACsorcN字段上,将一级节点的MAC地址写入MACdest字段,并在指定时刻发送控制帧;
步骤3c:对所有的中间节点重复步骤b直到源节点能获取网络中每个工作节点汇报的节点存在信息;
步骤4:源节点使用Heart字段向除源节点外的所有节点传递源节点的存在信息,具体过程如下:
步骤4a:源节点在Heart字段填1,并在周期起始时刻发送控制帧;
步骤4b:n阶节点,其中n≥1,在一个节点周期内,若解析到某一个或某几个n-1阶节点控制帧的Heart字段为1,则将本节点的Heart字段也填1;若解析到所有n-1阶节点控制帧的Heart字段都为0或接收不到任何n-1阶节点的控制帧,则将本节点的Heart字段也填0,并在指定的时刻发送控制帧;
步骤4c:对于上一周期Heart字段填0的节点,本周期继续监听信道,若监听到某个或某几个节点控制帧的Heart字段为1,则说明本节点并未脱网,根据这些节点的Rank字段重新确定本节点的阶数,并在本节点的Heart字段填1;若收听到的所有节点的Heart字段都为0或收听不到其它任何节点的控制帧,则在Heart字段中继续填0,在指定控制帧时刻,发送控制帧;
步骤4d:重复步骤4c,若m个周期后本节点控制帧的Heart字段仍为0,则说明本节点已退网,对于退网节点,可根据周围节点情况自行组建网络,或重新进入网络搜状态等待再次加入原来的簇;
所述的BSSID为基本服务集标识;Time为时间戳;Extreme为本周期的截止时间;Ocpa为被本节点占用的控制帧时刻;Interval为时隙时长;Rank为本节点等级;MACdest为MAC目的地址;Ocpb为哪些控制帧时刻被本节点及本节点一跳范围内的其它节点占用;MACsorc1……MACsorcN为MAC源地址;Heart为源节点存在指示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410810509.2A CN104618245B (zh) | 2014-12-23 | 2014-12-23 | 基于簇首协调的mac/路由一体化自组织网络设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410810509.2A CN104618245B (zh) | 2014-12-23 | 2014-12-23 | 基于簇首协调的mac/路由一体化自组织网络设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104618245A true CN104618245A (zh) | 2015-05-13 |
CN104618245B CN104618245B (zh) | 2017-08-29 |
Family
ID=53152531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410810509.2A Active CN104618245B (zh) | 2014-12-23 | 2014-12-23 | 基于簇首协调的mac/路由一体化自组织网络设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104618245B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072586A (zh) * | 2015-07-20 | 2015-11-18 | 无锡士康通讯技术有限公司 | 嵌入式无线自组织网络中对广播消息的转发的管理方法 |
CN106793001A (zh) * | 2017-01-19 | 2017-05-31 | 深圳市民益得信息科技有限公司 | 一种无线通信网络组网方法及装置 |
CN111711571A (zh) * | 2020-08-20 | 2020-09-25 | 湖南智领通信科技有限公司 | 支持ip透传的自组网按需路由方法、装置和计算机设备 |
CN111770516A (zh) * | 2020-07-08 | 2020-10-13 | 清华大学 | 一种自组网通信的帧结构设计与使用方法 |
CN113133075A (zh) * | 2019-12-31 | 2021-07-16 | 杭州萤石软件有限公司 | 一种无线网格网络中信道切换方法以及无线节点设备 |
CN115297523A (zh) * | 2022-07-22 | 2022-11-04 | 中国水产科学研究院渔业工程研究所 | 一种用于海上船队作业时船台-岸台通信的信道接入方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090059799A1 (en) * | 2007-08-28 | 2009-03-05 | Nortel Networks Limited | Scaling oam for point-to-point trunking |
CN102238683A (zh) * | 2011-07-08 | 2011-11-09 | 华南理工大学 | 一种无线网状网的路由信息获取和传递方法 |
CN103873485A (zh) * | 2014-04-03 | 2014-06-18 | 重庆邮电大学 | 车载自组织网络中基于链路持续时间的簇mac协议实现方法 |
-
2014
- 2014-12-23 CN CN201410810509.2A patent/CN104618245B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090059799A1 (en) * | 2007-08-28 | 2009-03-05 | Nortel Networks Limited | Scaling oam for point-to-point trunking |
CN102238683A (zh) * | 2011-07-08 | 2011-11-09 | 华南理工大学 | 一种无线网状网的路由信息获取和传递方法 |
CN103873485A (zh) * | 2014-04-03 | 2014-06-18 | 重庆邮电大学 | 车载自组织网络中基于链路持续时间的簇mac协议实现方法 |
Non-Patent Citations (2)
Title |
---|
牛晓光等: "移动自组织网络中基于优化分簇的混合路由协议", 《通信学报》 * |
黄晓斌: "移动自组网跨层设计的路由/MAC协议", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072586A (zh) * | 2015-07-20 | 2015-11-18 | 无锡士康通讯技术有限公司 | 嵌入式无线自组织网络中对广播消息的转发的管理方法 |
CN105072586B (zh) * | 2015-07-20 | 2018-05-18 | 无锡士康通讯技术有限公司 | 嵌入式无线自组织网络中对广播消息的转发的管理方法 |
CN106793001A (zh) * | 2017-01-19 | 2017-05-31 | 深圳市民益得信息科技有限公司 | 一种无线通信网络组网方法及装置 |
CN113133075A (zh) * | 2019-12-31 | 2021-07-16 | 杭州萤石软件有限公司 | 一种无线网格网络中信道切换方法以及无线节点设备 |
CN113133075B (zh) * | 2019-12-31 | 2022-09-16 | 杭州萤石软件有限公司 | 一种无线网格网络中信道切换方法以及无线节点设备 |
CN111770516A (zh) * | 2020-07-08 | 2020-10-13 | 清华大学 | 一种自组网通信的帧结构设计与使用方法 |
CN111711571A (zh) * | 2020-08-20 | 2020-09-25 | 湖南智领通信科技有限公司 | 支持ip透传的自组网按需路由方法、装置和计算机设备 |
CN115297523A (zh) * | 2022-07-22 | 2022-11-04 | 中国水产科学研究院渔业工程研究所 | 一种用于海上船队作业时船台-岸台通信的信道接入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104618245B (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hermeto et al. | Scheduling for IEEE802. 15.4-TSCH and slow channel hopping MAC in low power industrial wireless networks: A survey | |
US8331311B2 (en) | Distributed channel hopping method in wireless ad-hoc network | |
Chao et al. | Multiple-rendezvous multichannel MAC protocol design for underwater sensor networks | |
US7804803B2 (en) | Neighbor based TDMA slot assignment | |
CN101978761B (zh) | 在包括多个节点的无线网络中进行通信的方法 | |
CN104618245A (zh) | 基于簇首协调的mac/路由一体化自组织网络设计方法 | |
CN108093469B (zh) | 基于tdma的无线传输系统的分布式接入方法 | |
Lin et al. | A distributed and scalable time slot allocation protocol for wireless sensor networks | |
US20090161637A1 (en) | Communication apparatus and method in wireless sensor network | |
US20110158204A1 (en) | Reliable and low-latency sensor network mac system and method using superframe | |
CN105873170A (zh) | 一种认知无线电移动自组织网络多信道介质访问控制方法 | |
Cheng et al. | Taming collisions for delay reduction in low-duty-cycle wireless sensor networks | |
CN101247339B (zh) | 在移动无线传感器网络中进行集中式资源预约管理的方法 | |
KR20140069652A (ko) | 애드혹 네트워크의 시분할 다중접속 프레임 구조 및 이를 이용한 동적 시간 슬롯 할당 방법 | |
Wu et al. | Large-scale access scheduling in wireless mesh networks using social centrality | |
CN113098671B (zh) | 无线信标时隙与hplc信标时隙融合的双模通信方法 | |
KR101751757B1 (ko) | 트리형 네트워크 기반 타임슬롯 및 주파수 슬롯 할당 방법 | |
Lee et al. | Distributed fast beacon scheduling for mesh networks | |
JP6379892B2 (ja) | タイムスロット割り当て方法及び装置 | |
KR20180076770A (ko) | 산업 무선 센서 네트워크에서의 재전송 예약슬롯 기반 분산 스케줄링 장치 및 방법 | |
CN105072586A (zh) | 嵌入式无线自组织网络中对广播消息的转发的管理方法 | |
KR101027853B1 (ko) | 무선 센서 네트워크의 브로드캐스트 방법 | |
KR20090075569A (ko) | 무선 개인 영역 네트워크 내에서 이동하는 엔드 디바이스의위치 인식 방법 및 시스템 | |
Gajjar et al. | LEFT: A latency and energy efficient flexible TDMA protocol for wireless sensor networks | |
CN104581819A (zh) | 一种时隙资源碰撞的确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |