APP下载

基于6LoWPAN的嵌入式多网关系统设计与实现

2018-10-16屈启吉

计算机应用 2018年9期
关键词:行路以太网网关

屈启吉,郑 霖

(广西无线宽带通信与信号处理重点实验室(桂林电子科技大学),广西 桂林 541004)

无线传感器网络(Wireless Sensor Network, WSN)是由部署在监测区域内大量传感器节点相互通信形成的多跳自组织网络系统,是物联网底层网络的重要技术形式[1]。而6LoWPAN(IPv6 over Low power Wireless Personal Area Network)是一种在资源限制、低速率和有损的网络中采用IPv6(Internet Protocol version 6)协议覆盖的网络技术,它提供了一个固定的和可修复的无线局域网结构[2]。IPv6的应用解决了网络地址缺少的问题,并且无状态配置功能能够很好地适应传感器节点的部署,其所具有的特性能较好地满足传感器网络的需求[3]。在6LoWPAN网络中,传感器节点将采集到的数据经过传输、转发和汇聚到达网关节点,然后从网关节点中将数据发送至外网。6LoWPAN网关节点对处理能力、存储大小、通信能力、路由和控制功能的实现是6LoWPAN网络实际应用的关键。

由于现有6LoWPAN标准不支持多网关,在无线传感器网络以及6LoWPAN网络的应用中,单网关的以太网接入是实现自组网和互联网数据通信的主要手段。国际互联网工程任务组(Internet Engineering Task Force, IETF)在RFC6775(Request For Comments 6775)[4]中定义了边界路由器(Border Router),并阐明了6LoWPAN网络中存在多个6LoWPAN边界路由器(6LoWPAN Border Router, 6LBR)的可能性。文献[5]提出了一种连接WSN和IPv6主机的可用WSN网关,实现了传感器节点和因特网设备端到端的实时连接。文献[6]使用基于边界路由的6LoWPAN网关,并在此基础上研究6LoWPAN报头压缩和分片重组问题。文献[7-8]分别在CC2538平台和BBB(Beagle Bone Black)平台完成6LoWPAN Border Router设计,在前向兼容IPv4的同时实现IPv6的以太网接入。文献[2]提出一种分布式多网关动态负载平衡方案MLEq(Multi-gateway Load balancing scheme for Equilibrium),实现6LoWPAN全局的负载均衡,并与低功耗有损网络(Low-power and Lossy Network, LLN)路由协议(Routing Protocol for LLN, RPL)进行性能比较,但该方案只是强调多网关下的负载平衡策略,并没有提及多网关系统的具体实现。文献[9]设计完成了基本6LoWPAN多网关系统方案,但其网关的以太网接入和网关间互通是基于个人计算机(Personal Computer, PC)实现的,且未考虑到实际网络的网关部署。而在无线网格网络(Wireless Mesh Network, WMN)中,多网关的应用研究主要是在节点分簇和网关负载均衡方面。文献[10-12]的多网关模型中,通过使用不同的负载均衡机制实现多网关互联接入,但由于网络拓扑结构的差异性,WMN网络中的多网关模型不能直接参考用于6LoWPAN网络。

单网关架构下的6LoWPAN网络数据传输系统中,网关负责整个网络数据的汇聚和处理,并完成与外网的交互。当网络中节点数量较多、数据流量较大时,容易造成时延和数据拥塞,严重时会导致整个网络的瘫痪。在6LoWPAN网络中采用多网关架构可以有效地解决这个问题,并且能够减少网络中节点的能耗和提高网络整体吞吐量。因此,多网关的实现对于6LoWPAN网络的大规模部署具有重要意义,同时,也为后续6LoWPAN网络的多网关部署和网络结构优化研究提供了基础。本文设计实现一种基于6LoWPAN的嵌入式多网关网络系统,实现嵌入式双模网关和多网关架构。补充优化6LoWPAN标准协议,完善上下行数据的多径路由和网关选择,实现了6LoWPAN的多网关Internet接入和网络整体性能的提升。

1 基于6LowPAN多网关系统设计

1.1 系统框架

