SHOEISHA iD

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

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

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

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

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

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

MQTTをパケットトレースする

 ネットワークアナライザであるWiresharkは現在1.12.0がリリースされており、MQTTにも対応しています。前回同様にWiresharkを使ってプロトコル解析を行ってみましょう。まずはWiresharkを起動してパケットキャプチャを行います(図5)。

図5. Wiresharkの起動とパケットキャプチャの開始方法
図5. Wiresharkの起動とパケットキャプチャの開始方法

 次に、先ほどと同じくMQTTデモ環境であるtest.mosquitto.orgの1833番ポートに「SSLなし」で接続します。

図6. MQTT Pythonライブラリを使ったClient/Publisher接続の実行例 (再掲載)
C:\test> py pub-mqtt.py
Connected with result code 0
message published
:

 なお、Wiresharkのパケットキャプチャが開始されてからプログラムを起動する必要がある点に注意してください。

 パケットキャプチャしたMQTTパケットのデコード方法などは前回解説していますので割愛しますが、図7はBrokerへのMQTT connect commandのパケットトレースです。User Name/Passwordの有無など、各種フラグが確認できます。

図7. MQTT connect commandのパケットトレース
図7. MQTT connect commandのパケットトレース

 つづいて、MQTTによるメッセージ発行について見てきましょう(図8)。このパケットトレースでは、MQTTにおいてBrokerへのトピックが"test"として、メッセージ発行が行われているのが確認できます。メッセージ発行内容は送信されたMQTTパケット中のmessage以下に格納されています。

図8. MQTT Publish Messageのパケットトレース
図8. MQTT Publish Messageのパケットトレース

 それでは前回の復習も兼ねて、MQTT Pythonライブラリを使ったClient/Subscriber接続のプログラム例の動作についても見ていきましょう。

次のページ
MQTTを用いたPub/Subシステムを理解する

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

イベント

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

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

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

メールバックナンバー