APP下载

6LoWPAN网络组播通信方案的研究与设计*

2021-03-01孙佳浩汪诚诚唐道鲜李跃华

计算机工程与科学 2021年2期
关键词:网关联网节点

孙佳浩,汪诚诚,唐道鲜,李跃华

(南通大学信息科学技术学院,江苏 南通 226019)

1 引言

6LoWPAN(IPv6 over Low-Power Wireless Personal Area Networks)是基于IEEE 802.15.4标准实现IPv6通信的低速无线个人局域网标准[1],能够将大量的WSN(Wireless Sensor Network)节点接入Internet,实现WSN节点与外部IPv6网络通过IPv6地址进行端到端的通信[2,3]。

Figure 1 Message protocol format in MAC layer

在6LoWPAN中,链路层采用IEEE 802.15.4协议,而网络层采用IPv6协议[4]。在IPv6中,某些协议需要使用多播通信,例如邻居发现协议NDP(Neighbor Discovery Protocol),但是IEEE 802.15.4本身并不支持多播[5,6]。目前,6LoWPAN网络有一种通过链路层的单播实现网络层组播的通信方案,该方案基于组播树的网络架构,采用地址结构,实现了组播算法。这种方案在有大量节点的情况下,采用链路层单播的方式实现网络层组播将会产生较大的时延,通信效率低[7]。6LoWPAN网络也有通过链路层的广播实现网络层组播的方案,虽然一次可以传送完所有数据,但是显然达不到区分特定数据接收对象的目的。

本文提出的6LoWPAN网络组播通信方案在链路层采用类广播的通信方式,通过链路层的自建组播MAC地址M_MAC_add(Multicast Media Access Control address)实现网络层的组播,实现6LoWPAN网络的动态组播通信。该组播通信方案可以有效地降低多节点通信下,节点接收网关数据的时延,有效减少组外节点对无关数据的处理消耗,提高节点工作效率。

2 相关协议

2.1 MAC层协议

6LoWPAN物理层和MAC层采用IEEE 802.15.4标准[8],在组播通信方式下,MAC层报文协议格式如图1所示,主要分为MHR(MAC Header)帧头、数据单元和MFR(MAC Footer)帧尾[9]。保持目的设备PANID(Personal Area Network Identity)不变,以目标组播组的组播MAC地址作为通信帧中的目的地址,用于标识目标组播组,在该组播组中的6LoWPAN节点接收到该数据帧后,通过逻辑或检查目的地址是否和自身的MAC地址或组播MAC地址匹配,匹配则接收该帧,否则丢弃。

2.2 网络层协议

6LoWPAN网络层采用IPv6协议,在组播通信方式下,IPv6协议报头格式如图2所示。

Figure 2 Message header format in IPv6 protocol

从IPv6协议报头格式中可以看出,IPv6 协议的固定头部有 40 个字节[10],数据帧中采用所有节点组播地址FF02∷1(链路本地地址)作为目的地址[11],当组播组内的6LoWPAN节点接收到该数据帧后,网络层对当前数据帧的IPv6头部进行适配检查,若目的地址为所有节点组播地址FF02∷1,则默认接收该数据帧。

3 6LoWPAN网络组播通信架构

本文提出的6LoWPAN网络组播通信方案由3个模块协调完成,如图3所示,分别为远程IPv6服务器模块、物联网网关模块和6LoWPAN节点模块。

Figure 3 Diagram of 6LoWPAN network multicast communication architecture

远程IPv6服务器模块采用Windows Server主机或者Linux主机,通过系统建立的组播组号池MGNP(Multicast Group Number Pool)来保证各个组播组的独立性,并对6LoWPAN节点进行相应的监测和控制。

物联网网关模块遵循用户设定的组播组消息标准MGMS(Multicast Group Message Standards),负责管理和维护自身所在的6LoWPAN网络下的组播组表MGT(Multicast Group Table),连接6LoWPAN网络和IPv6网络,满足异构网络之间的相互通信。

