根据的是Semtech公司2015年6月发布的1.0版本

yq原创翻译。转载请注明来自万联社区

============================================

LoRaWAN网络服务器演示:概要描述

1.       历史

2.       介绍

本文描述了LoRa服务器的常规操作和接口(包括网络控制器)。

LoRa网络服务器(NS)、应用服务器(AS)和网络控制器(NC)已授权为Semtech LoRa物联网参考网络软件方案的一部分。

LoRa客户服务器(CS)以同样方式授权。CS简单地从AS接收数据,然后存入关系型数据库或者文本文档。在任何运营的LoRa系统中, CS有可能很大程度地、甚至完全地被去掉。

2.1   主要功能

终端(Mote):

终端是LoRa网络的终端设备。每个终端和一个到多个LoRa网关通讯。通讯协议遵循LoRa联盟指定的LoRaWAN规格书,例外情况在本文第六章中说明。通讯可以是双向或单向(从节点到网关)的。

终端加入网络通过下列三种机制之一:

个体化:         终端必须在网络服务器和应用服务器下都配置好。

自动创建:     如果允许自动创建,任何使用默认认证秘钥的终端将允许加入网络,并将使用配置好的默认秘钥。

空中激活(OTA):         终端必须要在应用服务器中配置,包括终端EUI、从属的应用的EUI、终端唯一的固定的AppKey。当终端使用OTA加入协议时,网络服务器(NS)将为其分配网络地址。应用服务器(AS)为终端和自己生成认证会话秘钥,并将认证回话秘钥转发给NS。

网关:

每个LoRa网关都在[1]终端和单一LoRa网络服务器之间传输数据。传输协议在《LoRaWAN规格书》中中定义。

网络服务器(NS)

LoRa网络服务器维护每个终端的记录。包括下列信息:

DeviceEUI 终端EUI

APP EUI 终端属于的应用的EUI

Network ID 分配给终端的LoRa网络地址

SEQ_SEND 终端预计发出的下一个LoRa帧的序号

SEQ_REC 传输到终端的下一LoRa帧的序号

AUTH_SESSION_KEY 分配给终端的认证会话秘钥

网络服务器认证收到的帧,并转发用户数据给一个应用服务器。收到的帧从网关发到NS,形式为JSON、GWMP、UDP、IP(【2】中定义)。转发到AS的帧形式为JSON、TCP、IP(【3】中定义)。

网络服务器在所有发给LoRa终端的帧中添加一个加密哈希值。哈希算法在【1】中定义。

一个网络服务器可以和多个应用服务器和网络控制器连接。给定终端使用哪个远端服务器或者控制器,由终端所属的应用决定。

应用服务器(AS)

LoRa应用服务器负责接入OTA终端到网络中,并且加密发送给终端的用户数据,解密收到终端的用户数据。

一个应用服务器可能和多个网络服务器、客户服务器连接。给定终端使用哪个远端服务器或控制器,有终端所属的应用决定。

LoRa应用服务器为每个终端维护记录。记录包括下列信息:

终端EUI

终端所属的应用的EUI

分配给终端的加密会话秘钥

LoRa应用服务器解密收到的用户数据,并转发给一个客户服务器。它也在发送用户数据到NS前加密该数据。加密算法在《LoRaWAN规格书》中定义。

网络控制器(NC)

网络控制器手接收用于终端的传输参数,以及网关收到的每一帧信号的特性。网关可以使用该数据进行操作。Semtech提供的NC可能设置为控制终端数据率(ADR),目前没有执行其他操作。

一个网络控制器可以被多个网络服务器连接。给定终端使用哪个远端服务器或控制器,有终端所属的应用决定。

客户服务器(CS)

客户服务器是数据所有者使用的程序的一个非重要的实现,用于接收终端数据。实际上,用户可能实际去掉客户服务器,而把数据以需要的格式传给他自己的服务器。

提供的客户服务器可设置为将接收的信息存储到关系型数据库中,或者加到ASCII文件后,或者两者都做。

一个客户服务器可以连接多个应用服务器,给定终端使用哪个远端服务器或控制器,有终端所属的应用决定。

网关和NS间的通讯通过JSON、GWMP、UDP、IP(【2】中定义)

LoRa命令行的通讯使用JSON、UP、IP(【3】中定义)

任何一对LoRa服务器间的通讯(包括NC)通过JSON、TCP、IP(【3】中定义)

网络服务器维护两个UDP端口。默认情况下,它从UDP端口1700接收JSON、GWMP、UDP、IP信息。它总是在比接收JSON/GWMP/UDP/IP的端口号大1的端口号上接收JSON/UDP/IP和JSON/TCP/IP消息。也就是说默认此端口号是1701。

GWMP:LoRa Gateway Message Protocol (LoRa网关消息协议)

3.1.1 LoRa网关消息协议GWMP概述

该协议层定义于【2】。

上行方向,网关发送PUSH_DATA消息,消息包括一个单层JSON对象。

服务器收到后立刻向源端口返回PUSH_ACK消息。

网关定期发送PULL_DATA消息。目的端口一直是NS端的GWMP端口(默认1700)。该消息用于使IP防火墙保持开启。

服务器收到后立刻返回PULL_ACK消息。

