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

[杂谈]-快速了解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。当传输上行链路消息时,相应的帧计数器会更新。

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

相关文章:

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

快速了解LoRaWAN网络以及工作原理 文章目录 快速了解LoRaWAN网络以及工作原理1、LoRaWAN网络元素1.1 终端设备(End Devices)1.2 网关(Gateways)1.3 网络服务器(Net Server)1.4 应用服务器(Appli…...

MySQL--MySQL表的增删改查(基础)

排序:ORDER BY 语法: – ASC 为升序(从小到大) – DESC 为降序(从大到小) – 默认为 ASC SELECT … FROM table_name [WHERE …] ORDER BY column [ASC|DESC], […]; *** update...

Vue中启动提示polyfill缺少-webpack v5版本导致

安装 npm i node-polyfill-webpack-plugin 因为我们的项目使用webpack v5,其中polyfill Node核心模块被删除。所以,我们安装它是为了在项目中访问这些模块 vue.config.js文件 const { defineConfig } require("vue/cli-service"); const No…...

Hugging Face实战-系列教程3:AutoModelForSequenceClassification文本2分类

🚩🚩🚩Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在notebook中进行 本篇文章配套的代码资源已经上传 下篇内容: Hugging Face实战-系列教程4:padding与attention_mask ​输出我…...

《TCP/IP网络编程》阅读笔记--Socket类型及协议设置

目录 1--协议的定义 2--Socket的创建 2-1--协议族(Protocol Family) 2-2--Socket类型(Type) 3--Linux下实现TCP Socket 3-1--服务器端 3-2--客户端 3-3--编译运行 4--Windows下实现 TCP Socket 4-1--TCP服务端 4-2--TC…...

GitHub使用教程

GitHub使用教程 视频教程一:Github 新手够用指南 | 全程演示&个人找项目技巧放送_哔哩哔哩_bilibili 笔记: README.md编写教程:Typora官方免费版与入门教程__阿伟_的博客-CSDN博客 找开源项目的一些途径 • https://github.com/trendin…...

sql server 分区表

分区表 分区表是在SQL Server 2005之后的版本引入的特性,这个特性允许把逻辑上的一个表在物理上分为很多部分。换句话说,分区表从物理上看是将一个大表分成几个小表,但是从逻辑上看,还是一个大表。 步骤 创建分表区的步骤分为…...

开源许可证概述:GNU, BSD, Apache, MPL, 和 MIT

前言 开源许可证是开源软件分发的基础。它们定义了使用者如何使用,修改,分发开源软件。在这篇文章中,我们将探讨五种常见的开源许可证:GNU通用公共许可证 (GNU GPL),BSD许可证,Apache许可证,Mo…...

java中log使用总结

目录 一、概述1.1. 核心日志框架1.2 门面日志框架 二、最佳实践2.1 核心日志框架API包2.2 门面日志框架依赖2.3 集成使用2.3.1 集成jcl2.3.2 集成slf4j2.3.2.1 slf4j集成单一框架2.3.2.2 slf4j整合混合框架 三、总结3.1 所有相关包3.1.1 核心日志框架包3.1.2 门面日志框架3.1.3…...

【Java】传输层协议TCP

传输层协议TCP TCP报文格式首部长度保留位32位序列号和32位确认应答号标记ACKSYNFINRSTURGPSH 16位窗口大小16位校验和16位紧急指针选项 TCP特点可靠传输实现机制-确认应答超时重传连接管理机制三次握手四次挥手特殊情况 滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘…...

计算机网络基础知识(非常详细)

1. 网络模型 1.1 OSI 七层参考模型 七层模型,亦称 OSI(Open System Interconnection)参考模型,即开放式系统互联,是网络通信的标准模型。一般称为 OSI 参考模型或七层模型。 它是一个七层的、抽象的模型体&#xff…...

如何进行SEO优化数据分析?(掌握正确的数据分析方法,让您的网站更上一层楼!)

在互联网时代,SEO优化已经成为了每一个网站运营者必备的技能。而在SEO优化中,数据分析更是至关重要的一环。在本文中,我们将会详细介绍如何正确的进行SEO优化数据分析,让您的网站更上一层楼! 数据分析的重要性 数据分…...

Golang不同平台编译的思考

GOOS和GOARCH $GOOS可选值如下: darwin dragonfly freebsd linux netbsd openbsd plan9 solaris windows $GOARCH可选值如下 386 amd64 arm 在编译的时候我们可以根据实际需要对这两个参数进行组合。更详细的说明可以进官网看看 ## http://golang.org/cmd/go http…...

SpringSecurity学习

1.认证 密码校验用户 密码加密存储 Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter {Beanpublic PasswordEncoder passwordEncoder(){return new BCryptPasswordEncoder();}} 我们没有这个配置,默认明文存储, {id}password;实现…...

时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测

时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测 目录 时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 ICEEMDAN-iMPA-BiLSTM功率/风速预测 基于改进的自适应经验模态分解改进海洋捕食者算法双向长短期记忆…...

二叉树(上)

“路虽远,行则将至” ❤️主页:小赛毛 目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示(树的存储) 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树 2.3 特殊的二叉树: 2.4 二叉树的性质 3.二叉树的顺…...

Excel怎么批量生成文件夹

Excel怎么批量生成文件夹的链接: https://jingyan.baidu.com/article/ea24bc398d9dcb9b63b3312f.html...

c++ 学习之 静态成员变量和静态成员函数

文章目录 前言正文静态成员变量初始化操作如何理解共享一份数据访问权限 静态成员函数访问方式静态成员函数只能访问静态成员变量访问权限 前言 静态成员分为 1)静态成员变量 所有对象共享一份数据在编译阶段分配空间类内声明,类外初始化 2&#xff09…...

