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

LoRaWAN设备的两种入网方式(ABP和OTAA)

目录

一、OTAA

1、名词解释

2、入网流程

二、ABP

三、两种入网方式的比较


一、OTAA

1、名词解释

(1)AppEUI:64位(8字节)的唯一标识符,用于标识特定的应用程序或组织(如果用的是chirpstack,终端这里可以配一个随机数)。

(2)DevEUI:64位(8字节)的唯一标识符,用于标识单个LoRaWAN设备,每个设备都有一个唯一的DevEUI。

(3)DevNonce:一个随机数,根据LoRa射频模块的RSSI(信号强度)算出。

(4)AppNonce:由服务端提供的随机值,用于计算NwkSKey 和AppSKey。

(5)NetID:网络ID,也用于计算NwkSKey 和AppSKey。

(6)DevAddr:32bit组成,用于标识当前网络中的终端设备,是在入网过程中由网络服务器NS 分配。

(7)AppSKey:应用会话密钥。

(8)NwkSKey:网络会话密钥。

2、入网流程

(1)终端节点发送Join_Request

        Join_Request格式如下:

         MHDR 为帧头,表示数据的类型(入网请求);入网请求会携带AppEUI和DevEUI,服务器会通过该数据决定是否允许设备入网DevNonce 是一个随机值,通过LoRa射频模块的RSSI(信号强度)算出。服务端会将收到的DevNonce进行存储 ,如果同一个AppEUI的DevNonce是重复发送,服务器会丢弃该入网请求。MIC是校验码,是通过AppKey计算得来的。

(2)服务器处理入网请求

        Join_Request发送至NS处,NS会通过MIC检查数据是否合法,如果合法会将请求交给AS处理。AS 根据报文中的AppEUI和DevEUI来判断是否接收入网请求。 

(3)NS下发Join_Accept

        如果服务器接受入网,NS将会下发一个Join_Accept命令帧。Join_Accept格式如下:

         AS验证设备后会生成AppNonce,NS会生成一个网络标识符NetID,还分配一个4字节的DevAddr。

(4)生成密钥AppSKey和NwkSKey

        终端节点收到Join_Accept后,会根据AppKey生成两个密钥:AppSKey和NwkSKey,生成方式如下:

NwkSKey

NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevAddr | DevNonce)

AppSKey

AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevAddr | DevNonce)

        入网后,后续的通信都使用生成的AppSKey和NwkSKey进行加密和解密(AS端也会计算出AppSKey和NwkSKey),确保数据的机密性和完整性。

整体数据加解密过程大致如下图所示:

二、ABP

        ABP入网的方式比较简单,不需要像ABP那样动态获取信息。ABP这种方法比较简单粗暴,以chirpstack为例,我们可以直接在服务器上配置DevAddr,NwkSKey,AppSKey,然后在终端节点上直接配置与服务器相同的DevAddr,NwkSKey,AppSKey。因为已经直接进行配置,就不再需要join流程了。在这种情况下,这个设备是可以直接发应用数据的,当ABP终端成功发送了第一条数据之后,我们就认为ABP终端入网成功了。

三、两种入网方式的比较

        两种入网方式各有各的优势与短板,具体怎么选择我们还是要看设备以及环境等因素。

1、ABP

优点

(1)快速入网:ABP不需要执行join过程,可直接开始通信。

(2)无网络覆盖依赖:在网络信号弱或者不稳定的区域,ABP不依赖于设备与网络服务器的交互进行入网,因此在某些恶劣的网络条件下可能更可靠。

缺点

        安全性较低:设备的密钥在开始时就已经预设,若这些信息被泄露,攻击者可以伪装成设备进行攻击。

2、OTAA

优点

        安全性高:因为设备在入网过程中会通过网络服务器生成新的会话密钥(NwkSKey 和 AppSKey),并使用 AppKey 进行加密。这样,密钥在每次入网时都是唯一的。而且密钥动态生成,难以被提前获取或破解。

