近年來,物聯網(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,了解萬物互聯。
-
物聯網
+關注
關注
2909文章
44741瀏覽量
374507 -
云服務
+關注
關注
0文章
826瀏覽量
38933
原文標題:干貨|BAT物聯云IoT協議例析
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論