当前位置: 首页 > news >正文

Mesh自组网技术及应用

前言:

Mesh自组网随着无线技术发展,在消费领域最近比较有热度。当然应用的场景不限于普通消费领域,在工业、军事领域被也是越来越重要。

 

一、什么是无线Mesh技术

1.1 无线自组网概念

      无线Mesh是一种智能、自组织、多跳、移动、对等、去中心化的自治网络通信系统 ,它不依赖于预设的基础设施 ,具有临时组网、快速展 开、无控制中心、抗毁性强等特点 ,

         是现代无线通信领域的重要组成部分 ,在军事和民用方面都具有广阔的应用场景。

1.2 无线Mesh技术起源

    无线Mesh自组技术起源于美国军事需求 ,寻求战场通信环境的快速建立,提升指挥作战能力。  目前已用于战场态势评估与实时战场网络化监测的美国军方列装产品。

1.3 国内政策支持

          2019年 国家发改委正式将数字移动通信、移动自组网、应急通信、卫星通信等产业列为鼓励类产业。

 

             

 2020年 ‘应急管理部科技和信息化司’ 开始征集 应急指挥无线宽带自组网标准规范。

 

 

                  

1.4 技术特点

  • 自组织:在网状网中,一个网状网节点必须能够发现对等网状网节点并与它们建立联系。我们不需要手动的去配置它或者操作它寻找对端设备,Mesh网络的特点就是自行感应相应的设备组织并互连。
     
  • 多节点:每个设备都是一个独立的个体,它们都可以互相感知对方的存在并分享它们已有的邻居。它可以通过任意方式动态地保持与其他单个或多个节点的连接通信。当一台设备出现问题时,会动态的改变网络拓扑结构,但并不影响设备正常工作。
     
  • 无中心:上面提到了,每个设备都是独立的个体,因此它们没有中心一说,相反,Mesh网络中的任意设备都可以看作一个中心,它们都会从自身角度考虑我该如何通过更好的路径转发数据信号。每一台设备都会计算从自身到其它每台设备的路径节点。
     
  • 协同通信:Mesh具备极强的适应能力,无论是手机、电脑、摄像头等等网络设备,都可以和Mesh进行互连,Mesh兼容其它网络的能力很强,可以做到全面覆盖。
     
  • 网络自愈合: 当一条线路断路时,该骨干网络会自动寻找其他最优路径,保证数据传输的通畅。

 

二、自组网路由协议

2.1 无线自组网路由协议分类

      

  • 主动路由协议:

      周期性的进行路由表的更新,找到一条到目的端的路径。网络中的每个节点需要有较高的保存信息的能力,可以维护通往其余节点的路由表。

      优点:具有延迟较小,可以快速适应网络的变化对系统的丢包率有很大的改善。缺点:适应小规模的网络,网络的控制开销较大。例如DSDV、OLSR属于主动路由协议。

  •  按需路由协议:

      工作原理是当有信息需要进行发送的时候,源端才启动路由发现进程,降低了网络控制方面的开销。当节点发送数据包时,重新开启路由发现的功能以泛洪的形式进行转发。

    优点:不用进行周期的广播,网络的开销比较小,带宽利用率相对来说较高,占用网络资源少。缺点:路由延时相对来说较高。例如DSR、AODV (SDR软件无线电用的比较多) 都属于按需路由协议。

  • 混合式路由协议:

      混合路由协议是对按需路由和主动路由进行了结合研究形成一种相比于它们各自更加优秀的混合路由协议。混合式路由协议具有快速收敛、网络环境适应性强和路由信息稳定可靠的特点,更加适用于复杂的网络环境。例如IEEE80211s,默认指定的协议HWMP。

2.1.1 几个常见协议简介

 

  • AODV 路由协议 (3层协议)

      在AODV协议中,当一个节点需要给网络中的其他节点传送信息时,如果没有到达目标节点的路由,则必须先以多播的形式发出RREQ(路由请求)报文。

      RREQ报文中记录着发起节点和目标节点的网络层地址邻近节点收到RREQ,首先判断目标节点是否为自己。如果是,则向发起节点发送RREP(路由回应);

     如果不是,则首先在路由表中查找是否有到达目标节点的路由,如果有,则向源节点单播RREP,否则继续转发RREQ进行查找。

     AODV路由协议不用周期的进行路由表维护,只要在通信时才建立路由,相对其他路由协议来说大幅的减少路由开销。

 

  • OLSR 路由协议 (2层协议)

     OLSR是一种优化链路状态的主动路由协议,采用多点中继MPR(Multi Point Relay,中继节点)来控制分组信息的发送,从而降低洪泛现象造成的高负载。

   MPR节点的具有降低链路消息在传输范围内被重复广播和减小路由开销的作用。

   OLSR主要使用Hello消息和TC(Topology Control)两种控制消息,节点通过接收周围节点Hello消息来得到自己的一跳节点从而选择出MPR节点。

   OLSR的特点在于可以根据网络的不断变化进行及时地提供通信中需要的有效路由信息。

 

  • BATMAN-ADV (Better Approach To Mobile Ad-Hoc Networking) (2层协议)

     是一种通过OLSR改进并在路径选择过程中,考虑链路质量的新型主动路由协议。节点不必保留网络中全部的拓扑,只对最优的下一跳节点信息进行存储。

        官网: WikiStart - Open-Mesh - Open Mesh

      BATMAN adv路由算法

      BATMAN adv路由协议会周期性地向周围节点广播OGM包,当邻居节点接收OGM数据包时,首先判断数据包类型及是否与自己的版本号一致,

     如果不是OGM包类型或版本号不一致就丢弃该数据包,若是OGM包的类型和版本号一致就执行下一步,如果数据包的发送地址是本节点,就统计OGM包数量,

     然后丢弃该节点。如果OGM是邻居节点发送的节点就继续执行下一步。根据OGM包中的序列号判断是否第一次接收该节点,如果是则继续丢弃该数据包,

     如果不是则会根据里面的信息对该数据包进行处理并计算OGM的TQ值,然后更新路由表,最后再把接收到的OGM包进行转发。

     如果数据包即不是本地发的也不是邻居发的,则丢弃该数据包,最终根据TQ值来替代AODV路由协议中的跳数选择最优路径。下图为OGM包处理流程。

  •  
  • HWMP (Hybrid Wireless Mesh Routing Protocol )混合无线网状网路由协议(2层协议)

    HWMP协议是IEEE 802.11s草案中默认使用的路由协议,它是将反应式路由协议和基于树状拓扑的先验式路由协议相结合的综合性路由协议。

         反应式路由协议:节点间需要路由时,才发起路由请求,在节点间建立路由信息。

         先验式路由协议:设备组网后会先首先建立所有节点到根节点的路由信息。