缺点

        依赖网络覆盖:在网络信号弱或不稳定的区域,OTAA 的入网过程可能会失败,因为设备需要与网络服务器进行交互。如果网络覆盖不好,设备可能无法完成入网过程。

相关文章:

LoRaWAN设备的两种入网方式(ABP和OTAA)

目录 一、OTAA 1、名词解释 2、入网流程 二、ABP 三、两种入网方式的比较 一、OTAA 1、名词解释 (1)AppEUI:64位(8字节)的唯一标识符,用于标识特定的应用程序或组织(如果用的是chirpstac…...

【Rust光年纪】极致性能与灵活选择:Rust语言数学优化库详解

Rust语言中的数学优化:六大利器汇总 前言 在当今信息时代,数据处理和数学优化成为了各行各业中不可或缺的重要环节。为了满足对高效、快速计算的需求,Rust语言逐渐成为了许多开发者的首选,因其性能优越、并发安全等特点。本文将…...

机器学习 | 回归算法原理——最小二乘法

Hi,大家好,我是半亩花海。很早便想学习并总结一本很喜欢的机器学习图书——立石贤吾的《白话机器学习的数学》,可谓通俗易懂,清晰形象。那就在此分享并作为学习笔记来记录我的学习过程吧!本章的回归算法原理基于《基于…...

.NET Core 中的字符串压缩方法

字符串压缩的概念 字符串压缩通常指的是通过算法减少字符串表示所需的数据量,同时保持字符串的原始信息或能够无损地恢复原始字符串。这种压缩可以是针对文本数据的特定算法,也可以是更通用的数据压缩算法。 .NET Core 中的字符串压缩方法 使用数据压…...

SQL 基础知识

SQL(结构化查询语言)是一种用于管理和操作关系数据库的标准编程语言。以下是一些 SQL 的基础知识: 基本概念 数据库(Database): 存储和管理数据的容器。一个数据库可以包含多个表。 表(Table&…...

【数据结构初阶】单链表经典算法题十二道——得道飞升(上篇)

目录 1、移除元素 2、反转链表 3、链表的中间节点 4、合并两个有序链表 Relaxing Time!!! ———————————————— 天气之子幻 ———————————————— 1、移除元素 思路: 创建一个新链表&#xff0…...

Python爬虫技术 第16节 XPath

XPath是一种在XML文档中查找信息的语言,尽管XML和HTML在语法上有区别,但XPath同样适用于HTML文档的解析,尤其是在使用如lxml这样的库时。XPath提供了一种强大的方法来定位和提取XML/HTML文档中的元素和属性。 XPath基础 XPath表达式由路径表…...

本地部署,Whisper: 开源语音识别模型

目录 简介 特点 应用 使用方法 总结 GitHub - openai/whisper: Robust Speech Recognition via Large-Scale Weak SupervisionRobust Speech Recognition via Large-Scale Weak Supervision - openai/whisperhttps://github.com/openai/whisper 简介 Whisper 是一个由 O…...

history,hash缓存那些事

vue-router 中的 createWebHistory,createWebHashHistory两种模式 createWebHistory 是基于 window.history 对象是HTML5提供的用于维护当前标签页浏览历史的对象,主要功能是前进后退和在不刷新页面的情况下,修改地址栏里的URL地址。histor…...

Spring Boot的Web开发

目录 Spring Boot的Web开发 1.静态资源映射规则 第一种静态资源映射规则 2.enjoy模板引擎 3.springMVC 3.1请求处理 RequestMapping DeleteMapping 删除 PutMapping 修改 GetMapping 查询 PostMapping 新增 3.2参数绑定 一.支持数据类型: 3.3常用注解 一.Request…...

Spark 解析嵌套的 JSON 文件

1、什么是嵌套的JSON文件? 嵌套的JSON文件是指文件中包含了嵌套的JSON对象或数组。例如,以下是一个嵌套的JSON文件的示例: {"name": "John","age": 30,"address": {"street": "123…...

VMware虚拟机中CentOS7自定义ip地址并且固定ip

配置固定ip(虚拟机) 前提:虚拟机网络配置成,自定义网络并选择VMnet8(NAT 模式) 操作(如下图):点击虚拟机–》设置–》–》硬件–》网络适配器–》自定义:特定虚拟网络–》选择:VMnet8(NAT 模式) 虚拟机网络设置 需要记…...

CCS(Code Composer Studio 10.4.0)编译软件中文乱码怎么解决

如果是所有文件都出现了中文乱码这时建议直接在窗口首选项中修改:选择"Window" -> "Preferences",找到"General" -> "Workspace",将"Text file encoding"选项设置为"Other&quo…...

Flutter 3 完全支持网页端

Flutter 3 可以用于开发网页端应用。自 Flutter 2.0 起,Flutter 就已经支持 Web 平台,并且在 Flutter 3 中得到了进一步的改进和优化。以下是使用 Flutter 3 开发网页端的一些优势和特点: Flutter 3 开发网页端的优势: 跨平台一致…...

vue.js入门

目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2.4 v-on 2.5 v-model 2.6 v-show 2.7 v-if 2.8 v-else 2.9 v-bind 2.10 v-for 三. vue生命周期函数 目录 一. 框架概述 二. vue常用命令 2.1 插值表达式 2.2 v-text 2.3 v-html 2…...

API签名认证

前言(项目背景): 这个API签名认证是API开放平台得一个重要环节,我们知道,这个API开发平台,用处就是给客户去调用现成得接口来完成某些事情得。 在讲API签名认证之前,我们先模拟一个场景并且介绍…...

C#进阶-基于.NET Framework 4.x框架实现ASP.NET WebForms项目IP拦截器

在这篇文章中,我们将探讨如何在 ASP.NET WebForms 中实现IP拦截器,以便在 ASMX Web 服务方法 和 HTTP 请求 中根据IP地址进行访问控制。我们将使用自定义的 SoapExtension 和 IHttpModule 来实现这一功能,并根据常用的两种文本传输协议&#…...

前端(1)HTML

1、标签 创建1.html文件&#xff0c;浏览器输入E:/frontheima/1.html&#xff0c;可以访问页面 页面展示 在VSCODE安装IDEA的快捷键&#xff0c;比如ctld复制一行、ctrlx剪切 <p id"p1" title"标题1">Hello,world!</p> <p id"p2"…...

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十三章 设备树下的platform驱动

i.MX8MM处理器采用了先进的14LPCFinFET工艺&#xff0c;提供更快的速度和更高的电源效率;四核Cortex-A53&#xff0c;单核Cortex-M4&#xff0c;多达五个内核 &#xff0c;主频高达1.8GHz&#xff0c;2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...

Java正则表达式判断有无特殊字符

//^代表否定&#xff0c;匹配除了数字、字母、下划线的特殊字符。 private static final String SPECIAL_CHAR_PATTERN "[^a-zA-Z0-9_]"; Pattern pattern Pattern.compile(SPECIAL_CHAR_PATTERN); Matcher matcher pattern.matcher(userAccount); // 如果 find(…...

6表单全链路工程化AI开发体系使用方案

6表单全链路工程化AI开发体系使用方案 一、体系整体概述 核心定位与价值 本方案对应的6个表单,是一套覆盖项目启动→需求收敛→标准前置→开发执行→风险管控→验收闭环全流程的工程化AI人机协同管控体系,核心解决AI辅助开发中「需求模糊→AI输出偏离→反复返工→交付失控」的…...

数据可视化避坑指南:当产品经理要你做Echarts版丝带图时,这3个技术难点要注意

Echarts丝带图实战&#xff1a;破解企业级数据可视化的三个高阶难题 当医药企业的销售总监盯着大屏上跳动的数字&#xff0c;突然提出"能不能做成Power BI那种丝带图效果"时&#xff0c;开发团队的沉默往往不是因为技术难度&#xff0c;而是对未知领域的本能警惕。这…...

Cesium.js实战:用自定义Shader给无人机轨迹加上酷炫流动尾线(附完整代码)

Cesium.js实战&#xff1a;用自定义Shader给无人机轨迹加上酷炫流动尾线&#xff08;附完整代码&#xff09; 在三维地理信息可视化领域&#xff0c;动态轨迹的表现力直接影响数据传达效率。想象一下&#xff0c;当无人机飞越城市上空时&#xff0c;一条普通的静态线条很难直观…...

Remotely远程控制会话录制:完整监控与分析指南

Remotely远程控制会话录制&#xff1a;完整监控与分析指南 【免费下载链接】Remotely A remote control and remote scripting solution, built with .NET 7, Blazor, and SignalR. 项目地址: https://gitcode.com/gh_mirrors/re/Remotely Remotely是一款基于.NET、Blaz…...

5步精通OpenPose:从环境评估到人体姿态检测全流程

5步精通OpenPose&#xff1a;从环境评估到人体姿态检测全流程 【免费下载链接】openpose 项目地址: https://gitcode.com/gh_mirrors/op/openpose 环境评估&#xff1a;系统兼容性与硬件要求 在开始OpenPose的安装之旅前&#xff0c;需要确保你的系统环境满足以下条件…...

AT32F403A基于V2库实现多通道ADC+DMA数据采集实战

1. 硬件准备与环境搭建 第一次接触AT32F403A开发板时&#xff0c;我对着官方文档研究了半天。这块板子最吸引我的地方是内置了ATLink-EZ调试器&#xff0c;省去了额外购买仿真器的麻烦。开发板采用AT32F403AVGT7芯片&#xff0c;核心资源丰富&#xff0c;特别适合做ADC多通道采…...

ElastAlert vs Prometheus:2024年日志告警与指标告警终极选型指南

ElastAlert vs Prometheus&#xff1a;2024年日志告警与指标告警终极选型指南 【免费下载链接】elastalert Easy & Flexible Alerting With ElasticSearch 项目地址: https://gitcode.com/gh_mirrors/el/elastalert 在当今复杂的IT环境中&#xff0c;有效的监控告警…...

fluent_edem流固耦合方面的教学或者代做或者代码二次开发,气液固三相耦合。 接口优化...

fluent_edem流固耦合方面的教学或者代做或者代码二次开发&#xff0c;气液固三相耦合。 接口优化&#xff0c;计算速率大大提升。 模拟散体和颗粒材料的离散元法多用途仿真软件&#xff0c;支持GPU加速&#xff0c;与颗粒流软件PFC相比&#xff0c;具有友好的图形用户界面、更快…...

AI-Agent元年来了!2026年全面爆发,掌握Agent工程化思维,从0到1打造爆款智能体!

前言 如果说[2025年是AI-Agent元年]&#xff0c;那么2026年无疑是AI-Agent全面爆发的一年。无论是近期引发全民热潮的“养虾”智能体[OpenClaw&#xff0c;还是渗透进各行各业、解决实际工作问题的智能助手&#xff0c;它们都属于AI-Agent的生动实践。从这些案例中不难看出&…...

通义千问3-4B-Instruct-2507调优技巧:提高指令遵循准确率

通义千问3-4B-Instruct-2507调优技巧&#xff1a;提高指令遵循准确率 通义千问3-4B-Instruct-2507&#xff0c;这个听起来有点长的名字&#xff0c;其实是一个特别适合我们普通开发者和爱好者玩转的AI小模型。它只有40亿参数&#xff0c;但阿里在2025年8月把它开源出来的时候&…...