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 原理 ~ change buffer

    一 简介:今天咱们来聊聊mysql的change buffer二 详细说明   1 +-change Buffer和数据页一样,也是物理页的一个组成部分,数据结构也是一颗B+树,这棵B+树放在共享表空 ...

  2. Freemarker list 的简单使用

    freemarker list (长度,遍历,下标,嵌套,排序) 1. freemarker获取list的size : Java ArrayList<String> list = new ...

  3. python 历险记(四)— python 中常用的 json 操作

    目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编码和解码? 常用的 json 操作有哪些? json 操作需要什么库? 如何 ...

  4. MySQL5.7更改用户名密码

    更改用户名密码,官方推荐使用alter ALTER USER test@'%' IDENTIFIED BY '; 还有一种 update mysql.user set authentication_s ...

  5. saltstack自动化运维系列⑩SaltStack二次开发初探

    saltstack自动化运维系列⑩SaltStack二次开发初探 1.当salt运行在公网或者网络环境较差的条件下,需要配置timeout时间vim /etc/salt/master timeout: ...

  6. zabbix3.0.4-agent通过shell脚本获取mysql数据库登陆用户

    zabbix3.0.4获取数据库登陆用户趋势详解 主要思路: 通过zabbix客户端shell脚本mysql命令取出用户表中的数据将结果反馈给zabbix,画出趋势图 1.修改zabbix-agent ...

  7. Redis的Multi的内幕真相

    今天遇到个Redis奇慢的问题,断点分析发现跟multi有关. 由于本人太忙不想去阅读Redis Server的源代码(其实是懒),就通过TCPDump来分析吧. 步骤: 1. 先在Redis Ser ...

  8. C++11 AUTO 类型实践

    auto在C++11中引入,为大家带来方便. 具体使用及注意事项参考: https://blog.csdn.net/xiaoquantouer/article/details/51647865 htt ...

  9. vuejs之v-if-ajax异步请求数据遇到的坑

    场景: params是异步请求获得的数据是一个对象,对象中又有chefHealthInfos数组 渲染时候会报错: 分析: 这是因为可以把v-if看成渲染了两次,两次结果params分别为{},{ch ...

  10. Luogu P2426 【删数】

    状态定义: 一眼区间$DP$,从左右两边删不好定义状态,不如定义$dp[i][j]$表示$[i,j]$未删的最大值,转移就很自然了 转移: 从左边删$dp[i][j]=max(dp[i][j],dp[ ...