You are currently viewing MQTTとは?MQTTについてご紹介します。

MQTTとは?MQTTについてご紹介します。

MQTTは、IoTおよびIIOTデバイス間でメッセージを伝送する、軽量のパブリッシュ/サブスクライブネットワークプロトコルです。MQTTプロトコルは、通常、TCP/IP上で動作します。小さなコードフットプリント」が求められる遠隔地との接続や、ネットワークの帯域幅が限られている場合に設計されています。MQTTプロトコルは、IIOTデバイスIoT、スマートホームシステム、ホームオートメーションシステムのアプリケーションに理想的な選択肢であり、広く利用されています。

ESP8266ESP32Raspberry Pi、Arduinoマイコンを搭載したエンドノードが、他のMQTTクライアントと通信することで、メーカー、フリーランサー、プロトタイプに最適なユースケースとなります。

MQTTプロトコル -ioctrl技術

MQTTプロトコル

IoT/IIOT/スマートホームシステム/ホームオートメーションシステムにおいて、MQTTはどのように重要な役割を果たしているのか?

MQTTプロトコルでは、メッセージブローカーと多数のクライアントという2種類のネットワークエンティティが定義されています。MQTTブローカーは、クライアントからすべてのメッセージを受信し、メッセージを適切な宛先クライアントにルーティングするサーバーです。

​ Raspberry Pi, ESP8266, ESP32, Arduinoなどの小型コントローラでもMQTTクライアントとして動作します。

MQTTにおけるMQTTクライアント

MQTTクライアントとは、MQTTライブラリを実行し、ネットワーク経由でMQTTブローカーに接続するあらゆるデバイス(マイクロコントローラーから本格的なサーバーまで)を指します。

​ パブリッシャーは、配信する新しいデータがあると、接続されているブローカーにデータを含むコントロールメッセージを送信します。その後、MQTTブローカーは、そのトピックを購読しているMQTTクライアントに情報を配信します。

​ パブリッシャーはサブスクライバーのロケーション数に関するデータを持つ必要はなく、逆にサブスクライバーはパブリッシャーに関するデータを設定する必要はありません。

MQTTにおけるMQTT Broker

ブローカーが、現在サブスクライバーがいないトピックのメッセージを受信した場合、メッセージのパブリッシャーがメッセージをリテインメッセージとして指定していない限り、ブローカーはそのメッセージを破棄します。保持されたメッセージとは、retained フラグが true に設定された通常の MQTT メッセージのことです。ブローカーは、最後に保持したメッセージと、選択したトピックに対応する QoS を保存します。

保持されたメッセージのトピックにマッチするトピックパターンをサブスクライブした各クライアントは、サブスクライブ後すぐに保持されたメッセージを受け取ります。ブローカーは1つのトピックにつき1つのリテインメッセージのみを保存します。これにより、あるトピックの新規購読者は、パブリッシャーからの次の更新を待たずに、最新の値を受け取ることができます。

パブリッシングクライアントが初めてブローカに接続したときに、ブローカが、パブリッシングクライアントがブローカから予期せず切断されたことを検出した場合に、サブスクライバに送信するデフォルトメッセージを設定することができます。

クライアントはブローカとしかやりとりしませんが、システムには、現在のサブスクライバのトピックに基づいてデータを交換する複数のブローカサーバが含まれている場合があります。 ​ MQTTのコントロールメッセージは、わずか2バイトのデータにすぎません。

コントロールメッセージは、必要に応じて約256メガバイトのデータを伝送することができます。クライアントとブローカーとの接続や切断、データの公開、データの受信確認、クライアントとサーバー間の接続の監視などに使用されるメッセージタイプが定義されています。

コメントを残す