首页 LoRaWAN协议栈系统架构分析

LoRaWAN协议栈系统架构分析

举报
开通vip

LoRaWAN协议栈系统架构分析 &nbsh1;   LoRaWAN协议栈系统架构分析     韦福鹤,朱 珠,曾艳文,刘守印 (华中师范大学 物理科学与技术学院,湖北 武汉 430079) 0 引 言 物联网正在改变我们的生活和工作方式,并已渗透到各个领域,如环境监测、能源开发、交通管理、健康监护等。到2025年,预计我国物联网连接数将达到80.1亿。物联网的迅速发展离不开低功耗广域网(Low Power...

LoRaWAN协议栈系统架构分析

&nbsh1;

 

LoRaWAN 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 栈系统架构分析

 

 

韦福鹤,朱 珠,曾艳文,刘守印

(华中师范大学 物理科学与技术学院,湖北 武汉 430079)

0 引 言

物联网正在改变我们的生活和工作方式,并已渗透到各个领域,如环境监测、能源开发、交通管理、健康监护等。到2025年,预计我国物联网连接数将达到80.1亿。物联网的迅速发展离不开低功耗广域网(Low Power Wide Area Network, LPWAN)技术的进步。LPWAN以其通信距离长、传输功耗低等特点,已经成为实现物联网海量连接的重要推力。而LoRaWAN(Long Range Wide Area Network,LoRaWAN)作为LPWAN的一员,凭借低成本、高灵敏度、自适应数据速率等特性,在多种产业(智慧农业、智慧消防、智慧家居等)中发挥出独特优势。

虽然现有的工作已经对LoRaWAN物理层调制技术和媒体接入控制(Media Access Control, MAC)层进行了大量研究,但对于LoRaWAN协议栈的设计与实现较少有人关注。由于目前比较成熟的开源协议栈—ChirpStack无法适应复杂多样的应用场景,在实际部署中,往往需要开发人员依照LoRaWAN协议自主设计并实现协议栈,而了解其核心结构与各部分功能对构建高效、稳定、兼容的协议栈至关重要。

本文详细分析了LoRaWAN协议族(LoRaWAN协议 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 、LoRaWAN后端接口标准、LoRaWAN区域参数标准)以及实际应用中的开源协议栈,希望能为LoRaWAN及其协议栈的后续研究、开发提供参考。

1 LoRa调制技术、LoRaWAN协议标准

1.1 LoRa调制技术

LoRa作为物理层实现方式,属于扩频调制技术的一种,由Semtech公司在Chirp扩频调制的基础上研发并申请专利。该技术运行在非授权频段,可通过降低数据速率提高接收灵敏度,使接收端信号功率在低于噪声功率的情况下仍可成功解调,由此在传输距离、传输功耗和传输效率之间作出取舍。除此之外,LoRa技术使用正交扩频因子实现了可变的数据速率,以适应不同的应用环境。

1.2 LoRaWAN协议标准

LoRaWAN是建立在物理层LoRa调制之上的一种网络协议标准,该协议定义了媒体接入、帧 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 、消息供应和管理、安全机制、设备管理等标准。LoRaWAN协议标准的软件实现称为LoRaWAN协议栈,目前比较成熟的开源协议栈有ChirpStack。

LoRaWAN网络的基本结构由终端设备、网关、网络服务器和应用服务器组成,如图1所示。终端设备和网关形成了单跳星形拓扑结构,网关作为终端设备和网络服务器之间的透明中继。网络服务器负责MAC层数据处理,并充当在终端设备和应用服务器上运行的应用程序之间的门户。

图1 LoRaWAN网络结构

LoRaWAN标准定义了A类、B类和C类三种支持双向通信的终端设备,以适应不同的应用场景:

A类:该类设备上行传输后会开启2个短暂的下行接收窗口。终端设备的上行传输时隙由其自身需要决定,使用随机方式接入信道(ALOHA式协议)。A类设备的功耗最低,但只支持在上行传输后的下行接收。每次网络服务器的下行传输必须等待终端设备上行传输后才能发起。

B类:该类设备提供了更多的接收时隙。除A类设备在上行传输后开启的2个接收窗口,B类终端设备还周期性地开启接收窗口,为保持时间周期准确,设备需要持续从网关处接收时间同步信标。

C类:该类设备除在上行传输时关闭接收机外,其余时间始终处于接收状态。C类设备功耗最高,但下行传输时延最低,适合实时性较高的应用。

LoRaWAN协议标准规定实际部署中协议栈应至少支持A类设备,因B、C两类设备除接收时隙不同外,其余配置均与A类设备类似,所以本文仅分析LoRaWAN协议栈ChirpStack的A类设备。

2 协议栈核心结构与层间接口

2.1 核心结构

考虑到协议栈的设计与实现,LoRaWAN协议增加了后端接口标准。网络结构相应增加了入网服务器,如图2所示。入网服务器的功能为管理终端设备的入网过程。LoRaWAN协议定义了2种设备激活方式,分别为个性化激活(Activation by Personalization, ABP)和空中激活(Overthe-Air Activation, OTAA)。ABP方式无需入网,设备启动后可直接与网络通信,安全性较低。与之相反,OTAA设备启动后需要通过网络服务器与入网服务器通信,交换设备标识与密钥,实现激活。随后入网服务器将生成的对应密钥(后续通信中使用)分别发送至网络服务器与应用服务器。LoRaWAN协议推荐使用安全性较高的OTAA方式,防止恶意攻击,因此入网服务器是协议栈中不可或缺的部分。

图2 LoRaWAN协议栈系统结构

网络服务器在协议栈中还负责多项关键任务:设备地址检查、帧计数器检查、回复确认(Acknowledgment, ACK)、数据速率自适应、推送应用层数据到应用服务器、调度应用层下行数据、推送入网与重入网请求到入网服务器等,这些功能使得网络服务器成为协议栈的核心。

2.2 层间接口

为介绍方便,此处将OSI七层协议体系结构简化为五层模型,后者的应用层对应于前者的应用层、会话层、表示层。相对于五层模型,LoRaWAN协议定义了网络的物理层(LoRa调制)、链路层(LoRaWAN MAC)以及应用层,但未定义传输层与网络层。LoRaWAN分层模型如图3所示。

图3 LoRaWAN分层模型

在实际应用中,终端设备(End Device, ED)上的应用层并非直接与应用服务器(Application Server, AS)的应用层通信,而是经过网关(Gateway, GW)中继、网络服务器(Network Server, NS)的校验与转发,最后到达AS。期间要经历若干接口,比如ED到GW的空中接口,以及GW到NS、NS到AS的传输层接口。ED与NS之间的LoRaWAN MAC接口如图4所示。因此,合理设计各接口与其功能有利于协议栈的稳定运行。由于物理层的LoRa调制由Semtech公司开发并申请专利,在此不做讨论,仅分析LoRaWAN MAC/链路层及以上层间接口的功能。

图4 LoRaWAN分层通信

(1)ED-NS:在LoRaWAN网络中,GW起透明中继的作用,因此其上未部署LoRaWAN MAC,即ED的MAC与NS直接交互。此接口用来完成ED与NS之间MAC命令和数据负载的解析。

(2)GW-NS:GW使用LoRa物理层与ED通信,其与NS之间的通信通过传输层协议完成,比如用户数据报协议(User Datagram Protocol, UDP)、传输控制协议(Transmission Control Protocol, TCP)等,此接口的作用为GW与NS之间消息透传,同时还要考虑NS对不同传输层协议的支持。

(3)NS-AS:此接口支持NS与AS间应用层消息和NS元数据(终端设备地址、端口号、时间戳等)的传递。

(4)AS-JS:此接口用来支持JS向AS传输应用层会话密钥。

(5)NS-JS:此接口用来完成OTAA设备的入网过程,期间JS需要与NS交换终端设备标识、入网编号等信息。

(6)AS-ED:此接口支持ED上的应用层与AS交互,包括对应用层数据的解析以及应用层指令下发等。

3 协议栈接口实现与构件工作流程

由于LoRaWAN的开源特性,其协议栈中的构件有多种实现方式,并由多方组织开发和维护。因此,合理设计协议栈的层间接口与构件的工作流程对屏蔽不同实现方式之间的差异起到重要作用。本文在分析LoRaWAN协议族以及开源LoRaWAN协议栈的基础上,给出了层间接口的实现方式以及构件的工作流程。LoRaWAN网络接口实现方式如图5所示。

图5 LoRaWAN网络接口实现方式

NS兼具LoRaWAN MAC层解析与传输层转发的功能,后者依赖前者的处理结果,为协议栈设计与NS的性能优化造成了困难。为了使两部分功能分离,提高NS效率,增加网桥(Gateway Bridge, GB)作为GW与NS间的中间件。GB同样部署于NS之上,属于NS的一部分,其作用为将来自GW的MAC负载进行预处理,并分类上传至NS。

3.1 接口实现方式

(1)GW-NS:此接口在增加GB作为中间件后,分为GW-GB和GB-NS两部分,前者可以使用UDP协议,后者可以使用消息队列遥测传输(Message Queuing Telemetry Transport, MQTT)协议。实际应用中往往有多个GW连接至同一GB,如果每次通信都需要建立连接则耗费GB较多资源,使用无连接的UDP协议可以避免这一问题,快速完成数据上传。MQTT协议是一种轻量级,基于发布/订阅模式的通信协议,可以实现应用程序解耦,允许一个NS订阅多个GW的消息发布,无需与某一GW绑定,从而提高NS的资源利用率,同时提高协议栈的实时性。

(2)NS-JS、AS-JS:这2个接口涉及网络传输,主要传输内容为LoRaWAN会话密钥,需要较高的安全性,又因数据量较小,可以使用HTTPS协议。

(3)NS-AS:此接口消息多为应用层数据,传输量较大,可以使用谷歌远程过程调用(Google Remote Procedure Call,gRPC)协议,该协议传输延迟小,支持身份验证,适用于单一NS连接多个AS的情景,既可以提高安全性,又能满足高并发、低延时的传输要求。

(4)其他接口:其他接口不涉及网络传输,只需实现对应功能即可。需要注意的是,LoRaWAN MAC接口在设计时应兼容较低版本协议。

3.2 构件工作流程

3.2.1 网桥工作流程

网桥作为网关和网络服务器间的中转站,将UDP包与MQTT消息相互转换,其工作流程也围绕此功能展开。网桥在功能上分为三部分,分别为UDP后端模块、推送模块与MQTT订阅/发布模块,如图6所示。对于上行数据,若UDP后端模块中不同类型的LoRaWAN MAC帧回复ACK,表示终端设备接收到下行数据,通过进程间通信方式(此处为管道)送入推送模块对应的进程中,该进程随后将MAC帧通过MQTT模块发布;与之相反,对于下行数据,MQTT模块从网络服务器订阅对应主题,随后通过管道送入推送模块的进程中,交由UDP后端发送至网关。每种类型的MAC帧分别使用不同进程处理,可以避免堵塞;而同类型的MAC帧使用管道与推送进程通信,可以防止因前一帧数据尚未推送完成而导致当前帧丢失的情况。

图6 网桥工作流程

3.2.2 网络服务器工作流程

网络服务器的主要模块包括MQTT网关后端模块、LoRaWAN服务器及网关状态服务器。后端模块处理与网桥相关的事务,LoRaWAN服务器实现MAC层管理,网关状态服务器记录该网络服务器上注册的网关信息,包括网关状态信息、网关信号质量等。两组服务器均需与应用服务器交互,如图7所示。

图7 网络服务器工作流程

MQTT网关后端将来自网关的3种不同类型的MAC帧分别交付至对应进程中,同样使用管道作为进程间通信方式。上行数据处理进程又将接收到的MAC帧按照LoRaWAN协议规定的流程进行处理。首先,提取此次会话的上下文并校验,包括秘钥、帧计数器、消息完整码等。随后,对于入网与重入网请求,对应进程通过HTTPS协议将其传输至入网服务器,并将入网接受请求发布到网关,如果此次入网请求未通过,则网络服务器不作任何处理;对于应用层数据,除需上传至应用服务器外,还需要向终端设备回复ACK;对于专有类型数据,则直接将其上传至应用服务器,由其决定是否回复ACK。回复ACK进程需要校验此次传输是否有效,并将结果发送至应用服务器,如果出错则重传前一帧下行数据。网关状态处理进程在更新对应网关状态后,根据具体命令配置网关参数,并将网关状态告知应用服务器。

由于终端设备的消息以广播的形式发出,因此可能出现多个网关上传同一消息的情况,此时网络服务器需要根据信号质量选择最优网关与终端设备通信。所以,除完成基本的LoRaWAN MAC处理之外,网络服务器还应具有选择合适网关的功能。

3.2.3 应用服务器工作流程

应用服务器在LoRaWAN协议中未给出标准定义,本文根据网络服务器的对应接口,结合应用层的基本功能将其分为3个基础模块:上行数据处理模块、下行数据处理模块与应用程序接口(Application Programming Interface, API)服务器,如图8所示。

图8 应用服务器工作流程

上行数据处理模块包括应用数据、网关状态、ACK Error处理进程;下行数据处理模块负责将应用层的下行数据推送给网络服务器,经由其调度后下发至终端设备。两种数据处理模块均通过API服务器与用户交互,由于应用服务器的功能因应用类型不同差异较大,在此不给出各模块的具体处理过程。

3.2.4 入网服务器工作流程

除以上3个构件外,入网服务器也是LoRaWAN协议栈中的重要部分,但其工作流程较为单一,主要负责管理OTAA设备的入网过程,如图9所示。

图9 入网服务器工作流程

入网服务器在接收到来自网络服务器的设备入网请求后,首先校验设备标识与DevNonce(在同一设备标识下单调递增,防止入网请求重复)。

校验成功后,入网服务器根据预先存储的设备密钥生成网络会话秘钥、应用会话密钥以及JoinNonce(功能与DevNonce类似,在同一入网服务器标识下单调递增,防止入网接受重复),随后回复入网接受,交付对应秘钥至网络服务器和应用服务器;校验失败则丢弃该入网请求,不作任何处理。

4 结 语

本文对低功耗广域网中广泛使用的LoRaWAN协议族进行了详细分析,总结了LoRaWAN协议栈的核心结构与各层接口,并讨论了层间接口的实现方式;增加了网桥作为LoRaWAN协议栈中网关和网络服务器的中间件,以此来提高网络服务器的性能,减小不同实现方式的网关对后者的影响;最后,根据LoRaWAN协议族给出了网桥、网络服务器、应用服务器、入网服务器的工作流程。

本文工作已在作者设计的基于物联网的独居老人监护系统中应用,并于阿里云服务器上部署运行,为用户提供紧急求助、健康监测等服务。本文弥补了LoRaWAN协议栈系统架构方面研究的不足,有利于LoRaWAN协议的部署和推广,同时也为后续类似工作提供了参考。

 

本文档为【LoRaWAN协议栈系统架构分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
资教之佳
暂无简介~
格式:doc
大小:26KB
软件:Word
页数:11
分类:互联网
上传时间:2023-11-27
浏览量:2