LoRaWAN 1.1 网络协议规范

LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来。

如果觉得哪里有问题,欢迎留言斧正。

翻译不易,转载请申明出处和链接。


1 引言

本文档阐述了LoRaWAN网络协议,它是针对电池供电的终端设备(不论移动还是固定位置)进行了优化的。

LoRaWAN网络通常采用星形拓扑结构,其中网关1(gateways)用于转发终端设备2(end-devices)和中心网络服务器(network server)之间的消息,网络服务器把来自终端设备的数据转发至相应的应用服务器(Application Server)。为了确保无线传输,LoRaWAN协议采用了对称加密,这种加密使用由设备主密钥派生出的会话密钥。设备主密钥的存贮和相关密钥的推导由后台的入网服务器(Join Server)来保证的。

本文档把网络服务器,应用服务器和入网服务器它们视为位于同一处,通过各自不同的网络节点访问这些网络服务并不在本文档的说明范围内,但是这需要后台服务器来实现。

网关通过标准的安全的IP连接接入网络服务器,而终端设备则是通过单跳的LoRa调制或者FSK来和一个或多个网关通讯3。尽管主要的传输方式都是都是由终端设备传输给网络服务器,但是所有的传输一般都是双向的。

终端设备和网关之间的通讯被分散到不同的信道(frequency channels)数据速率(data rates) 上.数据速率的选择需要在通讯距离、消息时长两者中权衡,以此达到不同数据速率之间的通讯互不干扰,LoRa的数据速率范围可以从0.3kbps到50kbps。为了最大程度的延长终端设备的电池寿命和扩大网络容量,LoRa网络使用自适应速率(adaptive data rate)机制来单独管理每一个终端设备的数据速率和RF输出。

只要遵守一下规定,终端设备可以在任意的时间,以任意的数据速率,使用任意的信道来进行传输:

  • 终端设备的每次传输都使用伪随机方式来改变信道。这样导致的频率多变性使得系统具有更强的抗干扰能力。

  • 终端设备要遵守占用子频段和当地无线电规定的最大发射占空比要求。

  • 终端设备要遵守占用子频段以及当地无线电规定的最大发射时长(空中停留时间)要求。

    备注: 占用子频段的最大发射占空比和最大发送时长以不同区域特性的定义在[LoRaWAN区域特性参数文档]

1.1 LoRaWAN 类别(Classes)

所有的LoRaWAN设备必须至少实现本文档描述的Class A的功能。此外也可以实现本文档中描述的Class B或Class C以及后续规定的可选功能。但是在任何情况下,LoRaWAN设备都必须兼容Class A。

1.2 约定

关键字必须(MUST)、不能(MUST NOT)、要求(REQUIRED)、应该(SHALL)、不应该(SHALL NOT)、可能(SHOULD)、不可能(SHOULD NOT)、推荐(RECOMMENDED)、可以(MAY)、可选的(OPTIONAL)在本文档将按照RFC 2119的规定来解释。

MAC指令的格式为LinkCheckReq(粗斜体),位和位域的格式为FRMPayload(粗体) ,常量的格式为RECEIVE_DELAY1(大写偏大),变量的格式为N(斜体)

在本文档中,

  • 所有多字节段的字节序均采用小端模式
  • EUI是8字节段,采用小端模式传输
  • 默认情况下,RFU保留位都设为0并且接收端应该忽略。

1网关也被称为集中器或基站。

2终端设备也被称为节点。

3本文档没有对中间元素(中继器)进行描述,但是对于因封装开销的有效负载却体现在本文档。中继器要求使用LoRaWAN作为回程机制。

