LoRaWAN1.1-OTA本地激活流程(5)

下图是OTA本地激活的流程图。

LoRaWAN1.1-OTA本地激活流程(5)_第1张图片
OTA本地激活信息流流程图

Step 1:

终端设备发送Join-request消息。

Step 2:

当NS接收到Join-request消息,这个NS通过DevEUi决定自身是否是hNS服务。在上面的图片中,展示的是该NS服务就是hNS服务。在后面章节里面会介绍NS不作为hNS服务,而NS被配置使用JS服务做漫游激活处理。如果这个NS服务既不作为hNS也没有配置使用JS,然而这个NS服务将忽略Join-request报文并且终止继续处理流程。

如果NS服务没有预先配置JS服务的IP地址/主机名,NS将基于接收到的Join-request消息中的JoinEUI,然后使用DNS服务去寻找JS服务服务。如果DNS查找失败,NS将终端处理流程。

对于LoRaWAN1.0协议,终端设备配置一个AppEUI,并且不需要标识JS服务,NS服务需要配置JS服务的IP地址/主机名。

Step 3:

NS发送一个JoinReq消息到JS并携带Join-request的PHYPayload、MACVersion、DevEUI、DevAddr、 DLSettings、RxDelay和可选项CFList。NS将MACVersion的值设置为终端设备与NS之间的最高通用版本。

Step 4:

JS将按照MACVersion来处理Join-request消息并且发送JoinAns报文到NS服务,在生命周期内成功一旦成功,NS将携带Result=Success信息, 然后NS在发送的Join-accept的PHYPayload中包括网络会话密钥组(LoRaWAN1.1协议中包括SNwkSIntKey、FNwkSIntKey、NwkSEncKey,1.0协议中是NwkSKey),或者加密后的AppSKey或SessionKeyID或者两者都有。一旦失败(如果终端设备不被JS认识或者如果Join-request的MIC验证失败)Result将被赋值为UnknownDevEUI或者MICFailed。

JS将会创建一个与会话密钥对应的SessionKeyID。

在LoRaWAN1.1中为终端设备生成的SNwkSIntKey、FNwkSIntKey、NwkSEncKey、和AppSKey。在LoRaWAN1.0中设备终端生成的是NwkSKey。当AppSKey在JS和AS服务之间传递是,是用一个共享密钥加密处理的。

对于LoRaWAN1.0的终端设备,即使AppEUI没有标识的JS服务时,JS也将处理Join-request消息。

Step 5:

如果NS服务接收到指示成功的JoinAns消息从JS服务,NS服务将转发接收到的PHYPayload用Join-accept报文给终端设备。终端设备将基于Join-accept消息生成网络会话密钥组、AppSKey。

Step 6:

当NS接收一个上行的报文从终端设备,NS将发送加密的AppSKey或者SessionKeyID或者两个都发送到AS服务。

Step 7:

当AS接收到加密的AppSKey伴随在应用层的payload中,AS服务将使用JS下发给AS的密钥去解密AppSKey,然后使用AppsKey去解密接收到的payload。如果加密后的AppSKey不是由NS提供的,那么AS将继续下一步处理。

Step 8:

如果AS希望直接从JS那里接收AppSKey,则执行此步骤。

AS服务将向JS发起请求AppSKey通过终端设备的DevEUI和SessionKeyID标识。这个AppSKey是使用JS和AS之间共享的密钥加密的。JS发送加密后的AppSKey、DevEUI和SessionKeyID给AS。然后AS解密加密的AppSKey使用共享密钥。然后,AS开始用解密后的AppSKey去加解密应用层的payload。

当NS和JS同属于一个管理域或者他们不属于一个管理域,OTA激活都是被允许的。

你可能感兴趣的:(LoRaWAN1.1-OTA本地激活流程(5))