LoRaWAN协议(三)–Server端数据协议

LoRaWAN Server 端架构

LoRaWAN 的server包括 NS(Network server)、AS(application server)、CS(Custom server)....

其中NS和AS是必不可少的,是完成LoRaWAN协议的重要组成部分

NS 职责

NS是直接与GW通信的服务器,也是AS和GW之间的桥梁

我所知道的工作有如下几点:

  1. 验证数据的合法性(校验MIC)
  2. 从GW的信息中提取数据,整理成NS 的JSON数据包
  3. 将校验合法的数据打包成新的JSON包上传至AS
  4. OTAA入网时向AS发送请求入网消息,然后再将入网信息告诉AS,当获取AS传来的入网的信息,告诉GW
  5. GW 和 AS之间的数据通道

有几点需要注意的是NS端的数据不进行AES解密工作。

AS 职责

AS是server端的数据处理中心

它的工作有如下几点:

  1. 上行数据的解密
  2. 下行数据的加密
  3. OTAA入网请求的处理(同意入网/生成APPSKEY/NWKSKEY)

CS 职责

CS负责将AS给的数据处理成用户自定义的数据协议格式,也就是说,CS端必须是用户来完成的,因为上面运行的是用户的协议。这里也就不再多说了。

抓包分析

以下是我在本地服务器端通过抓到得来的数据,我们通过分析数据包来理解数据的走向已及现有的server端处理流程。抓包使用的是tcpdump。

1.NS->AS数据
这是一帧从NS->AS的数据,使用的是TCP方式,AS的数据端口为4000。从data部分我们可以看出来,这是一个未解密的数据。


提取其中的数据部分为:


再把app.userdata.payload 做base64解码之后,得到的payload内容是这个:


此时看到的payload因为是加密的,所以完全看不出来数据内容是什么。

不过在这里,我们可以看到,NS已经将GW上传的数据做了一定的解析,封装成了另外一种JSON格式,由此,我们不难得出,NS做的工作包括--base64解码/MIC校验/GW数据包的重新组包

2.AS->CS数据
这是一帧从AS->CS的数据,使用的是TCP方式,CS的数据端口为5000。从data部分我们可以看出来,这是一个已经解密完成的数据了。


提取其中的数据部分为:


再把app.userdata.payload 做base64解码之后,得到的payload内容是这个:


而此时,数据已经完全解密了,可以看到数据就是在AS解密的,解密完再发送给CS,CS再做进一步用户协议的处理。

在这里,我们可以看到,AS已经将NS传输过来的JSON包的payload部分做了解密,然后再传给了CS。所以解密工作是在AS完成的。

邮箱地址:454626653@qq.com 欢迎咨询搭讪
说明:LPWA物联网应用站(LPWAP.com)通过公开互联网收集、整理并转载有关LPWA物联网应用解决方案,以供广大LPWA应用开发者和爱好者共同学习交流和参考运用到实际生产生活中。本站所有转载的文章、图片、音频、视频等资料的版权归版权所有人所有并衷心感谢您的付出,由于本站采纳的非本站原创文章及图片等内容无法一一联系确认版权者,如果本网所选内容的文章原创作者认为其作品不宜放在本站,请及时通过以下留言功能通知我们采取适当措施,避免给双方造成不必要的经济损失。如果您希望保留文章在本站,但希望文章末尾提供对作者的致谢或者产品、网站交换链接的,也请将需求写入以下留言栏中,谢谢您的支持。让我们共同努力,打造万物互联的未来美好生活!

您的留言或需求: