MQTTをパケットトレースする
ネットワークアナライザであるWiresharkは現在1.12.0がリリースされており、MQTTにも対応しています(図7)。 皆様の環境に合わせてパッケージをダウンロードしインストールしてください。
それではMQTTのプロトコル詳解を理解するため、Wiresharkを起動しパケットキャプチャを開始しましょう。
まずInterface Listからインターネットに接続しているインターフェースを選び、「Start」を押してキャプチャを開始します(図8)。
次に、先ほどと同じくMQTTデモ環境であるtest.mosquitto.orgの1833番ポートに「SSLなし」で接続します。
C:\test> py unencrypted-mqtt.py Connected with result code 0
それではWiresharkのパケットキャプチャを停止して、じっくりMQTTのプロトコル詳解を見ていきましょう。前述しましたがWiresharkはMQTTプロトコル解析にも対応していますので、取得されたパケットキャプチャにも適用してみましょう。具体的には右クリックから「Decode As」をまず選びます(図10)。
つづいて、Transport層のデコーダにMQTTを選択します(図11)。 これでMQTT上でのやり取りを目で確認することができます。
実際にMQTTパケット解析結果の一つを見てみましょう(図12)。
ご覧のようにMQTT(MQ Telemetry Transport Protocol)のパケット内容のデコードが完了しています。IoT(Internet of Things)は「500億台がつながる未来!」と壮大なビジョンが描かれています。それに接続されるセンサデバイス数や実装種類も年々多様になっていきます。そのような中で、しっかりとシステム環境を通信プロトコルレベルで安定化させていくことが日増しに重要になっていくことでしょう。現在始まったばかりのIoT(Intenet of Things)ではありますが、いまの早い段階から、新しいプロトコルへの正しい理解を深めておくことは極めて重要だと考えます。
次回予告
さて次回は、MQTTプロトコル詳解をより踏み込み、来るべきIoT(Internet of Things)時代に知っておくべき正しい知識について見ていきます。

