专利名称:一种无线mesh网络的分布式资源分配方法
技术领域:
本发明涉及的一种基于无线MESH网络的冲突避免资源分配方法通过源节点和目标节点间资源分配IE的交互,完成无线资源预约,并通过相关IE分别告知源节点和目标节点的一跳邻居本节点即将使用的资源情况,避免邻居节点资源分配和使用冲突。下面结合附图及实施例,为达成上述目标详细介绍本发明的一种基于无线MESH网络的冲突避免资源分配实现方法。请参照
图1所示,此为本发明中节点维护的本地资源集中BIT映射的结构;本发明中每个节点维护一组相关的本地资源集,busy []标识本地忙的资源,self_tx_unavl []标识本地不可发送资源,self_rx_unavl []标识本地不可接收资源,neighbor_rx_unavl []标识本地一跳邻居节点不可接收资源;通过本地资源集获取本地资源使用情况,并通过更新本地资源集掌握本地资源最新使用情况。
请参照图2,图2a为本发明中节点间资源预约示意图,图2b为资源预约流程图。所述资源预约流程包括以下步骤:
步骤S2.1:源节点A的调度单元计算本地需发往目标节点B的数据量,结合本地可用资源信息,生成描述可用资源块的MSH_GRANT_IE,同时更新本地可用资源信息;
步骤S2.2:源节点A在获得分布式调度控制消息发送时机时,将MSH_GRANT_IE嵌入分布式调度控制消息中,通过全向天线发送出去;
步骤S2.3:判断接收节点是否为目的节点,如是,则转入步骤S2.5,否则转入S2.4 ;步骤S2.4:源节点A的一跳邻居节点C通过全向天线收到节点A的分布式调度控制消息后,解析MSH_GRANT_IE,根据该IE描述内容,更新本地资源使用情况信息;
步骤S2.5:目标节点B通过全向天线收到源节点A的分布式调度控制消息后,解析MSH_GRANT_IE,根据该IE描述内容,结合本地可用资源信息,生成MSH_C0NFIRM_IE,同时更新本地可用资源信息;
步骤S2.6:目标节点B在获得分布式调度控制消息发送时机时,将MSH_C0NFIRM_IE嵌入分布式调度控制消息中,通过全向天线发送出去;
步骤S2.7:判断接收节点是否为源节点,如是,转入步骤S2.9,否则转入步骤S2.8 ;步骤S2.8:目标节点B的一跳邻居D通过全向天线收到节点B发送的分布式调度控制消息后,解析MSH_C0NFIRM_IE,根据该IE描述内容,更新本地资源使用情况信息;
步骤S2.9:源节点A通过全向天线收到目标节点B的分布式调度控制消息后,解析MSH_C0NFIRM_IE,根据该IE描述,确定向目标节点发送数据时使用的资源信息,并在相应资源块上完成数据调度及发送;
至此,两节点间数据通信资源分配完成。请参照图3,此为本发明中源节点生成MSH_GRANT_IE流程图,该流程对应图2中步骤S2.1。当节点需要发送数据到目标节点时,根据服务流中所需发送的数据量及业务QoS需求,计算调度所需资源并根据本地可用资源信息生成MSH_GRANT_IE,具体包括以下步骤:
步骤S3.1:源节点根据服务流数据量计算本次调度数据发送量,进入步骤S3.2 ;
步骤S3.2:根据数据发送量及服务流QoS需求计算本次调度中每一帧中需分配的时隙数(duration),进入步骤 S3.3 ;
步骤S3.3:根据本地节点信息表获取向目标节点发送数据所用扇区,如果节点数据通信使用的是全向天线,则不需扇区信息,进入步骤S3.4 ;
步骤S3.4:遍历该扇区下接口,进入步骤S3.5 ;
步骤S3.5:该扇区下接口是否遍历完,如是,则转入步骤S3.12 ;否则进入步骤S3.6 ; 步骤S3.6:遍历该接口下信道,进入步骤S3.7 ;
步骤S3.7:该接口下信道是否遍历完,如是,则转入步骤S3.4,否则进入步骤S3.8 ;步骤S3.8:在该信道下,根据本地资源相关信息判断是否有本节点需要的资源块,有则进入步骤S3.9 ;否则转入步骤S3.6 ;
步骤S3.8又可进一步细分为:
步骤S3.8.1:将调度周期内的第一帧作为start_frame ;进入步骤S3.8.2 ;
步骤S3.8.2:遍历调度周期内所有帧,进入步骤S3.8.3 ;步骤S3.8.3:是否遍历完整个调度周期内的所有帧,如果是,转入步骤S3.6,否则进入步骤 S3.8.4 ;
步骤S3.8.4:从start_slot开始遍历巾贞中时隙,如果该时隙既没有在busy []中被设置为1,也没有在self_tx_unavl []中设置为I,则该时隙为可用,进入步骤S3.8.5 ;
步骤S3.8.5:该巾贞中是否有从start_slot开始连续duration个空闲时隙,是则转入步骤S3.8.2,遍历下一帧,否则进入步骤3.9 ;
3.9:判断此时遍历的帧数是否大于调度周期的一半,如果是,转入步骤S3.10,否则否则转入步骤S3.6,遍历下一个信道;
步骤S3.10找到可用资源块,根据资源的接口、信道、扇区、帧及时隙信息生成MSH_GRANT_IE ;进入步骤 S3.10 ;
步骤S3.11:根据MSH_GRANT_IE的资源描述更新本地资源信息中的busy[]结构,将即将使用的资源标识为不可用;
步骤S3.11又可进一步细分为:
步骤S3.11.1:首先更新本接口相应扇区、信道、帧和对应时隙资源为不可用,进入步骤 S3.11.2 ;
步骤S3.11.2:将本接口其它扇区与MSH_GRANT_IE所描述相同的信道、帧和时隙更新为不可用(因为一个接口同一时刻只能有一个扇区工作),进入步骤S3.10.3 ;
步骤S3.11.3:节点是否有多个接口 ;如果有,进入步骤S3.10.4 ;否则进入步骤S3.12 ;
步骤S3.11.4:更新其它接口上相应扇区、信道、帧和时隙为不可用;
步骤S3.12:没有找到可用资源,生成MSH_GRANT_IE失败,进入步骤S3.12 ;
步骤S3.13:MSH_GRANT_IE生成及本地资源更新过程结束;
请参照图4,此为本发明中源节点一跳邻居节点收到MSH_GRANT_IE后的处理流程图,该流程对应图2中步骤S2.4。当源节点一跳邻居节点收到源节点发送的MSH_GRANT_IE消息后,通过读取MSH_GRANT_IE消息相关资源描述内容,更新本地保留的资源描述集相关结构,获取并更新本地资源使用情况;消息处理过程包括以下步骤:
步骤S4.1:节点收到MSH_GRANT_IE,根据dest_nodeid字段判断本地是否为目标节点,是则需通过参照图5中相关描述处理,转入步骤S4.7,否则进入步骤S4.2 ;
步骤S4.2:节点读取MSH_GRANT_IE中相关资源描述信息,具体包括:信道、开始帧号(start_frame)、结束巾贞号(end_frame)、开始时隙(start_slot)、持续时长(duration),进入步骤S4.3 ;
步骤 S4.3:更新本地 neigh_rx_unavl [];
步骤S4.3又可进一步细分为:
步骤S4.3.1:根据MSH_GRANT_IE中的信息更新neigh_rX_unavl []中源节点A的相应接口、扇区、信道、帧号、时隙为不可用,进入步骤S4.3.2 ;
步骤S4.3.2:因为一个接口同一时间只能有一个扇区工作,所以更新接口上其它扇区为相应信道、帧号、时隙为不可用,进入步骤4.3.3 ;步骤S4.3.3:节点上有没有其它接口,如果有,进入步骤S4.3.4 ;否则进入步骤S4.4 ; 步骤S4.3.4:更新其它接口上相应扇区、帧号、时隙为不可用(为避免同频率干扰,一个接口相应扇区中资源用于发送后,其它接口相应资源不能用于接收(也不会用于发送,因为源节点已经将该资源放入busy[]结构中)),进入步骤S4.4 ;
步骤S4.4根据本地邻居节点信息判断本节点是否在源节点发送扇区覆盖范围内,如果在,进入步骤S4.5 ;否则进入步骤S4.6 ;
步骤S4.5:self_rx_unavl []中本节点接收源节点信息所用扇区内所有接口中与源节点请求资源同信道、同帧、同时隙的资源均更新为不可用(避免本地接收资源接收到错误信息)进入步骤S4.6 ;
步骤S4.6:源节点一跳邻居接收MSH_GRANT_IE处理流程结束。请参照图5,此为本发明中目标节点接收MSH_GRANT_IE后,处理并生成MSH_C0NFIRM_IE流程图。该流程对应图2中步骤S2.5,当目标节点接收到源节点的MSH_GRANT_IE后,根据MSH_GRAN T_IE内容生成MSH_C0NFIRM_IE,具体包括以下步骤:
步骤S5.1:目标节点收到源节点的MSH_GRANT_IE,根据dest_nodeid判断目标节点是否本节点,是则进入步骤S5.2,否则进入图4中所示处理流程;
步骤S5.2:根据MSH_GRANT_IE资源相关描述获取信道号,进入步骤S5.3 ;
步骤S5.3:根据MSH_GRANT_IE资源相关描述获取开始帧号(start_frame),进入步骤S5.4 ;
步骤S5.4:根据MSH_GRANT_IE资源相关描述获取结束帧号(end_frame),进入步骤S5.5 ;
步骤S5.5:根据MSH_GRANT_IE资源相关描述获取开始时隙(start_slot),进入步骤S5.6 ;
步骤S5.6:根据MSH_GRANT_IE资源相关描述获取每帧中持续时隙数(duration),进入步骤S5.7 ;
步骤S5.7:根据MSH_GRANT_IE中获得的资源描述信息,遍历各个接口以在本地资源中查找相应的资源,进入步骤S5.8 ;
步骤S5.8:接口是否遍历完,如果没有,进入步骤S5.9 ;否则转入步骤S5.13 ;
步骤S5.9:根据MSH_GRANT_IE中读出的信道号确定MSH_C0NFIRM_IE需使用的信道,进入步骤S5.10 ;
步骤S5.10:在该信道中根据MSH_GRANT_IE资源描述查看本地是否有匹配的可用资
源;
步骤S5.10又可进一步细分为:
步骤S5.10.1:根据获得的start_frame值确定本地资源扫描开始巾贞,进入步骤S5.10.2 ;
步骤S5.10.2:根据获得的start_slot及duration值开始在每一巾贞中扫描,如果该时隙在本地busy[]结构及self_rx_unavl []结构中均没有被置为不可用,则该时隙可用,用同样方法遍历下一时隙,进入步骤S5.10.3 ;
步骤S5.10.3:如果根据S5.10.2的方法遍历到连续duration个时隙可用,贝U进入步骤S5.10.4;否则该接口内资源分配失败,转入步骤S5.7 ;
步骤S5.10.4:如果已连续成功的遍历了 end_frame_start_frame个巾贞,则进入步骤S5.11;否则转入步骤S5.10.5 ;步骤S5.10.5:遍历下一帧,进入步骤S5.10.2 ;
步骤S5.11:MSH_CONFIRM_IE生成成功,进入步骤S5.12 ;
步骤S5.12:根据生成的MSH_CONFIRM_IE更新本地资源信息结构中的busy[]结构; 步骤S5.12又可进一步细分为:
步骤S5.12.1:首先更新本接口相应扇区、信道、帧和对应时隙资源为不可用,进入步骤 S5.12.2 ;
步骤S5.12.2:将本接口其它扇区与MSH_GRANT_IE所描述相同的信道、帧和时隙更新为不可用(因为一个接口同一时刻只能有一个扇区工作),进入步骤S5.12.3;
步骤S5.12.3:节点是否有多个接口 ;如果有,进入步骤S5.12.4 ;否则进入步骤S5.14 ;
步骤S5.12.4:更新其它接口上相应扇区、信道、帧和时隙为不可用,转入步骤S5.14 ; 步骤S5.13:资源分配失败,进入步骤S5.14 ;
步骤S5.14:MSH_CONFIRM_IE生成过程及本地资源更新流程结束。请参照图6,此为本发明中目标节点一跳邻居节点收到MSH_C0NFIRM_IE后的处理流程。该流程对应图2中步骤S2.8,当目标节点一跳邻居节点收到其发送的MSH_ CONFIRM_IE消息后,通过MSH_C0NFIRM_IE消息相关资源描述内容,更新本地资源使用情况;消息处理过程包括以下步骤:
步骤S6.1:节点收到MSH_C0NFIRM_IE,根据dest_nodeid字段判断本地是否为目标节点,是则不需做任何处理(因为源节点在发送MSH_GRANT_IE后,已更新过本地资源信息),否则进入步骤S6.2 ;
步骤S6.2:节点读取MSH_C0NFIRM_IE中相关资源描述信息,具体包括:信道、开始帧号(start_frame)、结束巾贞号(end_frame)、开始时隙(start_slot)、持续时长(duration),进入步骤S6.3 ;
步骤 S6.3:更新本地 neigh_rx_unavl [];
步骤S6.3又可进一步细分为:
步骤S6.3.1:根据MSH_C0NFIRM_IE中的信息更新neigh_rx_unavl []中源节点A的相应接口、扇区、信道、帧号、时隙为不可用,进入步骤S6.3.2 ;
步骤S6.3.2:因为一个接口同一时间只能有一个扇区工作,所以更新接口上其它扇区相应信道、帧号、时隙为不可用,进入步骤S6.3.3 ;
步骤S6.3.3:节点上有没有其它接口,如果有,进入步骤S6.3.4 ;否则进入步骤S6.4 ;步骤S6.3.4:更新其它接口上相应扇区、帧号、时隙为不可用(为避免同频率干扰,一个接口相应扇区中资源用于接收后,其它接口相应资源不能用于接收(也不会用于发送,因为目标节点已经将该资源放入busy[]结构中)),进入步骤S6.4 ;
步骤S6.4:根据本地邻居节点信息判断本节点是否在该目标节点接收扇区覆盖范围内,如果在,进入步骤S6.5 ;否则进入步骤S6.6 ;
步骤S6.5:self_tx_unavl []中本节点向目标节点发送信息所用扇区内所有接口中与源节点请求资源同信道、同帧、同时隙的资源均更新为不可用(以免在目标节点出出现接收干扰)进入步骤S6.6 ;
步骤S6.6:目标节点一跳邻居接收MSH_C0NFIRM_IE处理流程结束。
请参照图7,此为本发明中扇区天线干扰定义示意图。源节点S运用扇区2向目标节点D发送数据(D用扇区3接收),节点B位于源节点发送扇区与目的节点接收扇区覆盖范围内,节点A、节点C不在源目的节点发收扇区覆盖范围。节点B的扇区2 ^覆盖源节点S,若节点B使用扇区2 ^接收其它节点数据,且时隙资源与源节点向目标节点D发送采用的帧和时隙相同,则将同时接收到来自源节点的数据,此时将因为同频干扰导致数据接收错误,因此,将B节点self_rx_unaVl[]中对应扇区的帧及时隙更新为不可用;同样,为避免对目的节点接收数据产生干扰,需将unavl[]中节点B向目的节点发送数据所用扇区3'内所有接口中与源节点请求资源同信道、同帧、同时隙的资源更新为不可用;
对于节点C,其扇区4覆盖源节点,但由于其不在源节点发送扇区覆盖范围内,本发明中认为该节点采用对应时隙发送数据不会影响源节点数据发送;同理,节点A的扇区5覆盖目的节点,但不在目的节点接收扇区覆盖范围内,其采用对应帧及时隙收发数据将不会影响目的节点接 收数据。
权利要求
1.一种基于无线MESH网络的分布式资源分配方法,其特征在于,该方法主要包括以下步骤: 步骤1:源节点调度单元根据本地需发送数据量及其可用资源信息,生成描述可用资源块的MSH_GRANT_IE,等待发送时机,通过全向天线发送出去,同时更新本地可用资源信息; 步骤2:源节点的一跳邻居节点及目的节点收到MSH_GRANT_IE后,根据该IE中的资源描述信息:一跳邻居节点更新本地资源使用信息;目的节点生成MSH_CONFIRM_IE并等待发送时机将发送出去,同时更新本地可用资源; 步骤3:目的节点的一跳邻居节点及源节点收到MSH_CONFIRM_IE后,根据该IE中的资源描述信息:一跳邻居节点更新本地资源使用信息;源节点确定向目标节点发送数据时使用的资源信息,并在相应资源块上完成数据调度及发送; 本方法通过两次握手获得两跳范围内邻居节点资源使用情况,有效避免数据收发冲关。
2.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,所述本地资源使用信息,包括neigh_rx_unavl []即本地一跳邻居节点不可接收资源,self_rx_unavl []即本节点不可接收资源,self_tx_unavl []即本节点不可发送资源,busy []即本节点不可发送不可接收资源四个结构,每一个数据结构用BIT表映射,标识资源使用情况。
3.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,本方法既适用于多接口多信道多扇区,也适用于单接口单信道全向天线;其中本地可用资源描述 MSH_GRANT_IE 与 MSH_CONFIRM_IE 均由接口号 interface、信道号 channel、开始帧号start_frame、结束巾贞号end_frame、开始时隙start_slot、持续时长duration、所用扇区信息sector字段组成。
4.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,所述步骤I中生成MSH_GRANT_IE的步骤如下: 步骤401:根据数据量和服务流QoS计算所需总slot数和每一巾贞的slots即duration值; 步骤402:根据本地保留节点信息获得向目标节点发送所用扇区,并遍历该扇区下可用接口,如果有接口可用,进入步骤403 ;否则返回,资源分配失败; 步骤403:遍历该接口下可用信道,如果有可用信道,进入步骤404 ;否则返回步骤402 ;遍历下一个可用接口; 步骤404:以调度周期的第一巾贞为start_frame,在每一巾贞中遍历是否有连续duration个slots空闲,如果有,则遍历下一帧,如果没有,进入步骤405 ; 步骤405:判断此时遍历的帧数是否大于调度周期的一半,如果是,则此时资源分配成功,将相应的资源信息写入MSH_GRANT_IE;进入步骤406 ;否则,转入步骤403,遍历下一个信道; 步骤406:根据新生成的MSH_GRANT_IE,更新本地资源信息中的busy[]结构,将已经分配的资源更新为不可用,以避免资源重复分配。
5.按权利要求4中所述的MSH_GRANT_IE生成过程,其特征在于,所述步骤404中,busy []、self_tx_unavl []、neigh_rx_unavl []三个结构同时标识为可用的slots为空闲时隙。
6.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,在源、目的节点的一跳邻居节点收到相应调度消息时,更新neigh_rx_unavl []的步骤相同,即更新邻居节点的所有扇区的所有接口中与源、目的节点调度消息所描述资源相同的信道、帧号、时隙为不可用。
7.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,在源、目的节点的一跳邻居节点收到相应调度消息时,对self_tx_unavl []和self_rx_unavl []的更新方法为: 作为源节点的一跳邻居节点,首先判断本节点是否在源节点的发送扇区覆盖范围,如果在,更新Self_rX_unaval [],将本节点与源节点通信所用扇区下的所有接口的对应信道、帧号及时隙更新为不可用; 作为目地节点的一跳邻居节点,如果本节点在目的节点的接收扇区覆盖范围内,更新本节点的self_tX_unaval [],将本节点与目的节点通信所用扇区下的所有接口的对应信道、帧号及时隙更新为不可用; 其中扇区间收发干扰定义为:两节点间扇区互相覆盖才会产生干扰,并根据本定义判断如何更新本地资源使用信息。
8.按权利要求1所述的一种无线MESH网络分布式资源分配方法,其特征在于,所述步骤2中,目标节点通过全向天线收到源节点的分布式调度控制消息后,根据该MSH_GRANT_IE生成MSH_CONFIRM_IE并更新本地可用资源信息的具体步骤如下: 步骤801:根据本地节点信息确定本节点向源节点通信所用扇区,并解析MSH_GRANT_IE ; 步骤802:依次遍历该扇区下所有接口,在每一接口根据MSH_GRANT_IE中读出的信道、帧及时隙信息生成MSH_CONFIRM_IE ; 步骤803:如果生成MSH_CONFIRM_IE不为空;进入步骤804 ;否则转至步骤806 ; 步骤804 ;根据MSH_CONFRM_IE进入本地资源信息相关结构,将busy结构相关的BIT映射表中对应的接口、所有扇区、信道、帧号及时隙更新为不可用,进入步骤805; 步骤805:如果有多个接口,将其它接口上对应扇区、信道、帧号及时隙标识为不可用; 步骤 806:MSH_CONFIRM_IE 生成结束。
全文摘要
本发明公开了一种基于无线MESH的分布式资源分配方法,其特征在于,该方法通过源节点和目标节点资源分配信息的交互,确定源节点和目标节点间数据发送和接收将使用的资源,源节点和目标节点的一跳邻居分别通过接收资源请求信息和资源确认信息获得资源占用情况,并更新本地资源使用信息,以备本节点资源分配时参考,避免资源分配冲突。本发明的有益技术效果是基于无线MESH网络的分布式资源分配方法以调度为基础,分别通过发送和接收资源预约信息完成数据发送资源使用信息交互,同时通知一跳邻居节点资源使用情况,避免数据收发冲突,能够充分发挥多接口、多信道和多扇区在数据通信中的优势,完成节点无冲突数据收发。
文档编号H04W74/08GK103228057SQ201310165578
公开日2013年7月31日 申请日期2013年5月8日 优先权日2013年5月8日
发明者周继华, 赵涛, 何小芳, 刘俊, 肖宏 申请人:重庆金美通信有限责任公司