重庆邮电大学 6LoWPAN调研报告
类似于IPv4的松散源路由。IPv6的源节点可以利用路由扩展包头指定一个松散源路由,即分组从信源到信宿需要经过的中转路由器列表。
(四)分段包头
提供分段和重装服务。当分组大于链路最大传输单元(MTU)时,源节点负责对分组进行分段,并在分段扩展包头中提供重装信息。
(五)认证包头
提供数据源认证、数据完整性检查和反重播保护。认证包头不提供数据加密服务,需要加密服务的数据包,可以结合使用ESP协议。
(六)ESP协议包头 提供加密服务。
3.4.3、IPv6数据包:上层协议数据单元
上层数据单元即PDU,全称为Protocol Data Unit。
PDU由传输头及其负载(如ICMPv6消息、或UDP消息等)组成。而IPv6包有效负载则包括IPv6扩展头和PDU,通常所能允许的最大字节数为65535字节,大于该字节数的负载可通过使用扩展头中的Jumbo Payload选项进行发送。
3.5、IPv6技术对管理网络应用程序的影响
IPv6中有足够的地址为地球上每一平方英寸的地方分配一个独一无二的IP地址。虽然这实际上能够使你能想到的任何设备都分配一个IP地址,但是,这对于管理地址分配的管理员来说却是一个恶梦。幸运的是IPv6包含一种“节点自动配置”功能。这实际上是在所有的IPv6网络中替代DHCP(动态主机配置协议)和ARP(地址解析协议)的下一代技术,能够让你不进行任何设置就可以把新设备连接到网络。如果你更换了ISP(因此被分配一个不同的全球路由前缀),这个功能可以使你的网络重新分配IP地址的过程更简单,因为你所要做的一切只是改变你的路由器的设置,你的网络将重新获得一个使用新的前缀的新地址。这将减少网络管理的巨大负担。
随着IPv6功能的增加,又出现一些潜在的管理问题。IPv6本身提供了安全支持功能,这种功能称作“IPsec”。根据VPN建立的方式,加密也许包括也许不包括某些头信息。VPN可以减少客户机和服务器之间通信管理的工作量。管理端点(IKE,互连网密钥交换)之间的安全策略也是很复杂的,如果你要亲自做这项工作的话。这是基于IPsec和VPN提供的主要功能之一。当然,IPsec可以很强大,但是,在某些远程接入的情况下是很脆弱的,例如使用一个移动
18
重庆邮电大学 6LoWPAN调研报告
设备访问一个企业网络。IT部门要提供这种服务将进一步增加管理的负担。
3.6、IPv6 编址
从IPv4到IPv6最显著的变化就是网络地址的长度。RFC 2373 和RFC 2374定义的IPv6地址,就像下面章节所描述的,有128位长;IPv6地址的表达形式一般采用32个十六进制数。
IPv6中可能的地址有3.4×10^38个。也可以想象为16个因为32位地址每位可以取16个不同的值。
在很多场合,IPv6地址由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址,主机地址通常根据物理地址自动生成,叫做EUI-64(或者64-位扩展唯一标识)。
IPv6地址表示
IPv6地址为128位长,但通常写作8组,每组为四个十六进制数的形式。例如:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344是一个合法的IPv6地址。 图2.9 IPv6 网络地址和IPv4网络地址的转化关系 如果四个数字都是零,可以被省略。例如: 2001:0db8:85a3:0000:1319:8a2e:0370:7344等价于
2001:0db8:85a3::1319:8a2e:0370:7344遵从这些规则,如果因为省略而出现了两个以上的冒号的话,可以压缩为一个,但这种零压缩在地址中只能出现一次。因此:
2001:0DB8:0000:0000:0000:0000:1428:57ab 2001:0DB8:0000:0000:0000::1428:57ab 2001:0DB8:0:0:0:0:1428:57ab 2001:0DB8:0::0:0:1428:57ab
19
重庆邮电大学 6LoWPAN调研报告
2001:0DB8::1428:57ab都是合法的地址,并且他们是等价的。但 2001::25de::cade是非法的。(因为这样会使得搞不清楚每个压缩中有几个全零的分组)
同时前导的零可以省略,因此:
2001:0DB8:02de::0e13等价于2001:DB8:2de::e13
一个IPv6地址可以将一个IPv4地址内嵌进去,并且写成IPv6形式和平常习惯的IPv4形式的混合体。IPv6有两种内嵌IPv4的方式:IPv4映像地址和IPv4兼容地址。
IPv4映像地址有如下格式:::ffff:192.168.89.9 这
个
地
址
仍
然
是
一
个
IPv6
地
址
,
只
是
0000:0000:0000:0000:0000:ffff:c0a8:5909的另外一种写法罢了。IPv4映像地址布局如下:
图3.2
IPv4兼容地址写法如下:::192.168.89.9
如同IPv4映像地址,这个地址仍然是一个IPv6地址,只是0000:0000:0000:0000:0000:0000:c0a8:5909的另外一种写法罢了。IPv4兼容地址布局如下:
图3.3
IPv4兼容地址已经被舍弃了,所以今后的设备和程序中可能不会支持这种地址格式。
四、6LoWPAN关键技术
为了更好地实现IPv6网络层与IEEE 802.15.4 MAC层之间的连接,所以在他们之间加入适配层以实现屏蔽底层硬件对IPv6网络层的限制。6LoWPAN的参
20
重庆邮电大学 6LoWPAN调研报告
考模型如下图4.1所示。
应用层传输层IPv6网络层6LowPAN适配层IEEE 802.15.4 MAC层IEEE 802.15.4 物理层 图4.1
适配层是IPv6网络和IEEE 802.15.4MAC层间的一个中间层,其向上提供IPv6对IEEE 802.15.4媒介访问支持,向下则控制LoWPAN网络构建、拓扑及MAC层路由。6LoWPAN的基本功能,如链路层的分片和重组、头部压缩、组播支持、网络拓扑构建和地址分配等均在适配层实现。
4.1、适配层功能介绍
IPv6规定的链路层最小MTU为1280字节,对于不支持该MTU的链路层,协议要求必须提供对IPv6透明的链路层的分片和重组。而IEEE 802.15.4 MAC最大帧长仅为127字节,因此,适配层需要通过对IP报文进行分片和重组来传输超过IEEE 802.15.4MAC层最大帧长的报文。
由于最大MTU、组播及MAC层路由等原因,IPv6不能直接运行在IEEE 802.15.4MAC层之上,适配层将起到中间层的作用,同时提供对上下两层的支持,其主要功能如下:
1)、链路层的分片和重组:
IPv6规定数据链路层最小MTU为1280字节,对于不支持该MTU的链路层,协议要求必须提供对IPv6透明的链路层的分片和重组。因此,适配层需要通过对 IP报文进行分片和重组来传输超过IEEE 802.15.4MAC层最大帧长(127字节)的报文。
2)、头部压缩:
在不使用安全功能的前提下,IEEE 802.15.4 MAC层的最大payload(载荷)为102字节,而IPv6报文头部为40字节,再除去适配层和传输层(如UDP)头部,将只有50字节左右的应用数据空间。为了满足IPv6在IEEE 802.15.4 传
21
重庆邮电大学 6LoWPAN调研报告
输的MTU,一方面可以通过分片和重组来传输大于102字节的IPv6报文,另一方面也需要对IPv6报文进行压缩来提高传输效率和节省节点能量。为了实现压缩,需要在适配层头部后增加一个头部压缩编码字段,该字段将指出IPv6头部哪些可压缩字段将被压缩,除了对IPv6头部以外,还可以对上层协议(UDP、TCP及ICMPv6)头部进行进一步压缩。
3)、组播支持:
组播在IPv6中有非常重要的作用,IPv6特别是邻居发现协议的很多功能都依赖于IP层组播。此外,WSN的一些应用也需要MAC层广播的功能。IEEE 802.15.4 MAC层不支持组播,但提供有限的广播功能,适配层利用可控广播共泛的方式来在整个WSN中传播IP组播报文。
4)、网络拓扑管理:
如 2.3 网络拓扑类型所述,EIEESOZ.154MAC协议支持包括星型拓扑、树状拓扑及点对点的Mesh拓扑等多种网络拓扑结构,但是MAC层协议并不负责这些拓扑结构的形成,它仅仅提供相关的功能性原语。因此上层协议(适配层协议)必须负责以合适的顺序调用相关原语,完成网络拓扑的形成,包括:信道扫描、信道选择、队N的启动、接受子节点加入请求、分配地址等,通常我们使用状态机来维护整个协议过程,在后面的章节中我们将详细讲述各个过程的协议状态机。
低功耗是IEEE 802.1.54 协议特别注重的方面,它提供了多种机制来达到省电的目的,如使用日Beacon同步机制等。但是IEEESOZ.,5.4MAC仅仅提供星型拓扑的Beacon同步机制,在这种拓扑中仅有PANCordinato发送Beacon,但当我们采用复杂的拓扑,如树状拓扑,将有若干的节点同时发送Beacon,如果发送Beacon的节点之间不进行相应的协商,各个节点发送的日Beacon报文可能在物理信道上产生碰撞,从而导致子节点无法正确收到Beacon,使得子节点同步丢失。因此,适配层需要一定的机制对网络拓扑中各个节点的Beacon发送时间进行统一管理,以免使得Beacon产生碰撞,导致网络拓扑被破坏。
5)、地址分配:
IEEE 802.15.4标准对物理层物和MAC层做了详尽地描述,其中MAC层提供了功能丰富的各种原语,包括信道扫描、网络维护等。但MAC层并不负责调用这些原语来形成网络拓扑并对拓扑进行维护,因此调用原语进行拓扑维护的工作将由适配层来完成。另外,6LowPAN中每个节点都是使用EUI-64地址标识符,但是一般的LoWPAN网络节点能力非常有限,而且通常会有大量的部署节点,若采用64-bits地址将占用大量的存储空间并增加报文长度,因此,更适合的方案是在PAN内部采用16-bits短地址来标识一个节点,这就需要在适配层来
22