快速了解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。当传输上行链路消息时,相应的帧计数器会更新。
类似地,当终端设备接收到下行链路有效负载时,下行链路帧计数器立即更新。 终端设备和应用服务器忽略包含低于更新的帧计数器的帧计数器值的任何消息。