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. Fragment的常用写法

    一般通过add.show.hide相结合的方法来控制Fragment的显示和隐藏,这样不会再重写一遍Fragment的生命周期,节省了时间和内存,当然特殊需求除外. package com.examp ...

  2. Shiro后台实现验证权限

    今天发现一个问题:使用shiro的时候,虽然隐藏掉了一些菜单,但是当我们通过get请求直接访问菜单的时候还是会访问到,也就是shiro可以在界面实现隐藏一些信息,但是没有真正的根据权限码验证请求,于是 ...

  3. Docker安装ActiveMQ

    ⒈下载 docker pull webcenter/activemq ⒉运行 docker run -d --name myactivemq -p 8161:8161 -p 61613:61613 - ...

  4. pyspider使用

    #!/usr/bin/env python # -*- encoding: utf-8 -*- # Created on 2018-11-08 22:33:55 # Project: qsbk fro ...

  5. oracle查询重复数据方法

    SQL重复记录查询方法 2008年08月14日 星期四 21:01 SQL重复记录查询 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peop ...

  6. .NET CORE 1.1 迁移到.NET 2.0正式版

    以下操作参考官方文档 1:首先你需要升级到最新版的VS 2017 15.3 升级的地方在VS右上角有个黄色的更新提醒,如果没有请挂VPN或者重新下载一个新的. 2:第二步 和之前改.NET Frame ...

  7. centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解

    centos7.2环境nginx+mysql+php-fpm+svn配置walle自动化部署系统详解 操作系统:centos 7.2 x86_64 安装walle系统服务端 1.以下安装,均在宿主机( ...

  8. discuz安装:mysqli_connect()不支持advice_mysqli_connect

    原文:http://blog.csdn.net/changzhi1990/article/details/40983247 php -m 输出: PHP Warning: PHP Startup: U ...

  9. Python-浮动 清浮动

    # 浮动布局 ## 一.display总结 ```css/* inline *//*1.同行显示, 就相当于纯文本, 当一行显示不下, 如就是一个字显示不下,那么显示不下的那一个字就会自动换行,和纯文 ...

  10. PYTHON-流程控制之if/while/for

    内容: 流程控制: 1. if 2. while 3. for ==================================流程控制之if判断 1 什么是if判断 判断一个条件如果成立则做.. ...