コンテンツにスキップ

IoTプロトコルまとめ

どのレイヤーでプロトコルが動作しているか意識する.

https://www.knowledgeportalcenter.com/default.aspx?cmrid=1538

L4以上

MQTT

正式名称をMessage Queuing Telemetry Transportとよぶ.キューイング機能を持たないないが,Queueとつく不思議なプロトコルである.ヘッダーが2バイトしかない軽量なプロトコルである.

出典: https://mqtt.org/

通信では,Pub/Subモデルを採用している.具体的にはメッセージ送信者(Publisher)とメッセージ仲介者(Broker),メッセージ受信者(Subscriber)から構成される.

MQTTは1999年にIBMとEurotechによりドラフトが作製された規格です。ベースはTCP/IPですが、HTTPサーバとWebブラウザのようなユーザーインタフェースを介した人に対するサービスではなく、M2M(Machine to machine)いわゆる機械同士の通信に使われるプロトコルを指向しています。

出典)https://monoist.atmarkit.co.jp/mn/articles/1605/23/news017.html

トピックとは

さて、データ伝達の基本は「誰」に「何」を伝えるかです。「何」は更に「それを識別する名前」と「その中身」から構成されます。MQTT において「何」は「トピック(Topic)」という文字列で識別されます。トピックはいわゆるファイルシステムのパス構造に似て、/ から始まる任意の階層の名前を付けることができます。MQTT のトピック名「/ から始まる Unicode UTF-8 文字列であること」「全長 65535 バイト以下に収まること」「ヌル文字を含まないこと」「$, #, + は予約語として特別な機能が与えられる」という程度しか既定がなく、非常に自由度が高い特徴があります(※註)。 出典)http://www.silex.jp/blog/wireless/2016/09/mqtt.html

主要なOSSとして,mosquittoがある.

CoAP

RFC 7252に定義されたプロトコルである.下位層はUDPを使用する.データはバイナリでエンコードされてやりとりされる.メッセージフォーマットは次の構成を取る.

image.png (19.5 kB)

Ver: It is a 2 bit unsigned integer indicating the version

T: it is a 2 bit unsigned integer indicating the message type: 0 confirmable, 1 non-confirmable

TKL: Token Length is the token 4 bit length

Code: It is the code response (8 bit length)

Message ID: It is the message ID expressed with 16 bit

出典)CoAP Protocol: Step-by-Step Guide - DZone IoT

RFC7252でCoAPの仕様が解説されています.CoAPは低消費電力でネットワーク損失が多いなどの制約されたノードや,ネットワークでの使用に特化したウェブ転送プロトコルです.ノード・デバイスとしては小さなROM/RAMをもつ8ビットのマイクロコントローラが多く,6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)のように制約があるネットワークではたいていパケット・エラー率が高く,10kbps台のスループットが一般的です.CoAPはそうしたデバイスを使用するスマート・エネルギや,ビル自動化などのM2Mアプリケーションをターゲットに設計されています. CoAPはアプリケーション端末間でウェブのサービスやリソース,URIを使用した簡易HTTPインタフェースのリクエスト/レスポンス操作を行います.そして,マルチキャスト・サポートや非常に低いオーバヘッド,簡易さなどの制約環境に適合する設計となっています.

出典)https://interface.cqpub.co.jp/wp-content/uploads/interface/2016/03/if03_166.pdf

物理層・データリンク層

  • Sigfox
  • 6LoWPAN
  • LoRaWAN
  • Narrow Band IoT