根据6LoWPAN协议标准,根节点通过目标函数构建目的导向的有向无环图(Destination Oriented Directed Acyclic Graph, DODAG)[13],DODAG根充当边缘路由器(border-router),形成单border-router重叠多簇结构。而现实中存在单簇含有大量节点的情况,在此环境中,以及大范围部署6LoWPAN环境中,适宜采用多网关(多border-router)结构。在此结构中,可靠传送链路工作的多个边界路由器能够作为到相同DODAG汇接点的逻辑等价接口。

多网关系统由一个根网关(root-GW)和一个或者多个普通网关(common-GW)构成,其系统架构如图1所示。

6LoWPAN多网关网络中,根据DODAG类树形拓扑情况,由根节点,也就是根网关(root-border-router)完成节点分簇,形成几个网络分支。各网关负责完成分支内传感器节点的数据汇聚和转发,而根网关是则整个网络数据的交换中心。因此,根网关和普通网关之间存在大量的数据交换,使用传统的无线链路传输,容易造成数据拥塞和丢失,从而降低了网络的性能质量。为减轻网关间无线链路的数据流量负荷,在根网关和普通网关之间搭建基于以太网连接的互联网协议(Internet Protocol, IP)隧道,隧道的具体实现将在2.3节介绍。利用IP隧道在根网关和普通网关间建立有线连接,保证了传感器节点的数据能够可靠且有效地汇聚到根网关;与此同时,也减少了无线链路的占用和对网关周围传感器节点的无线干扰。

图1 多网关系统框架示意图

1.2 路由方案

6LoWPAN使用RPL路由协议进行网络组建和路由实现, RPL路由存在上行路由和下行路由的概念:1)通过DIS(DODAG Information Solicitation)和DIO(DODAG Information Object)消息建立上行路由。2)通过前缀宣告(DODAG Destination Advertisement Object, DAO)和前缀宣告应答(Destination Advertisement Object Acknowledgement, DAO-ACK)消息建立下行路由。对于信息的处理,下行路由有两种模式,“存储”模式和“非存储”模式。

本多网关方案采用“存储”模式,父节点中存储网关信息,备网关选择时使用。RPL路由中,根据rank值判断下一跳为上行路由还是下行路由,但多网关寻址过程并不一定满足此标准。因此,在RPL路由扩展首部的路由方式标识字段中增加上行和下行路由标志,保证路由实现。在DAO消息的报文中增设网关信息选项,其中加载网关IP地址,为多网关系统的网关选择和路由实现提供条件。

在多网关系统中,分支内路由根据RPL建立的路由信息实现,网关间路由则根据实际拓扑情况结合网关选择算法实现。上行路由,节点根据上行网关选择算法确定向上路由网关,普通网关的数据经过IP隧道到达根网关。下行路由,根网关根据进入6LoWPAN数据分组的目的IP地址,判断所属网关,并完成数据分流。

2 嵌入式多网关系统实现

2.1 硬件实现

嵌入式6LoWPAN双模网关采用模块化设计,其硬件结构如图2所示。网关主要由三部分组成,处理器模块、射频模块和以太网模块。处理器模块选用的是STM32F103,其内存和运算能力满足Contiki操作系统要求。射频模块选用ATMEL公司的AT86RF231射频芯片,工作频段为2.4 GHz,适用于IEEE802.15.4标准。在6LoWPAN网络中,传感器节点之间通过射频模块进行无线传输,完成信令交互和数据转发,在此基础上组建和维护传感器网络。以太网模块选用的是ENC28J60以太网控制器,其具有最高速度可达10 Mb/s的SPI接口,以及8 KB的发送/接收数据包双端口静态随机存取存储器(Static Random-Access Memory, SRAM)。在网关节点中,以太网模块将传感器网络汇聚的信息发往以太网,或者接收来自外网的数据,该模块是实现6LoWPAN和Internet网际互联的关键。

在硬件结构上,普通节点中没有以太网模块,而在网关节点中,以太网模块采用与母板适配的信号和电源接口,并通过物理插接实现。以太网接入的模块化实现,为前期多网关部署以及后期网络维护提供了硬件基础。

