1、无线传感器网络技术及应用无线传感器网络技术及应用第5章 6LoWPAN技术主要内容n6LoWPAN技术的发展n6LoWPAN网络核心协议n轻量级IPv6无线传感网协议栈n6LoWPAN传感网设备开发平台n6LoWPAN无线传感网系统实验5.1 6LoWPAN技术的发展 IETF在2005年成立了6LoWPAN工作组制定适用于IPv6的低功耗、无线Mesh网络标准。6LoWPAN旨在IEEE802.15.4的网络中传输IPv6报文,但是底层标准并不局限于IEEE802.15.4标准,也支持其他的链路层标准。与 6LoWPAN 相关的 IETF 工作组的主要研究内容5.1 6LoWPAN技术的发展
2、6LoWPAN具有以下技术优势:地址空间方面,6LoWPAN网络基于IPv6地址,拥有广阔的地址空间,可以满足海量节点的部署需要。网络互联方面,6LoWPAN网络为每个设备配置了IP地址,可以方便地与其他基于IP的网络互联,构建异构网络,实现互相通信。重用和基础验证方面,IP网络可以保证6LoWPAN重用其他IP网络的设施和IP调试、诊断工具,并且IP技术已经稳定运行多年,为6LoWPAN标准提供了基础验证。标准开放性方面,6LoWPAN是IETF制定的开放标准,应用广泛,全世界的开发人员都可以为其改进和完善而努力,为其快速发展、完善提供了保障。5.2 6LoWPAN网络核心协议适配层协议n为
3、了在基于IEEE 802.15.4底层的无线传感器网络中实现IPv6数据的有效传输,解决两种技术的差异性,6LoWPAN适配层协议主要定义了分片重组、IPv6报头压缩以及路由转发三种机制。n适配层还具备子网组建与管理、地址分配、组播支持等功能。5.2 6LoWPAN网络核心协议n报文格式典型的LoWPAN封装头栈5.2 6LoWPAN网络核心协议适配层头部封装共定义了四种类型的LoWPAN头部:nMesh寻址头部:用于支持数据在适配层进行路由转发n广播头部:用于对广播数据或者多播数据提供支持n分片头部:用于数据的分片和重组nIPv6压缩头部:用于IPv6报文头部压缩使用头部的首字节作为头部类型
4、说明字段(Dispatch值)以区分标识不同的LoWPAN头。Dispatch类型值LoWPAN头分配描述00 00000000 111111NALP非LoWPAN封装帧01000001IPv6未压缩的标准IPv6报头01000010LOWPAN_HC1采用LOWPAN_HC1方式压缩的IPv6报头01010000LOWPAN_BC0广播头01 10000001 111111LOWPAN_IPHC采用LOWPAN_IPHC方式压缩的IPv6报头01111111ESC扩展其他头类型说明10 0000010 111111MESHMesh寻址报头11 0000011 000111FRAG1第一个分片
5、报头11 1000011 100111FRAGN后续分片报头5.2 6LoWPAN网络核心协议分片和重组分片和重组nIPv6标准RFC2460规定所使用底层链路的最大传输单元MTU至少为1 280字节。nIEEE 802.15.4标准报文的最大长度仅为127字节,其最大MAC报头长度为25字节,MAC层所提供的payload可能只有102字节。若MAC帧使用安全机制,将进一步减小负载长度。n必须在适配层中引入分片重组机制,将超过MAC层payload长度的IPv6报文分割成多个较小的报文,再递交给IEEE 802.15.4 MAC层传输,并在接收端重组恢复为完整的IPv6报文。5.2 6LoW
6、PAN网络核心协议 6LoWPAN分片重组流程图适配层对分片报文的格式进行了定义,包括数据报大小、数据报标签和数据报偏移量三个域。5.2 6LoWPAN网络核心协议n标准IPv6报文头部格式5.2 6LoWPAN网络核心协议IPv6报头压缩报头压缩n数据报头部过长会造成大量分片的产生,将导致传输的效率非常低,增加了通信的负担和节点的能量消耗。n有必要在适配层对IPv6报文的固定头部进行适当压缩,从而提高数据的传输效率。n RFC6282提出了压缩效率更高的LOWPAN_IPHC压缩算法,来弥补和代替LOWPAN_HC1的不足之处。LOWPAN_IPHC可以支支持有状态和无状态压缩持有状态和无状
7、态压缩。5.2 6LoWPAN网络核心协议 LOWPAN_IPHC基本的帧格式如图nIPHC格式的前三位“011”用于表示为IPHC压缩算法nTF域表示IPv6头部中优先级和流标签的压缩nNH位用于判断下一头部是否压缩,如果NH位值为1,则采用NHC压缩算法对下一头部进行压缩。nHLIM域用于压缩IPv6头部的跳数限制字段nCID位用于表示IPv6地址是否适用基于环境的压缩方法,如果该位为1,IPv6压缩头部后需带有SCI和DCI字段nSAC和DAC位表示源地址以及目的地址是否使用基于状态的压缩。nSAM和DAM表示源地址和目的地址的模式。M位表示目的地址是否为多播地址5.2 6LoWPAN网
8、络核心协议TF的压缩方式HLIM的压缩方式5.2 6LoWPAN网络核心协议路由协议路由协议6LoWPAN路由分为两大类:nMesh-under:依靠Mesh头在适配层进行路由转发工作nRoute-over:依靠IPv6头在网络层进行路由转发工作。5.2 6LoWPAN网络核心协议Router-overn路由方式在网络层进行路由选择和转发,适配层不参与。中间节点对转发数据的IPv6报头进行解析。n节点的每一跳对应一跳IP链路,因此分片数据每转发一次就要重组一次。nRouter-over是全IP化网络,因此可以较为容易地使用IPv6技术保障数据的安全性和服务质量。5.2 6LoWPAN网络核心协
9、议RPL路由协议nRPL专为低功耗有损网 络设计,目标对象是使用了IP技术的智能物件,由IETF ROLL工作组负责制定。n LLN特点:低带宽、有损耗、低功耗 nRPL工作在IP层,遵循IP架构,但其并未限定特定的链路层,可以工作在多种链路层上。5.2 6LoWPAN网络核心协议RPL传输模式传输模式 RPL支持三种基本的数据传输模式:n多点到点,Multipoint-to-Point(MP2P)n点到多点,Point-to-Multipoint(P2MP)n 点到点,Point-to-Point(P2P)方法:通过节点间构造DODAG来实现 n为MP2P构造上行到DAG根节点的路径 n为P
10、2MP构造从DAG根节点出发的下行路径 n通过DAG检查和避免路由环路 n通过上行、下行之间的转换支持P2P 5.2 6LoWPAN网络核心协议DODAG n RPL指定了如何在一个LLN中构造DODAG的过程。n DODAG在构造时需确定一个目标函数,使用一系列的度量和约束(m etrics/constraints)中的一个节点在同一时刻能够参与和加入 多个graph,每个graph称为一个RPL实例 DODAG的构造过程由根节点或LoWPAN边界路由器发起。为了实现DODAG的构造,RPL基于ICMPv6,新增加了如下三条控制消息:nDIS:(DODAG Information Solic
11、itation)nDIO:(DODAG Information Object)nDAO:(DODAG Destination Advertisement Object)5.2 6LoWPAN网络核心协议DODAG拓扑建立的过程5.2 6LoWPAN网络核心协议DODAG上行构造过程上行构造过程 n根节点利用DIO消息广播DODAG的信息;n根节点的邻居节点收到DIO后,根据一定的准则,决定是否加入这个DODAG,这些准则包括:目标函数、DAG特性、各种自定义的本地策略等 n当某个邻居节点加入所广播的DODAG后,它就建立了一条到达DODAG根节点的路径。根节点被称为该节点的“父节点”,这种通信
12、模式称为MP2P,也称为上行路由。n如果新加入图的节点类型是路由器,它将向自己的邻居节点继续广播包含DODAG信息的DIO消息。n如果新加入图的节点是“叶子节点”,则只是完成入网动作,不广播DIO消息。n邻居节点不断重复上述广播和加入动作,直至到达网络的所有叶子节点。5.2 6LoWPAN网络核心协议DIS的用法的用法 n DIS消息用于节点主动向邻居节点中的路由器请求DODAG图的信息。n路由器收到DIS后,会回复DIO消息。nDIS主要在稳定的环境中使用,例如DODAG已基本形成后,节点由于某种原因想再次获取图信息时,可主动发送DIS消息。5.2 6LoWPAN网络核心协议DODAG下行构
13、造过程下行构造过程n下行路由与上行路由相反,由根节点到达叶子节点或上级节点到达下级节点n下行路由的构造通过DAO消息来完成。n每个节点加入DODAG后,在网络发起上行路 径构造指令后,将发送DAO消息到它的父节点。DAO消息中含有前缀、前缀的有效时间等信息,用于表征节点所在前缀的可达性。n 当一个节点收到DAO消息后,将对前缀信息进行处理,并在路由表中添加路由表项。然后将该前缀信息进一步通过DAO上传给自己的父节点。n 一个节点也可以将收到的前缀可达性信息进行汇集后,再发给自己的父节点n前缀上传过程一直进行,直至前缀信息到达父节点。n每个节点都完成前缀上传后,整个网络将建立起一个从根节点到达所
14、有叶子节点的下行路由图。n下行路由也称为P2MP 5.2 6LoWPAN网络核心协议点到点通信点到点通信 n RPL也支持DODAG中的P2P通信模式。n 当LLN中的一个源节点发送数据包到目标节点时,该数据包将首先沿着“上行”路由到达源 节点与目标节点共同的祖先节点,然后再从祖先节点处转为向下传输,通过“下行”路由到 达目标节点。nIETF ROLL工作组设计了专门的标准对P2P通 信进行优化。5.2 6LoWPAN网络核心协议路由中的环路问题路由中的环路问题 n在路由协议中,需要尽量避免在MESH图中生成环路。如果生成了环路,则应该能够有效检 测到环路并及时进行处理。n传统路由协议中,环路
15、的产生一般是由于网络拓扑发生变化,或节点之间发生了同步问题。n环路出现后,需要尽快的检测处理,否则会导致数据包拥塞和超时丢弃,同时需采用各种优化机制来避免环路的出现。n在LLN中,环路的发生经常是临时的,而且由于LLN一般速率较低,环的影响比传统网络要小,所以网络对环路应该适当反应。如果过度反应,可能会引起路由的振荡,浪费额外的能量来进行控制报文交互。5.2 6LoWPAN网络核心协议Rank n每个新加入图的节点需根据Metric和目标函数,用一定方法计算与该图根节点之间的Rank值。Rank用于表示DODAG中某个节点的相对位置,即该节点与根节点 之间相对距离的值。n Rank主要用于环避
16、免。nRPL并没有指定Rank的计算方法,其具体计算由目标函数及相应 的策略决定,但需要满足相对位置的性质。5.2 6LoWPAN网络核心协议环路的避免策略 RPL采用两种策略避免环的出现,这些方法都用到rank值。n 策略1:最大深度策略 n策略2:一个节点在邻居中选择父节点时,不能选择rank值比它自己的rank值大一定程度的 节点,即rank值超过node-rank+max_depth的节点,不能选择作为父节点。至于超过多少深度才不能选择(max_depth的大小),由根节点确定。这种策略主要是防止选比自己还深的节点作为父节点 一个节点不能过度贪婪(greedy),不能为了增加父节点数,而移动自己在图中的深度,使深度值加大。5.2 6LoWPAN网络核心协议路由的修复路由的修复 路由的修复是任何路由协议都需关注的核心特性。在RPL中,当节点或链路失效时,需要对图进行修复。RPL需避免由于临时短暂的失效 而导致过大的修复开销。RPL中定义了两种修复方法:n 局部修复:当一个节点发现其链路或邻居节点失效,并且在上行路径上没有其它路由器可供中转时,将启动局部修复过程。该节点会快速寻找一
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1