[杂谈]-快速了解LoRaWAN网络以及工作原理

快速了解LoRaWAN网络以及工作原理

文章目录

  • 快速了解LoRaWAN网络以及工作原理
    • 1、LoRaWAN网络元素
      • 1.1 终端设备(End Devices)
      • 1.2 网关(Gateways)
      • 1.3 网络服务器(Net Server)
      • 1.4 应用服务器(Application Server)
      • 1.5 连接服务器(Join Server)
    • 2、LoRaWAN 设备类型
      • 2.1 A类设备
      • 2.2 B类设备
      • 2.3 C类设备
      • 2.4 终端设备激活
    • 3、消息类型
    • 4、MAC消息类型
    • 5、LoRaWAN的安全性

LoRa 在 OSI 模型的物理层运行,并在芯片级实现——不包括网络管理协议。 这已成为一项优势,因为系统工程师可以根据特定应用的要求,通过 LoRa 调制实现数据链路和网络层协议。

在欧洲,大多数 LoRa 网络都是自行构建配置。 除了定制网络之外,LoRa 网络的理想网络解决方案是 LoRaWAN。

LoRaWAN 是一种开放的 LPWAN 协议,旨在在 LoRa 调制上运行,添加数据链路和网络层协议。 该协议负责终端设备的配置和点对点数据通信的管理。

本文将讨论如何在 LoRa 网络中配置设备以及 LoRaWAN 如何将它们连接到互联网。 有关这些技术的介绍,请阅读前面的文章:

  • [杂谈]-快速了解LoRa和LoRaWAN

在这里插入图片描述

1、LoRaWAN网络元素

LoRaWAN 网络有五个构建块,它们以星形拓扑连接:

1.1 终端设备(End Devices)

终端设备是传感器、执行器或两者。 它们包含用于 LoRa RF 调制的芯片,并使用 LoRa 技术进行无线通信。 大多数都是电池供电的,作为物联网网络的一部分,通过网关与 LoRaWAN 网络连接。 终端设备遵循随机访问协议 ALOHA,并且可以通过范围内的一个或多个附近网关访问网络。

1.2 网关(Gateways)

网关是负责将消息转发到终端设备和网络服务器的设备。 网关具有连接到服务器的蜂窝 (3G/4G/5G)、光纤、以太网、Wi-Fi 或 2.4GHz 无线电链路的 IP 主干网。 每个网关都注册到一台 LoRaWAN 网络服务器。

当终端设备传输上行链路消息时,其范围内的所有附近网关都会接收该消息。 该消息被转发到网络服务器,并在其中通过重复数据删除来挑选出来。 这种终端设备和网关的网络架构保证了上行数据包的准确性,并起到低成本定位的作用。 当网关接收到要传送到终端设备的下行链路数据包时,负载会不间断地传递。

网关在 OSI 模型的物理层运行,充当 LoRa RF 消息转发器。 网关大致分为室内网关和室外网关。 8 或 16 通道室内网关没有天线,因此接收灵敏度和范围比室外网关低。 室内网关非常适合多层建筑和室内深处位置。

64路室外网关接收灵敏度高,覆盖范围大。 它们通常通过同轴电缆连接到天线,因此非常适合室外蜂窝塔或高层建筑。

1.3 网络服务器(Net Server)

网络服务器是LoRa网络管理的服务器端软件,管理终端设备(通过网关连接到网络服务器)和应用服务器之间的数据通信。 该服务器对终端设备进行身份验证,删除重复的上行链路消息,对终端设备和应用服务器之间的上行链路和下行链路消息进行加密,并对上行链路消息进行确认。

此外,它还负责通过 ADR 命令对 LoRa 网络内的设备进行寻址,通过适当的网关将下行链路消息路由到终端设备。 网络服务器是在终端设备和加入服务器之间转发加入请求和加入接受消息的唯一服务器。

1.4 应用服务器(Application Server)

应用服务器是负责运行主要应用程序并提供基于云的业务解决方案的服务器端软件。 可以有多个应用程序服务器连接到网络服务器,每个应用程序服务器运行特定的服务器端应用程序。 应用服务器通过网络服务器从终端设备接收特定于应用的上行链路数据消息,处理应用数据,并将结果作为应用层下行链路有效负载返回。

1.5 连接服务器(Join Server)

加入服务器是服务器端软件,负责处理终端设备和应用服务器之间的加入请求和加入接受消息。 LoRaWAN v.1.1 中引入了加入服务器,用于 LoRa 架构以启用 OTAA。 终端设备需要通过网络和应用程序会话密钥来激活。 加入服务器处理加入请求消息,生成应用会话密钥,将网络和应用密钥传输到网络服务器和应用服务器,并启用终端设备激活。