图2 嵌入式多网关硬件结构

2.2 网关选择算法

在网关作为传感器节点的子节点的情况时,其结构示意图如图3(a)所示,上行网关选择算法在节点1/2/3中实现,根据父节点到根网关与普通网之间的相对距离差进行判断。6LoWPAN中节点rank值按树形拓扑依次递减,因此算法可以转换成rank差值的比较问题,父节点在上行路由时选择rank差值较小的网关。节点1向外网发送数据包,其到root-GW的rank差为1,到common-GW的rank差为2,因此节点1选择root-GW为上行路由所经过的网关。下行网关选择算法在根网关中实现,根据存储的节点和网关信息,计算出数据包在不同路径下到达目的IP的rank差值,确定最终路由经过的网关。外网向节点2发送数据包,通过root-GW到达的路径rank差为2,通过common-GW到达的路径rank差为1,因此选择common-GW作为下行路由所经过的网关。

在网关作为根网关的一级子节点的情况时,其结构示意图如图3(b)所示,上行网关选择算法和下行网关选择算法的实现比与第一种情况简单,只需根据RPL路由协议中网关存储的路由信息,即可确定数据路由所需经过的网关。节点4的上下行路由所经过的网关为root-GW,节点5为common-GW。

图3 多网关结构示意图

2.3 软件实现

嵌入式网关协议栈的分层结构如图4所示,左侧为以太网的IP协议,右侧为6LoWPAN的uIP协议,二者在IPv6网络层进行数据交换。

为了满足6LoWPAN网络和IP网络的融合,在网络协议模型的网络层和数据链路层之间增加了一个特殊的适配层。其主要功能是帧头压缩、分片重组、多播支持、网络拓扑构建和地址分配以及媒体访问控制(Media Access Control, MAC)层路由[14],这些功能使得6LoWPAN能够进行基于IPV6的数据通信,促进了6LoWPAN网络的IP化。

uIP实现了进行网络通信所需的必要协议机制,提供基础的用户数据报协议(User Datagram Protocol, UDP)服务,通过使用一个单独的全局buffer来处理数据包,并用一个固定大小的表来保持连接状态。在uIP中使用时间驱动接口,当有事件发生时,通过UIP_APPCALL( )调用相应的应用程序进行处理。

从Internet到6LoWPAN的实现过程如下:Internet侧的数据由以太网物理层接口进入,向上传递至MAC层,并在IPv6网络层实现数据的横向对接,到达6LoWPAN侧;再由此向下经过适配层头部压缩和数据包分组,到达IEEE802.15.4MAC层,经过Framer模块组帧。最终,在Radio层驱动下,经IEEE802.15.4物理层发送至6LoWPAN网络内部。

图4 网关协议栈分层结构

2.4 网关之间的隧道功能实现

网关承载了整个分支的流量负载,一个稳定的数据链路是实现网关间大量数据交换的关键。嵌入式多网关系统利用有线的以太网连接,通过路由器,建立起根网关和普通网关间的IP隧道。隧道基于contiki的UDP-socket实现,将待发数据连同IP头一起封装进UDP包,经过UDP协议的端到端传输,在相应网关接收端对UDP进行解封。

UDP-socket包括三部分:初始化、socket发送和socket接收。在嵌入式多网关系统中,根网关作为服务器,普通网关作为客户端。socket初始化时,服务器和客户端通过simple_udp_register函数绑定地址和端口,并确定传输协议。初始化完成后,根据处理需要调用socket发送和socket接收函数。作为服务器的根网关,不仅要处理来自普通网关通过IP隧道发送的UDP包,同时还要接收来自外网的IP数据包。在根网关以太网线程中,首先对接收到数据包进行UDP-socket包判断,如果是则转至socket接收。否则判断其目的IP地址所属网关,如果是普通网关则进行socket定向发送,完成数据转发;如果是根网关,则直接进入RPL网络。

3 多网关系统测试

