何ですか IoT通信プロトコル?
IoT プロトコルは標準または “言語” マシンが相互に通信するために使用される, またはプラットフォームを使用して. 特徴と機能に基づいて, これらのプロトコルは主に次のように分類されます。 3 種類: 伝送プロトコル, 通信プロトコル, および業界固有のプロトコル.
伝送プロトコル: デバイスで使用されます IoTネットワーク サブネット内で接続します, Wi-Fiを含む, ブルートゥース, ジグビー, イーサネット, NFC, 3G/ 4G/ 5Gなど.
通信プロトコル: デバイス間のデータ送信に使用されます, ネットワークレイヤーの上で動作し、ユーザーにアプリケーションレイヤーサービスを提供する. 通信プロトコルの一部: MQTT, Coap, http/https, WebSocket, amqp.
業界固有のプロトコル: デバイス間の互換性を確保するための特定の業界内の標準プロトコル, システム, さまざまなメーカーやブランドによるプラットフォーム, JT/Tなど 808 中国の車両端子通信プロトコル.
の理解 7 IoT通信プロトコル:
ここでは、IoT業界で使用されている通信プロトコルのいくつかを見つけることができます, 含む:
1. REST/HTTP
休息とは
休む (表現状態転送)ネットワーク化されたアプリケーションを設計するための標準ではなく、建築スタイルです, 通常、輸送プロトコルとしてHTTPを使用して、そのアーキテクチャの原則を実装します.
特徴:
- ステートレス: 各リクエストには、必要なすべての情報が含まれています, また、サーバーはクライアントの状態を維持していません.
- リソース識別: サーバー側, アプリケーションの状態と機能は、さまざまなリソースに分けることができます, クライアントにさらされています. リソースの例には、アプリケーションオブジェクトが含まれます, データベースレコード, アルゴリズム, 等. 各リソースには、URIを使用して一意のアドレスが割り当てられます (ユニバーサルリソース識別子).
- 均一なインターフェイス: 標準のHTTPメソッドを使用して、リソースを操作します, getなど, 役職, 置く, 消去
応用:
REST/HTTPは、主にインターネットのシステムアーキテクチャを簡素化することを目指しています, クライアントとサーバーの相互作用の間のゆるい結合を迅速に達成します, これにより、相互作用の遅延が減少します. したがって, それはに適しています IoTアプリケーション, 休息を通じてIoTリソースの露出を可能にします, 他のアプリケーションによってサービスを呼び出すことができます.
2. Coap
COAPとは何ですか
Coap (制約付きアプリケーションプロトコル) 制約されたデバイスに簡単で効率的な通信を提供します, 低電力での操作に理想的です, 低帯域幅, および高度な環境.
特徴:
- ヘッダー圧縮: coapは、のベースを持つコンパクトなバイナリヘッダーを備えています 4 バイト, 拡張オプションが続きます, 通常、のリクエストヘッダーになります 10-20 バイト.
- 方法とuris: サポートGET, 置く, 役職, メソッドを削除します, サーバーリソースにアクセスするためのuris.
- 輸送層: オーバーヘッドを最小限に抑え、マルチキャストをサポートするためにUDP上に構築されています, 単純な停留所信頼性メカニズムを備えています.
- 非同期コミュニケーション: HTTPとは異なり, COAPは非同期コミュニケーションをサポートします, M2Mアプリケーションに最適です.
- リソースの発見: リソース発見のための組み込み形式が含まれています, RFCに準拠しています 5785, リソースの説明に /.well-known/coreを使用します.
- キャッシング: パフォーマンスを向上させるために、リソースの説明のキャッシュをサポートします.
応用:
COAPは、単純化されたHTTPベースのRESTFUL APIです. COAPは、のアプリケーションレイヤープロトコルです 6 ローパンプロトコルスタック, リソース制約のある通信IPネットワークに適しています, 低電力センサーや埋め込みシステムなど.
3. MQTT
MQTTとは何ですか
MQTTプロトコルは、パブリッシュ/サブスクライブパターンを使用します, 通常、IoT端子はTCPを介してMQTTブローカーに接続します. ブローカーはトピックを通じて通信コンテンツを管理し、デバイス間でメッセージを転送する責任があります.
特徴:
- pubish/subscribeモデル: クライアントはトピックにメッセージを公開し、特定のトピックからメッセージを受信するために購読することができます. このモデルは、柔軟なメッセージ配布を可能にします.
- 低帯域幅: メッセージヘッダーは最小限です, 通常のみ 2 バイト, 効率的な帯域幅の使用をサポートし、低帯域幅に適しています, 高層性, および不安定なネットワーク.
- 信頼性: MQTTは、メッセージ配信のために3つのQoSレベルを提供します: “せいぜい一度,” “少なくとも一度,” そして “一度。”
応用:
MQTTは一般に、デバイスデータ収集からエンドポイントに適しています (例えば, デバイス -> サーバ) スターネットワークアーキテクチャの集中通信, ブローカーがハブとして機能しています. IoTシナリオで広く使用されており、一部のモバイルアプリケーションでも採用されています, Facebookメッセンジャーなど (歴史的に).
4. DDS
DDSとは何ですか
DDS (データ分布サービス) のために作成されたミドルウェア標準です リアルタイムシステム. 低レイテンシーを提供することにより、分散アプリケーションの厳格な要求を満たしています, ハイスループット, そして決定論的なパフォーマンス.
特徴:
- データ中心
- Brokerless Publish/Subscribeメッセージングモデル: ポイントツーポイントをサポートします, ポイントツーマルチポイント, マルチポイントからマルチポイント通信.
- 提供する 21 サービス品質 (Qos) ポリシー
応用:
分散, 非常に信頼できます, デバイスのリアルタイムデータ通信. 現在, DDSは、民間航空や産業管理などの分野で広く使用されています.
5. amqp
AMQPとは何ですか
AMQPは、信頼できるメッセージ送信とキューイングメカニズムを確保するために設計されたオープンスタンダードアプリケーションレイヤープロトコルです.
特徴:
- ワイヤーレベルのプロトコル: バイトのストリームとしてネットワーク全体にデータを送信します.
- オープン標準による高い互換性
- フレキシブル & 安全な: さまざまなメッセージングパターンをサポートします, パブリッシュ/サブスクライブとポイントツーポイントを含む. また、複数のセキュリティメカニズムも組み込まれています, 暗号化や認証など.
応用:
当初、金融システムでのトランザクションメッセージングに使用されていました, AMQPは現在、主にモバイルデバイスとバックエンドデータセンター間の通信およびデータ分析のためにIoTアプリケーションで利用されています.
6. xmpp
XMPPとは何ですか
オープンスタンダード通信プロトコルとして, xmpp (拡張可能なメッセージングと存在プロトコル) リアルタイム通信用に設計されています, インスタントメッセージングや存在情報など.
特徴:
- クライアント/サーバー通信モデル: クライアントはサーバーにリクエストを送信します, リクエストを処理し、適切な応答またはリソースをクライアントに送り返します.
- 分散ネットワーク: 複数の独立したノードがネットワークを形成します, 単一の障害点を排除します.
- シンプルなクライアント: クライアントは、より少ないタスクを処理します, サーバー側でほとんどの計算が行われます.
- XMLは、データを説明するために使用されます, クロスプラットフォームの互換性を確保します, JSONは現代のアプリケーションでより人気がありますが.
応用:
XMPPはインスタントメッセージングで使用されます, ネットワーク管理, コンテンツ配信, コラボレーションツール, ファイル共有, ゲーム, リモートシステム監視, もっと.
7. JMS
JMSとは何ですか
JMS (Javaメッセージサービス) 分散アプリケーションでのメッセージング用のJavaプラットフォームの標準APIです. これにより、アプリケーションはメッセージキューを介して通信できます, したがって、非同期を達成します, フレキシブル, 信頼できるメッセージ交換.
特徴:
- 非同期コミュニケーション: 異なる時間にメッセージを送信および受信できます, システムの柔軟性と応答性の向上.
- メッセージの耐久性: メッセージの永続性を提供します, システムの障害が発生した場合にメッセージが失われないようにする, 信頼性の向上
- トランザクションサポート: JMSはトランザクションサポートを提供します, メッセージ操作のグループの原子性を確保します, すべての操作が完全に成功するか、完全に失敗することを意味します, これにより、データの一貫性が保証されます.
応用:
JMSは、非同期メッセージングを必要とする分散アプリケーションに最適です, システム分離, そして高い信頼性, エンタープライズアプリケーション統合など, イベント主導のアーキテクチャ, リアルタイムデータ処理.
IoT通信プロトコルの比較
特徴 | DDS | MQTT | amqp | xmpp | JMS | REST/HTTP | Coap |
---|---|---|---|---|---|---|---|
抽象化 | パブ/サブ | パブ/サブ | パブ/サブ | それ | パブ/サブ | リクエスト/返信 | リクエスト/返信 |
建築 | グローバルデータスペース | プロキシ | P2Pまたはプロキシ | それ | プロキシ | TCP保証を通じて | p2p |
Qos | 22 種類 | 3 種類 | 3 種類 | それ | 3 種類 | TCPまたは確認されたメッセージを介して確認します | はい |
相互運用性 | はい | 部分的に | はい | それ | いいえ | はい | はい |
パフォーマンス | 100,000 msg/s/sub | 1,000 msg/s/sub | 1,000 msg/s/sub | それ | 1,000 msg/s/sub | 100 req/s | 100 req/s |
リアルタイム | はい | いいえ | いいえ | いいえ | いいえ | いいえ | はい |
輸送層 | UDPとTCPをサポートします | TCP | TCP | 指定されていない, 通常、TCP | TCP | UDP | UDP |
サブスクリプションフィルタリング | メッセージコンテンツベースとトピックベースのフィルタリング | トピックとメッセージコンテンツに基づいたレイヤードサブスクリプション | キューとメッセージフィルタリング | それ | メッセージコンテンツとトピックフィルタリング | サポートされていません | トピックとマルチキャストをサポートします |
エンコーディング | バイナリ | バイナリ | バイナリ | XML形式 | バイナリ | プレーンテキスト | プレーンテキスト |
動的な発見 | はい | いいえ | いいえ | それ | いいえ | いいえ | いいえ |
安全 | FSSを提供します, TLS, その他のセキュリティオプション | 簡単なユーザー名/パスワード, SSLデータ暗号化 | SASLおよびTLSデータ暗号化 | それ | FSSを提供します, TLS, JAAS APIサポート | SSLおよびTLSの一般的なサポート | SSLおよびTLSの一般的なサポート |
結論
MQTT, DDS, amqp, xmpp, JMS, 休む, COAPは広く使用されているプロトコルです, それぞれ複数の実装があります, このリアルタイムのパブリッシュ/サブスクライブIoT通信のサポートを主張します. しかし, 特定のIoTシステムアーキテクチャを設計するとき, シナリオの実際のコミュニケーションニーズを考慮することが不可欠です。帯域幅の制限など, 遅延要件, セキュリティ - 最も適切なプロトコルを選択する前に.