すべてのLoRaアップリンクおよびダウンリンクメッセージは、 1オクテットのMACヘッダー(MHDR)で始まり、MACペイロード(MACPayload)¹が続き、 4オクテットのメッセージ完全性コード(MIC)で終わるPHYペイロード(Payload)を伝送します。
4.1 MAC層(PHYペイロード)
MACPayload フィールドの最大長(M)は地域ごとに異なり、第6節に規定されています。
¹ 最大ペイロードサイズは第6章に詳細が記載されております。 ² Join-Acceptフレームにおいて、MICフィールドはペイロードと共に暗号化され、独立したフィールドではありません。
4.2 MACヘッダー(MHDRフィールド)
MACヘッダーはメッセージタイプ(MType)を指定し、それに基づきLoRaWANレイヤ仕様のフレームフォーマットにおけるメジャーバージョン(Major)に従って、フレームが符号化されています。
4.2.1 メッセージタイプ(MTypeビットフィールド)
LoRaWANでは、8種類の異なるMACメッセージタイプを区別します:・Join-request(参加要求)・Rejoin-request(再参加要求)・Join-accept(参加承認)・unconfirmed data up/down(未確認データアップ/ダウン)・confirmed data up/down(確認済みデータアップ/ダウン)・proprietary プロトコルメッセージ
4.2.1.1 参加要求および参加承諾メッセージ
join-request参加要求、Rejoin-request再参加要求、およびjoin-accept参加承諾メッセージは、第6.2章で説明されている無線によるアクティベーション手順およびローミング目的で使用されます。
4.2.1.2 データメッセージ
データメッセージは、MAC コマンドとアプリケーションデータの双方の転送に使用され、これらは単一のメッセージに組み合わせて含めることができます。confirmed-data message確認済みデータメッセージは受信者による応答が必須ですが、unconfirmed-data message未確認データメッセージは応答を必要としません。¹ Proprietary messages独自メッセージは、標準メッセージとの相互運用性がなく、独自の拡張機能について共通の理解を持つデバイス間でのみ使用される、非標準のメッセージ形式を実装するために使用できます。エンドデバイスまたはネットワークサーバーが未知のプロプライエタリメッセージを受信した場合、黙って破棄しなければなりません。
メッセージの完全性は、メッセージタイプごとに異なる方法で保証され、以下に各メッセージタイプごとに説明します。
4.2.2 データメッセージのメジャーバージョン(メジャービットフィールド)
4.3 データメッセージのMACペイロード(MACペイロード)
データメッセージのMACペイロードは、フレームヘッダー(FHDR)を含み、その後にオプションのポートフィールド(FPort)およびオプションのフレームペイロードフィールド(FRMPayload)が続きます。
有効なFHDRを持ち、Fopts(FoptsLen = 0)、Fport、FRMPayloadを一切含まないフレームは、有効なフレームとなります。
4.3.1 フレームヘッダ(FHDR)
FHDRには、終端デバイスのショートデバイスアドレス(DevAddr)、フレーム制御オクテット(FCtrl)、2オクテットのフレームカウンタ(FCnt)、およびMACコマンドを伝送するために使用される最大15オクテットのフレームオプション(FOpts)が含まれます。FOpts フィールドが存在する場合、セクション 4.3.1.6 に記載されている NwkSEncKey を使用して暗号化されるものとします。