连接到 LoRa 网络的终端设备有两种激活方式:个性化激活 (ABP) 和无线激活 (OTAA)。 ABP 为硬编码终端设备提供配置和加入 LoRa 网络的密钥。 然而,它存在安全问题,并且缺乏在线更新的功能。

2、LoRaWAN 设备类型

终端设备具有三种类型的 LoRaWAN 实现(A 类、B 类和 C 类),称为设备类。 所有 LoRaWAN 终端设备均具有 A 类实施。 它们可能也可能没有 B 类或 C 类实现。

三种 LoRaWAN 实现的不同之处在于设备接收下行链路有效负载的方式及其保持活动状态的时间。

2.1 A类设备

A 类设备在所有 LoRaWAN 终端设备中实施。 专有的 A 类设备主要处于睡眠模式,仅间歇性地与应用服务器通信。

设备可以随时向应用服务器发送上行数据报文。 每次上行链路传输后,设备都会为来自应用服务器的下行链路有效负载打开两个短接收窗口。 应用服务器可以在终端设备的第一个接收窗口或第二个接收窗口中传输下行链路有效负载,但不能同时传输两者。

如果设备在上行链路传输后无法接收下行链路有效负载,则在下一个上行链路之后发起另一个下行链路。 A 类 LoRaWAN 终端设备通常是用于警报、环境监控或位置跟踪的传感器。

2.2 B类设备

B 类设备有一个预定的接收窗口,用于接收来自应用服务器的定期下行链路有效负载。 这些设备被配置为响应来自网络服务器的时间同步信标而打开接收窗口。 它们还具有 A 类实现,并在每次上行链路传输后打开两个短接收窗口。
B 类设备是间歇性活动的,因此与 A 类设备相比,它们的电池寿命更短,延迟更低。 它们通常用于传感器数据记录或报告。

2.3 C类设备

C 类设备具有持续活动的接收窗口,使它们能够无任何延迟地获取下行链路有效负载。 LoRaWAN设备具有半双工双向数据通信,因此它们在传输上行链路消息时无法接收下行链路有效负载。 它们由主电源供电并保持活动模式。 操作截止阀的公用事业仪表是设备使用的示例之一。

2.4 终端设备激活

LoRaWAN 网络中有两种终端设备激活:个性化激活 (ABP) 和无线激活 (OTAA)。 对于 LoRaWAN v1.1,OTAA 是设备激活的首选方法。 设备激活是一个分步过程,完全由 LoRa 网络中的加入服务器管理。

3、消息类型

LoRa 网络中终端设备和应用服务器之间通信的消息包含应用数据和/或 MAC 命令。 LoraWAN 在网络服务器和终端设备之间具有半双工双向数据通信。 消息根据数据方向进行分类。

从方向上看,可分为以下几类:

  • **上行链路消息(Uplink messages)**由终端设备传输给加入服务器或应用程序服务器。 发送到加入服务器的消息通常包含 MAC 命令。 与应用服务器通信的那些通常包含MAC命令和/或应用数据。 网络服务器通过多个网关接收消息,并根据 MAC 消息类型路由到加入服务器或应用程序服务器。
  • **下行链路消息(Downlink messages)**由网络服务器发送到终端设备。 该消息由网络服务器通过单个网关中继,以将其呈现给终端设备。

4、MAC消息类型

LoRa网络中的消息由网络服务器根据MAC消息类型进行路由。 LoRaWAN 1.1 和 LoRaWAN 1.0 规范中提供以下 MAC 消息类型。

  • 加入请求(Join-request):终端设备发出的用于 OTAA 激活的上行链路消息。
  • 加入接受(Join-accept):来自加入服务器的下行链路消息,用于终端设备的 OTAA 激活。
  • 重新加入请求(Rejoin-request):从终端设备重新加入 LoRA 网络的上行链路消息。 该消息类型在 LoRaWAN v1.0 中保留,但在 LoRaWAN v1.1 中可用。
  • 未确认数据上行(Unconfirmed data up):不需要确认的上行数据帧。
  • 未确认数据下行(Unconfirmed data down):不需要确认的下行数据帧。
  • 确认数据上行(Confirmed data up):来自终端设备的上行链路数据帧,请求确认(即来自网络服务器的确认)。
  • 确认数据下行(Confirmed data down):来自网络服务器的下行数据帧,请求确认。
  • 专有(Proprietary):非标准专有消息。

5、LoRaWAN的安全性

由于线性调频调制,LoraWAN 无线电链路非常可靠。 除了类似 FSK 的调制之外,LoRaWAN 架构还旨在确保以最高的准确性传递消息。