6LoWPAN节点模块负责配合物联网网关模块,对6LoWPAN节点自身的配置环境进行相关组播配置,完成建立、加入和退出组播组的目的。

6LoWPAN网络组播通信方案采用动态组网方式[12]。6LoWPAN节点加入组播组的过程如下所示:网络所有者或管理人员为网络中每个边界路由器节点配置网络。边界路由器节点启动后,6LoWPAN节点和边界路由器之间通过RPL(IPv6 Routing Protocol for low-power and Lossy networks)路由协议建立组网,完成节点的通信地址配置[13-15]。6LoWPAN节点加入6LoWPAN网络之后,便可向节点所在6LoWPAN网络下的物联网网关申请新建或者加入组播组[16],物联网网关接收到6LoWPAN节点的请求后,告知待入组节点当前6LoWPAN网络下所有的组播组状态和配置信息,待入组节点可以选择需要加入的组播组或者选择新建组播组,并配合物联网网关完成入组配置。入组后的6LoWPAN节点获得一个64位组播MAC地址,完成入组。

4 6LoWPAN网络组播通信方案设计

为了实现6LoWPAN网络中物联网节点的动态组播通信功能,在IPv6服务器端加入组播组号池(MGNP)。与IPv6服务器连接的各个6LoWPAN组播组之间相互独立,由IPv6服务器上的组播组号池分配唯一的组播组号MGN(Multicast Group Number),保证组播组的独立性。物联网网关遵循用户设定的组播组消息标准,该标准区分了各组播组的消息类别,在物联网网关端加入组播组表,表属性包括组播组消息标准(MGMS)、组播组号(MGN)和组播MAC地址(M_MAC_add),其中组播MAC地址由对应的组播组号通过拓展获得,通过组播组表建立每一个独立的组播组号和对应的组播MAC地址的映射关系,实施管理。在6LoWPAN节点端加入预设组播MAC地址位,区别于6LoWPAN节点自身MAC地址,预设组播MAC地址用于接收组播组信息,实现6LoWPAN网内组播通信。

4.1 IPv6服务器端组播组号池设计

IPv6服务器端的组播组号池的数据结构如图4所示,考虑到组播组号的申请和撤销,组播组号池采用队列的结构。申请组播组号时,组播组号池从队列头部分配新的组播组号;撤销组播组号时,在队列尾部插入被撤销的组播组号。通过队列结构的方式,可减少组播组号分配和撤销过程中对组播组号池的处理开销。

Figure 4 Structure of multicast group number pool

4.2 物联网网关端组播组表设计

物联网网关端的组播组表的数据结构如图5所示,考虑到当建立新的组播组时,需要向组播组表中插入新的组播组的信息(组播组消息标准、组播组号和组播MAC地址),以及当撤销组播组时,需要及时从组播组表中删除该组播组的信息,所以组播组表采用链表的结构,以方便插入和删除某个组播组信息。当有新的组播组建立时,在链表的尾部插入该组播组的信息即可;当有组播组表被撤销时,查询到该组播组在链表中的位置后,直接删除该组播组信息即可。通过链表结构的方式,可减少新的组播组插入组播组表及组播组从组播组表中删除过程中对其他组播组信息的处理开销。

Figure 5 Structure of multicast group table

4.3 6LoWPAN节点端预设组播MAC地址设计

6LoWPAN节点端的预设组播MAC地址的数据结构如图6所示,考虑到预设组播MAC地址随着加入组播组或退出组播组而更新,本文采用简单数组的结构,方便地址及时更新。

Figure 6 Structure of the default multicast MAC address

4.4 组播MAC地址设计

组播MAC地址的计算过程如图7所示,组播MAC地址作为6LoWPAN网络组播组内的通信地址,由IPv6服务器分配的组播组号通过拓展获得。将8位组播组号“00000001”中每一位替换成其对应的4位二进制数,再按照MAC地址的标准格式进行地址化分割,得到组播MAC地址的尾部“00:00:00:01”,加上组播MAC地址前缀“FF:FF:FF:FF”得到该组播组对应的组播MAC地址“FF:FF:FF:FF:00:00:00:01”。组播组号的独立性也决定了组播MAC地址的独立性。

