《LoRaWAN网络服务器演示:概要描述(R1.0)》部分翻译
根据的是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)》部分翻译相关推荐
- lorawan服务器通信协议,LoRaWAN网络架构和解决方案介绍
一个LoRaWAN典型的网络架构中包含了终端.基站.NS(网络服务器).应用服务器这四个部分.基站和终端之间采用星型网络拓扑,由于LoRa的长距离特性,它们之间得以使用单跳传输.基站则对NS和终端之间 ...
- Linux下各类TCP网络服务器的实现源代码
http://www.linuxeden.com/forum/t146870.html 大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务.这里附上源代码来个小结 ...
- Linux下两种TCP网络服务器实现方式:循环服务并发服务
转载声明:this article is writen by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com) 以上博客已失效,所以 ...
- Linux下各类TCP网络服务器的实现源代码 转
大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务.这里附上源代码来个小结吧. 首先,循环网络服务器编程实现的步骤是这样的: 这种服务器模型是典型循环服务,如果不 ...
- 网络服务器开发总结(转:http://my.oschina.net/u/181613/blog/596022)
一.概述 经过多年网络服务器开发实战,于此总结实践体会.本文涉及到异步连接.异步域名解析.热更新.过载保护.网络模型与架构及协程等,但不会涉及accept4.epoll等基本知识点. 二.可写事件 相 ...
- 智能家居 (7) ——网络服务器线程控制
目录 网络线程控制代码 inputCommand.h mainPro.c socketControl.c 代码测试 往期文章 网络线程控制代码 inputCommand.h #include < ...
- python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端
全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用SocketServer实现网络服务器 SocketServer简化了网络服务器的编写.在进行socket创建时,使用Sock ...
- 服务器的管理IIS 6.0
IIS 6.0 和 Windows Server 2003在网络应用服务器的管理.可用性.可靠性.安全性.性能与可扩展性方面提供了许多新的功能.IIS 6.0同样增强了网络应用的开发与国际性支持.II ...
- 网络服务器是指带有大容量硬盘的计算机,中国人民大学网络教育201812统考计算机模拟题...
一.单选题 1.在______,世界上诞生了第一台电子数字计算机. A.1956年 B.1960年 C.1962年 D.1946年 答案:D 2.根据以______的标准,计算机可分为通用计算机.专用 ...
- 基础的网络服务器开发
基础的网络服务器开发 需求分析 项目实现 网络通信与Socket Socket 编程详解 套接字概念 Socket编程基础 网络字节序 sockaddr数据结构 IP地址转换函数 Socket编程函数 ...
最新文章
- 如何格式化电脑_U盘提示格式化后如何恢复数据
- Linux - 网络相关指令
- oracle数据库计数器,DM 达梦数据库 表的 行计数器(COUNTER)属性
- C语言程序设计 | 结构体内存对齐,位段
- 新建文本文档好玩的代码_(03)用什么工具写ASP源代码?
- 算法训练营 重编码_编码训练营后十四天如何找到工作
- 符号扩展和无符号扩展
- html中的各种协议,html 中使用 wtai 协议
- 2018.8.2 python中is和==的区别
- matlab 随机函数的使用
- php如何把图片铺满,PHP如何裁剪图片成固定大小
- 类似GoogleMap地图网站的简单实现(1)
- magento xml配置详解(2)
- Windows Server AppFabric与WCF
- 计算机屏幕位置高低,电脑显示器的最佳位置
- nginx:代理服务器(涉及upstream)的例子
- VB.net中字符串转16进制,string转byte,串口发送文本直接转16进制数据
- 个税起征点上调,你每月能省多少?最后还有点凉水
- 非正式纳新题解(C语言)
- 2017-4-14校内训练
热门文章
- (译)《科学美国人》:多样的人际网络导致繁荣的本地经济
- 温敏壳聚糖水凝胶细胞因子复合支架/季铵盐壳聚糖水凝胶三维支架复合GNDF载间充质干细胞的制备
- 【三】rabbitmq消费者ACK机制message acknowledgment
- 彩钢板进行BS 476-3屋顶外露部分防火测试
- hosts文件的作用说明
- 做了3年单片机工程师,如果工资还是3-5千,那你就看过来
- 什么是 GC,有什么作用?
- hp服务器系统降级,HP 服务器firmware 升级方法.pdf
- 实时翻译软件-大家都在用的实时免费翻译软件
- 计算机无法进去系统,开机进入bios无法进入系统怎么办_电脑开机就进入bios的解决方法...