上行链路消息被传送到多个网关并在网络服务器上进行重复数据删除,从而不会造成数据损坏。 网络通信通过 128 位安全密钥进行保护,包括 NwkSKey、AppSKey 和 AppKey。 算法 AES-128 用于加密消息,类似于 WiFi 标准 IEEE 802.15.4 中的加密。 通过 OTAA 激活,基本上不可能发生设备黑客攻击或中间人攻击。

为了应用服务器对终端设备进行唯一标识,应用密钥AppKey仅在应用服务器和终端设备之间共享。 还可能存在用于激活多个设备的默认应用程序密钥或每个终端设备生成的自定义应用程序密钥。 该密钥用于生成网络和应用程序会话密钥。

一旦终端设备加入 LoRa 网络,网络服务器就会生成两个安全密钥:网络会话密钥 (NwkSKey) 和应用程序会话密钥 (AppSKey)。 这些会话密钥仅在单个会话期间适用。
网络会话密钥是共享的并用于验证网络服务器内的终端设备。 该密钥将非唯一设备地址映射到 64 位扩展唯一标识符 DevEUI 和 AppEUI。 由于网络会话密钥,只有授权的终端设备才能加入 LoRa 网络。 消息完整性代码 (MIC) 使用相同的密钥,用作验证消息完整性的校验和。

应用程序会话密钥对终端设备和应用程序服务器之间的下行链路有效负载进行加密和解密。 该密钥是私有的,永远不会在网络内共享,因此只有授权的终端设备才能与应用程序服务器传输或接收消息。

在 OTAA 激活中,两个会话密钥都会生成唯一的每设备会话。 在 ABP 激活中,仅当显式更改时才会重新生成密钥。

通过使用帧计数器,数据安全性进一步多样化。 上行链路和下行链路消息都有帧计数器。 当终端设备被激活时,两个帧计数器都设置为 0。当传输上行链路消息时,相应的帧计数器会更新。

类似地,当终端设备接收到下行链路有效负载时,下行链路帧计数器立即更新。 终端设备和应用服务器忽略包含低于更新的帧计数器的帧计数器值的任何消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/69570.shtml

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

相关文章

Android11去掉Settings中的网络和互联网一级菜单

碰到一个不要wifi不要蓝牙的项目,客户要求去掉Settings中的网络和互联网一级菜单,因为硬件都不贴,所以软件对应也要去掉。 我们可以根据packages/apps/Settings/res/xml/top_level_settings.xml的布局文件找到TopLevelNetworkEntryPreferenc…

OpenCV(二十一):椒盐噪声和高斯噪声的产生

目录 1.图像噪声介绍 2.椒盐噪声的产生 3.高斯噪声的产生 1.图像噪声介绍 噪声介绍 图像噪声是指在图像中存在的不期望的、随机的像素值变化,这些变化来源于多种因素。噪声可能导致图像细节模糊、失真或难以分辨。 以下是几种常见的图像噪声类型: 1…

Unity中神秘的Transform和transform(小写)的关系

1.为什么Transform类是保护的不能通过new 来实例化对象,也没有静态函数,而Rotate()这种方法却属于它,该如何访问? Transform 类还是被保护的不允许用户修改! protected Transform(); 是一个受保护的构造函数,不能直接实例化 Transform 类。 2.为甚么transform可以访问Tr…

Mac Homebrew中常用的 Brew 命令

Mac 中常用的 Brew 命令集 Brew(Homebrew)是一个强大的包管理器,用于在 macOS 上安装、更新和管理各种软件包。它使得在 Mac 上安装开发工具、应用程序和库变得轻松和便捷。本博客将介绍一些在 Mac 中常用的 Brew 命令,以帮助您更…

C#设计打开文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System

【Springcloud】Sentinel熔断和降级

【Springcloud】Sentinel熔断和降级 【一】基本介绍【1】什么是熔断和降级【2】为什么使用熔断和降级【3】Sentinel熔断和降级【4】核心概念 【二】下载方式【1】Windows平台安装包下载【2】打开控制台 【三】使用案例【1】添加依赖【2】添加Sentinel配置【3】添加TestUserCont…

线上问诊:数仓开发(一)

系列文章目录 线上问诊:业务数据采集 线上问诊:数仓数据同步 线上问诊:数仓开发(一) 文章目录 系列文章目录前言一、Hive on yarn二、数仓开发1.ODS开发2.DIM开发3.DWD开发 总结 前言 上次我们已经将MYSQL的数据传送到了HDFS,但…

commet与websocket

commet与websocket Comet 前言 Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询和iframe流。 实现方式 长轮询 长轮询是在打开一条连接以后保持&…

关于HarmonyOS元服务的主题演讲与合作签约