Figure 7 Calculation of multicast MAC address

4.5 组播组组网设计

6LoWPAN网络内部组播组的建立与拓展,均由该6LoWPAN网络内的6LoWPAN节点发起,如图8所示。已加入某一个6LoWPAN网络但未加入组播组的6LoWPAN节点向物联网网关发送请求指令,请求当前6LoWPAN网络的所有组播组的信息,物联网网关的处理流程如图9所示,物联网网关接收到6LoWPAN节点发来的请求指令后,对网关自身维护的组播组表进行扫描检查,检查产生如下2种结果:

Figure 8 Flow chart of 6LoWPAN node joining multicast group

Figure 9 Flow chart of gateway processing node joining multicast group

结果1当前的6LoWPAN网络还没有建立组播组,网关的组播组表为空。这种情况下,物联网网关向请求组播组信息的6LoWPAN节点回发请求组网指令。该节点接收到网关的请求组网指令后,向网关发起组网申请。物联网网关接收到6LoWPAN节点的组网申请后,向远程IPv6服务器发起请求,进行组播组号申请。IPv6服务器的处理流程如图10所示,服务器接收到物联网网关发来的组网申请指令后,从组播组号池中为物联网网关分配一个组播组号,并及时对组播组号池进行更新,保证组播组号的独立性。物联网网关接收到IPv6服务器分配的组播组号后,通过4.4节所述计算方法对该组播组号进行处理,获得相应的组播MAC地址,同时更新网关自身的组播组表,更新信息包括组播组消息标准(MGMS)、组播组号(MGN)和对应的组播MAC地址(M_MAC_add),并将该组播MAC地址配置信息回发给请求组网的6LoWPAN节点。节点得到网关的配置指令后,对自身的预设组播MAC地址进行更新(未加入任何组播组的情况下,预设组播MAC地址与节点自身的MAC地址相同),实现入组。

Figure 10 Flow chart of server multicast group number configuration

结果2当前的6LoWPAN网络已经存在组播组,网关的组播组表不为空。这种情况下,物联网网关直接将已有的组播组信息回发给待入组节点。待入组节点收到组播组信息后,可根据组播组消息标准选择加入已存在的组播组或者建立新的组播组。若选择建立新的组播组,系统实现同结果1的处理流程;否则,待入组节点选择想要加入的组播组,并将该组播组对应的组播组号传给物联网网关。物联网网关将该组播组号对应的组播MAC地址回发给待入组节点,协助待入组节点完成入组配置,完成入组。

4.6 6LoWPAN节点退组设计

6LoWPAN节点退出组播组与组播组的建立相同,由想要退出当前组播组的6LoWPAN节点率先发起指令,向当前6LoWPAN网络的物联网网关请求退出组播组,如图11所示。物联网网关的处理流程如图12所示,物联网网关接收到节点的请求退出组播组指令后,向该节点回发确认指令,确认收到该节点的退组请求,该节点可以执行退组配置。待退组节点接收到网关发来的确认信息后,对自身的预设组播MAC地址进行更新,完成后向物联网网关发送完成指令,完成退组配置。物联网网关接收到该节点的完成指令后,向该节点所在的组播组发送查询命令,查询该组播组内当前状态下是否还存在组员节点,查询产生如下2种结果:

Figure 11 Flow chart of node exiting a multicast group

Figure 12 Flow chart of gateway processing node exiting a multicast group

结果1当前组播组内还有组员节点存在,组员节点响应物联网网关查询指令的流程如图13所示。组内节点接收到网关的查询指令后,回发响应信息,告知网关当前组播组内还有节点存在。物联网网关接收到组内节点的响应,完成退组配置。

Figure 13 Flow chart of the node response to a gateway query

