SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

システム環境の明後日を支える新技術

IoT時代を支えるプロトコル「MQTT」(後編)

システム環境の明後日を支える新技術(6)

MQTTシステム設計上の課題

 IoT(Internet of Things)では、比較的小さなメッセージが定期的に送られてくるシステムを想定して作られています。デバイス上での軽量化するために、データ手順も簡素化されています。MQTTも軽量化されたプロトコルとして策定され導入が進んでいることは事実です。それでは前述のようにMQTTでのデータ通信を暗号化させた場合とそうでない場合では、データ通信量や手順に差が出てくるのでしょうか。さらに深く分析を行ったグラフを使って見ていきましょう。

 図12はPublisherとMQTT Brokerでやり取りされるパケットを暗号化ありと暗号化なしで比較したものです。暗号化なしの場合SSL/TLSのやり取りがありませんので、その部分でのデータ通信はありません。いかがですか? SSL/TLSのHandshakeを除けば、MQTTでのメッセージ発行にそれほど大きな差がないことがお分かりいただけるかと思います。暗号化によるデータ通信上でのオーバーヘッドはゼロではありませんが比較的軽微です。

図12. Publisher, BrokerにおけるMQTTコマンドの動作と暗号化データ通信
図12. Publisher, BrokerにおけるMQTTコマンドの動作と暗号化データ通信

 より詳細にデータ通信比較について見ていきましょう。図13は「Publisher, BrokerにおけるMQTTコマンドの動作と暗号化データ通信」のMQTTコマンド部分に焦点を当てたグラフです。MQTT Connect commandからMQTT Publish Messageまで暗号化ありと暗号化なし、それぞれをデータ通信上でのパケットサイズを比較しています。

図13. Publisher, BrokerにおけるMQTTコマンドの動作と暗号化データ通信(詳細)
図13. Publisher, BrokerにおけるMQTTコマンドの動作と暗号化データ通信(詳細)

 ご覧いただいたように、暗号化あり/なしに関わらず、IoTのデバイスが比較的小さなメッセージを発行する時には、比例してデータ通信のパケットサイズも小さくなります。至極当たり前ですね。

 以前の連載記事『10Gigabit Ethernetでベンチマークする!』でお話したことがありますが、現在私たちが使っているOS(オペレーティングシステム)で使っている標準的なNICとTCP/IPドライバは、比較的小さいパケットサイズの処理が苦手とされています(図14)。

図14. 標準的な10GbE-NICネットワーク性能とワイヤ・レート(MQTT版)
図14. 標準的な10GbE-NICネットワーク性能とワイヤ・レート(MQTT版)

 読者の皆様の中でも「そんな400万パケットのデータ通信なんて起こるわけがない!」とおっしゃる方もいらっしゃるかと思います。私もまったくもってそのとおりだと思います。また、いくら10GbE-NICを装備したサーバだからといって、すんなり処理性能の理論値までたたき出せることも稀でしょう。

 ここで読者の皆様と共有したかったことは「仮に性能を出し切るだけの仕様要件があったなら、現在のシステムでもボトルネックを抱えている部分がある」コトを知っていただきたかったからです。

 さらにMQTTシステム設計上の課題について考えてきましょう。

 図15は、IoTセンサネットワークをMQTTで設計する際に取り得る方式を比較したものです。

図15. MQTTによるセンサネットワーク構築の場合わけ(2つの設計手法)
図15. MQTTによるセンサネットワーク構築の場合わけ(2つの設計手法)

 IoTのデバイスは比較的安価でありCPU処理性能も極めて低いことが想定されています。大量のデバイスをセンサネットワークとして展開する場合、ユーザ認証や暗号化がコストや運用のボトルネックとなり得る場合も考えられます。こういった場合、従来からIP閉域網を用いて外部からの干渉を一切遮断したセキュリティポリシーによりシステム全体のコストと運用低減を計ることが良く用いられます。また、ユーザ認証と暗号化により強固なセキュリティを保持した状態でIoTデバイスをセンサネットワークとして展開することもあるでしょう。

 いずれの方式を取るかはサービス事業者によって大きく異なってくるでしょうが、おおよそこの2つの方式に結論が帰結してくることでしょう。

次のページ
IoTを支える技術

この記事は参考になりましたか?

システム環境の明後日を支える新技術連載記事一覧

もっと読む

この記事の著者

松本 直人(マツモト ナオト)

1996年より特別第二種通信事業者のエンジニアとしてインターネット網整備に従事。その後システム・コンサルタント,ビジネス・コンサルタントを経て2010年より,さくらインターネット株式会社 / さくらインターネット 研究所 上級研究員。(2016年より一時退任)研究テーマはネットワーク仮想化など。3~5年先に必要とされる技術研究に取り組み、世の中に情報共有することを活動基本としている。著書: 『モノのインターネットのコトハジメ』,『角川インターネット講座 ~ビッグデータを開拓せよ~』など多数。情報処理学会 インターネットと運用技術研究会 幹事

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8020 2014/09/30 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー