1.本公开的实施例一般涉及自组网通信领域,并且更具体地,涉及无线 mesh自组网的通信方法、装置、设备和计算机可读存储介质。
背景技术:2.无线mesh网络即“网状网”,是基于ip协议的无线宽带接入技术,它融合了wlan和ad hoc网络的优势,支持多点对多点的网状结构,具有自组网、自修复、多条级联、节点自我管理等职能优势以及移动宽带、无线定位等特点,是一种大容量、高速率、覆盖范围广的网络。
3.无线自组网是一种不依赖于任何固定基础设施的无线自组多跳网络,它具有良好的移动性、抗毁自愈能力和灵活性的自组织特征,在紧急救援、会务通信以及军事应用等领域具有广阔的应用前景,自组网是一种不依赖于任何固定基础设施的无线自组多跳网络,它具有良好的移动性、抗毁自愈能力和灵活性的自组织特征,在紧急救援、会务通信以及军事应用等领域具有广阔的应用前景。
4.现有的专网系统多种多样,造成专网内部自组网通信协议也多种多样,目前,有很多应用在移动ad hoc网络中的路由技术,但并不适合高速移动、拓扑结构快速变化、不断有节点加入或离开的无人机自组网,即不能迅速的为新加入的节点,选取最优的传输路径。
技术实现要素:5.根据本公开的实施例,提供了一种无线mesh自组网的通信方案。
6.在本公开的第一方面,提供了一种无线mesh自组网的通信方法。该方法包括:
7.获取源id、目标id以及拓扑图topo信息;
8.基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id;
9.基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径。
10.进一步地,所述基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id,包括:
11.基于所述源id、目标id,生成net_poing点全零矢量send_vector,将所述send_vector第一行中与所述源id对应的点设置为1,生成新矢量;
12.设置循环数k,将所述k代入所述新矢量后,与所述拓扑图topo相乘,得到接收矢量;
13.对所接收矢量进行处理,得到校验矢量;
14.基于所述校验矢量,确定源节点到目标节点的跳跃次数和每次中继的邻节点id。
15.进一步地,所述对所接收矢量进行处理,得到校验矢量包括:
16.对所接收矢量进行处理,取所述接收矢量的符号位,得到校验矢量。
17.进一步地,所述基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径包括:
18.基于源节点和目标节点,构建单点路由表;
19.基于所述跳跃次数、邻节点id和路由表,逆向从目标节点回溯,确定源节点到目标节点的最优路径。
20.在本公开的第二方面,提供了一种无线mesh自组网的通信装置。该装置包括:
21.获取模块,用于获取源id、目标id以及拓扑图topo信息;
22.第一搜索模块,用于基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id;
23.第二搜索模块,用于基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径。
24.进一步地,所述基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id,包括:
25.基于所述源id、目标id,生成net_poing点全零矢量send_vector,将所述send_vector第一行中与所述源id对应的点设置为1,生成新矢量;
26.设置循环数k,将所述k代入所述新矢量后,与所述拓扑图topo相乘,得到接收矢量;
27.对所接收矢量进行处理,得到校验矢量;
28.基于所述校验矢量,确定源节点到目标节点的跳跃次数和每次中继的邻节点id。
29.进一步地,所述对所接收矢量进行处理,得到校验矢量包括:
30.对所接收矢量进行处理,取所述接收矢量的符号位,得到校验矢量。
31.进一步地,所述基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径包括:
32.基于源节点和目标节点,构建单点路由表;
33.基于所述跳跃次数、邻节点id和路由表,逆向从目标节点回溯,确定源节点到目标节点的最优路径。
34.在本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
35.在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面的方法。
36.本技术实施例提供的无线mesh自组网的通信方法,通过获取源id、目标 id以及拓扑图topo信息;基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id;基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径,在数据传输时,可以迅速的选取出源节点到达目的节点跳数最小的路径,即最优的路径,适应于军事通信专网、铁路系统专网,公安系统专网、防汛专网和海军系统专网等,在军事通信中,可由无人机之间组成无人机自组网,即由若干无人机动态形成的、无需借助任何中心站的多跳无线移动通信网络(每个无人机等同于自组网中的节点),提高了通信协议的适用性,降低了成本。
37.应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或
重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
38.结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
39.图1示出了能够在其中实现本公开的实施例的示例性运行环境的示意图;
40.图2示出了根据本公开的实施例的无线mesh自组网的通信方法的流程图;
41.图3示出了根据本公开的实施例的单点路由表信息示意图;
42.图4示出了根据本公开的实施例的单点路由前向搜索示意图;
43.图5示出了根据本公开的实施例单点路由反向搜索示意图;
44.图6示出了根据本公开的实施例的无线mesh自组网的通信装置的方框图;
45.图7示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
46.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
47.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
48.图1示出了能够在其中实现本公开的实施例的示例性运行环境示意图。在运行环境中包括多个节点,如图1中的节点1—9。其中,节点1可为目标节点(主节点),2-9可以为子节点;所述子节点可用于向主节点传输遥测、图像和照片信息等。
49.在军事通信专网中,可由无人机之间组成无人机自组网,即由若干无人机动态组成,每个节点可表示一个无人机。
50.图2示出了根据本公开实施例的无线mesh自组网的通信方法的流程图。所述方法包括:
51.s210,获取源id、目标id以及拓扑图topo信息。
52.在一些实施例中,所述源id、目标id分别为源节点和目标节点标识信息。
53.其中,如图3所示,所述拓扑图topo,用于描述各节点号间的收、发信息,即,节点间的路径信息,若可连通,则用数字1标识,若不可连通,则用数字0标识。
54.下面进行举例说明,参考图3,其中,源节点为id1,目的节点为id8:
55.源id1发送给目的节点id=8,则需要经过路径节点id=7和路径节点 id=5,需要经历的中继节点id=7,5,8,即经历的跳数(中继数)等于3。
56.进一步地,在图3中,图中上半部分的左视图和右视图是等价的,例如第一行,1发第7、9列可以收到,第7行发,第1,2,5列可以收到。第5节点发,第2、7、8列可以收到。
57.s220,基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到
目标节点的跳跃次数和每次中继的邻节点id。
58.在一些实施例中,参考图4,基于所述源id、目标id,生成net_poing 点全零矢量send_vector,将所述send_vector第一行中与所述源id对应的点设置为1,生成新矢量,即,send_vector(1,sourceid)=1。
59.设置循环数k,将所述k代入所述新矢量后,与所述拓扑图topo相乘,得到接收矢量;
60.对所接收矢量进行处理,取所述接收矢量的符号位,得到校验矢量;
61.基于所述校验矢量,确定源节点到目标节点的跳跃次数和每次中继的邻节点id。
62.进一步参考图4,以源节点作为第三跳,目标节点作为第一跳为例:
63.从源节点出发,寻找所有的路径,每到达一个路径就判断是否到达目标节点。
64.第一跳:从源节点source_hop=3出发,输出到达的子节点只有节点4;
65.第二跳:节点4输出能够到达的子节点2,3,9,此时还没有目标子节点1,则继续找;
66.第三跳:有3个节点可以输出,节点2输出到达的子节点有4,5,6,7,9. 节点3到达的子节点有4,节点9到达的子节点有1,2,4。此时发现目标节点targer_hop=1,前向搜索结束,记录搜索跳数relay_num=3和每一跳的邻节点id,即每次中继的邻节点id。
67.s230,基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径。
68.在一些实施例中,如图5所示,基于所述跳跃次数和邻节点id,进行反向搜索。设定单点路由表router_pic;
69.以源节点作为第三跳,目标节点作为第一跳为例:
70.所述router_pic=zeros(1,relay_num+1);
71.router_pic(1)=source_hop=3;
72.router_pic(end)=targer_hop=1;
73.进一步地,从targer_hop=1进行计算,能够到达目标节点1连接的节点有7和9,从send_vector(relay_num)中对应的节点有2,3,9(从节点4出发,能够达到的子节点为2,3,9),则共同的交集节点是9,即,节点9是连接4和1的第一个节点,此时,router_pic(end-1)=9;
74.send_vector(relay_num-1)中对应的节点有4(从节点3出发,能够到达子节点4),和目标节点9连接的节点有1,2和4,节点4是连接9 和3的第一个的点(唯一一个点)。此时,router_pic(end-2)=4;最终输出的节点路由为router_pic=[3,4,9,1],即,源节点到目标节点的最优路径为3,4,9,1。
[0075]
进一步地,还包括:
[0076]
所述单点路由表可通过如下方式进行构建:
[0077]
参考图3,定义初始矢量s(除了本节点对应值为1外其他都为0),通过矢量和拓扑矩阵迭代相乘s=s*r,,查找目标对应值是否拉高获取源节点和目标节点之间的中继通信次数;
[0078]
选好矢量中目标节点对应值拉高时的索引号,查找目标节点上一跳中继的id号,反复运行总中继通信次数后,集合所有的索引号和源id、目标id,构建单点路由表。
[0079]
根据本公开的实施例,实现了以下技术效果:
[0080]
可以迅速的选取出源节点到达目的节点跳数最小的路径,即最优的路径,适应于军事通信专网、铁路系统专网、防汛专网和海军系统专网等,在军事通信中,可由无人机之间组成无人机自组网,即由若干无人机动态形成的、无需借助任何中心站的多跳无线移动通信网络(每个无人机等同于自组网中的节点),提高了通信协议的适用性,降低了成本。
[0081]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
[0082]
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
[0083]
图6示出了根据本公开的实施例的无线mesh自组网的通信装置600的方框图。如图6所示,装置600包括:
[0084]
获取模块610,用于获取源id、目标id以及拓扑图topo信息;
[0085]
第一搜索模块620,用于基于所述源id、目标id以及拓扑图topo信息,进行前向搜索,确定源节点到目标节点的跳跃次数和每次中继的邻节点id;
[0086]
第二搜索模块630,用于基于所述跳跃次数和邻节点id,进行反向搜索,确定源节点到目标节点的最优路径。
[0087]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0088]
图7示出了可以用来实施本公开的实施例的电子设备700的示意性框图。如图所示,设备700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的计算机程序指令或者从存储单元708加载到随机访问存储器(ram)703中的计算机程序指令,来执行各种适当的动作和处理。在ram 703中,还可以存储设备700操作所需的各种程序和数据。cpu 701、rom 702以及ram 703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。
[0089]
设备700中的多个部件连接至i/o接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0090]
处理单元701执行上文所描述的各个方法和处理,例如方法200。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由rom 702和/或通信单元709而被载入和/或安装到设备700 上。当计算机程序加载到ram 703并由cpu 701执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,cpu 701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200。
[0091]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备
(cpld)等等。
[0092]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0093]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器 (cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0094]
以上描述仅为本技术的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本技术中所涉及的申请范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离前述申请构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本技术中申请的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。