乐趣区

关于物联网:使用抓包工具Wireshark分析IoT设备网络行为设备管理运维类

1. 背景

当咱们进行物联网开发过程中,设施调试有时候很难进行,就须要借助网络抓包工具 Wireshark 来帮咱们剖析设施行为,定位问题。上面咱们通过一个简略案例,给大家解说应用 Wireshark 剖析设施与阿里云 IoT 物联网平台通信的过程。

2. 筹备工作

2.1 创立设施

在阿里云 IoT 物联网平台创立产品,并注册设施,获取三元组。

2.2 设施模拟程序

咱们在电脑上用 Nodejs 编写 device 模拟程序,建设连贯,订阅,公布,断开连接。

/**
 * node aliyun-iot-device.js
 */
const mqtt = require('aliyun-iot-mqtt');
// 设施身份三元组 + 区域
const options = {
    "productKey": "设施 PK",
    "deviceName": "设施 DN",
    "deviceSecret": "设施 Secret",
    "regionId": "cn-shanghai"
};

//1. 建设连贯
const client = mqtt.getAliyunIotMqttClient(options);
//2. 订阅主题
setTimeout(function() {client.subscribe(`/${options.productKey}/${options.deviceName}/user/get`)
}, 3 * 1000);
//3. 公布音讯
setTimeout(function() {client.publish(`/${options.productKey}/${options.deviceName}/user/update`, getPostData(),{qos:1});
}, 5 * 1000);
//4. 敞开连贯
setTimeout(function() {client.end();
}, 8 * 1000);


function getPostData() {
    const payloadJson = {temperature: Math.floor((Math.random() * 20) + 10),
        humidity: Math.floor((Math.random() * 20) + 10)
    }
    console.log("payloadJson" + JSON.stringify(payloadJson))
    return JSON.stringify(payloadJson);
}

2.3 应用 Wireshark 抓取网络包

IoT 物联网平台应用 MQTT 协定通信,咱们只须要配置如下规定即可:
 tcp and port 1883 

2.4 启动模拟程序

3. 网络抓包剖析

随着模仿脚本执行结束,残缺的 MQTT 网络交互过程都在 wireshark 捕捉到了。
为了不便我把设施 ip 标记成了 device,本次连贯的阿里云 IoT 的 IP 放弃不变。

3.1 TCP 的三次握手

下面截图红框局部就是 TCP 的三次握手行为。由 device 的发动,设施端用的端口是 56150。

3.2 MQTT 的 CONNECT 行为

下图展现了 MQTT 的 Connect 的行为。
点击 Connect 记录,在底部能够看到具体报文。其中 client id,user name,password 是这次 CONNECT 用来验证设施合法性的身份信息。想理解细节请 ​​移步这里​​。

身份验证实现,IoT 物联网平台会回复 CONNACK 作为 CONNECT 的响应。

3.3 MQTT 的 SUBSCRIBE 行为

下图展现了 device 向 IoT 物联网平台订阅 topic 的过程。这里 device 被动订阅了一个 Topic,见红框局部。

下图展现了 IoT 物联网平台响应 device 订阅的行为。

3.3 MQTT 的 PUBLISH 行为

下图展现了 device 向 IoT 物联网平台 PUBLISH 一条 QoS= 1 的音讯。在报文信息里,咱们能够看到音讯对应的 Topic 和 Payload。

因为是 QoS= 1 音讯,IoT 物联网平台会回复一条 PUBACK 给 device。

在 IoT 物联网控制台的日志服务也能看到这条消息日志。

3.4 MQTT 的 DISCONNECT 行为

下图展现了 device 被动发动 DISCONNECT 命令,断开 MQTT 连贯通道。

3.5 TCP 的四次挥手

在 IoT 物联网控制台的日志服务也能看到残缺的设施高低线日志,如下。

4. 结束语

至此,咱们把握了应用 Wireshark 抓包工具剖析设施和阿里云 IoT 物联网平台网络通信的基本技能,心愿对大家 IoT 物联网开发有所帮忙。

5. 附录

TCP 层的几个标识

物联网平台产品介绍详情:​​https://www.aliyun.com/product/iot/iot_instc_public_cn​​

              阿里云物联网平台客户交换群
退出移动版