MQTTで始めるIoTデバイスの作り方 第2回:MQTTのプロトコルを解析して挙動を理解するMQTTで始めるIoTデバイスづくり(2)(2/5 ページ)

» 2016年06月01日 07時00分 公開
[今岡通博MONOist]

Wiresharkの導入

 「Wireshark」はパケットをキャプチャーして解析するツールとしてはメジャーな存在です。今回は原稿執筆時点で最新版となるVersion 2.0.3を利用しますが、このバージョンになってからMQTTを標準で解析できるようになりました(それ以前はMQTTを解析するためには、Luaなどで書かれたアドインのコードが必要でした)。

 Wiresharkは公式サイトから、利用するプラットフォームに適合したものをダウンロードして、インストールしてください(本稿ではVersion 2.0.3をWindows 10で動作させています)。

ポート1883の開放

 ブローカーをインストールしたPC以外のノード間で、MQTTメッセージをやりとりするためには、ブローカーが動作するPCのTCPポート「1883」を解放する必要があります。

 ポート開放は利用する環境によって手順が異なるため、全てを説明することはできませんが、Windowsの場合は「Windows ファイアウォールでポートを開く」が参考となります。セキュリティソフトやルーターも必要に応じて、ポートの状態を確認しましょう。

Windowsの「新規の受信の規則ウィザード」

パケットのキャプチャーと解析

 まずブローカーをインストールしたPCでmosquittoを起動します。起動時には、オプションの -v を指定して、ログを表示するモードで起動します。次にスマホアプリからこのブローカーに接続し、メッセージのやりとりを観測します。それでは早速、Wiresharkでこれらのパケットをキャプチャーしてみましょう。

c:\Program Files (x86)\mosquitto>mosquitto -v
1461811097: mosquitto version 1.4.3 (build date 19/08/2015 13:37:44.73) starting
1461811097: Using default config.
1461811097: Opening ipv6 listen socket on port 1883.
1461811097: Opening ipv4 listen socket on port 1883.

 Wiresharkを起動すると以下のような画面が表れますので、キャプチャーしたいインタフェースをダブルクリックします。筆者の環境ではWi-Fiを選択しました。

Wiresharkでのキャプチャー Wiresharkでのパケットキャプチャー

 次の画面はパケットをキャプチャーした画面です。緑になっているテキストボックスでmqttと入力してリターンキーを押すとmaqttプロトコルのパケットのみが表示されます。これでキャプチャー準備はOKです。

テキストボックスに「mqtt」と入力してMQTTプロトコルパケットのみを表示

Copyright © ITmedia, Inc. All Rights Reserved.