LoRaWAN介绍16 Server分类
“软件构建的核心就是管理复杂度”–SteveMcConnell《代码大全》
在《LoRaWAN介绍2 架构》中提到:LoRaWAN的重点和难点–LoRaWAN Server!http://blog.csdn.net/jiangjunjie_2005/article/details/54134636
“分而治之”是人们降低复杂度的有效方法,LoRaWAN Server很娴熟地运用了该技巧,它将Server分成4种角色。
1 服务器框架
阅读《InterconnectingSmart Objects with IP》会发现,该书籍的作者极力推荐使用IPv6将智能设备互联,构建一个物联网。
目前,更可行的物联网方案是:将智能设备连接到Internet。这样,基于已有的互联网,无论是经济上,还是技术上,都性价比更高。另外,大部分智能设备的计算能力和电能都不适合IPv6的协议栈运行。
看到下面LoRaWAN的架构,它是基于Internet建设物联网,Gateway是IP设备(运行IP协议栈),而End Node运行的是LoRaMac-node(没有运行IP协议栈)。
LoRaWAN Server共有4种角色,包括:NS(Network Server,网络服务器)、AS(Application Server,应用服务器)、NC(Network Controller,网络控制服务器)和CS(Customer Server,客户服务器)。
2 各角色功能
4种Server的功能如下表所示。
Server |
功能 |
下游设备 |
上游设备 |
NS |
连接网关,收发RF数据包 |
Gateway |
AS和NC |
AS |
加密和解密应用数据 |
NS |
CS |
NC |
控制网关和终端的RF参数 |
NS |
Console |
CS |
存储终端上传和用户下发数据 |
AS |
/ |
2.1 NS(Network Server,网络服务器)
1个NS可以连接1个或多个Gateway,它们之间的接口协议为JSON / GWMP / UDP / IP。同样,NS可以连接1个或多个AS和NC,它们之间的接口协议为JSON / TCP / IP。
NS负责RF数据包的完整性校验:
上行:End NodeàGatewayàNS,它将检验RF数据包的MIC是否正确;
下行:NSàGatewayàEnd Node,它将给RF数据包计算并封装MIC。
为此,NS需要记录每一个End Node的如下信息:
属性 |
位宽 |
功能 |
DevEUI |
64 |
该End Node全局唯一标识码 |
AppEUI |
64 |
该End Node分配的应用标识码 |
DevAddr |
32 |
该End Node的网络地址 |
NwkSKey |
128 |
检验该End Node上行和下行RF数据包的完整性 |
SeqSend |
16 |
该End Node下一个上行RF数据包的序列号 |
SeqRecv |
16 |
该End Node下一个下行RF数据包的序列号 |
2.2 AS(Application Server,应用服务器)
1个AS可以连接1个或多个NS和CS,它们之间的协议为JSON / TCP / IP。
AS负责RF数据包的应用数据加密和解密:
上行:End NodeàGatewayàNSàAS,它将解密应用数据并提交给CS;
下行:ASàNSàGatewayàEnd Node,它将CS转交的应用数据加密。
为此,NS需要记录每一个End Node的如下信息:
属性 |
位宽 |
功能 |
DevEUI |
64 |
该End Node全局唯一标识码 |
AppEUI |
64 |
该End Node分配的应用标识码 |
AppSKey |
128 |
解密该End Node的上行数据;加密下行数据给该End Node |
2.3 NC(Network Controller,网络控制服务器)
1个NC可以连接1个或多个NS,它们之间的协议为JSON / TCP / IP。
NC负责控制RF参数,目前,End Node的通信速率(ADR)由它控制。(后续扩展可能包括:End Node的发射功率、移动Node的漫游和选择最佳Gateway通信等)。
2.4 CS(Customer Server,客户服务器)
1个CS可以连接1个或多个AS,它们之间的协议为JSON / TCP / IP。
CS是用户自定义的服务器,除了接口协议外,它具备高度的灵活性:灵活的数据存储(如:使用关系性数据库或简单文件),灵活的数据加工(如:基于数据挖掘或简单显示)。
3 通信接口
4种服务器角色和Gateway,以及Command console的层次关系如下图所示。
它们之间的通信协议规律如下:
NS和Gateways通过JSON / GWMP / UDP / IP;
Command console和4种服务器通过JSON / UDP / IP;
4种服务器之间通过JSON / TCP / IP。
您的留言或需求: