干货|BAT物联云IoT协议例析
点击上方“中兴开发者社区”,关注我们每天读一篇一线开发者原创好文近年来,物联网(IoT,Internet of Things)已经从概念阶段走向大规模应用。据Gartner统计,全球物联设备总数量从2016年的60+亿增加到2017年的80+亿,预计2020年全球将达到至少300+亿物联设备。超大规模的设备联网必定离不开专业云计算服务的支持,诸多互联网及高科技公司都已推出自己的物联云平台,供终端设
点击上方“中兴开发者社区”,关注我们
每天读一篇一线开发者原创好文
近年来,物联网(IoT,Internet of Things)已经从概念阶段走向大规模应用。据Gartner统计,全球物联设备总数量从2016年的60+亿增加到2017年的80+亿,预计2020年全球将达到至少300+亿物联设备。超大规模的设备联网必定离不开专业云计算服务的支持,诸多互联网及高科技公司都已推出自己的物联云平台,供终端设备厂商方便快捷地令其设备支持联网功能。我前段时间写过两篇文章(《MQTT协议例析》、《CoAP协议例析》)介绍了物联网主要的两个应用协议(MQTT、CoAP),自己搭建开发环境测试并基于Wireshark抓包,分析了该两协议的主要流程与功能要点。在本文中,我将介绍百度云IoT、阿里云IoT、腾讯云IoT三个物联云服务对IoT协议的支持情况,并分析抓包流量,对比差异,给出可能的DPI(Deep Packet Inspection)特征,以助读者更好了解。
百度云IoT
百度云IoT服务支持 MQTT、MQTT over TLS、MQTT over WSS (WSS即WebSocket Secure)三种物联网协议。百度云允许用户自定义实例名,并以该实例名作为用户独立DNS子域名,且形成三种协议的服务端URL。当设备端集成百度云IoT SDK时,需根据所选用的协议来填写对应的URL。对于DPI流量识别来说,百度云IoT的流量特征较为明显,可将 *.mqtt.iot.gz.baidubce.com 或其它同类域名用于识别百度云IoT流量。
阿里云IoT
阿里云IoT支持 MQTT over TLS、CoAP over DTLS、HTTPS 三种物联网协议。阿里云在用户自定义产品名时,会自动生成一个 ProductKey,并以该ProductKey作为用户独立DNS子域名。对于DPI流量识别来说,阿里云IoT的流量特征也较为明显,可将*.iot-as-mqtt.cn-shanghai.aliyuncs.com、*.iot-as-coap.cn-shanghai.aliyuncs.com 或其它同类域名用于识别阿里云IoT流量。
腾讯云IoT
腾讯云IoT支持 MQTT over TLS、CoAP over DTLS 两种物联网协议。与百度云IoT、阿里云IoT不同的是,腾讯云IoT的DNS域名并不是用户的独立子域名。腾讯云在用户自定义产品名/设备名时,会自动生成一个 productID,并将“productID+设备名称”在TLS的 ClientKeyExchange 消息、DTLS的 Client Certificate 消息中提供给云端。对于DPI流量识别来说,腾讯云IoT的流量特征也较为明显,可将 iotcloud-mqtt.gz.tencentdevices.com、iotcloud-coap.gz.tencentdevices.com 或其它同类域名用于识别腾讯云IoT流量。
物联云协议特征对比分析
每种物联云服务都可能提供给多个不同终端设备厂商使用,对于DPI流量识别来说,既应该支持识别不同物联云服务的流量,也应该支持某一种物联云服务内不同厂商终端设备的应用流量。
首先,按云服务识别:各物联云IoT服务,通常可根据DNS特征识别服务器IP地址,再根据IP地址识别相应流量。如因终端设备本地缓存DNS等情况而无法获取DNS的话,则可将SNI(Servcie Name Indication)或服务器证书CN(Common Name)作为补充特征。
其次,按终端应用业务细化识别:各物联云IoT服务,要么可通过DNS细化识别终端应用流量,要么可通过 Client Key Exchange 或 Client Certificate 消息细化识别终端应用流量。值得注意的是,百度云IoT较为特殊,支持明文方式MQTT协议,这时可通过 MQTT CONNECT 中 username 或 PUBLISH/SUBSCRIBE 消息中 Topic 作DPI特征,识别更加精细化的终端应用行为信息。
本文介绍了百度云IoT、阿里云IoT、腾讯云IoT三款国内主流物联网云服务的协议支持情况,通过流量对比分析,给出有效的DPI特征用于流量识别。希望可以帮助读者了解物联网云服务之概貌,以进一步学习了解IoT,了解万物互联。
参考资料:
1. 百度云 IoT https://cloud.baidu.com/solution/iot/index.html
2. 阿里云 IoT https://iot.aliyun.com/
3. 腾讯云 IoT https://cloud.tencent.com/product/iotsuite
更多推荐
所有评论(0)