3.1 MQTT(Message Queuing Telemetry Transport)
协议类型
发布和订阅模型(Publisher-Broker-Subscriber),基于TCP长连接,以最小化带宽和资源占用为设计目标。
QoS等级
QoS 0为最多一次,不保证送达。QoS 1为至少一次,保证送达但可能重复。QoS 2为恰好一次,保证送达且不重复。扫地机常用QoS 1用于状态上报,QoS 2用于OTA通知。
优点
轻量级协议,报文头部最小仅2字节,非常适合低带宽和嵌入式设备。发布和订阅模型将发送方和接收方完全解耦,设备不关心谁接收数据,云端不关心谁发送数据,系统扩展极为灵活。支持长连接,设备持久在线,服务器可随时下发指令。标准化程度高,是IoT领域的事实标准。支持遗嘱消息机制,设备意外断线时自动发送预设消息,适合异常监控。生态极为成熟,开源Broker如EMQX和Mosquitto被广泛使用,客户端库覆盖所有编程语言和平台。
缺点
基于TCP,需要维持长连接,对设备功耗和服务器资源有一定要求。QoS 2实现较为复杂,设备端和服务器端均需维护消息状态。不支持流式传输,不适合视频等连续数据流。MQTT本身无加密能力,安全完全依赖TLS加密通道。
应用场景
扫地机器人所有云端通信几乎都以MQTT为核心协议。设备遥测数据上报包括电池电量、清洁状态、传感器摘要,通常每30秒周期上报。事件上报包括清洁完成、故障发生、OTA升级状态等,按需触发。云端指令下发包括远程启动、暂停、回充、模式切换。OTA升级通知中推送固件下载URL、版本号和MD5校验值。
代表平台
EMQX(EMQ X Broker)是国产开源MQTT Broker,支持百万级并发连接,在IoT平台中广泛应用,石头科技全球IoT平台即使用EMQX。Mosquitto是Eclipse开源项目,轻量级MQTT Broker,适合中小规模部署。AWS IoT Core、阿里云IoT、腾讯云IoT、百度云天工IoT也均以MQTT作为设备接入的核心协议。
3.2 HTTPS / TLS(Hypertext Transfer Protocol Secure / Transport Layer Security)
协议类型
基于TCP的请求和响应协议,通过TLS 1.2或1.3加密,可选mTLS双向证书认证。
可靠性
TCP保证可靠传输,TLS保证数据机密性和完整性。
优点
安全性极高,TLS 1.2以上加密配合证书认证可有效防止中间人攻击。非常适合大文件传输,HTTP Range头支持断点续传,固件包下载中断后可继续。全球标准化,基础设施极为完善,CDN加速和负载均衡部署成熟。mTLS双向证书认证可实现设备级别的安全接入。
缺点
开销较大,TCP三次握手加TLS握手,建立完整连接需要数秒。不适合高频小数据传输,每次请求需要完整的HTTP头部,相比MQTT效率低。长连接维护成本较高。
应用场景
OTA固件包下载是最核心的场景,设备从云端CDN通过HTTPS下载数百MB至数GB的固件包,利用Range请求实现断点续传。地图数据上传中,清洁完成后将压缩的地图文件通过HTTPS上传至对象存储。设备激活和注册中,首次连接云端时的安全认证流程使用HTTPS。
代表平台
使用标准TLS库如mbed TLS、OpenSSL、wolfSSL。CDN厂商如阿里云CDN、AWS CloudFront、Cloudflare提供全球加速。
3.3 WebRTC(Web Real-Time Communication)
协议类型
点对点实时音视频通信协议栈。使用DTLS-SRTP加密,ICE框架穿透NAT。支持P2P直连或TURN中继。
优点
超低延迟,P2P直连无需经过服务器中转。端到端加密,DTLS-SRTP确保视频和音频数据不经过云端存储,用户隐私得到保护。NAT穿透能力强,ICE框架自动选择最优连接路径。标准化程度高,浏览器、手机、IoT设备均可支持。
缺点
协议栈复杂,需集成ICE、STUN、TURN、DTLS、SRTP等多层协议。P2P穿透在严格NAT环境下可能失败,需TURN中继服务器作为后备。对设备算力和网络质量有一定要求。
应用场景
旗舰机型的远程视频巡航功能是最典型的应用。用户在外出时通过APP实时查看家中画面,视频流P2P直连,不经云端存储。家庭成员间的视频通话可利用机器人前置摄像头作为家庭视频通话终端。
代表平台
Google的libwebrtc是开源标准实现,被广泛集成。aiortc是Python版本的WebRTC实现。coturn是开源TURN和STUN服务器项目,用于NAT穿透失败时的中继。
【往期回顾】
扫地机器人全通信方式详解 - 无线通信