摩登3咨询:_6L0WPAN在物联网中的应用仿真

引言

物联网是一个基于互联网、传统电信网络等信息载体,让所有能够被独立寻址的普通物理对象实现互联互通,从而提供智能服务的网络系统。国家“十二五”规划明确提出,物联网将会在智能电网、智能交通、智能物流、金融与服务业、国防军事等十大领域重点部署。根据物联网低功耗、低成本等特点的要求,IEEE802.15.4是当前最适合的底层技术,但IEEE802.15.4标准只定义了其中的两层,即物理层(PHY)和MAC子层。位于这两层以上的层在IEEE802.15.4中并没有定义,为此,本文根据IEEE802.15.4的特点,给出了ZigBee和6LoWPAN在其IEEE802.15.4标准上层应用规范中的两种最典型的实现形式。

1总体设计

图1所示是基于IEEE802.15.4的网络层协议示意图。

本文主要研究的是基于6LoWPAN的物联网。实际上,物联网可能有很多个节点,并且可能通过Internet与其它节点互联。为了能够与其它IP设备互操作,物联网网关需要使用IP协议作为网络层协议,物联网内部节点间可以使用其它协议,但为了方便与网关连接,合理的方法应该是采用IP协议。6LoWPAN的目标就是在IEEE802.15.4MAC层上构建IPv6协议栈,使物联网能够平滑地连接到IPv6Internet。

为了实现与IPv6Internet的互联,本文给出了如图2所示的总体设计。该协议中间采用的是双协议栈网关,其中一边是IPv6网络,一边是由物联网感知节点组成的网络,然后通过网关实现两种网络的相互通信。

但这种设计仍然存在以下问题:第一是IPv6包头很大,而IEEE802.15.4MAC净荷仅有127B,所以需要对IPv6包头进行压缩以便腾出位置;第二是IPv6数据包支持的最小字节数(1280B)远大于IEEE802.15.4帧所能包含的字节数(127B),因此,必须拆包才能装进IEEE802.15.4帧中;第三,因IPv6地址数量为海量,故将导致路由表太长,如果在IP层选路,则选路时间太长,难以接受。为此,本文在6L0WPAN体系结构中引入了一个适配层,并在该层完成数据分片与数据重组、压缩和选路等功能。图3所示是其压缩与分片示意图。

1.1包头压缩的设计

虽然IEEE802.15.4帧保留了81B的空间来供IPv6使用,但是仅IPv6报头就占了40B,而如果使用UDP报文的话,UDP报头还要占用8B,剩余空间就更加有限。因此,必须使用报头压缩技术来提高报文的净荷传输率。

6LoWPAN报头压缩的基本思想首先是使报头中所有在连接过程中保持不变的域都可以完全压缩掉;第二是使报头中变化的、可以预先知道的域也可以压缩掉;第三,使得报头中由链路层可获知的信息域也可以压缩掉;第四,使报头中有些域的存在是有条件的或是可选的,这样,对于特定应用就可以去掉。

其具体的压缩见表1所列。

1.2MeshDelivery字段的改进

基于IEEE802.15.4可以构建星形、树状和Mesh状网络拓扑结构。星型拓扑的无线网络结构简单,覆盖范围小,链路冗余度差,可靠性低,拓扑扩展不便;树状拓扑结构适合于节点静止或者移动少的场合,其路由属于静态路由,不需要存储路由表,它对传输数据包的响应较快,缺点是所选择的路由并非是最佳的路由;而Mesh状的网络则适合节点移动频繁和节点数目多的场景,因而更适合于实际的应用。