结果2当前组播组已空,需要回收该组播组,避免资源浪费。物联网网关一定时间内没有收到组内响应即向IPv6服务器请求撤销相应组播组号。IPv6服务器撤销组播组号的处理流程如图10所示,服务器接收到物联网网关关于撤销组播组号的请求,将对应的组播组号重新载入组播组号池,并及时更新组播组号池,同时物联网网关对自身组播组表进行更新,完成组播组回收配置。

5 实验测试

为了评估6LoWPAN网络组播通信方案的通信延迟和性能,本节通过Cooja模拟实验环境搭建多节点无线传感器网络通信测试平台,进行多节点的单播、广播和组播的通信性能对比测试,模拟实验环境的节点分布如图14所示,为了得到良好的实验结果,模拟实验采用多节点的方式,其中1号节点作为6LoWPAN物联网网关节点,其他节点随机分布在1号节点的最佳通信距离内,保证通信稳定。

Figure 14 Nodes distribution

5.1 节点数据接收时延测试

节点数据接收时延测试主要模拟测试在不同组播方式下,组播组内各个节点接收数据的时延。

模拟测试过程如下所示:单播模拟实验中,1号物联网网关节点与网内节点通过单播来实现组播通信,3号节点需要等待2号节点数据接收完成后才能开始接收数据。广播模拟实验中,物联网网关节点广播数据信息。组播模拟实验中,1号物联网网关节点与网内节点通过组播进行通信,2~16号节点作为组播组内节点接收组播信息,17~21号和22~26号节点在模拟实验过程中分别加入组播组,接收组内信息,27~31号节点未加入组播组,独立接收物联网网关信息。

测试结果如图15所示。在单播实现组播的测试结果中,2~16号节点完成数据接收总共用时9.12 s,实验数据显示,网络内部通信时延与通信节点个数有关,通信节点个数越多,时间越长,网络流量越大。在组播通信的测试结果中,组内节点接收物联网网关数据时间基本一致,通信时间与组内节点个数无关,2~16号节点作为一个组播组接收网关信息,总共用时1.38 s,是单播模拟实验的15.13%,降低了网内节点接收网关数据的时延和网络流量。

Figure 15 Comparison of receiving delay among unicast,broadcast and multicast

5.2 组外节点性能测试

组外节点性能测试主要模拟测试在广播和组播通信下,组内数据对组外节点的影响,对比组外节点的数据处理性能。

模拟测试过程如下所示:广播通信时,组外节点在不接收广播消息时对自身数据进行不间断处理,并记录处理数量,接收到广播消息则处理广播消息。组播通信时,组外节点不接收组内消息,对自身数据进行处理,并记录处理数量。

测试结果如图16所示。在广播的测试结果中,组外节点处理了41条数据,在组播的测试结果中,组外节点处理了57条数据,数据处理效率比广播通信时提升了39.02%。与采用链路层广播实现网络层组播的方式相比,组播通信时,组外节点处理自身数据不受组内信息干扰,有效降低了组外节点对无关数据的处理消耗,提高了节点的工作效率。

Figure 16 Performance comparison of out-of-group nodes

6 结束语

本文设计并实现了一种6LoWPAN网络组播通信方案,利用自组建组播MAC地址实现6LoWPAN网络组播通信,解决了采用链路层的单播实现网络层组播方式时通信时延高、网络流量大以及广播通信时组外节点易受干扰的问题。实验结果表明,本文所设计的6LoWPAN网络组播通信方案中,6LoWPAN节点能够动态构建组播组,实现了组播组通信,并降低了组外节点对无关数据的处理开销,为6LoWPAN网络的组播通信提供了一种设计思路。

猜你喜欢

网关联网节点
CM节点控制在船舶上的应用
“身联网”等五则
《物联网技术》简介
Analysis of the characteristics of electronic equipment usage distance for common users
基于AutoCAD的门窗节点图快速构建
抢占物联网
抓住人才培养的关键节点
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
得MCU者得物联网天下