MQTTをパケットトレースする
ネットワークアナライザであるWiresharkは現在1.12.0がリリースされており、MQTTにも対応しています。前回同様にWiresharkを使ってプロトコル解析を行ってみましょう。まずはWiresharkを起動してパケットキャプチャを行います(図5)。
次に、先ほどと同じくMQTTデモ環境であるtest.mosquitto.orgの1833番ポートに「SSLなし」で接続します。
C:\test> py pub-mqtt.py Connected with result code 0 message published :
なお、Wiresharkのパケットキャプチャが開始されてからプログラムを起動する必要がある点に注意してください。
パケットキャプチャしたMQTTパケットのデコード方法などは前回解説していますので割愛しますが、図7はBrokerへのMQTT connect commandのパケットトレースです。User Name/Passwordの有無など、各種フラグが確認できます。
つづいて、MQTTによるメッセージ発行について見てきましょう(図8)。このパケットトレースでは、MQTTにおいてBrokerへのトピックが"test"として、メッセージ発行が行われているのが確認できます。メッセージ発行内容は送信されたMQTTパケット中のmessage以下に格納されています。
それでは前回の復習も兼ねて、MQTT Pythonライブラリを使ったClient/Subscriber接続のプログラム例の動作についても見ていきましょう。