三、自组网路由协议

3.1自组网架构分类

3.1.1 软件无线电台(SDR)

     一种是以FPGA+DSP+自组网协议(3层/2层)协议架构(多用于战术电台)下图是硬件构成:

PS:(Processing System)是处理系统,包括ARM Cortex-A9处理器、内存控制器、外设控制器等

PL:(Programmable Logic)是可编程逻辑部分,包括FPGA、DSP、RAM、IO等

下图是:一个ADI SDR软件的架构

https://www.analog.com/media/en/technical-documentation/user-guides/adrv9001-system-development-user-guide-ug-1828.pdf

3.1.2 战术电台有一个重要的特性:跳频技术

       起源:与传统的无线电通信不同,跳频(FH)定义了一种通过快速改变载波频率1来发送无线电信号的方法,Tesla在1903年的美国专利"信号传输方法"中首次提到了这种方法。

后来,在1942年,女演员Hedy Lamarr和作曲家George Antheil进一步巩固了这一概念,他们从钢琴的按键数量得到启发,在88个频率之间切换,以防止鱼雷的无线电控制受到干扰。

    如上图 如果将整个频带和持续时间划分为二维网格,那么在任何给定的时隙,将会使用不同的频率子带进行通信。跳频模式的随机性相当于增加了另一个只能在发送器和接收器之间解码的安全层,

使其具有较高的抗窄带干扰能力和较强的抗恶意拦截和封锁的能力。此外,跳频信号相互干扰小,可以和其他传统通信共享带宽,实现更高的频谱效率。随着跳频速率加快且使用更多的子频带,

跳频的优势变得更加突出,成为对许多不同应用有吸引力的解决方案。

3.1.3 WiFi Mesh

一种是以WiFi技术为基础+自组网协议架构(多用于民用、工业场景),下图为使用11ax技术的Mesh设备的硬件构成:
 

 

四、自组网路由协议Demo

4.1 基于RK3588使用batman-adv协议

 

  • 硬件平台:RK3588  + Ubuntu20 有线组网

  • 软件配置

    内核:batman-adv已经作为标准Linux内核的网络驱动,打开配置即可:
     

    Ubuntu20:从官网下载对应一致的版本  Index of /batman/releasesbatman-adv v2020.4版本编译完成,加载驱动即可

    乐凡机器刷机后可以看到:batman-adv的版本是 2020.4的版本
     
    需交叉编译应用层配置程序:batctl
     上图显示我们的板卡 有一个 有线口 eth0

    配置命令如下:

batctl meshif bat0 if add eth0  #新建bat0虚拟口,并将eth0加入bat0桥接口

ifconfig bat0 up # link up bat0

batctl bat0 orig_interval 1000 #设置OGM包广播频率 1s一次

ifconfig bat0 192.168.0.1 #设置bat0 ip server  

ifconfig bat0 192.168.0.2 #client

 

batctl n 查看邻居节点

ARM1:

pc:

3层ping:

2层batctl p:

 

 

batctl tcpdump -x interface ens33  #抓包查看协议详情:OGM IV 4 batman-adv版本

 

batctl tp 00:0c:29:d9:11:77 #测试带宽

 

 

 

 

 


http://www.mrgr.cn/news/92208.html

相关文章:

  • 记一些工具(持续更新)
  • 2.2 STM32F103C8T6最小系统板的四种有关固件的开发方式
  • 【DeepSeek-R1背后的技术】系列十一:RAG原理介绍和本地部署(DeepSeekR1+RAGFlow构建个人知识库)
  • KL 散度介绍及使用场景
  • NTS库学习,找bug中......
  • 蓝桥云课python代码
  • Linux Crontab面试题及参考答案
  • C++ day5 练习
  • html中的元素(1)
  • C语言数据结构—二叉树的链式结构实现
  • hot100-二叉树
  • MySQL入门:高频操作命令大全
  • 大白话javascript如何通过原型链实现对象的继承,并指出这种继承方式的优缺点
  • ddd 文章总结分享,ddd实战代码分享, 领域驱动设计java实战源码大全,我看过的ddd java源码
  • C1车证学习笔记
  • (七)趣学设计模式 之 适配器模式!
  • 【算法】二分789. 数的范围
  • Node.js技术原理分析系列——Node.js的perf_hooks模块作用和用法
  • AIGC技术助力空军招飞,近屿智能开启智能人才培育新征程
  • ai-1、人工智能概念与学习方向