LoRaWAN介绍8 QoS

LoRaWAN介绍8 QoS

“美好的东西在质不在量。”--伊索

 

QoS(Quality of Service,服务质量)是一个网络的重要指标。

SX1301基带芯片的多通道和多速率特性,提供了较高带宽;LoRa扩频调制,提供了长距离和较佳的抗干扰特性,这些是硬件提供的基础。

QoS的其他方面:网络管理、自适应速率、可靠通信、快速下发和丢帧检测等,由LoRaWAN协议实现。


1 网络管理

实现一个网络的QoS,必须提供管理功能。LoRaWAN制定了一组MAC命令,专门为Server和End Nodes提供管理元数据的交换。

如下表所示,大部分的MAC命令用于控制LoRa无线通信的参数:通信速率、发射功率、通信信道、信号强度、duty-cycle和dwell-time等。

也提供了用于了解Server和End Node双方状态的命令:Server提供End Node当前信号强度;End Node提供自身电池电量和链路余地。

LinkADRReq命令有一个参数:NbTrans,它能提供“非确认信息”的有效通信质量。“非确认信息”,即End Nodes发送的信息,不需要Server回复ACK,以简化实现和节省电能。然而,在一些特殊的环境(如:干扰较严重或信号微弱)下,希望End Nodes将同一个信息,重复发送给Server,以提高成功率,NbTrans就用于设置重复发送的次数。

Orage公司推荐,End Nodes设置NbTrans=3。 

LoRaWAN介绍8 QoS_第1张图片

2 自适应速率

在文章《LoRaWAN介绍3 优点》中谈到,ADR(自适应速率)是一个优点:

http://blog.csdn.net/jiangjunjie_2005/article/details/54140236

LoRaWAN协议推荐,End Nodes应该尽可能地实现ADR算法,以便于增加电池寿命和最大化网络容量。

站在End Nodes的角度,它比较担心:实现ADR算法后,通信速率是提高了,那通信距离还能保证吗?换句话说,Server能否接收到UPLINK数据帧。

为了消除上述疑虑,End Nodes需要定期检测,即通过接收DOWNLINK数据帧,来测试网络正常。

检测算法如下逻辑所示,看上去比较复杂,核心原理就一条:如果收到DOWNLINK数据帧,一切OK;否则,请求Server下发DOWNLINK,一旦超时,降低速率重试;直到速率等于MIN值或接收DOWNLINK为止。

LoRaWAN介绍8 QoS_第2张图片
3 可靠通信

通信协议提供的可靠性是基于ACK机制,LoRaWAN也不例外。如果通信的数据帧要求可靠地交付给对方,那就需要对方回复ACK。

UPLINK的Confirmed帧

如下图所示,End Node发送Confirmed帧Data0,没有收到ACK;它重复发送了Data0帧,直到接收到ACK,它再继续发送Data1帧。

LoRaWAN介绍8 QoS_第3张图片


DOWNLINK的Confirmed帧

如下图所示,Gateway发送Confirmed帧,End Node回复ACK帧。

为了简化设计,End Node既可以立即回复ACK帧,也可以将ACK携带在下一次UPLINK帧中。

LoRaWAN介绍8 QoS_第4张图片

4 快速下发

LoRaWAN的主体是Class A,它的缺点是延时大,即Server要下发DOWNLINK数据帧,必须等待End Node下一次UPLINK。为了实现快速下发,协议中有一个标志位:FPending,它用于告诉End Node,请尽快通信。

Confirmed+FPending

如下所示,这是一种高效的通信,End Node不但回复了Data0的ACK帧,还能快速接收下一帧Data1。

LoRaWAN介绍8 QoS_第5张图片


Unconfirmed+FPending

在这种通信中,End Node通过发送void帧(应用层数据为空),来接收Server下发的DOWNLINK数据帧;如果接收失败,End Node还会重复发送void帧,因为,它知道还需要从Server接收DOWNLINK帧。

 LoRaWAN介绍8 QoS_第6张图片


Confirmed+FPending+ACK

在下图中,Gateway不但回复了ACK,还发送了Confirmed数据帧,同时告诉End Node还有后续DOWNLINK,请快速建立通信。

特别注意:ACK不能发送2次,因此End Node第二次回复的是void帧。

LoRaWAN介绍8 QoS_第7张图片


5 丢帧检测

LoRaWAN协议帧中有一个FCnt变量:

Server端管理FCntDown,每发送一帧DOWNLINK,该值加一;2种情况除外,组播一个unconfirmed帧,或者,重复发送一个没有ACK的confirmed帧。

End Node端管理FCntUp,每发送一帧UPLINK,该值加一;1种情况除外,重复发送一个没有ACK的confirmed帧。

双方都记录接收数据帧的个数,并比较当前数据帧中FCnt的值,如果差异(小心回绕!)超过MAX_FCNT_GAP,那将说明有数据帧丢失,并将采取对应的恢复策略。


下载经典的LoRaWAN资料,请链接:http://www.rimelink.com/nd.jsp?id=48&_np=107_316

你可能感兴趣的:(LoRaWAN)