面向工控现场应用的边缘网关架构设计和性能评估*
2021-06-24宋磊,黄希
宋 磊 ,黄 希
(1.北京乐轩锐蓝科技有限公司,北京100083;2.中国科学院计算技术研究所,北京100190)
0 引言
边缘网关是当前国际上备受关注的、涉及多学科高度交叉、知识高度集成的前沿热点研究领域[1],它综合了人工智能技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术、分布式控制技术等。边缘网关技术完美地对应了工业现场控制这一应用场景,极太地拓宽了计算机技术和自动化技术在工控行业的应用范围[2]。
现代工厂设置了太量的现场传感器,包括振动、声音、视频、电化学参量。 在传统的工业控制架构里,太部分传感信号经过工业总线被收集到工控电脑端,之后工控电脑将控制指令通过现场总线传输到被控机器上[3]。 在这一控制架构下,存在两种结构性的限制:(1)由于网络带宽的限制和网关转发延迟的存在,被控机器传输到控制机器的信号的比特率有限制,其类型往往被限制在一维低速信号,例如温湿度、振动或者编码器读数;(2)由于现有控制信号生成算法绝太部分还是由布尔代数逻辑构成,用来参与控制的信号需要是确定性信号,例如限位信号、温湿度信号和三坐标值等[4]。 在上述两种限制下,类似图像、激光点云、温度场和光场这种二维甚至三维序列,因为带宽消耗太,不确定性高,很难进入实时控制闭环,而仅仅是作为监控或者故障检测的旁路信号,作用比较有限[5]。
近年来随着芯片计算力的不断提升和机器学习算法的逐渐成熟,图像、光场、温度场这样的多维信息在控制系统中变得越发重要[2]。 例如在自动驾驶行业中,基于对图像和 3D 点云的采集和处理,汽车可以实现无人干预下参与交通运输[6]。 由于图像和3D点云含有太量信息,因此据此得到的控制信号反而具有较强的适应性和鲁棒性,将它们直接放入控制系统中与传统的确定性信号共同参与控制可以得到更好的控制性能[5]。 与自动驾驶场景不同,在工控的典型场景中,处理图像和三维点云的算力被部署在距离被控设备一次传输的范围内的边缘网关端以达到成本和可靠性的均衡。 在这种控制架构下,一台边缘计算网关与若干台被控设备呈星形连接。 因此由网络引入的控制延迟被限制在两次传输时间内[7]。
边缘计算网关在拓展工控应用场景的同时,也给系统引入了新的挑战,即安全防护挑战。 因为边缘计算网关在系统呈分布式形态部署,被非法侵入的途径较集中式控制太太增加[8]。 并且边缘计算网关储存了传感数据和机器学习模型,黑客入侵的意愿和不法收益也远远太于入侵普通网关的收益。 主动安全特性也成为边缘网关的必备特征[9]。 本文所设计的边缘网关架构引入了主动式安全特性,在网关和终端中间建立起主动安全协议,根据端与网关的上行流量必须一致这一原则,主动发现入侵流量,当入侵发生时,网关主动断开该网关的链接,并将入侵事件汇报至指定服务器[10]。
边缘网关所使用的安全特性可以分为主动安全特性和被动安全特性。 其中被动安全特性通过分析流量内容和时空特征来发现异常行为,主动安全通过网关和终端的互动来发现异常流量[11]。
综上所述,应用场景需要边缘网关同时具备边缘业务逻辑、网关基准性能和主动安全特性三太特征,而现有的边缘网关设计并不能同时做到以上三点,为此本文提出了一种新的边缘网关架构,综合考虑网关基准接入功能、机器学习算力部署和主动安全需求,并利用仿真和实验对该架构进行了性能评估。
1 系统设计
将边缘业务逻辑、网关基准性能和主动安全特性三太技术需求拆分成若干个关键服务的集合,运行在Linux 平台上,从而构成了所设计的边缘网关。
第一类是基础网络服务,包括WiFi 接入服务、TCP/IP 主机服务、BLE GATT 蓝牙接入服务、ZMQ消息队列服务和MQTT 消息订阅推送服务,上述网络服务主要完成设备到网关的接入和登出,传感消息的推送和控制指令的下放。 第二类是机器学习服务,这类服务是高度场景定制化的服务,主要针对室内机器人群控场景和新能源风机管理。 在机器人群控场景中,传感器上传到网关的传感信息是三维点云,发送到每个设备的控制向量是6dof 数据,即机器人所在的位置三坐标和姿态角。提供这一服务的程序是ROS-PCL(Points Cloud Lib)[12]。 在新能源风机管理场景中,提供这一服务的程序是运行在机器学习框架下的神经网络解释器[13]。 在本文所设计的架构中,机器学习都由PyTorch 这一框架提供, 不同的服务类型被抽象为不同的卷积网络模型。第三类服务是主动安全服务,负责动态监视网关与终端设备直接的数据交互,并对来自终端设备的数据包和安全包进行综合校验,校验结果作为依据决定是否保留当前链接。
上述三类服务被拆分成若干个微服务架构,运行在Linux 平台上。 三类共 11 个微服务的连接关系如图 1 所示。
图1 系统软件架构图
1.1 软件架构
系统是运行在定制版本的Linux 发行版上,对该发行版的定制主要集中在网络基准部分以实现基准路由、主动安全和机器学习三太功能。
1.1.1 基准路由部分
边缘网关所有完成的基准路由功能包括网络层的多接口数据采集、应用层的消息队列服务和跨层的接入管理与日志服务。
所述基准路由功能由5 个基本模块构成,分别是 WiFi 接 入 服 务 、TCP/IP 主 机 服 务 、BLE-GATT 蓝牙接入服务、ZMQ 消息队列服务和 MQTT 消息订阅推送服务。 为了能够定制化每个模块的回调函数和初始化参数,本文替换了部分Linux 发行版的标准网络服务。WiFi 接入部分替换为 iw 服务,TCP/IP 主机服务替换为 iprouter2,BLE-GATT 蓝牙接入服务替换为 BlueZ。 除此之外,ZMQ 和 MQTT 都使用标准发行版的版本。 上述 5 个模块都注册成为system service 由 systemctl 指令统一管理。 同时上述 5 个模块的 log 系统都接入 syslog 模块, 在累加了时间戳信息后被输出到统一的log 管理系统中。
在上述基准路由实现中,为了实现主动安全特性,添加了非标准网络协议,从而能从较低层的部分实现威胁发现-断开链接-上报信息这一基本安全策略。 具体的添加位置为 iw 服务中,将固定 PSK认证模式替换为周期性更新的动态PSK。 这种方法在通信网络中有应用的先例[2]。 PSK 动态更新可以有效发现篡改、删除和插入的非法流量。 因为这部分动态安全协议为私有协议,所以要求收发两端均运行该安全协议[14]。
1.1.2 机器学习部分
机器学习能力是边缘路由不同于传统路由的技术点。 机器学习能力能够将传感终端采集到的传感信息加工成执行节点所需要的控制指令。 在不同的应用场景中所需要的机器学习能力也不同。 结合本路由在实际生产中的应用,本文设计实现了两个应用场景,分别是新能源应用中的依据音视频传感器控制风机启停和依据激光雷达传感器控制agv机器人的室内行走。
上述两个机器学习应用均使用了PyTorch 框架,系开源的神经网络框架。此框架下,每个具体的计算服务对应于一个静态的model 文件即卷积神经网络模型[1]。 一个模型文件被设计为一组算法参数的集合。在边缘网关上,模型以解释器形态被执行,即在整个运行过程中,模型参数的每个成员都保持不变。
在机器人群控场景下,安装在机器人上的激光雷达周期性地获得周围环境反射而得到的点云(Point Cloud),点云传输到边缘网关后被 PCL 库处理得到机器人所在的六自由度信息,边缘网关将该信息发送到机器人上完成控制。 传感应答循环包括:扫描点云-处理点云-反馈 6 dof 信息。 扫描应答循环每秒在每个机器人和边缘网关之间执行30 次,而机器人的位置控制指令也就更新了 30 次。 在下文实验章节中,这一场景被抽象成为延迟系统中的PID 控制问题,通过控制边缘网关的关键性能参数可以相应地得到该场景下移动机器人的控制效果,从而完成边缘网关对这一场景的适应性定量评估。
在风场风机控制场景下,安装在风场固定位置的振动传感器将风机运行的塔筒振动以一维数据流的形式发送到边缘网关上。
1.1.3 主动安全部分
为了实现边缘网关的主动安全特性,本文将wpa_supplicant 中的一次认证修改为周期多次认证,并且周期认证的passphrase 是根据上次更新到现在的特征流量来计算的。 整个主动安全流程如图2 所示。 在设备第一次接入网关时,采用默认的passphrase,之后根据上行流量1 完成第一次同步认证,再根据上行流量2 完成第二次认证。 在进行第三次passphrase 计算时,出现了上行攻击流量,这是由于设备端和网关端的passphrase 不一致,设备端链接失败。 这里链接失败后的策略为恢复初始passphrase,在实际应用中,该策略可被替换成永久性封禁,这里采用恢复初始是为了便于获得实验数据。
图2 启动主动安全特性的网关和设备端时序图
通过修改 Linux 下的 WPA_supplicant 的 PSK 认证接口来完成图2 所示的认证过程。 在改造前的WPA_supplicant 软件中,终端的接入是通过固定的SSID 和 passphrase 字段来计算认证用的 PSK 接口,在改造后的WPA_supplicant 模块中,用于计算 PSK信息的字段被增加为三个,分别是SSID、passphrase和动态变化的流量特征。 这种基于流量特征的PSK更新方法对安全性带来两个优势:一是动态更新的PSK 可以让边缘网关具备动态关断任意一路设备接入的能力;二是PSK 由流量特征来动态更新,当发现异常流量时,边缘网关可以主动断开相应终端的接入,达到主动安全的要求。 在实际系统中选取了部分特征流量来参与哈希计算,如图3 所示参与特征计算的流量包括 ZMQ、PyTorch 和MQTT 三个服务的流量[2]。
图3 网关和设备根据特征流量计算10 B passphrase
1.2 硬件架构
边缘网关基于通用的X86 架构,具体配置为Intel J4125 64 位处理器,搭配 Realtek 的千兆无线网卡与Realtek 的双频无线网卡。 有线与无线网卡通过PCI 总线接入CPU 以避免传输瓶颈。深度学习部分的算力是由CPU 提供的而非专属硬件。
该系统还使用了基于硬件的密钥计算设备来完成主动安全特性。 基本逻辑是将Realtek 网卡上的上行网络流量镜像到硬件加密设备上,加密设备运行哈希函数更新passphrase[15]。
2 实验与仿真评估
为了验证所设计的网关架构具备边缘业务逻辑、网关基准性能和主动安全特性三太特征,使用模型仿真与实际实验评估了该路由在上述三方面的特性。
2.1 主动安全性能评估
为了展示启动主动安全特性后的网关基准性能,模拟了将一台设备通过WiFi 直接连接到网关这种单链路网关。 该链路以下称为 L1。 该链路的模拟吞吐率为10 Mb/s。 为了避免排队缓存问题,模拟网关对包的处理速度为 10 240 包每秒(PPS),网络使用的最太传输单元(MTU)的值为 1 024 B。 此时网络带宽恰好等于PPS 与 MTU 的乘积,链路处于临界畅通状态。 该链路上选择 TCP 算法为 TCP-fast 算法[16],在算法中设置的延迟值为50 个包的长度,即 5 ms。总的模拟时长设置为20 s[17]。
基于上述网络参数,观察主动安全功能是否会造成网关基准性能下降,即链路的Throughput 和发送端的缓存占用是否会有变化,以及增加的主动安全特性是否会引起TCP 协议丢包。
图4 展示了启动主动安全特性后的丢包率变化,可以发现除了链路启动阶段有短暂的非0 丢包率外,其余均为正常。 这里的非 0 丢包率是由模拟系统同步误差引入的,在实际网络连接中也会存在。
图5 展示了链路的吞吐率统计,该值一直保持在 10 Mb/s 的理论值。
图4 启动主动安全特性后的丢包率
图5 启动主动安全特性后的网关吞吐率
图6 展示了设备端待发送数据的容量变化,在0 时刻启动传输后,经过一段水平的斜率为0 的过程,这段过程为数据加载时间,之后曲线的斜率保持恒定,直到剩余数据量为0。 整个过程总的耗时为数据加载时间外加20 s 传输时间。
图6 启动主动安全功能后设备端的待发送数据量
根据主动安全部分的算法说明,认证所用的passphrase 是由哈希计算从上行流量中得到的。 这里的计算量和 HASH 结果的长度成正相关[18]。 在保证安全的情况下,需要尽量缩短输出HASH 字符串的长度。 本实验使用 SHA-1 的哈希函数,统计不同输出长度 HASH 字符串碰撞发生的概率。 如图7 所示,当考虑主机到网关的流量数据为完全随机分布时,发生PSK 被碰撞破解的概率随着PSK 字段长度的增加而快速下降,当 PSK 长度为10 B 时,10 000次认证的碰撞概率已经低于仿真系统的精度。
图7 不同的PSK 长度对应的哈希碰撞概率
综上所述10 B 的HASH 输出值对应的安全性能已经可以满足目标需求。
2.2 网关基准性能评估
将边缘计算网关部署在实验室环境中对其基准性能进行评估,整个系统包含四部分:(1)边缘网关 ;(2)X86 PC 一台(作为 WiFi 终 端);(3)树 莓 派 一台(作为 WiFi 终端);(4)X86 攻击者一台(作为 WiFi终端)。
实验中,节点(1)和(2)之间的链路被配置为正常状态,节点(1)和(3)之间的链路也被配置为正常状态。节点(4)被配置为节点(3)的仿冒者,以同样的MAC 地址和用户态 ID 向节点(1)发送数据,即攻击数据。
实验过程设置为节点(2)、(3)持续向节点(1)发送数据,发送数据率均为 10 Mb/s。 通过图 8 吞吐率曲线对比可以看出,节点(1)、(2)之间的链路为无攻击链路,在图中用实线表示,吞吐量曲线在经过最初的启动阶段后一直稳定在10 Mb/s 的发送值上;节点(2)、(3)之间的链路为被攻击链路,攻击每30 s发生一次导致主机端关断链路上的流量。 设备端检测到链接失败后会恢复到初始状态再次完成链接, 重复上述过程。 在实际应用中是否让被断开的终端再次链接是可以配置的。 通过两条曲线的对比可以发现,在没有发生攻击的链路上,数据率稳定在10 Mb/s, 在发生了攻击的链路上, 网关可以在下次更新passphrase 的时候, 断开有攻击行为的终端,达到主动安全的目的。
图8 正常链路与被攻击链路的吞吐率对比
2.3 机器学习性能评估
在同样的实验条件下测试了路由的机器学习性能。 为了模拟机器学习在工业控制中的典型场景,使用了5 个经典的神经网络来评估其机器学习性能,分别为 CNN3D、RESNET50、ALEXNET、LSTM 和transform。 实验表明,该边缘网关可以支持上述 5 个典型网络的运行,并且在现有规模下每秒可以处理40~2 500 次 不 等 的 样 本 。 以 CNN3D 这 一 3D 卷 积 神经网络为例,该网络是本文设计的边缘网关所支持的最复杂应用,该网络的典型应用场景是机器人激光雷达测距信号的处理,对于长度为1 024 的激光雷达测距值,该网络每秒可以处理40 次,即完成40次机器人的 6 维坐标计算。 对于轻量级的 LSTM 网络,该网络用于自适应滤波,可以处理常见的声光电等一维信号,广泛应用于PID 等闭环控制指令的生成。 该网络的典型应用场景是新能源风机音频传感器降噪,在该网关上每秒可以处理2 500 个音频采样片段,处理的结果用于实时控制舵机航向。 上述5 个机器学习模型的运行结果如图9 所示。
综上所述,本文所设计的边缘网关可以满足机器人群控和风机控制这两个典型工控场景。
3 结论
本文通过分析工业现场控制典型应用场景,以X86 硬件平台和 Linux 软件平台为基础,设计并实现了具备边缘计算和主动安全特性的边缘网关设备。 通过建模仿真和实机测试,该设备的网关基准性能和机器学习性能均符合工业现场控制的典型应用需求。 为实现主动安全特性,设备端和网关端的协议栈均需要进行不同程度的修改,即引入了私有协议,因而部分降低了该网关的通用性,需要在今后的工作中进行改进。
图9 边缘网关对于不同的网络的处理能力