服务器需要命令网关向终端发送帧时,将发送一个PULL_RESP消息。消息包括一个JSON单层对象。目标UDP端口是最近收到的PULL_DATA消息端口。

3.1.2 JSON字符串

JSON数据交换格式定义于【4】,用于服务器的JSON对象定义于【2】和【3】。

LoRa的JSON顶层对象以ASCII字符串的方式编码。

4.向网络中增加终端

这部分在前面的帖子中有描述。


1. loRa联盟,《LoRaWAN规格书》 2015

2.Semtech公司,《LoRaWAN网络服务器演示:网关到服务器接口定义》 2015

3.Semtech公司,《LoRaWAN网络服务器演示:服务器间接口定义》 2015

4.ECMA国际,《JSON数据交换格式》 2013

5.IETF,“Base16, base32, base64数据编码” 2006年10月

《LoRaWAN网络服务器演示:概要描述(R1.0)》部分翻译相关推荐

  1. lorawan服务器通信协议,LoRaWAN网络架构和解决方案介绍

    一个LoRaWAN典型的网络架构中包含了终端.基站.NS(网络服务器).应用服务器这四个部分.基站和终端之间采用星型网络拓扑,由于LoRa的长距离特性,它们之间得以使用单跳传输.基站则对NS和终端之间 ...

  2. Linux下各类TCP网络服务器的实现源代码

    http://www.linuxeden.com/forum/t146870.html 大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务.这里附上源代码来个小结 ...

  3. Linux下两种TCP网络服务器实现方式:循环服务并发服务

    转载声明:this article is writen by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com) 以上博客已失效,所以 ...

  4. Linux下各类TCP网络服务器的实现源代码 转

    大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务.这里附上源代码来个小结吧. 首先,循环网络服务器编程实现的步骤是这样的: 这种服务器模型是典型循环服务,如果不 ...

  5. 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)

    一.概述 经过多年网络服务器开发实战,于此总结实践体会.本文涉及到异步连接.异步域名解析.热更新.过载保护.网络模型与架构及协程等,但不会涉及accept4.epoll等基本知识点. 二.可写事件 相 ...

  6. 智能家居 (7) ——网络服务器线程控制

    目录 网络线程控制代码 inputCommand.h mainPro.c socketControl.c 代码测试 往期文章 网络线程控制代码 inputCommand.h #include < ...

  7. python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用SocketServer实现网络服务器 SocketServer简化了网络服务器的编写.在进行socket创建时,使用Sock ...

  8. 服务器的管理IIS 6.0

    IIS 6.0 和 Windows Server 2003在网络应用服务器的管理.可用性.可靠性.安全性.性能与可扩展性方面提供了许多新的功能.IIS 6.0同样增强了网络应用的开发与国际性支持.II ...

  9. 网络服务器是指带有大容量硬盘的计算机,中国人民大学网络教育201812统考计算机模拟题...

    一.单选题 1.在______,世界上诞生了第一台电子数字计算机. A.1956年 B.1960年 C.1962年 D.1946年 答案:D 2.根据以______的标准,计算机可分为通用计算机.专用 ...

  10. 基础的网络服务器开发

    基础的网络服务器开发 需求分析 项目实现 网络通信与Socket Socket 编程详解 套接字概念 Socket编程基础 网络字节序 sockaddr数据结构 IP地址转换函数 Socket编程函数 ...

最新文章

  1. 如何格式化电脑_U盘提示格式化后如何恢复数据
  2. Linux - 网络相关指令
  3. oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性
  4. C语言程序设计 | 结构体内存对齐,位段
  5. 新建文本文档好玩的代码_(03)用什么工具写ASP源代码?
  6. 算法训练营 重编码_编码训练营后十四天如何找到工作
  7. 符号扩展和无符号扩展
  8. html中的各种协议,html 中使用 wtai 协议
  9. 2018.8.2 python中is和==的区别
  10. matlab 随机函数的使用
  11. php如何把图片铺满,PHP如何裁剪图片成固定大小
  12. 类似GoogleMap地图网站的简单实现(1)
  13. magento xml配置详解(2)
  14. Windows Server AppFabric与WCF
  15. 计算机屏幕位置高低,电脑显示器的最佳位置
  16. nginx:代理服务器(涉及upstream)的例子
  17. VB.net中字符串转16进制,string转byte,串口发送文本直接转16进制数据
  18. 个税起征点上调,你每月能省多少?最后还有点凉水
  19. 非正式纳新题解(C语言)
  20. 2017-4-14校内训练

热门文章

  1. (译)《科学美国人》:多样的人际网络导致繁荣的本地经济
  2. 温敏壳聚糖水凝胶细胞因子复合支架/季铵盐壳聚糖水凝胶三维支架复合GNDF载间充质干细胞的制备
  3. 【三】rabbitmq消费者ACK机制message acknowledgment
  4. 彩钢板进行BS 476-3屋顶外露部分防火测试
  5. hosts文件的作用说明
  6. 做了3年单片机工程师,如果工资还是3-5千,那你就看过来
  7. 什么是 GC,有什么作用?
  8. hp服务器系统降级,HP 服务器firmware 升级方法.pdf
  9. 实时翻译软件-大家都在用的实时免费翻译软件
  10. 计算机无法进去系统,开机进入bios无法进入系统怎么办_电脑开机就进入bios的解决方法...