C程序需要按下回车键才能读取字符

当编写涉及从终端输入字符的C程序时,有时会遇到需要按下回车键才能读取字符的问题。这是因为默认情况下,终端通常处于行缓冲模式,需要等待用户按下回车键才会将输入的字符发送给正在运行的程序。这可能会导致一些不便,尤其是当程序…...

x86体系结构(WinDbg学习笔记)

寄存器 eaxAccumulator累加器ebxBase register基寄存器ecxCounter register计数器寄存器edxData register - can be used for I/O port access and arithmetic functions数据寄存器-可用于I/O端口访问和算术函数esiSource index register源索引寄存器ediDestination index reg…...

Hadoop的第二个核心组件:MapReduce框架第四节

Hadoop的第二个核心组件:MapReduce框架 十、MapReduce的特殊应用场景1、使用MapReduce进行join操作2、使用MapReduce的计数器3、MapReduce做数据清洗 十一、MapReduce的工作流程:详细的工作流程第一步:提交MR作业资源第二步:运行M…...

算法通关村第十九关——最少硬币数

LeetCode322.给你一个整数数组 coins,表示不同面额的硬币,以及一个整数 amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回-1。你可以认为每种硬币的数量是无限的。 示例1&…...

Linux ifconfig只显示 lo 网卡,没有ens网卡解决方案

项目场景: 虚拟机中linux无网络问题 问题描述 之前在调试linux的时候,由于一些不太清楚的误操作,导致ubuntu linux出现无网络问题,现象如下 ifconfig 只显示了 lo 网卡 lo 网卡:它是本地环回接口。 这意味着您的虚…...

Java复习-26-枚举

枚举(替换多例设计) 目的(使用场景) 不用也没啥 定义一个描述性别的类,那么该对象只有两个:男、 女。或者描述颜色基色的类,可以使用: 红色、绿色、蓝色。 功能 用于定义有限个数对象的一种结构&#x…...

NLP(六十八)使用Optimum进行模型量化

