基本的な考え方
MQTT (Message Queuing Telemetry Transport) は、パブリッシュ/サブスクライブ モデルに基づく「軽量」通信プロトコルで、TCP/IP プロトコルに基づいて構築され、1999 年に IBM によってリリースされました。MQTT の最大の利点は、非常に少ないコードと限られた帯域幅で、接続されたリモート デバイスにリアルタイムで信頼性の高いメッセージ サービスを提供できることです。
MQTT プロトコルのコンポーネントには次のものがあります。
- パブリッシャー: パブリッシャーはメッセージを生成するノードであり、メッセージを特定のトピック (トピック) にパブリッシュします。
- サブスクライバー (サブスクライバー) : サブスクライバーはメッセージを受信するノードであり、特定のトピックをサブスクライブすることでメッセージを受信します。
- ブローカー: ブローカーはメッセージ転送ステーションであり、パブリッシャーによって送信されたメッセージを受信し、サブスクライバーに転送する責任があります。
- トピック: トピックはパブリッシャーとサブスクライバー間のコミュニケーション チャネルであり、文字列によって名前が付けられ、分類ラベルとみなすことができます。パブリッシャーとサブスクライバーはトピックを通じて情報を伝達します。
アダム:
違いを解釈すると、ここで使用されている mqtt プロトコルは、http のように送信者と受信者の間に接続を確立する必要がないため、モノのインターネットで使用されます。代わりに、パブリッシャーがトピックにパブリッシュし、サブスクライバーがトピックに移動してメッセージを取得します。
MQTT プロトコルの特徴は次のとおりです。
- 軽量: MQTT プロトコルのデータ伝送形式は簡潔で、エンコード後のバイト長が非常に小さいため、伝送効率が高くなります。
- オープン: MQTT はオープン プロトコルであり、あらゆるデバイスが TCP/IP ネットワーク経由で接続して通信できます。
- パブリッシュ/サブスクライブ モデルに基づく: パブリッシュ/サブスクライブ モデルにより、パブリッシャーとサブスクライバーは直接接続を確立せずに通信できるため、MQTT プロトコルは大規模なデバイス ネットワークをサポートできます。
- 拡張可能: MQTT プロトコルは、必要に応じて拡張して、新しいトピックやメッセージ タイプを追加できます。
MQTT プロトコルは、モノのインターネット、モバイル インターネット、インテリジェント ハードウェア、車両のインターネット、電気エネルギーなどの分野で広く使用されています。
MQTT と HTTP の比較
HTTP と比較して、MQTT プロトコルには次の点で利点があります。
- 帯域幅占有: MQTT プロトコルは、パブリッシュ/サブスクライブ モデルを使用することにより、情報送信をより効率的にします。「パブリッシュ/サブスクライブ」と呼ばれるモデルを使用します。このモードでは、メッセージの送信者と受信者の間に直接接続がないため、帯域幅の使用量が大幅に削減されます。対照的に、HTTP プロトコルは TCP 接続を確立して維持する必要があるため、比較的大きな帯域幅が必要です。
- リアルタイム パフォーマンス: MQTT プロトコルのリアルタイム パフォーマンスはより優れています。これは、MQTT プロトコルがパブリッシュ/サブスクライブ モデルを使用し、メッセージの配信が特定の送信者と受信者に依存しないため、メッセージの配信がより速く、より信頼性が高くなります。対照的に、HTTP リクエストは通常、TCP 接続を確立して維持する必要があり、メッセージの遅延が発生する可能性があるため、HTTP プロトコルのリアルタイム パフォーマンスは比較的劣ります。
- デバイス間の通信: MQTT プロトコルは 1 対多のメッセージ送信をサポートしているため、デバイス間の通信に適しており、多数のデバイス間の通信が必要なシナリオに非常に適しています。対照的に、HTTP プロトコルはクライアントとサーバー間の通信に多く使用され、デバイス間の通信のサポートは比較的弱いです。
- 低消費電力: モノのインターネット、小型デバイス、モバイル アプリケーションなどのシナリオでは、MQTT プロトコルの省エネの利点がより明白になります。MQTT プロトコルはメッセージ送信量が少なく、頻繁なネットワーク接続を必要としないため、デバイスのエネルギー消費を効果的に削減できます。対照的に、HTTP プロトコルでは頻繁なネットワーク接続とデータ転送が必要となるため、デバイスのエネルギー消費が増加する可能性があります。
したがって、MQTT プロトコルは、帯域幅の占有、リアルタイム性、デバイス間の通信、低消費電力の点で利点があり、モノのインターネット、小型デバイス、モバイル アプリケーションなどの分野で広く使用されています。
14 種類のメッセージ:
MQTT (Message Queuing Telemetry Transport) は、低帯域幅で信頼性の低いネットワーク環境でのメッセージ通信のための軽量のパブリッシュ/サブスクライブ メッセージング プロトコルです。MQTT では、クライアントとサーバー間の通信に使用される 14 の異なるメッセージ タイプが定義されています。MQTT の 14 種類のメッセージ タイプを次に示します。
- CONNECT: MQTT ブローカーとの接続を確立するために使用されます。
- CONNACK: 接続確認応答。
- PUBLISH: 特定のトピックにメッセージを発行します。
- PUBACK: パブリッシュされたメッセージの確認応答。
- PUBREC: メッセージを公開するための繰り返しのリクエスト。
- PUBREL: パブリッシュ メッセージのリリース。
- PUBCOMP: パブリッシュされたメッセージの完了。
- 購読: トピックを購読します。
- SUBACK: サブスクリプション確認応答。
- UNSUBSCRIBE: トピックの購読を中止します。
- UNSUBACK: 購読解除の確認応答。
- PINGREQ: ネットワーク接続をテストするために使用されます。
- PINGRESP: PINGREQ への応答。
- DISCONNECT: MQTT ブローカーから切断します。
これらのメッセージ タイプは、メッセージのパブリッシュ/サブスクライブ、メッセージの確認、接続の確立/切断など、MQTT プロトコルのさまざまな操作を実装するために使用されます。