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.rhkb.cn/news/23658.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python游戏编程之赛车游戏6-3

1 “敌人”汽车类的创建 在创建玩家汽车类之后,接下来创建“敌人”汽车类。“敌人”汽车类与玩家类一样,也是包含两个方法,一个是__init__(),另一个是move()。 1.1 __init__()方法 “敌人”汽车类的__init__()方法代码如图1所示…

垂类大模型微调(二):使用LLaMA-Factory

上一篇博文和大家一起安装了LLaMA-Factory工具,并下载了大模型在上面进行了简单的加载和推理,今天尝试通过LoRa技术对大模型进行微调; 一、训练集准备 1.1 介绍训练集结构 这里演示对Qwen2.5-0.5B-Instruct-GPTQ-Int4模型进行LoRA微调, 大家可以根据垂类大模型微调(一)…

什么是MySql的主从复制(主从同步)?

主页还有其他面试题总结,有需要的可以去看一下,喜欢的就留个三连再走吧~ 1.什么是MySql的主从复制原理? 主从复制的核心就是二进制binlog(DDL(数据定义语言)语句和DML(数据操纵语言&#xff09…

坐标变换及视图变换和透视变换(相机透视模型)

文章目录 2D transformationScaleReflectionShear(切变)Rotation around originTranslationReverse变换顺序复杂变换的分解 齐次坐标(Homogenous Coordinates)3D transformationScale&TranslationRotation Viewing / Camera t…

文字语音相互转换

目录 1.介绍 2.思路 3.安装python包 3.程序: 4.运行结果 1.介绍 当我们使用一些本地部署的语言模型的时候,往往只能进行文字对话,这一片博客教大家如何实现语音转文字和文字转语音,之后接入ollama的模型就能进行语音对话了。…

Unity Shader 学习13:屏幕后处理 - 使用高斯模糊的Bloom辉光效果

目录 一、基本的后处理流程 - 以将画面转化为灰度图为例 1. C#调用shader 2. Shader实现效果 二、Bloom辉光效果 1. 主要变量 2. Shader效果 (1)提取较亮区域 - pass1 (2)高斯模糊 - pass2&3 (3&#xff…

PING命令TTL解析

在 ping 命令中,TTL(Time to Live,生存时间) 是 IP 数据包的核心字段之一,用于控制数据包在网络中的生命周期。以下是针对 TTL 的简明解析: 1. TTL 的核心作用 防循环机制:TTL 是一个计数器&a…

Linux 第三次脚本作业

源码编译安装httpd 2.4,提供系统服务管理脚本并测试(建议两种方法实现) 一、第一种方法 1、把 httpd-2.4.63.tar.gz 这个安装包上传到你的试验机上 2、 安装编译工具 (俺之前已经装好了) 3、解压httpd包 4、解压后的httpd包的文…

(七)趣学设计模式 之 适配器模式!

目录 一、 啥是适配器模式?二、 为什么要用适配器模式?三、 适配器模式的实现方式1. 类适配器模式(继承插座 👨‍👩‍👧‍👦)2. 对象适配器模式(插座转换器 &#x1f50c…

【NLP】注意力机制

目录 一、认识注意力机制 1.1 常见注意力计算规则 1.2 注意力机制的作用 1.3 注意力机制代码实现 二、注意力机制原理 2.1 attention计算过程 2.2 attention的计算逻辑 2.3 有无attention模型对比 2.3.1 无attention机制的模型 2.3.2 有attention机制的模型 三、Se…

Spring Boot 整合 Druid 并开启监控

文章目录 1. 引言2. 添加依赖3. 配置数据源4. 开启监控功能5. 自定义 Druid 配置(可选)6. 访问监控页面7. 注意事项8. 总结 Druid 是一个由阿里巴巴开源的高性能数据库连接池,它不仅提供了高效的连接管理功能,还自带了强大的监控…

红帽7基于kickstart搭建PXE环境

Kickstart 文件是一种配置文件,用于定义 Linux 系统安装过程中的各种参数,如分区、网络配置、软件包选择等。system-config-kickstart 提供了一个图形界面,方便用户快速生成这些配置文件。 用户可以通过图形界面进行系统安装的详细配置&…

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…

MongoDB 简介

MongoDB 是一种高性能、开源的 NoSQL 数据库,以其灵活的文档模型和强大的扩展性而闻名。 1.MongoDB 是什么 MongoDB 是一种 NoSQL 数据库,采用 文档模型 存储数据,支持灵活的 JSON 格式文档。它无需预定义表结构,能够动态调整数据…

记录首次安装远古时代所需的运行环境成功npm install --save-dev node-sass

最开始的报错: 最后根据报错一步步 安装所需要的pythong之类的环境,最后终于成功了,得以让我在github上拉的vuehr项目(狗头18年还是20年的远古项目)成功本地运行,最后附上本地运行成功的贴图。如果大家也在…

华为guass在dbever和springboot配置操作

下面记录华为guass在dbever和springboot配置操作,以备忘。 1、安装dbeaver-ce-23.2.0-x86_64-setup.exe和驱动程序 Download | DBeaver Community 2、配置高斯数据库驱动 3、新建数据库连接 4、操作指引 opengauss官方文档 https://docs-opengauss.osinfra.cn/zh…

今日运维之-Mac笔记本python环境问题

1. 问题:MAC升级系统后git报错? Error: Cant create update lock in /usr/local/var/homebrew/locks! Fix permissions by running:sudo chown -R $(whoami) /usr/local/var/homebrew Traceback (most recent call last):11: from /usr/local/Homebrew/…

c3p0、Druid连接池+工具类 Apache-DbUtils (详解!!!)

数据库连接池是在应用程序启动时创建一定数量的数据库连接,并将这些连接存储在池中。当应用程序需要与数据库通信时,它可以向池中请求一个连接,使用完后将连接归还给池,而不是关闭连接。这样可以减少创建和关闭连接的开销&#xf…

数仓搭建实操(传统数仓oracle):DWD数据明细层

数据处理思路 DWD层, 数据明细层>>数据清洗转换, 区分事实表,维度表 全是事实表,没有维度表>>不做处理 数据清洗>>数据类型varchar 变成varchar2, 日期格式统一(时间类型变成varchar2); 字符数据去空格 知识补充: varchar 存储定长字符类型 ; 存储的数据会…

2.1 第一个程序:从 Hello World 开始

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 同大多数编程语言教程一样,本书第一个代码也是输出:Hello world! 这似乎也是惯例。我们也先从这个简单的代码…