3、远程升级技术选型:通信协议选择、传输加密与断点续传
远程升级这件事,说白了就是要把新固件从服务器安全、可靠地送到现场设备手里。我做了这么多年SCADA,见过太多升级到一半断网、文件损坏、被中间人篡改的惨案。今天咱们就聊聊技术选型里的三个核心问题:用什么协议传、怎么加密、断了怎么办。
3.1 通信协议选择:MQTT、HTTP、FTP
选协议这事儿,没有银弹。我个人的习惯是:先看设备资源,再看网络环境,最后看运维习惯。下面我把三种主流协议掰开揉碎讲清楚。
3.1.1 MQTT:轻量级,适合低带宽、高延迟场景
MQTT 是发布/订阅模式,说白了就是有个中间人(Broker)帮你转发消息。设备端不需要知道服务器在哪,只需要订阅一个主题就行。
优点:
- 报文头极小,最少只有2字节。我在一个油田项目中,用2G网络升级RTU,MQTT比HTTP省了将近40%的流量。
- 支持QoS(服务质量)等级,QoS 2能保证消息必达一次。
- 支持遗嘱消息,设备掉线了Broker会通知你。
缺点:
- 需要额外部署Broker,增加了一个故障点。
- 大文件传输效率低,MQTT本身不是为传文件设计的。
3.1.2 HTTP/HTTPS:通用性强,适合有公网IP的场景
HTTP 是请求/响应模式,设备主动去拉文件。现在很多工业网关都内置了HTTP客户端,部署起来最省事。
优点:
- 基础设施成熟,CDN、负载均衡随便用。
- 支持Range头,天然适合断点续传。
- 调试方便,用curl就能测试。
缺点:
- 报文头大,每次请求都有几百字节的头部开销。
- 服务端需要维护会话状态,设备多了压力大。
3.1.3 FTP/SFTP:传统方案,适合局域网批量升级
FTP 是老牌文件传输协议,很多工控设备都支持。但说实话,我越来越不推荐它了。
优点:
- 传输效率高,尤其适合大文件。
- 支持断点续传(REST命令)。
缺点:
- 明文传输密码,不安全。
- 需要两个端口(20和21),防火墙配置麻烦。
- 被动模式在NAT环境下经常出问题。
| 场景 | 推荐协议 | 理由 |
|---|---|---|
| 低功耗、窄带物联网 | MQTT | 报文小、省电、支持离线消息 |
| 公网、有固定IP | HTTPS | 生态好、调试方便、安全 |
| 局域网、大文件 | SFTP | 加密传输、效率高 |
3.2 传输加密:TLS/SSL 不是可选项,是必选项
你想想看,升级包就是设备的“大脑”。如果被人篡改了,后果不堪设想。我见过最离谱的一次,是有人用抓包工具直接拿到了明文固件,然后逆向工程改了逻辑,导致整个产线停了两天。
3.2.1 TLS 的基本原理
TLS 做的事情其实很简单:握手时交换证书和密钥,之后所有数据都加密传输。对于SCADA远程升级,我建议至少用TLS 1.2,最好用TLS 1.3。
关键配置项:
- 证书验证:客户端必须验证服务端证书,别用自签名证书糊弄事。我习惯用Let's Encrypt,免费且自动续期。
- 密码套件:优先用ECDHE + AES-GCM,性能好且安全。
- 双向认证:如果条件允许,让设备也出示客户端证书,这样能防止非法设备接入。
3.2.2 实际部署建议
嗯,这里要注意:TLS不是加上就完事了。你得考虑证书过期的问题。工业设备可能几年不重启,证书过期了升级就断了。
我的做法:
- 证书有效期设短一点(比如3个月),但提前一个月就开始预更新。
- 在设备里内置一个备用证书,主证书过期时自动切换。
- 升级包里包含新证书,形成“证书随固件更新”的闭环。
3.3 断点续传机制:别让用户从头再来
远程升级最怕什么?最怕传到99%的时候断了。尤其是在偏远地区,网络时好时坏,一个50MB的固件可能传半天。断点续传就是解决这个问题的。
3.3.1 实现原理
说白了,就是把大文件切成小块,记录下哪些块已经传成功了。下次续传时,只传没传完的块。
两种主流方案:
- 基于HTTP Range:客户端记录已接收的字节数,下次请求时带上
Range: bytes=1024-头。服务端从指定位置继续发。 - 基于分块校验:把文件分成固定大小的块(比如1MB),每块计算MD5或SHA256。客户端只请求缺失的块。
3.3.2 具体实现要点
块大小怎么定?
- 网络好:4MB-8MB,减少请求次数。
- 网络差:256KB-512KB,避免重传太多数据。
- 我一般取1MB作为默认值,然后根据实际网络延迟动态调整。
校验策略:
- 每个块传完后立即校验,不对就重传。
- 所有块传完后,对整个文件做一次完整性校验。
- 校验算法用SHA256,别用MD5(虽然快,但已经有碰撞风险了)。
3.4 知识体系总览
下面这张图是我自己整理的远程升级技术选型框架,你可以把它当作一个检查清单。
这张图把三个核心模块串起来了。你从左上角开始,先选协议,再加固加密,最后加上续传机制。每一步都有对应的技术选型要点。
公众号:蓝海资料掘金营,微信deep3321