LoRaWAN 1.1 网络协议规范 - 1 引言的更多相关文章

  1. LoRaWAN 1.1 网络协议规范 - 5 MAC指令

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  2. LoRaWAN 1.1 网络协议规范 - 4 MAC 帧格式 Part II

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  3. LoRaWAN 1.1 网络协议规范 - 4 MAC帧格式 Part I

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  4. LoRaWAN 1.1 网络协议规范 - 3 物理层帧格式

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  5. LoRaWAN 1.1 网络协议规范 - 2 LoRaWAN选项介绍

    LoRaWAN 1.1 网络协议规范 LoRaWAN 1.1 版本封稿很久了也没有完整啃过一遍,最近边啃边翻译,趁着这个机会把它码下来. 如果觉得哪里有问题,欢迎留言斧正. 翻译不易,转载请申明出处和 ...

  6. 黑客编程教程(三)Windows 网络协议

    首先介绍一下网络协议:网络协议是网络上所有设备之间通信规则的集合,他定义了通信时信息必须采用的格式和这些格式的意义.大多数 网络协议都采用分层体系结,每一层都建立在他的下层之上,向他的上一层提供服务, ...

  7. Windows Embedded Compact 7网络编程概述(下)

    11.1.1 Select I/O模型 在Windows CE中,Select模型是唯一被支持的I/O模型.Select I/O模型就是利用select函数对I/O进行管理. 函数select的功能在 ...

  8. 应用LORAWAN技术的好处是什么

    LoRaWAN现在一种非常流行的LPWA通信标准,在ISM(工业.科学.医疗)频段使用未经许可的无线电频谱,频率约为900MHz到430MHz(世界各地的标准各不相同). 物联网连接环境除了智能家庭联 ...

  9. 物联网常见通信协议RFID、NFC、Bluetooth、ZigBee等梳理

    1  概述 在上一篇文章<物联网常见通信协议与通讯协议梳理[上]-通讯协议>中,对物联网常用通信协议和通讯协议作了区分,并对通讯协议进行了分享:本文将对常用的通信协议进行剖析,重点面向市场 ...

随机推荐

  1. mysql 案例 ~ 分析执行完的大事务

    一 简介:今天咱们来聊聊如何定位以及执行完的大事务 二 目的:通过分析binlog脚本来定位执行的大事务 三 分析脚本 mysqlbinlog --base64-output=decode-rows ...

  2. Android Studio导入系统 jar包,编译时优先于查找系统SDK

    https://www.cnblogs.com/bluestorm/p/6744140.html

  3. Http协议的理解

    作者技术有限,这篇博文都是结合网上的文章和自己的理解而写的,若存在错误,请无私指出,十分感谢! 协议,就是一种标准,即大家都要遵守的标准. 举个简单的例子:在中国,几乎人人都会讲普通话,不同地区的人有 ...

  4. python模块分析之typing(三)

    前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种 ...

  5. 嵌入式系统C编程之堆栈回溯

    前言 在嵌入式系统C语言开发调试过程中,常会遇到各类异常情况.一般可按需添加打印信息,以便观察程序执行流或变量值是否异常.然而,打印操作会占用CPU时间,而且代码中添加过多打印信息时会显得很凌乱.此外 ...

  6. 网络常用的linux系统调用

    网络之常用的Linux系统调用 下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别. 一.进程控制 fo ...

  7. sqlserver 备份 与 还原

    背景 真是够懒得,一看这个内容,如此简单.当时的想法就是网上教程一堆,全记下来有啥意思,只是记录了要点.不过写到这里,也就写个别的吧.sqlserver与Oracle比起来,我感觉有个重要差距就是存储 ...

  8. javaScript——原型继承四步曲

    <script> //js模拟类的创建以及继承 //第一步:创建父类 function Parent(name){ this.name = name; } //给父类添加属性方法 Pare ...

  9. vue 安装教程(自己安装过程及遇到的一些坑)

    1.安装node.js(http://www.runoob.com/nodejs/nodejs-install-setup.html) 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd ...

  10. Jquery----对文档操作

    jquery对css操作: 1.CSS .css() - .css("color") -> 获取color css值 - .css("color", &q ...