1系统分析与结构设计
1.1传感器网络数据传输安全性
RS—485具有传输距离远、稳定性高、抗干扰能力强的特点[6]。利用RS—485总线传输数据,可以隔离网络不安全因素。农业环境中存在不方便进行布线的特殊作业现场,限制了RS—485的应用。ZigBee无线通信协议可以解决布线问题,但会受到拒绝服务等网络攻击[7]。系统将无线传感网络挂载到RS—485总线下,利用总线进行数据上传,隔离了无线网络中的不安全因素,保障传感器网络与嵌入式网关之间的数据传输安全。
1.2嵌入式网关数据传输安全性
嵌入式网关与服务器间采用TCP网络通信,为避免网关认证信息和数据协议格式泄露,需要对数据进行加密。SSL协议采用非对称加密机制,当A,B双方进行通信时,A将公钥发送给B;B利用该公钥加密自己的公钥并发给A;此时A,B均持有对方公钥,发送数据时利用对方的公钥进行加密。加密数据必须由私钥解密,即使窃听者捕获了加密数据或A最初发送的公钥,由于不具备任何一方的私钥,仍然无法对加密数据进行破解。系统基于SSL协议实现服务器与嵌入式网关间的加密数据通信,有效保障了嵌入式网关与服务器间的数据传输安全。
1.3服务器并发性
作物生长环境监测系统通过服务器实现数据共享,服务器必须满足多客户端并发和快速响应的需求。影响服务器并发性和响应速度的主要因素是数据加密和解密。数据加密是CPU密集型操作,其可靠性与加密位数有关,位数越多安全性保障越高,计算时间也相应增长。服务器等待加密解密结果会增长响应时间,导致新客户端连接请求处理滞后。系统通过I/O复用监测网络事件,根据SSL处理状态实现非阻塞握手[8],并利用不同的任务线程分离客户端请求处理和数据处理,降低了服务器的响应时间。
2硬件结构设计
作物生长环境监测系统硬件结构包括有线传感器节点、无线传感器节点、嵌入式网关和ZigBee网关。嵌入式网关硬件结构如图2所示,以基于ARM11架构的S3C6410芯片为核心处理器,外围接口模块包括串口模块、以太网模块、存储器模块。串口模块接收RS—485总线数据,并通过以太网模块与服务器通信。ZigBee网关结构框图如图3所示,由无线收发模块、RS—232模块、RS—485模块及控制器构成。CC2530通过串口将接收到的环境参数发送给控制器,控制器对数据进行协议封装,通过RS—485模块发送给嵌入式网关。
3软件设计
3.1嵌入式网关软件设计
嵌入式网关软件流程如图4所示,通过Select模型监听I/O事件,避免I/O操作阻塞网关执行其他任务。网关初始化后加载培育库房和传感器节点地址映射表。软件检测到传感器数据包到达,根据传感器硬件地址从映射表中获取库房编号和传感器对应的软件编号,按照服务器数据协议格式重新封装数据包,并进行数据上传。
3.2服务器端软件设计
程序主体是一个基于SSL协议的非阻塞Server,软件流程图如图5所示。系统通过关联SelectableChannel,并利用Selector监测其读、写、连接事件,实现非阻塞I/O复用;利用SSLEngineManager管理SSL连接状态,实现非阻塞SSL握手和数据加密;利用读、写、握手、数据处理等任务队列,实现任务处理与服务器请求处理的分离。
3.3平台实现
本文设计的作物生长环境监测系统基于Web技术实现用户交互操作。Nginx具有系统资源消耗小的特点[9,10],作为Web服务器接收用户交互请求,能够保证交互平台的稳定运行。为实现业务的快速部署,系统基于MVC设计模式[11,12],利用Django应用开发框架处理用户交互请求,并生成HTTP响应。传感器实时上传的环境参数数据,通过服务器筛选后存入到数据库中,用户可以查询历史数据记录、环境参数变化趋势及特定时间环境参数分布特征。
4实验验证
本文对服务器的并发性和安全性进行了测试。利用Tcpdump工具对网络通信数据包进行抓取,劫取者可从普通网络通信数据包尾部直接获得网关认证信息和数据协议格式;而对于本文设计系统的加密数据包,由于劫取者没有私钥,无法从加密数据中获得认证信息和数据格式。本文在不同并发等级下对服务器测试了10000个连接请求,测试结果如表1所示。在不同的并发等级下,服务器每秒处理请求数能够较稳定地维持在2000左右,具有良好的并发处理能力;服务器吞吐率维持在4700B/s左右,具有较快的数据传输速度。随着并发请求数的增加,等待的请求数增加,服务器请求处理时间增长。但对于5000的并发量等级,系统仍能保证在3.5s内完成请求处理。
5结论
本文设计的作物生长环境监测系统采用RS—485总线进行传感器网络与嵌入式网关之间的数据传输,隔离了ZigBee无线网络的不安全因素;基于SSL协议实现嵌入式网关与服务器之间的加密数据通信,避免了网关认证信息和数据协议格式的泄漏,保障了服务器的数据安全性。服务器端程序对SSL网络通信进行了非阻塞和I/O复用扩展,提高了服务器的并发处理能力。测试结果表明:本文设计的作物生长环境监测系统能够有效进行安全数据传输,并具有较稳定的并发处理能力和数据吞吐率。
作者:王友钊 赵海丹 黄静 单位:浙江大学