4.3.2 ポートフィールド (FPort)
フレームペイロードフィールドが空でない場合、ポートフィールドは必ず存在しなければなりません。存在する場合、FPort の値が 0 であることは、FRMPayload が MAC コマンドのみを含み、そのような FPort を持つ受信フレームはすべて LoRaWAN 実装によって処理されることを示します。有効な MAC コマンドの一覧については第 5 章を参照してください。FPort値1..223(0x01..0xDF)はアプリケーション固有であり、このFPortを持つ受信フレームは、LoRaWAN実装によりアプリケーション層に提供されなければなりません。FPort値224はLoRaWAN MAC層テストプロトコル専用です。LoRaWAN実装は、FPort値が1..224の範囲外であるアプリケーション層からの送信要求を破棄しなければなりません。
FPort値225..255(0xE1..0xFF)は、将来の標準化アプリケーション拡張のために予約されています。
N はアプリケーションペイロードのオクテット数です。N の有効範囲は地域によって異なり、[PHY] で定義されています。
N は以下の条件を満たす必要があります:
N ≤ M - 1 - (FHDR の長さ (オクテット単位))
ここで M は最大 MAC ペイロード長です。
4.3.3 MACフレームペイロード暗号化(FRMPayload)
データフレームがペイロードを保持する場合、メッセージ完全性コード(MIC)を算出する前に、FRMPayloadを暗号化しなければなりません。
使用する暗号化方式は、IEEE 802.15.4/2006 附属書 B [IEEE802154] に記載された汎用アルゴリズムに基づき、128 ビットの鍵長を持つ AES を用います。
使用する鍵 K は、データメッセージの FPort に依存します:
pld = FRMPayload
各データメッセージに対して、アルゴリズムはブロックAiのシーケンスを定義します。ここでi = 1..k、k = ceil(pldの文字数 / 16)です:
方向フィールド(Dir)は、アップリンクフレームでは0、ダウンリンクフレームでは1となります。
ブロックAiは暗号化され、ブロックSiのシーケンスSが得られます:
Si = aes128_encrypt(K, Ai) for i = 1..k S = S1 | S2 | .. | Sk
ペイロードの暗号化および復号化は、切り捨てによって行われます。
(pld | pad16) xor S
最初の len(pld) オクテットに。
4.4 メッセージ完全性コード(MIC)
メッセージ完全性コード(MIC)は、メッセージ内の全フィールドに対して計算されます。
msg = MHDR | FHDR | FPort | FRMPayload
ここで、len(msg) はメッセージの長さをオクテット単位で表します。
4.4.1 ダウンリンクフレーム
ダウンリンクフレームのMICは、以下の通り計算されます [RFC4493]:
cmac = aes128_cmac(SNwkSIntKey, B0 | msg) MIC = cmac[0..3]
ここで、ブロックB0は以下のように定義されます:
デバイスがLoRaWAN1.1ネットワークサーバーに接続されており、775ダウンリンクフレームのACKビットが設定されている場合、つまりこのフレームがアップリンクの「confirmed」フレームを承認していることを意味します。この場合、ConfFCntは承認対象の「confirmed」アップリンクフレームのフレームカウンタ値を2^16で割った剰余となります。その他のすべてのケースでは、ConfFCnt = 0x0000となります。
4.4.2 上りリンクフレーム
上りリンクフレームのMICは、以下の手順で算出されます。ブロックB0は次のように定義されます:
- TxDr はアップリンク伝送に使用されるデータレートです。
- TxCh は伝送に使用されるチャネルのインデックスです。
- アップリンクフレームのACKビットが設定されている場合、つまりこのフレームがダウンリンクの「確認済み」フレームを承認していることを意味します。その場合、ConfFCnt は承認対象の「確認済み」ダウンリンクフレームのフレームカウンタ値を 2^16 で割った剰余となります。その他のすべてのケースでは、ConfFCnt = 0x0000 となります。
cmacS = aes128_cmac(SNwkSIntKey, B1 | msg) cmacF = aes128_cmac(FNwkSIntKey, B0 | msg)
デバイスがLoRaWAN1.0ネットワークサーバーに接続されている場合:
MIC = cmacF[0..3]
デバイスが LoRaWAN1.1 ネットワークサーバーに接続されている場合:
MIC = cmacS[0..1] | cmacF[0..1]
関連記事
LoRaについて
LoRaおよびLoRaWAN®技術の理解LoRaWAN®(Long Range Wide Area Network)は、LoRa(Long Range)技術の上に構築された通信プロトコルおよびネットワークアーキテクチャです
LoRaWAN仕様:2 LoRaWANオプションバッテリー駆動のエンドデバイス向けに最適化されたLoRaWAN™ネットワークプロトコルについて説明します。これらのデバイスは移動型または固定設置型のいずれかとなります。
LoRaWAN®とは何か:年間41%成長する37億ドル規模のIoTプロトコルLoRaWANがビジネスに重要な理由を理解するため、その本質・仕組み・Milesightによる実世界での応用事例を検証しましょう。
LPWAN、LoRa、およびLoRaWAN®LoRaとは? LoRa(Long Range)は、フランス・グルノーブルのCycleo社が開発した […]
LoRaWAN仕様:6 端末のアクティベーションLoRaWANネットワークに参加するには、各エンドデバイスをパーソナライズし、1311 アクティベートする必要があります。
LoRaWAN仕様:5 MACコマンドネットワーク管理においては、ネットワークサーバーとエンドデバイス上のMAC層との間で、MACコマンドのセットが専ら交換される場合があります。MAC層コマンドは、アプリケーションやアプリケーションサーバー、あるいはエンドデバイス上で動作するアプリケーションには決して表示されません。
LoRaWAN仕様:3 物理メッセージ形式LoRaの用語では、アップリンクメッセージとダウンリンクメッセージを区別します。
LoRaWAN仕様:1 概要バッテリー駆動のエンドデバイス向けに最適化されたLoRaWAN™ネットワークプロトコルについて説明します。これらのデバイスは移動型または固定設置型のいずれかとなります。
ソリューション / IoT サポート
- LoRaWAN仕様:1 概要 2017年10月11日バッテリー駆動のエンドデバイス向けに最適化されたLoRaWAN™ネットワークプロトコルについて説明します。これらのデバイスは移動型または固定設置型のいずれかとなります。
- LoRaWAN仕様:2 LoRaWANオプション 2025年10月10日バッテリー駆動のエンドデバイス向けに最適化されたLoRaWAN™ネットワークプロトコルについて説明します。これらのデバイスは移動型または固定設置型のいずれかとなります。
- LoRaWAN仕様:3 物理メッセージ形式 2017年10月11日LoRaの用語では、アップリンクメッセージとダウンリンクメッセージを区別します。
- LoRaWAN仕様:4 MACメッセージフォーマット 2017年10月10日すべてのLoRaアップリンクおよびダウンリンクメッセージは、 1オクテットのMACヘッダー(MHDR)で始まり、MACペイロード(MACPayload)¹が続き、 4オクテットのメッセージ完全性コード(MIC)で終わるPHYペイロード(Payload)を伝送します。
- LoRaWAN仕様:5 MACコマンド 2017年10月11日ネットワーク管理においては、ネットワークサーバーとエンドデバイス上のMAC層との間で、MACコマンドのセットが専ら交換される場合があります。MAC層コマンドは、アプリケーションやアプリケーションサーバー、あるいはエンドデバイス上で動作するアプリケーションには決して表示されません。
- LoRaWAN仕様:6 端末のアクティベーション 2017年10月11日LoRaWANネットワークに参加するには、各エンドデバイスをパーソナライズし、1311 アクティベートする必要があります。