本文在实验室环境下搭建了多网关网络测试平台。在这个平台中,包含6个普通节点和2个网关节点(根网关、普通网关),使用交换机构建局域网模拟Internet,PC模拟为网上用户。通过PC和6LoWPAN节点间的数据通信,完成传输时延、丢包率和吞吐量的性能测试。在相同拓扑结构的条件下与单网关系统进行对比测试,分析并总结多网关系统的性能优势。

测试网络拓扑结构如图5所示,其中1~2号为网关节点,3~8号节点为普通节点。

图5 测试网络拓扑结构

6LoWPAN节点以及PC的IP地址信息如表1所示,为了区别6LoWPAN和Internet,PC和节点的IP地址采用不同的网络前缀。

表1 设备IP地址信息

3.1 传输时延

在多网关系统中,利用基于IPv6的因特网数据报文协议(Internet Control Message Protocol, ICMP)通信协议及ICMP数据包定义,完成在不同包长度下的网络连通性测试。在相同拓扑结构、不同数据包长度条件下,完成单网关和多网关系统的数据通信性能对比。

测试结果如表2和图6所示。

表2 多网关系统节点在不同数据包长度下的ICMP通信时延

由于距离根节点的跳数的不同,对于相同长度的数据包网络中各节点时延不同。为了适配IEEE802.15,6LoWPAN适配层对数据包进行分片、重组。对单个节点而言,传输时延随着数据包长度的增加而增加。对于不同网关架构的网络,相比单网关,多网关系统利用有线隧道优化了网关间的数据传输链路,从而能有效地减少网络中的传输时延。

图6 单网关和多网关系统时延

3.2 丢包率

6LoWPAN中的节点采用无线链路进行数据传输,具有低速率和低可靠的特性,因此网络中存在丢包情况。在相同拓扑结构和节点部署的条件下,对比测试单网关和多网关系统的ICMP数据包丢包率。结果如图7所示,随着节点(node8、node3、node4、node5)距离网关跳数的增加,路由线路中不可靠链路数量增加,丢包率增大。单跳节点在两种网关结构下丢包率都为0,而对于多跳路由的节点,多网关系统在丢包率方面的性能表现优于单网关系统。

图7 单网关和多网关系统丢包率

3.3 吞吐量

吞吐量是衡量网络系统性能的一个重要指标,其定义为数据在网络上的传输速率,实验中采用链路上的数据传输速率表征。根据节点在ICMP通信中不同数据包长度下的延时测试,计算出端到端链路的数据传输速率。在相同拓扑和部署条件下,对比测试单网关和多网关系统的吞吐量。如图8所示,分别使用8 B和32 B的数据包进行测试,多网关系统的数据传输速率均大于单网关。由于多个网关的数据流量分担,在网关协议的协调作用下,多网关系统能够在一定程度上提高网络的吞吐量。

图8 单网关和多网关系统数据传输速率

4 结语

本文设计了一个基于6LoWPAN的嵌入式网关,并通过网关间IP隧道完成了6LoWPAN网络多网关的实现,解决了因单网关瓶颈所带来的网络拥塞问题。通过以太网模块的硬件设计以及网关协议栈的完善,实现了网关节点的集成化,方便了6LoWPAN网络的部署和优化。在实验室环境下,搭建6LoWPAN多网关系统网络,完成以太网与内网节点的连通性测试,表明该嵌入式多网关方案有效可行;并通过与单网关系统在丢包率和吞吐量方面的对比,证明嵌入式多网关能够提升6LoWPAN网络可靠性和吞吐量方面的性能。为探索6LoWPAN多网关部署和最佳网关位置选择问题的研究,提供了一个基础的验证平台。

猜你喜欢

行路以太网网关
资兴市:不忘来时路 走好前行路
基于FPGA的工业TSN融合网关设计
举步有礼 行路不难
一种主从冗余网关的故障模式分析与处理
反洗钱行路致远
天地一体化网络地面软网关技术及其应用
车联网网关架构的设计
三大因素驱动创新提速以太网快步迈入“灵活”时代
三大因素驱动创新提速 以太网快步迈入“灵活”时代
谈实时以太网EtherCAT技术在变电站自动化中的应用