本文将会介绍如何使用HuggingFace的Optimum,来对微调后的BERT模型进行量化(Quantization)。   在文章NLP(六十七)BERT模型训练后动态量化(PTDQ)中,我们使用PyTorch自带的PTDQ&…...

Tomcat多实例和负载均衡动静分离

目录 一、Tomcat多实例部署 二、负载均衡动静分离 2.1.动静分离 2.11 nginx负载均衡 192.168.30.203 2.22 Tomcat服务器:192.168.30.200:80 2.23 Tomcat服务器:192.168.30.100:80 2.24 配置nginx 192.168.30.203静态页面 2…...

企业ERP和泛微OA集成场景分析

轻易云数据集成平台(qeasy.cloud)为企业ERP和泛微OA系统提供了强大的互通解决方案,特别在销售、采购和库存领域的单据审批场景中表现出色。这些场景涉及到多个业务单据的创建和审批,以下是一些具体的应用场景描述: 采购…...

31 WEB漏洞-文件操作之文件包含漏洞全解

目录 文件包含漏洞原理检测类型利用修复 本地包含-无限制,有限制远程包含-无限制,有限制各种协议流玩法文章介绍读取文件源码用法执行php代码用法写入一句话木马用法每个脚本支持的协议玩法 演示案例某CMS程序文件包含利用-黑盒CTF-南邮大,i春…...

qmake.exe xxx.pro -spec win32-g++ 作用

作用 qmake.exe xxx.pro -spec win32-g的作用是使用win32-g构建系统规范来生成针对xxx.pro项目的构建脚本。 具体来说,这个命令的含义如下: qmake.exe:使用qmake命令行工具。xxx.pro:指定了要构建的项目文件,.pro文…...

SpringMVC实现增删改查

文章目录 一、配置文件1.1 导入相关pom依赖1.2 jdbc.properties:配置文件1.3 generatorConfig.xml:代码生成器1.4 spring-mybatis.xml :spring与mybatis整合的配置文件1.5 spring-context.xml :上下文配置文件1.6 spring-mvc-xml:…...

利于优化的网站/谷歌在线搜索

音视频实践学习 android全平台编译ffmpeg以及x264与fdk-aac实践ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器android全平台编译ffmpeg合并为单个库实践android-studio使用cmake编译ffmpeg实践android全平台编译ffmpeg视频解码器实践android全平台编译ffmpeg支持命…...

手机网站模板 怎样做/东莞seo报价

描述SWRITE具有与CWRITE类似的功能和语法。但是,与CWRITE不同,SWRITE不会将数据写入通道,而是写入CHAR数组。1. 可以将CWRITE限制为将数据写入通道。 SWRITE可以执行更复杂的格式化任务。这使程序更加灵活。2. CWRITE最多可以处理10个变量。…...

如何做合格的新闻网站编辑/国外域名购买

很早就想写这样一篇博文了,可是一直没来得及动笔。在学校的时候,时间似乎总是不够用,因为一旦有点时间,你就想是不是该用来多看点论文。所以我很高兴,工作的生活给了我真正自由的时间,让我可以多分享一些自…...

怎样用ps做网站首页图/安新seo优化排名网站

首先把django的组件的app复制到新的项目的根目录下, 删除migrations的文件,只剩下__init__.py,因为以前生成过新的表,再进来要建立新表 注册app在设置文件中,...

那个视频网站可以做桌面背景/腾讯域名注册官网

google 单元测试相关 http://code.google.com/p/googlemock/wiki/CookBook http://code.google.com/p/googletest/wiki/AdvancedGuide#Teaching_Google_Test_How_to_Print_Your_Values 进展: Delegating Calls to a Parent Class...

企业信息平台网站官网/广东seo外包服务

这篇文章我很早就想写了 原因很简单 希望后来者能避免多走一个弯路,以及揭开一些骗人的谎言明日——无论从质量还是口碑都并不让人满意从入门到精通这一本书我买了两本,分别是:VB 和 VC。因为当时的水平非常低,什么也不懂,于是便轻…...