一、感言 坚持中,总会有很多意想不到的收获。 前几次参与HDC时更多的是观众、开发者、专家的身份,以参观、学习、交流为主。 通过几年的努力,和HarmonyOS功能成长,在2023年的HDC大会中,有了我的演讲,并带领…

无涯教程-Android Mock Test函数

本节介绍了与 Android 相关的各种模拟测试。您可以在本地计算机上下载这些样本模拟测试,并在方便时离线解决。每个模拟测试均随附一个模拟测试键,可让您验证最终分数并为自己评分。 Mock Test I Mock Test II Mock Test III Mock Test IV Q 1 -什么是Android? A -A…

mysql CONCAT使用

问题 有一个查找数据的mysql语句:SELECT DISTINCT fund_id,version,statistic_date FROM fund_nv_divident WHERE version ( SELECT max(version) FROM fund_nv_divident) and statistic_date > ‘2023-06-04’ and fund_id not in (SELECT DISTINCT fund_id f…

QT连接服务器通信,客户端以及服务器端

服务器端 .h文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器头文件 #include <QTcpSocket> //客户端头文件 #include <QList> //链表头文件&#xff0c;用来存放客户端容器 #include <QDebug> #i…

AI篇-什么是ChatGPT?

ChatGPT&#xff08;生成式预训练变换器&#xff09;是由 OpenAI 在2022年11月推出的聊天机器人。它建立在 OpenAI 的 GPT-3.5 大型语言模型之上&#xff0c;并采用了监督学习和强化学习技术进行了微调。 ChatGPT 是一种聊天机器人&#xff0c;允许用户与基于计算机的代理进行对…

VMware虚拟机安装CentOS6.9设置静态ip

1.设置虚拟网络编辑器 点击编辑–>虚拟网络编辑器 2.更改系统网络适配器选项 这里的子网掩码与网关&#xff0c;与第一步的一致 3.修改虚拟机主机名 vi /etc/sysconfig/networkNETWORKINGyue HOSTNAMEchen4.配置IP映射 vi /etc/hosts192.168.121.138 chen5.配置网卡…

【校招VIP】前端算法考察之链表算法

考点介绍&#xff1a; 链表是一种物理存储结构上非连续的数据结构,数据的逻辑顺序是通过链表中的指针链接次序实现相互勾连。链表相对数组而言有很多不同之处,在特定场景下能发挥独特的优势。例如链表的插入和删除操作比数组效率高,数组需要改变其他元素的位置,而链表只需要改变…

PyQt5报错Process finished with exit code -1073740791 (0xC0000409)

点击按钮之后&#xff0c;就直接退出程序&#xff0c;控制台出现一个提示&#xff1a;解决办法&#xff1a; 在PyCharm中打开Run菜单&#xff0c;找到Edit Configurations进入&#xff0c;勾选Emulate terminal in output console即可。 然后再运行一下程序&#xff0c;就可以…

Sublime Text汉化,主打简单明了

在Sublime中设置中文的步骤如下&#xff1a; 1.打开Sublime Text&#xff0c;使用快捷键ShiftCtrlP&#xff08;MacOS下cmdShiftP&#xff09;&#xff0c;弹出查找栏。 2.在搜索框中输入关键字"install"&#xff0c;出现下拉选项&#xff0c;点击选择其中的"P…

Cmake qt ,vtkDataArray.cxx.obj: File too big

解决方法&#xff1a; Qt4 在pro 加入“QMAKE_CXXFLAGS -BigObj” 可以解决 Qt5 在网上用“-Wa,-mbig-obj” 不能解决&#xff0c;最后通过“QMAKE_CXXFLAGS -Ofast -flto”解决问题。 Qt4 在pro 加入“QMAKE_CXXFLAGS -BigObj” 可以解决Qt5 在网上用“-Wa,-mbig-obj” …

视频集中存储/云存储/磁盘阵列/视频监控管理平台EasyCVR接入海康SDK后视频播放崩溃的问题排查

视频集中存储/云存储/磁盘阵列/视频监控管理平台EasyCVR可支持海量视频的轻量化接入与汇聚管理。在视频能力上&#xff0c;EasyCVR可实现视频直播、云端录像、检索与回放、云存储、告警上报、语音对讲、电子地图、H.265视频自动转码、服务器集群、AI智能分析接入以及平台级联等…

Ubuntu开启生成Core Dump的方法

C 文章目录 C1. 首先ulimit通过查看2. 执行下面的命令 Ubuntu下无法生成Core Dump解决方法 1. 首先ulimit通过查看 ulimit -a查看是core file size是否为0&#xff0c;若为0&#xff0c;通过以下方式设置size ulimit -c 1024或者 ulimit -c unlimited //size没有限制2. 执行…