字头字段IPV6长度40B6LoWPANHC1长2B说明版本4――已认定为IPv6业务流分类810=不压缩1=压缩,业务类别与流标签均为0流标签20净荷长度16――从MAC帧长度或适配层数据报大小(6LoWPAN的分拆字头)得到下一头部82分组总是使用TCP/UDP/ICMP6:11表示分拆头,10表示多跳头,01表示非6LoWPAN帧,00表示快信帧剩余跳数88不变源地址1282源和目的地的IPv6地址总是本地的,因此网络前缀可压缩为取值为1的1b,另一个比特设为1表示省略了64b的接口识别符,因为目的地能够从链路层地址或网状选路的寻我头中导出目的地址1282HC2编码――1跟着HC1字头的另一种压缩方案于节点静止或者移动少的场合,其路由属于静态路由,不需要存储路由表,它对传输数据包的响应较快,缺点是所选择的路由并非是最佳的路由;而Mesh状的网络则适合节点移动频繁和节点数目多的场景,因而更适合于实际的应用。表16LoWPAN对IPV6头部的压缩从适配层分片报文格式可知,除了第一片外,后续分片的MeshDelivery字段都要添加适应层源地址和适应层最终目的地址,这样就无形中大大增加了网络的负载。为了减少负载,可以对后续分片进行修改。由于后续分片和第一片的适应层源地址和适应层最终目的地址完全相同,因而可以取消后续片的地址字段。为了不改变原来的选路功能,可用datagram_tag字段取代地址字段,把原来较长的MeshDelivery地址字段改成仅需9b的datagram_tag字段,这样就减少了后续分片所增加的负载,提高了网络的利用率。在进行选路时,可通过读取datagram_tag字段获取地址,由于后续片的datagram_tag字段值和第一片相同,所以,就可通过该字段获取第一片的地址,这样就能实现选路功能。修改后的MeshDelivery字段格式如图4所示。

另外,由于选路时读取的是9b的datagram_tag字段值,要比读取源地址和最终目的地址快得多,每个分片都会节省大量时间,这样,总的时延也就减少了很多,从而大大降低了传输时延。

1.3感知节点与IPv6节点的通信过程

感知节点与IPv6节点进行通信时,首先由IPv6节点向目的感知节点发送一个获取采集数据的请求数据包,此数据包到达网关时,网关将IPv6请求数据包进行精简(即压缩),然后根据IPv6报文是否需要分片的要求分别用相应的适配层头部封装精简过的IPv6数据包,最后将其封装成IEEE802.15.4帧在链路层进行传输,然后到达目的感知节点;目的感知节点接收到所有的分片后,对分片进行重组,然后处理IPv6报文中的应用层数据(即服务请求消息),处理完成后,再用精简的IPv6报文头部按分片的要求对响应数据进行封装,以将其封装成IEEE802.15.4帧进行传输;之后,即可根据适配层头部信息对返回的IPv6报文进行重组,并对精简IPv6报头进行还原操作;最后,再将完整的IPv6报文封装到IPv6网络所使用的链路层帧中,并将其发送到IPv6网络上,IPv6网络按照IPv6路由方式将此帧路由到源节点,以结束传输过程。

2仿真结果分析

改进结束后,即可在仿真环境下比较改进后的6LoWPAN协议与原协议的性能。可在仿真区域内布置1个网关节点与150个感知节点,为了取得明显的效果,选择的数据包都应是大于1500B的数据包,通过实验可对改进后的6LoWPAN协议与原协议的平均传输成功率、平均延迟时间性能进行分析。其中,平均延迟时间是指发送方发送数据包时刻到接收方接收到数据包时刻之间的平均时间间隔,其分析结果如图5所示。

由图5所示的仿真结果可见,改进后的6LoWPAN协议,不但没有对选路产生影响,反而还在一定程度上提高了数据包的接收率。另外,改进后的协议在减少开销的同时,选路时也减少了延迟时间,其原因是对于分片的报文,只读取了9b的datagram_tag字段,从而要比读取较长地址字段大大节省时间。

3结语

本文提出了一种基于6LoWPAN物联网的应用方案,并在原有6LoWPAN协议的基础上对Mesh路由字段进行了改进。最后,在网络仿真环境下对本协议的数据包接收率、平均延迟时间等性能参数进行了比较分析。实验数据表明,经过改进的6LoWPAN协议具有更好的性能。