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

news2024/11/27 10:29:51

快速了解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.coloradmin.cn/o/978185.html

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

相关文章

计算机网络的故事——确认访问用户身份的认证

确认访问用户身份的认证 HTTP使用的认证方式:BASIC认证(基本认证)、DIGEST(摘要认证)、SSL客户端认证、FormBase认证(基于表单认证)。 基于表单的认证:涉及到session管理以及cookie…

Mock 基本使用

mock解决的问题 开发时,后端还没完成数据输出,前端只好写静态模拟数据。数据太长了,将数据写在js文件里,完成后挨个改url。某些逻辑复杂的代码,加入或去除模拟数据时得小心翼翼。想要尽可能还原真实的数据&#xff0c…

【Springcloud】Sentinel熔断和降级

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

网络类型+二层封装技术

一、网络类型分类 1、点到点网络 在一个网段中,只能部署两个节点(两个IP),如GRE环境就属于虚拟的点到点网络类型,通常是串线连接。 如下图当前只存在两个节点,但并不是点到点,因为它中间网段…

简易版人脸识别qt opencv

1、配置文件.pro #------------------------------------------------- # # Project created by QtCreator 2023-09-05T19:00:36 # #-------------------------------------------------QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET 01_face TEMP…

【trie树】CF Edu12 E

Problem - E - Codeforces 题意: 思路: 这其实是一个套路题 区间异或转化成前缀异或,然后枚举 i 对于每一个 i,ai ^ x k,对 x 计数 先建一棵字典树,然后在字典树上计数 先去对 > k 的部分计数&a…

m8130kt GPS模块测试

m8130kt GPS模块测试 ✨在某宝捡电子垃圾,10块钱的价格,就是没有资料可以提供的。上面携带有u-blox UBX-M8130-KT芯片,是肯定的,至于HMC5883芯片不确定,拆了屏蔽罩,芯片实在是太小,使用40倍放大…

SpringCloud实战项目(1)---创建空项目 jdk17

创建空项目 New ProjectAdd Jdk17创建空白标准Maven项目不要选择Create from archetype选项填写相关项目信息创建项目得到一个标准的maven项目,作为一个Parent project存在的,需删除src文件夹。 New Project 使用Idea, File -> New ->Project Add …

语音特征提取与预处理

导入相关包 import librosa import librosa.display import soundfile as sf import numpy as np import matplotlib.pyplot as plt from playsound import playsound 语音读取与显示 file_path test1.wav data, fs librosa.load(file_path, srNone, monoTrue) librosa.d…

word如何插入图片?3种常用的方法

word作为一款常用的办公软件,不仅可以处理文本内容,还能够轻松地插入图片以丰富文档内容。插入图片可以使文档更具吸引力、可读性和信息传达能力。本文将为您介绍word如何插入图片的3种方法,帮助您在文档中灵活、高效地添加图像元素。 word插…

SLAM从入门到精通(矩阵的使用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 学习SLAM,离开了矩阵肯定是玩不转的。大学数学里面除了微积分,剩下的就是线性代数和概率论。而矩阵就是线性代数的一部分。…

selenium 动态爬取页面使用教程以及使用案例

Selenium 介绍 概述 Selenium是一款功能强大的自动化Web浏览器交互工具。它可以模拟真实用户在网页上的操作,例如点击、滚动、输入等等。Selenium可以爬取其他库难以爬取的网站,特别是那些需要登录或使用JavaScript的网站。Selenium可以自动地从Web页面…

在多机多卡训练时,保存的文件无法读取,报错文件已经损坏

问题描述&#xff1a;多机多卡训练保存了optimizer.pt文件&#xff0c;但是该文件在被读取时显示已经损坏。 原来的报错&#xff1a; Traceback (most recent call last):File "/mnt/petrelfs/tongjingqi/train-moe/smoe/entrypoint/cpt_fpt.py", line 280, in <…

Android Aidl跨进程通讯(三)--进阶使用

学更好的别人&#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为2478字&#xff0c;预计阅读6分钟 前言 Android的AIDL使用和异常报错都已经介绍过了&#xff0c;今天这篇还是在原来的Demo基础上加入几个AIDL的进阶使用方法。 】 AIDL进阶使用 微卡智享 in,out,inout的使…

定时线程池原理解析

基本使用 ScheduledThreadPoolExecutor继承自ThreadPoolExecutor。它主要用来在给定的延迟之后运行任务&#xff0c;或者定期执行任务。 public class ScheduledThreadPoolExecutorTest {public static void main(String[] args) {ScheduledThreadPoolExecutor threadPoolExecu…

QT DAY7

主要完成多人聊天室&#xff0c;注册与登录使用sql3数据库进行对密码的保存&#xff0c;避免了用户重复登录、错误密码登录、重复注册的问题&#xff0c;之后使用TCP通信&#xff0c;连接上服务器后可在聊天室多人交流

怎么处理zk或redis脑裂

很极端场景会出现脑裂 什么是分布式的脑裂 怎么理解zk脑裂 就是ZK&#xff0c;与客户端可能因为网络原因&#xff0c;客户端A还在跑着后续程序&#xff0c;而zk与客户端之前的心跳断了&#xff0c;此zk就把这节点给删除了&#xff0c;这时另一个客户会加锁成功&#xff0c;就样…

[Java]异常

目录 1.异常的概念与体系结构 1.1异常的概念 1.1.1算术异常 1.1.2数组越界异常 1.1.3空指针异常 1.2异常的体系结构 1.3异常的分类 2.异常的处理 2.1 防御式编程 2.2异常的抛出 2.3异常的捕获 2.3.1 异常声明throws 将光标放在抛出异常方法上&#xff0c;alt Insert …

咖啡店小程序:吸引顾客的创新营销手段

近日&#xff0c;“酱香拿铁”的大火让大家再次把目标聚焦在年轻人都喜欢的咖啡上。现在咖啡已经成为年轻一代的社交硬通货&#xff0c;咖啡店也遍地开花。而随着移动互联网的快速发展&#xff0c;咖啡店小程序已经成为了各大咖啡店主的选择&#xff0c;因为它提供了便捷的方式…

【Leetcode-面试经典150题-day22】

目录 97. 交错字符串 97. 交错字符串 题意&#xff1a; 给定三个字符串 s1、s2、s3&#xff0c;请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下&#xff0c;其中每个字符串都会被分割成若干 非空 子字符串&#xff1a; s s1 s2 …