王晓喃,高德民
(1. 常熟理工学院计算机科学与工程学院 江苏 常熟 215500; 2. 南京理工大学计算机科学与技术学院 南京 210094)
下一代全IP无线传感器网络的研究与设计
王晓喃1,2,高德民2
(1. 常熟理工学院计算机科学与工程学院 江苏 常熟 215500; 2. 南京理工大学计算机科学与技术学院 南京 210094)
提出了基于6LowPAN体系结构的下一代全IP无线传感器网络的设计方案。该方案提出了传感器节点的IPv6地址结构,基于该结构的地址自动配置方案与路由方案,以及适配层的分片方案与适用于无线传感器网络的IPv6协议精简方案。在物理实验环境及仿真环境下实现了该方案,并分析了其性能,实验结果证明了该方案的有效性和正确性。
体系结构; 通信; 网络; 协议; 路由
随着下一代互联网(IPv6)的不断成熟和发展,WSN与下一代互联网实现全IP通信互联已成为发展的必然趋势[1]。目前,实现WSN与下一代互联网的全IP通信互联需要解决如下关键技术[2-3]。(1)地址自动配置:现有的有状态地址配置会带来大量的控制消息开销,根据MAC地址生成IPv6地址的无状态地址配置,未给传感器节点间的路由寻址带来任何方便。(2)路由方案:在IPv6网络中,路由器与普通节点之间有数据链路层连接,且可以通过一跳到达,而无线传感器节点具有路由器与普通节点双重身份,节点之间没有数据链路层连接。(3)IPv6协议栈优化:IPv6最初并没有考虑嵌入式应用,要在传感器节点上实现IPv6协议,必须对IPv6协议进行合理精简。
针对WSN已经提出了很多种路由方案[4-6]。由于这些路由方案是基于以数据为中心的工作机制,因此很难应用到以地址为中心的网络中。文献[7-8]提出了IPv6协议栈优化方案,但该方案的指数级时间和空间复杂度较大,因此不适合WSN使用。文献[9]提出了一种利用移动IPv6技术实现WSN与IPv6网络全IP互联的方案,但该方案没有提及传感器节点的IPv6地址自动配置方案以及IPv6协议栈优化方案。文献[10]提出的基于IPv4的传感器网络地址配置方案,由于IPv6地址与IPv4地址存在很大差异,因此该方案无法应用于下一代全IP无线传感器网络。针对上述关键技术,6LoWPAN提出了自己的体系结构[11-12],引入适配层实现IPv6数据包的分片与重组。
1.1.1 传感器节点地址格式
本文方案对传感器节点以及IPv6接入网关采用的地址格式如表1所示。
表1 传感器节点IPv6地址格式
一个传感器节点的IPv6地址包括全局路由前缀和传感器节点ID两部分。针对全局路由前缀,一个传感器网络中所有传感器节点的IPv6地址的全局路由前缀都相同,其中,n值可根据传感器节点分布密度与传感器网络规模大小进行调整,本文n值取32;而传感器节点ID唯一地标识了一个传感器网络中的一个传感器节点。
传感器节点的IPv6地址的全局路由前缀,来源于传感器节点所属IPv6接入网关树树根节点的IPv6地址的全局路由前缀。本文方案将传感器节点ID划分为多个等级,i比特为一个等级,且i值可根据传感器节点分布密度和传感器网络规模大小进行调整,本文i值取4,IPv6接入网关的等级最高。因此,一个传感器网络区域内最多可以包括15棵以IPv6接入网关为根节点的树,称作IPv6接入网关树。IPv6接入网关树的深度为8,树中节点的子节点数最多为15。本文方案定义传感器节点第一次加入网络时获取的IPv6地址为永久地址,获取永久地址时所在的IPv6接入网关树称为该节点的归属接入网关树。当传感器节点移动脱离归属接入网关树重新加入其他IPv6接入网关树时,获取的IPv6地址称为转交地址,获取转交地址时所在的IPv6接入网关树称为该节点的外区接入网关树。
1.1.2 传感器节点获取IPv6地址
传感器节点拥有一个永久地址字段和一个转交地址字段,它们的初始化值为0。
图1 传感器节点获取IPv6地址
一个传感器节点X采用下述地址自动配置算法获取(永久或者转交)IPv6地址:
(1)X广播IPv6接入网关树的加入消息。
(2)加入消息广播范围内的传感器节点A收到加入消息后,如果节点A的永久地址与转交地址相同(说明A发生移动又回到原来位置)或者转交地址为0(说明A没有发生过移动),且节点A的永久地址有剩余地址,则向节点X返回一个响应消息,其负载内容为分配的IPv6地址,否则,转到步骤(1)。
(3)节点X收到返回的响应消息后,根据返回响应消息中的传感器节点ID,计算出返回响应消息的传感器节点与其归属接入网关树树根节点的距离,选择跳数最少的节点做为父节点。
(4)如果父节点的IPv6地址与X获取永久IPv6地址时的父节点的IPv6地址相同,且X的永久地址不为0(说明X发生移动之后回到最初获取永久地址的位置),那么X将转交地址的值设置为0,转到步骤(6),否则X向父节点返回一个ACK确认消息。本文中如果X的永久地址为0(说明X为新加入节点),X将分配的IPv6地址赋值给永久IPv6地址字段,并且把该地址发送到归属接入网关树的树根节点,树根节点会将X的永久地址以及转交地址(为0)加入到地址对照表中。如果X的永久地址不为0,则将分配的IPv6地址赋值给转交IPv6地址字段,并向归属接入网关树的树根节点进行注册操作。
(5)父节点收到确认消息后,将地址控制字段的相应比特位进行标记以避免重复分配。
(6)传感器节点成功加入IPv6接入网关树并获取IPv6地址,如图1所示。
如果传感器节点没有收到任何响应消息,随着新节点的不断加入及节点的不断移动,传感器节点会定期重复步骤(1),直到收到响应消息。
1.1.3 传感器节点注册
每个IPv6接入网关树的树根节点都有一个地址对照表,记录树根节点获取永久地址的传感器节点的永久地址与转交地址的对应关系。
当一个传感器节点X加入新的IPv6接入网关树T′时,它必须按照如下步骤向X的归属接入网关树T的树根节点R进行注册操作:(1)X向T′的树根节点R′发送一个Reg消息,该消息包括X的永久地址与转交地址;(2)R′收到Reg消息后,将该消息以多播方式发送给其他IPv6接入网关;(3)X归属接入网关树树根R收到该消息后,用消息中的转交地址更新对照表中相应传感器节点的转交地址。
1.1.4 传感器节点释放IPv6地址
如果传感器节点电量低于某个特定阈值,则认为该节点处于失效状态。如果传感器节点检测到自己的电量趋于失效状态时,则向获取永久地址时的父节点(称为永久父节点)与获取转交地址时的父节点(称为转交父节点)发送Leave消息请求释放IPv6地址,该消息会按照Ipv6协议栈优化的路由方式分别到达两个父节点,父节点收到Leave消息后,会将地址控制字段的相应位设置为Free(即0)。同样,当传感器节点X由于发生位置移动而脱离所在的IPv6树时,如果此时它的转交地址不为0,节点X则向转交父节点发送Leave消息,转交父节点收到Leave消息后将地址控制字段的相应位设置为空闲状态。
当X节点检测到自己即将失效时,它会通知其子孙节点加入新的IPv6接入网关树获取新的地址,如果子孙节点当初从X处获取的是永久地址,那么它们将永久地址字段设置为0,重新加入新的IPv6接入网关树获取新的IPv6永久地址;如果子孙节点从X处获取的是转交地址,那么它们重新加入新的IPv6接入网关树获取新的IPv6转交地址。当X位置发生移动离开所在的IPv6接入网关树时,X要通知其子孙节点重新加入新的IPv6接入网关树,以获取新的IPv6转交地址。
本文路由方案将传感器节点ID作为链路层地址,在传感器网络内部采用链路层地址(传感器节点ID)实现路由查找和报文转发,其优点是:(1)报文在路由过程中经过的中间节点只需要在链路层对报文进行处理和转发,无需处理其他层的头部结构,降低了节点的功耗,提高了路由报文的处理速度;(2)路由方案使用链路层地址路由报文,无需在每个报文分片中都包含IPv6头部,提高了报文处理效率和报文分片的利用率;(3)用链路层实现路由寻址,无需考虑永久地址与转交地址的转换问题,即网络层地址使用永久地址,链路层地址为转交地址的传感器节点ID,缩短了路由处理时间,降低了节点功耗。
此外,本文方案采用6LoWPAN体系结构,即链路层采用IEEE802.15.4协议传感器节点定期广播信标帧(beacon request,类型为0x07)以示自己的存在。本文方案定义信标帧的负载内容为其下一次信道采样时间,每个传感器节点通过接收相邻节点的信标帧,记录接入网关树中具有父子关系节点的下一次信道采样时间。通过该方式,传感器节点只在对方下一次信道采样时间被唤醒并发送数据,其余时间处于休眠状态,有效地节省了传感器网络功耗。
IPv6网络节点N使用传感器节点X的永久IPv6地址与其通信,通信过程如下:(1)IPv6节点N向传感器节点X发送采集其数据的服务请求消息,消息的目的地址为节点X的永久IPv6地址;(2)服务请求消息在IPv6网络中按照IPv6路由方式到达IPv6接入网关树的树根节点W,由于本文方案中一个WSN内可能存在多个IPv6接入网关树,因此W所在的树与X获取永久地址的归属网关树可能不是相同的树(通过比较X与W的传感器节点ID可知它们是否位于相同的树内)。树根节点通过多播方式将服务请求消息发送给同一个WSN中的其他IPv6接入网关,最终服务请求消息到达X节点,获取永久地址的归属接入网关树T的树根节点R;(3)R查看地址对照表,如果X的转交地址不在本树中,R通过多播方式将服务请求消息发送给同一个WSN中其他IPv6接入网关,最后服务请求消息到达X外区接入网关树T′的树根节点R′;(4)R(R′)提取X的链路层地址(当转交地址为0时,链路层地址为X永久IPv6地址的传感器节点ID,否则为X转交IPv6地址的传感器节点ID),对精简后的IPv6报文(IPv6报文头部的目的IPv6地址为X永久IPv6地址的传感器节点ID)进行分片处理,用IEEE802.15.4帧格式封装分片报文,IEEE802.15.4帧的目的链路层地址为X的链路层地址,源链路层地址为X所在树树根节点(R或R′)的传感器节点ID,然后按照树内路由方式将分片路由到X节点;(5)X接收到分片后,先对分片进行重组,然后对请求消息进行处理,对应答消息进行分片处理,用IEEE802.15.4帧格式封装分片报文,IEEE802.15.4帧的目的链路层地址是原来的源链路地址,源链路层地址为原来的目的链路地址;(6)X将应答消息分片发送到其父节点,父节点再将该消息发送到父节点,以此类推,直到到达所在树树根节点R(R′),R(R′)对应答消息分片进行重组,从返回消息的IPv6报文头部获取X永久IPv6地址的传感器节点ID,与自身的全局路由前缀结合,还原节点X完整的永久IPv6地址,用以太网帧格式封装还原后的IPv6报文,将完整的IPv6报文发送到IPv6网络上,IPv6报文按照IPv6路由方式路由到目的节点N。至此,IPv6节点N与传感器节点X的一次通信过程结束,路由过程如图2所示。
图2 路由过程
树内路由是指消息分片在IPv6接入网关树内进行路由。当IPv6接入网关树树根节点R将分片发送给本树内某个节点X时,该分片在树内路由的过程如下:R将消息发送到与X的IPv6地址的传感器节点ID最匹配的孩子节点C上;C收到消息后,同样将消息发送到与X的IPv6地址的传感器节点ID最匹配的孩子节点C′上,以此类推,最后分片到达X节点,如图2所示。
WSN的报文处理比较简单,因此无需事先扩展头部。本文方案在IPv6报文头部中引入一个控制域,在控制域后是IPv6头部与IPv6报文载荷,如表2所示,控制域控制IPv6报文头部相应域的格式,如表3所示。
表3中的Version、Traffic Class、Flow Label字段如果没有优化,相应比特位为0;如果报文中不存在Version、Traffic Class、Flow Label字段且默认值分别为6、0、0、相应比特位为1。Next Header字段如果没有优化,相应比特位为00;如果报文中不包含Next Header域且报文负载为ICMPv6报文,则相应比特位为01;如果报文中不包含Next Header域且报文负载为UDPv6报文,则相应比特位为10,如果报文中不包含Next Header域且报文负载为TCPv6报文,则相应比特位为11。源地址字段如果没有优化,相应比特位为00;如果源地址为16位短地址,相应比特位为10;如果源地址为EUI-64位扩展地址,相应比特位为01;如果没有源地址字段,相应比特位为11。目的地址字段如果没有优化,相应比特位为00;如果目的地址为16位短地址,相应比特位为10;如果目的地址为EUI-64位扩展地址,相应比特位为01;如果没有目的地址字段,相应比特位为11。
表2 精简的IPv6报文格式
表3 IPv6头部控制域
本文方案在WSN内部采用传感器节点ID实现路由寻址,即IEEE802.15.4帧中的链路层地址为传感器节点ID。精简后的IPv6头部的目的传感器节点地址可以不包括全局路由前缀,通过与IPv6接入网关的网络路由前缀结合来获取目的传感器节点完整的IPv6地址。
物理实验环境中的传感器节点采用Micaz节点,其支持IEEE802.15.4协议。物理实验环境的WSN拓扑结构如图2所示,其中传感器节点的IPv6地址根据本文方案自动配置。实验通过向IPv6地址为3fe8:1:1:1:1:1:1220:0/96的传感器节点发送Ping报文测试与传感器节点通信的正确性,测试结果如图3所示。
图3 传感器节点与IPv6节点互通实验
在NS-2环境下对本文方案进行了仿真测试,仿真区域为100×100 m2,该区域内包含2个IPv6接入网关及200个传感器节点,传感器节点以0.5 m/s的速度随机移动,传感器节点的初始能量为2 J。仿真环境中,数据源传输速率为128~1 024 b/s,传感器节点带宽为19.2 kb/s。实验对本文方案及文献[9]提出的方案(以下简称已有方案)进行了性能测试,测试的性能参数包括数据包接收率、平均延迟时间及平均消耗能量,其中,平均消耗能量指传感器节点在每个轮回中消耗的平均能量(轮回指传感器节点的一个工作周期,包括初始化、接收/传送数据及休眠3个状态),分析结果如图4所示。其中,距离r m的两个传感器节点传输k bit所耗费的能量如下:
式中 ET(k,r)为传感器节点发送k bit耗费的能量;Etx为发送1 bit消耗的能量,在仿真测试中,该值设置为50 nJ/bit; 为信号放大器放大倍数,该值设置为10 pJ/b⋅m−2; ER(k)为传感器节点接收k bit消耗的能量;Erx为接收1 bit消耗的能量,该值设置为50 nJ/bit。每个轮回中传感器传送的数据总量为5 120 bytes。
图4 性能分析
产生上述分析结果的原因如下:
(1)当传感器节点移动时,已有方案中的节点通过广播方式寻找路由,因此会产生大量控制数据包,从而导致网络拥塞引起延迟时间的增加以及数据包接收率的下降,并会增加传感器的能量消耗;
(2)已有方案中IPv6协议栈没有进行优化,因此增加了数据包传输代价,增加了延迟时间,降低了数据接收率;
(3)已有方案要通过广播消息才能确定目的节点的类型(即是传感器节点还是IPv6节点),而本文方案通过地址就可以检测出节点的类型,提高了本文方案的性能;
(4)本文方案中,传感器节点以跳数为度量单位选择加入最优的IPv6接入网关树,通过加入的IPv6接入网关树自动实现路由,减少了平均延迟时间,节省了节点的能量消耗。
本文提出了下一代全IP无线传感器网络设计方案,在物理实验平台与仿真环境验证了该方案的有效性和可行性,并也验证了该方案的性能优于已有方案。在本文方案中,IPv6节点可以通过传感器地址推断出整个WSN的拓扑结构以及每个传感器节点的实际物理方位,因此,本文方案对环境监测、远程控制等领域具有重要应用价值。本文方案的提出可供下一代全IP无线传感器网络的大规模实施作为参考。
[1]吴建平, 吴 茜, 徐 恪.下一代互联网体系结构基础研究及探索[J]. 计算机学报, 2008, 31(9): 1536-1548.
WU Jian-ping, WU Qian, XU Ke. Research and exploration of next-generation internet architecutre[J]. Chinese Journal of Computers, 2008, 31(9): 1536-1548.
[2]AKKAYA K, YOUNIS M. A survey on routing protocols for wireless sensor networks[J]. Ad Hoc Networks, 2005, 3(3):325-349.
[3]DAI S, JING X, LI L. Research and analysis on routing protocols for wireless sensor networks[C]//2005 International Conference on Communications, Circuits and Systems. New York: IEEE Press, 2005: 27-30 .
[4]BAG G, RAZA M T, MUKHTAR H, et al. Energy-aware and bandwidth-efficient mobility architecture for 6LoWPAN[C]//IEEE Military Communications Conference.San Diego, USA: IEEE Press, 2008: 1-7.
[5]MYUNG K S, HYOUNG J K. L3 mobility support in large-scale IP-based sensor networks (6LoWPAN)[C]//11th International Conference on Advanced Communication Technology. New York: IEEE Press, 2009: 941-945.
[6]WANG X, BERGER T. Self-organizing redundancy-cellular architecture for wireless sensor networks[C]//2005 IEEE Wireless Communications and Networking Conference.New York: IEEE press, 2005: 1945-1951.
[7]OLIVIER B, FLORENEE M, LAURENT M. Modeling and analysis of wireless sensor networks[C]//The 10-th ACM International Symposium on Modeling, Analysis and Simulation of Wireless and Mobile Systems. New York:ACM Press, 2007: 139-140.
[8]JW H, CULLER D. IP is dead, long live IP for wireless sensor networks[C]//Proceedings of the 6th ACM Conference on Embedded Network Sensor Systems. New York: ACM Press, 2008: 15-28..
[9]KIM H, HONG C. A routing scheme for supporting network mobility of sensor network based on 6LoWPAN[C]//Asia-Pacific Network Operations and Management Symposium 2007. Berlin: Springer Press, 2007: 155-164.
[10]DUNKELS A, ALONSO J, VOIGT T. Making TCP/IP viable for wireless sensor networks[C]//First European Workshop on Wireless Sensor Networks. Sweden: Swedish Institute of Computer Science, 2004.
[11]IETF RFC 1919. 6LOWPAN: overview, assumptions,problem statement, and goals [S].USA: IETF, 2007.
[12]IETF RFC 4944. Transmission ofIpv6 packets over IEEE 802315.4 networks[S]. USA: IETF, 2007.
编 辑 蒋 晓
Research and Design of Next-generation Full-IP Wireless Sensor Network
WANG Xiao-nan1,2and GAO De-min2
(1. School of Computer Science & Engieering, Changshu Institute of Technology Changshu Jiangsu 215500;2. School of Computer Science & Technology, Nanjing University of Science & Technology Nanjing 210094)
Based on the 6LowPAN architecture, a design scheme on next-generation all-IP wireless sensor network is proposed. The scheme creates an IPv6 address structure, an automatic IPv6-address configuration algorithm and routing algorithm. In addition, the scheme also includes a fragmentation algorithm on the adaption layer and a reduced IPv6 protocol stack in wireless sensor networks. This scheme is implemented in both a physical experimental enviroment and a simulation environment respectively, and its performance is analyzed. The experimental data prove the validity and correctness of the scheme.
architecutre; communication; network; protocol; routing
TP393.03
A
10.3969/j.issn.1001-0548.2010.06.025
2009- 04- 17 ;
2009- 11- 10
江苏省自然科学基金(BK2009133)
王晓喃(1973- ),女,博士后,副教授,主要从事计算机网络协议与应用方面的研究.