6LoWPAN调研报告 V4 - 图文

更新时间:2024-05-04 08:23:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

重庆邮电大学通信学院

题目:基于IPv6的6LoWPAN无线传感器

网络调研报告

调研人员: 李 晴 川

王 震 华

贺 力 军 方 正 波 陈 式

胡 燕 清 徐 孝 娜

指导导师: 雒 江 涛 教授

2011.9.23

重庆邮电大学 6LoWPAN调研报告

前言

无线传感器网络(WSN)集信息采集、信息传输、信息处理于一体,具有广阔的应用前景,是当前无线网络领域研究的热点之一。随着无线传感器网络的应用领域不断拓展,数量巨大的传感器节点接入Internet,使得地址空间逐渐耗尽的IPv4 协议难以满足无线传感器网络的需求。而IPv6 协议所具有的128位巨大地址空间、内建的安全机制、移动性、即插即用等优势能很好地解决这些问题。IPv6 协议与WSN 的结合必将极大地推动无线传感器网络的发展。

6LoWPAN 是一种研究如何使IPv6 协议在LoWPAN 设备上运行的技术。本次调研重点介绍6LoWPAN 的无线传感器网络技术,研究如何实现传感器网络节点与外部IPv6 网络直接通信。

本文首先阐述了6LoWPAN 低功耗无线个域网的基本概念、研究现状和发展趋势,然后深入研究了6LoWPAN 的技术基础:IPv6 技术和IEEE802.15.4 协议标准。参考6LoWPAN 发布的协议草案,对6LoWPAN 的核心技术:适配层的详细功能,适配层帧格式、适配层分片和重组、报头压缩、进行了研究,并且分析了6LoWPAN 地址分配技术、路由技术、网络接入技术、网络(拓扑)管理技术、邻居发现技术等。基于6LoWPAN 技术的庞大优势,最后讨论了它在智能家居、工业和环境控制等方面的应用及未来研究热点。

1

重庆邮电大学 6LoWPAN调研报告

目录

一、6LoWPAN概述 ................................................................................................................ 1

1.1、何为6LoWPAN ....................................................................................................... 1 1.2、6LoWPAN需求 ....................................................................................................... 2

1.2.1、LoWPAN 网络特点 ..................................................................................... 2 1.2.2、6LoWPAN 的需求 ...................................................................................... 2

二、IEEE 802.15.4协议技术介绍 .......................................................................................... 3

2.1、IEEE 802.15.4标准概述 ......................................................................................... 3 2.2、IEEE 802.15.4网络简介 ......................................................................................... 4 2.3、IEEE 802.15.4网络拓扑结构及形成过程 ............................................................. 5

2.3.1、星型网络的形成 ........................................................................................... 6 2.3.2、点对点网络拓扑结构的形成 ....................................................................... 6 2.4、IEEE 802.15.4结构 ................................................................................................. 8

2.4.1、物理层 ........................................................................................................... 9 2.4.2、介质访问控制层 ......................................................................................... 12

三、IPv6技术介绍 ................................................................................................................ 14

3.1、IPv6简介 ............................................................................................................... 14 3.2、IPv6的特点 ........................................................................................................... 15 3.3、IPv6的优势 ........................................................................................................... 15 3.4、IPv6数据包 .......................................................................................................... 16

3.4.1、IPv6数据包:包头 .................................................................................... 16 3.4.2、IPv6数据包:扩展包头 ............................................................................ 17 3.4.3、IPv6数据包:上层协议数据单元 ............................................................ 18 3.5、IPv6技术对管理网络应用程序的影响 ............................................................... 18 3.6、IPv6 编址 .............................................................................................................. 19 四、6LoWPAN关键技术 ...................................................................................................... 20

4.1、适配层功能介绍 .................................................................................................... 21 4.2、适配层报文格式 .................................................................................................... 23 4.3、分片与重组 ............................................................................................................ 25 4.4、报头压缩 ................................................................................................................ 27

4.4.1、HC1-IPv6报头压缩 ................................................................................... 27 4.5、组播支持 ................................................................................................................ 33 五、6LoWPAN邻居发现协议 .............................................................................................. 36

5.1、节点引导过程 ........................................................................................................ 36 5.2、消息和选项 ............................................................................................................ 37 六、6LoWPAN的应用与发展 .............................................................................................. 38

2

重庆邮电大学 6LoWPAN调研报告

一、6LoWPAN概述 1.1、何为6LoWPAN

6LoWPAN 是IPv6 over Low power Wireless Personal Area Network的简写,即基于IPv6的低速无线个域网。

IETF组织于2004年11月正式成立了IPv6 over LR_WPAN(6LoWPAN)工作组,着手制定基于IPv6的低速无线个域网标准,旨在将IPv6引入以IEEE802.15.4为底层标准的无线个域网。

工作组的研究重点为适配层、路由、包头压缩、分片、IPv6、网络接入和网络管理等技术。该工作组已经完成了两个RFC:《概述、假设、问题陈述和目标》(RFC4919:2007-08)和《基于IEEE802.15.4的IPv6报文传送》(RFC4944:2007-09)。

6LoWPAN技术是一种在IEEE 802.15.4标准基础上传输IPv6数据包的网络体系,可用于构建无线传感器网络。6LoWPAN规定其物理层和MAC层采用IEEE 802.15.4标准,上层采用TCP/IPv6协议栈,其与TCP/IP对比的参考模型如下图1.1所示。

图1.1 6LoWPAN与TCP/IP参考模型对比

6LoWPAN协议栈参考模型与TCP/IP的参考模型大致相似,区别在于6LoWPAN底层使用的IEEE 802.15.4标准,而且因低速无线个域网的特性,在6LoWPAN的传输层没有使用TCP协议。

1

重庆邮电大学 6LoWPAN调研报告

1.2、6LoWPAN需求

1.2.1、LoWPAN 网络特点

LoWPAN 网络是由符合802.15.4 标准的设备组成的,具有低速率、低功耗、低成本等特点,根据802.15.4 标准,LoWPAN 网络具有以下特点:

a) 传输报文小;

b) 支持 IEEE 16 比特短MAC 地址和64 比特扩展MAC 地址; c) 传输带宽窄;

d) 网络拓扑结构为网状或星型; e) 设备功耗低; f) 设备成本低; g) 设备数量大;

h) 设备位置不确定或不易到达; i) 设备可靠性差;

j) 设备可能长时间处于睡眠状态。

1.2.2、6LoWPAN 的需求

1)、 IP 连通性

LoWPAN 网络需要大量的网络地址,同时网络设备能够自动配置地址,并与其他IP 网络实现互通。如图1.2:

ApplicationLayerTransportLayerNetwork Layer(IPv6)802.3 MAC orother MAC802.3 MAC orother MACApplicationLayerTransportLayerNetwork Layer(IPv6)AdaptationLayer802.15.4 MAC orother MAC802.15.4 PHY orother PHYAdaptationLayer802.15.4 MAC orother MAC802.15.4 PHY orother PHY6LoWPAN网关Network Layer(IPv6)802.3 PHY orother PHY802.3 PHY orother PHYIPv6网络6LoWPAN网络

图1.2

2)、拓扑结构

2

重庆邮电大学 6LoWPAN调研报告

LoWPAN 网络能够支持各种网络拓扑,包括网状和星型拓扑。无论是多跳路由的网状拓扑还是星型拓扑,其中的部分节点设备要具有包转发能力,并与采用其他技术的网络实现无缝整合。因此,优先考虑使用IP 协议。

3)、包长

由于 802.15.4 帧长的限制,LoWPAN 网络要求减少过多的报文分片和重组,要求控制/协议报文能够在一个独立的802.15.4 格式的帧上承载。

4)、配置和管理

由于 LoWPAN 网络设备数量多、性能有限且位置可能不易到达,因此要求协议配置要简单,易于启动,并具有自我诊断能力。网络管理要尽可能少的开销,并具有管理大量设备的能力。

5)、业务发现

LoWPAN 网络需要简单的业务发现协议去发现、控制和维护设备提供的业务。 6)、安全

LoWPAN 网络需要一个全面的安全解决方案,而不仅仅是IEEE802.15.4 中要求的AES技术。

二、IEEE 802.15.4协议技术介绍

IEEE 802.15.4描述了低速率无线个人局域网的物理层和媒体接入控制协议。

IEEE 802.15.4规定了物理层(PHY)和媒体接入控制子层(MAC)与固定、便携式及移动设备之间的低数据率无线连接的规范,这些设备都没有电池,或者电池电量和功耗要求都很小。一般在10m的个人操作空间内运行。根据应用的不同,也可以采取更大的范围和更低的数据率来作为一个权衡方案。

2.1、IEEE 802.15.4标准概述

随着通信技术的迅速发展,人们提出了在人自身附近几米范围之内通信的需求,这样就出现了个人区域网络(personal area network, PAN)和无线个人区域网络(wireless personal area network, WPAN)的概念。WPAN网络为近距离范围内的设备建立无线连接,把几米范围内的多个设备通过无线方式连接在一起,使它们可以相互通信甚至接入LAN或Internet。1998年3月,IEEE 802.15工作组致力于WPAN网络的物理层(PHY)和媒体访问层(MAC)的标准化工作,目标是为在个人操作空间(personal operating space, POS)内相互通信的无线通信设备提供通信标准。POS一般是指用户附近10米左右的空间范围,在这个范围

3

重庆邮电大学 6LoWPAN调研报告

内用户可以是固定的,也可以是移动的。

在IEEE 802.15工作组内有四个任务组(task group, TG),分别制定适合不同应用的标准。这些标准在传输速率、功耗和支持的服务等方面存在差异。下面是四个任务组各自的主要任务:

(1)任务组TG1:制定IEEE 802.15.1标准,又称蓝牙无线个人区域网络标准。这是一个中等速率、近距离的WPAN网络标准,通常用于手机、PDA等设备的短距离通信。

(2)任务组TG2:制定IEEE 802.15.2标准,研究IEEE 802.15.1与 IEEE 802.11(无线局域网标准,WLAN)的共存问题。

(3)任务组TG3:制定IEEE 802.15.3标准,研究高传输速率无线个人区域网络标准。该标准主要考虑无线个人区域网络在多媒体方面的应用,追求更高的传输速率与服务品质。

(4)任务组TG4:制定IEEE 802.15.4标准,针对低速无线个人区域网络(low-rate wireless personal area network, LR-WPAN)制定标准。该标准把低能量消耗、低速率传输、低成本作为重点目标,旨在为个人或者家庭范围内不同设备之音的低速互连提供统一标准。

任务组TG4定义的LR-WPAN网络的特征与传感器网络有很多相似之处,很多研究机构把它作为传感器的通信标准。

LR-WPAN网络是一种结构简单、成本低廉的无线通信网络,它使得在低电能和低吞吐量的应用环境中使用无线连接成为可能。与WLAN相比,LR-WPAN网络只需很少的基础设施,甚至不需要基础设施。IEEE 802.15.4标准为LR-WPAN网络制定了物理层和MAC子层协议。

IEEE 802.15.4标准定义的LR-WPAN网络具有如下特点:

(1)在不同的载波频率下实现了20kbps、40kbps和250kbps三种不同的传输速率;

(2)支持星型和点对点两种网络拓扑结构;

(3)有16位和64位两种地址格式,其中64位地址是全球惟一的扩展地址;

(4)支持冲突避免的载波多路侦听技术(carrier sense multiple access with collision avoidance, CSMA-CA);

(5)支持确认(ACK)机制,保证传输可靠性。

2.2、IEEE 802.15.4网络简介

IEEE 802.15.4网络是指在一个POS内使用相同无线信道并通过IEEE

4

重庆邮电大学 6LoWPAN调研报告

802.15.4标准相互通信的一组设备的集合,又名LR-WPAN网络。在这个网络中,根据设备所具有的通信能力,可以分为全功能设备(full- device , FFD)和精简功能设备(reduced- device , RFD)。FFD设备之间以及FFD设备与RFD设备之间都可以通信。RFD设备之间不能直接通信,只能与FFD设备通信,或者通过一个FFD设备向外转发数据。这个与RFD相关联的FFD设备称为该RFD的协调器(coordinator)。RFD设备主要用于简单的控制应用,如灯的开关、被动式红外线传感器等,传输的数据量较少,对传输资源和通信资源占用不多,这样RFD设备可以采用非常廉价的实现方案。

IEEE 802.15.4网络中,有一个称为PAN网络协调器(PAN coordinator)

的FFD设备,是LR-WPAN网络中的主控制器。PAN网络协调器(以后简称网络协调器)除了直接参与应用以外,还要完成成员身份管理、链路状态信息管理以及分组转发等任务。

无线通信信道的特征是动态变化的。节点位置或天线方向的微小改变、物体移动等周围环境的变化都有可能引起通信链路信号强度和质量的剧烈变化,因而无线通信的覆盖范围不是确定的。这就造成了LR-WPAN网络中设备的数量以及它们之间关系的动态变化。

2.3、IEEE 802.15.4网络拓扑结构及形成过程

根据应用的需求,IEEE 802.15.4 LR-WPAN可以有两种网络拓扑结构:星型的拓扑结构和点对点的拓扑结构,这两种拓扑结构如图2.1所示。星型拓扑结构由一个叫做PAN主协调器的中央控制器和多个从设备组成,主协调器必须为一个具有完整功能的设备,从设备既可为完整功能设备也可为简化功能设备,在实际应用中,应根据具体应用情况,采用不同功能的设备,合理地构造通信网络。在网络通信中,通常将这些设备分为起始设备或者终端设备,PAN主协调器既可以作为起始设备、终端设备,也可以作为路由器,是PAN网络的主控制器。在任何一个拓扑网络上,所有设备都有一个唯一的64位长地址码,该地址可以在PAN中用于直接通信,或者当设备之间已经存在连接时,可以将其转变为16位短地址码分配给设备。PAN主协调器是主要的耗电设备,而其他从设备经常采用电池供电。星型拓扑结构通常在家庭自动化、PC外围设备、玩具、游戏以及个人健康检查方面得到应用。

5

重庆邮电大学 6LoWPAN调研报告

图2.1 星型和点对点拓扑结构实例

在点对点拓扑网络结构中,同样也存在一个PAN主设备,但该网络不同于星型拓扑网络结构,该网络中的任何一个设备都可以与其通信范围内的其他设备进行通信。点对点拓扑网络结构能够构成较为复杂的网络结构,例如网状拓扑网络结构。这种点对点拓扑网络结构在工业监测和控制,无线传感器网络、供应物资跟踪、农业智能化以及安全监控等方面都有广泛的应用。一个点对点网络路由协议可以是基于ad hoc技术、也可以是自组织式的和自恢复式的,并且,在网络中各个设备之间发送消息时,可通过多个中间设备中继的传输方式进行传输,即通常称为多跳的传输方式。每个独立的PAN都有一个唯一的标识符,利用PAN标识符,可以使用短位地址进行网络设备间的通信,并且可激活PAN网络设备之间的通信。

2.3.1、星型网络的形成

图2.1描述了星型网络的基本结构。当一个具有完整功能的设备被激活之后,它就会建立一个自己的网络,将自身成为一个PAN主协调器。所有星型网络的操作独立于当前其他星型网络的操作,这就说明了在星型网络结构中只有一个唯一的PAN主协调器,通过选择一个PAN标识符确保网络的唯一性。一旦选定了PAN标识符,PAN主协调器就会允许其它设备加入到它的网络中,无论是具有完整功能的设备还是简化功能的设备都可以加入到这个网络中。

2.3.2、点对点网络拓扑结构的形成

在点对点拓扑结构中,每个设备都可以与在无线通信范围内的其他任何设备进行通信。任何一个设备都可以定义为PAN主协调器,例如,可将信道中第

6

重庆邮电大学 6LoWPAN调研报告

一个通信的设备定义为PAN主协调器。未来的网络结构可能不仅仅局限为点对点拓扑结构,对拓扑结构进行限制也是可能的。

例如,树簇拓扑结构是点对点网络拓扑结构的一种应用形式,在点对点网络中的设备可以为完整功能设备,也可以为简化功能设备。而在树簇中的大部分设备是FFD,RFD只能作为一个叶结点连接在树簇拓扑结构树枝的末尾处,这主要是由于RFD一次只能连接一个FFD。任何一个FFD都可以作为主协调器,并且,为其他从设备或主设备提供同步服务。在整个PAN中,只要该设备相对于PAN中的其他设备具有更丰富的计算资源,这样的设备都可以成为该PAN的主协调器。在建立一个PAN时,首先,PAN主协调器将自身设置为一个簇标识符(CID)为0的簇头,然后,选择一个没有使用的PAN标识符,并向邻近的其它设备以广播的方式发送信标帧,从而形成第一簇网络。接收到信标帧的候选设备可以在簇头中请求加入该网络,如果PAN主协调器允许该设备加入,那么主协调器会将该设备作为结点加入到邻近表中,成为该网络的一个从设备,同时,请求加入的设备将PAN协调器作为它的父结点加到邻近列表中,成为该网络的一个从设备,开始发送周期性的信标帧;其他的候选设备也可以在这台刚加入的设备上加入该网络。如果原始的候选不能加入到该网络中,那么它将寻找其它的父结点。

最简单的网络结构是只有一个簇的网络,但是多数网络结构由多个相邻的网络构成。一旦第一簇满足预定的应用或网络需求时,PAN主协调器将会指定一个从设备为另一簇新网络的簇头,使得该从设备成为另一个PAN的主协调器,随后其他的从设备将逐个加入,形成一个多簇网络,如图2.2所示。图中的直线表示设备间的父子关系而不是通信流。多簇网络结构的优点在于增加网络的覆盖范围,但随之而来的缺点是会增加传输信息的延迟时间。

图2.2树簇拓扑结构网络

7

重庆邮电大学 6LoWPAN调研报告

2.4、IEEE 802.15.4结构

IEEE 802.15.4结构分成多个模块来定义,这些模块称为层。每层负责完成所规定的任务,并且向上层提供服务。模块的划分基于开放式系统互联七层模式。

各层之间的接口通过所定义的逻辑链路来提供服务。

LR-WPAN设备包含物理层和MAC层,物理层包括伴随着低等控制机制的射频收发机,MAC层为各种传输提供到达物理通道的接口。图2.3给这些模块的图解。

图2.3低速无线PAN设备结构

图3所示的高层,包括网络层和应用层,其中,网络层提供网络配置,操作信息路由,应用层提供设备的既定功能。IEEE 802.2 I类型逻辑链路控制层(LLC)能通过服务协议汇聚层(SSCS)访问MAC层。LR-PAN体系结构可以作为嵌入式设备或者要求外部设备(如个人计算机)支持的设备实现其功能。

每一层的服务主要完成两种功能:根据它的下层服务要求,为上层提供相应的服务;另一种是根据上层的服务要求,对它的下层提供相应的服务。各项服务是通过服务原语来实现的,图2.4描述了原语的概念,在图中,描述了一个具有N个用户的网络中,两个对等用户以及他们与M层(或子层)对等协议实体建立连接的服务原语。

8

重庆邮电大学 6LoWPAN调研报告

图2.4服务原语

服务是由N用户和N层之间的信息流的描述来指定的。该信息流由离散的瞬时事件构成,以提供服务为特征。每个事件由服务原语组成,它将在一个用户的某一层,通过该层的服务接入点(SAP)与建立对等连接的用户的相同层之间传送。服务原语通过提供一种特定的服务来传输必需的信息。这些服务原语是一个抽象的概念,它们仅仅指出提供的服务内容,而没有指出由谁来提供这些服务。它的定义与其他任何接口的实现无关。

由代表其特点的服务原语和参数的描述来制定一种服务。一种服务可能有一个或多个相关原语,这些原语构成了与具体服务相关的执行指令。每种服务原语提供服务时,可能不带有传输信息,也可能带有多个传输必须的信息参数。

原语通常分为如下面4种类型:

—Request:请求原语从第N用户发送到它的第N层,请求服务开始。 —Indication:指示原语是从第N层向第N用户发送,指示对于第N用户有重要意义的内部N层的事件。该事件也许与一个远程服务请求逻辑相关,或者可能是由N层的内部事件引起。

—Response:响应原语是从第N用户向它的第N层来表示对用户执行上一条原语调用过程的响应。。

—Confirm:确认原语是由第N层向第N用户发送,用来传送一个或多个前面服务请求原语的执行结果。

2.4.1、物理层

物理层提供两种类型的服务:即通过物理层管理实体接口(PLME-SAP)对物理层数据和物理层管理提供服务。物理层数据服务可以通过无线物理信道发送和接收物理层协议数据单元来实现。

物理层的特征是启动和关闭无线收发器、能力检测、链路质量、信道选择、清除信道评估(CCA),以及通过物理媒体对数据包进行发送和接收。工作频率为下面不需申请的一个或多个频带上:

868–868.6 MHz (e.g., Europe) 868–868.6 MHz(欧洲)

902–928 MHz (e.g., North America) 902–928 MHz(北美)

2400–2483.5 MHz (worldwide) 2400–2483.5 MHz(全球)

9

重庆邮电大学 6LoWPAN调研报告

物理层负责以下工作: — 无线收发器的激活与释放 — 当前信道的能量检测(ED) — 接收链路服务质量指示(LQI)

— 冲突避免载波侦听多路接入(CSMA-CA)机制的清除信道评估(CCA) — 信道频率选择 — 数据发送和接收

IEEE 802.15.4定义了两个物理层标准,即2.4GHz物理层和868/915MHz物理层。这两个物理层都基于直接序列扩频DSSS(Direct Sequence Spread SpeCTRum),使用相同的物理层数据包格式;区别在于工作频率、调制技术、扩频码片长度和传输速率。2.4GHz波段为全球统一、无须申请的ISM频段。2.4GHz的物理层通过采用高阶调制技术能够提供250kb/s的传输速率,有助于获得更高的吞吐量、更短的通信时延和工作周期,从而更加省电。868MHz是欧洲的ISM频段,915MHz是美国的ISM频段,这两个频段的引入避免了2.4GHz附近各种无线通信设备的相互干扰,868MHz的传输速率为20kb/s,915MHz和40kb/s。由于这两个频段上无线信号传播损耗较低,因此可以降低对接收机灵敏度的要求,获得较远的有效通信距离,从而可以用较少的设备覆盖给定的区域。

2.4.1.1、物理层服务细则

物理层通过射频固件和RF硬件提供了一个从MAC子层到物理层无线信道的接口。在物理层种,包含一个物理层管理实体(PLME),该实体通过调用物理层管理功能函数,为物理层管理服务提供接口。同时,PLME也负责维护由物理层所管理的目标数据库,该数据库包含有物理层个域网络的基本信息(PIB)。

物理层的结构和接口如图2.5所示。

物理层通过两个服务接入点(SAP)提供两种服务:通过物理层数据服务接入点(PD-SAP)为物理层数据提供服务;通过物理层管理实体(PLME)服务接入点(PLME-SAP)为物理层管理提供服务。

10

重庆邮电大学 6LoWPAN调研报告

图2.5物理层参考模型

2.4.1.2、物理层协议数据单元的结构

物理层协议数据单元(PPDU)分组的结构中最左边的字段优先发送和接收。在多字节的字段中,优先发送或者接收最低有效字节,而在每一个字节中优先发送最低有效位(LSB)。同样,在物理层与MAC层之间的数据字段的传送也遵循这一规则。

每个物理层协议数据单元数据包都由以下几个基本的部分组成: ——同步包头(SHR):允许接收设备锁定在比特流上,并与比特流保持同步。

——物理层包头PHR:包含帧长度的信息。

——物理层净荷:长度变化的净荷,携带MAC层的帧信息。 物理层协议数据单元结构将按照图2.6所描述的方式被格式化。

图2.6物理层协议数据单元的格式

11

重庆邮电大学 6LoWPAN调研报告

2.4.2、介质访问控制层

MAC层提供两种类型的服务:MAC层管理实体服务接入点(MLME-SAP)向MAC层数据和MAC层管理提供服务。MAC层数据服务可以通过PHY数据服务发送和接收MAC协议数据单元。

介质访问控制层的特征是:信标管理,信道接入,时隙管理,帧确认,发送确认帧,联合与分裂。此外,MAC层为应用合适的安全机制提供一些方法。

MAC层处理所有物理层无线信道的接入,其主要功能为: — 网络协调器产生网络信标; — 与信标同步;

— 支持个域网(PAN)链路的建立和断开; — 为设备的安全提供支持;

— 采用冲突避免的载波检测多路访问(CSMA-CA)机制访问信道; — 处理和维护保护时隙(GTS)机制;

— 在两个同等的MAC层实体之间提供一个可靠的通信链路。

2.4.2.1、 MAC层服务规范

MAC层在服务协议汇聚层和物理层之间提供了一个接口。从概念上说,MAC层包括一个管理实体,通常称为MAC层管理实体(MLME),该实体提供一个服务接口,通过此接口可调用MAC层管理功能。同时,该管理实体还负责维护MAC固有的管理对象的数据库。该数据库包含了MAC层的个域网信息数据库(PIB)。

图2.7描述了MAC层的结构和接口。

图2.7 MAC层参考模型

MAC层通过它的两个服务接入点提供两种不同的服务:

— MAC层数据服务,通过它的公共部分子层数据服务接入点(MCPS-SAP)

12

重庆邮电大学 6LoWPAN调研报告

接入;

— MAC层管理服务,通过MAC层管理实体服务接入点(MLME-SAP)接入。 这两种服务为服务协议汇聚层和物理层之间提供了一个接口,这个接口通过物理层数据服务接入点( PD-SAP)和管理实体服务接入点(PLME-SAP)来实现。(见6.2)。除了这些外部接口之外,在MAC层管理实体和公共部分子层之间还存在一个隐含的接口,MAC层管理实体通过此接口使用MAC层数据服务。

2.4.2.2、 MAC层帧结构

通用MAC层帧结构,即MAC层协议数据单元(MPDU)。每个MAC层帧由下列基本部分组成:

MAC层帧头,包括帧控制,序列号和地址信息。

可变长度的MAC层载荷,不同的帧类型有不同的载荷。确认帧没有载荷。 MAC层帧尾,应包含帧校验序列(FCS)。

MAC层的帧按特定的序列组成。MAC层帧的顺序与在物理层中传输的顺序相同,为从左到右,即首先传输最左边的数据位。帧字段中的位按从0(最左边,最低有效位)到k-1(最右边,最高有效位),k为字段的比特位数。在传输多于8位的字段时,由最低位到最高位传输字节。

对每个MAC层帧,所有的保留位在发送时都置0,并且在接收时忽略。

2.4.2.3、通用MAC层帧结构

MAC层帧结构由MAC层帧头,MAC层载荷和MAC层帧尾组成。MAC层帧头的子字段顺序是固定的,然而,在所有的帧中,可以不应包含地址子字段。通用MAC层帧结构在图2.8中描述。

图2.8通用MAC层帧结构

13

重庆邮电大学 6LoWPAN调研报告

三、IPv6技术介绍

IPv6是“Internet Protocol Version 6”的缩写,它是IETF设计的用于替代现行版本IP协议-IPv4-的下一代IP协议。

目前的全球因特网所采用的协议族是TCP/IP协。IP是TCP/IP协议族中网络层的协议,是TCP/IP协议族的核心协议。

IPv6正处在不断发展和完善的过程中,它在不久的将来将取代目前被广泛使用的IPv4。每个人将拥有更多IP地址。

3.1、IPv6简介

目前我们使用的第二代互联网IPv4技术,核心技术属于美国。它的最大问题是网络地址资源有限,从理论上讲,编址1600万个网络、40亿台主机。但采用A、B、C三类编址方式后,可用的网络地址和主机地址的数目大打折扣,以至目前的IP地址近乎枯竭。其中北美占有3/4,约30亿个,而人口最多的亚洲只有不到4亿个,中国截止2010年6月IPv4地址数量达到2.5亿,落后于4.2亿网民的需求。地址不足,严重地制约了我国及其他国家互联网的应用和发展。

一方面是地址资源数量的限制,另一方面是随着电子技术及网络技术的发展,计算机网络将进入人们的日常生活,可能身边的每一样东西都需要连入全球因特网。在这样的环境下,IPv6应运而生。单从数字上来说,IPv6所拥有的地址容量是IPv4的约8×10^28倍,达到2^128(算上全零的)个。这不但解决了网络地址资源数量的问题,同时也为除电脑外的设备连入互联网在数量限制上扫清了障碍。

但是与IPv4一样,IPv6一样会造成大量的IP地址浪费。准确的说,使用IPv6的网络并没有2^128个能充分利用的地址。首先,要实现IP地址的自动配置,局域网所使用的子网的前缀必须等于64,但是很少有一个局域网能容纳2^64个网络终端;其次,由于IPv6的地址分配必须遵循聚类的原则,地址的浪费在所难免。

但是,如果说IPv4实现的只是人家对话,而IPv6则扩展到任意事物之间的对话,它不仅可以为人类服务,还将服务于众多硬件设备,如家用电器、传感器、远程照相机、汽车等,它将是无时不在,无处不在的深入社会每个角落的真正的宽带网。而且它所带来的经济效益将非常巨大。

当然,IPv6并非十全十美、一劳永逸,不可能解决所有问题。IPv6只能在

14

重庆邮电大学 6LoWPAN调研报告

发展中不断完善,也不可能在一夜之间发生,过渡需要时间和成本,但从长远看,IPv6有利于互联网的持续和长久发展。目前,国际互联网组织已经决定成立两个专门工作组,制定相应的国际标准。

3.2、IPv6的特点

(1)IPV6地址长度为128比特,地址空间增大了2的96次方倍; (2)灵活的IP报文头部格式。使用一系列固定格式的扩展头部取代了IPV4中可变长度的选项字段。IPV6中选项部分的出现方式也有所变化,使路由器可以简单路过选项而不做任何处理,加快了报文处理速度;

(3)IPV6简化了报文头部格式,字段只有8个,加快报文转发,提高了吞吐量;

(4)提高安全性。身份认证和隐私权是IPV6的关键特性; (5)支持更多的服务类型;

(6)允许协议继续演变,增加新的功能,使之适应未来技术的发展;

3.3、IPv6的优势

与IPV4相比,IPV6具有以下几个优势:

一,IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,即有2^32-1(符号^表示升幂,下同)个地址;而IPv6中IP地址的长度为128,即有2^128-1个地址。

二,IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

三,IPv6增加了增强的组播(Multicast)支持以及对流的支持(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。

四,IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

五,IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,极大的增强了网络的安全性。

15

重庆邮电大学 6LoWPAN调研报告

3.4、IPv6数据包

IPv6包由IPv6包头(40字节固定长度)、扩展包头和上层协议数据单元三部分组成。

IPv6包扩展包头中的分段包头(下文详述)中指明了IPv6包的分段情况。其中不可分段部分包括:IPv6包头、Hop-by-Hop选项包头、目的地选项包头(适用于中转路由器)和路由包头;可分段部分包括:认证包头、ESP协议包头、目的地选项包头(适用于最终目的地)和上层协议数据单元。但是需要注意的是,在IPv6中,只有源节点才能对负载进行分段,并且IPv6超大包不能使用该项服务。

下文还将简述IPv6寻址、路由以及自动配置的相关内容。

3.4.1、IPv6数据包:包头

IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。

其中的各个字段分别为:

Version(版本号):4位,IP协议版本号,值= 6。

Traffic Class(通信类别):8位,指示IPv6数据流通信类别或优先级。功能类似于IPv4的服务类型(TOS)字段。

Flow Label(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输。在IPv6中,同一信源和信宿之间可以有多种不同的数据流,彼此之间以非“0”流标记区分。如果不要求路由器做特殊处理,则该字段值置为“0”。

Payload Length(负载长度):16位负载长度。负载长度包括扩展头和上层PDU,16位最多可表示65535字节负载长度。超过这一字节数的负载,该字段值置为“0”,使用扩展头逐个跳段(Hop-by-Hop)选项中的巨量负载(Jumbo Payload)选项。

Next Header(下一包头):8位,识别紧跟IPv6头后的包头类型,如扩展头(有的话)或某个传输层协议头(诸如TCP,UDP或着ICMPv6)。

Hop Limit(跳段数限制):8位,类似于IPv4的TTL(生命期)字段,用包在路由器之间的转发次数来限定包的生命期。包每经过一次转发,该字段减

16

重庆邮电大学 6LoWPAN调研报告

1,减到0时就把这个包丢弃。

Source Address(源地址):128位,发送方主机地址。

Destination Address(目的地址):128位,在大多数情况下,目的地址即信宿地址。但如果存在路由扩展头的话,目的地址可能是发送方路由表中下一个路由器接口。

3.4.2、IPv6数据包:扩展包头

IPv6包头设计中对原IPv4包头所做的一项重要改进就是将所有可选字段移出IPv6包头,置于扩展头中。由于除Hop-by-Hop选项扩展头外,其他扩展头不受中转路由器检查或处理,这样就能提高路由器处理包含选项的IPv6分组的性能。

通常,一个典型的IPv6包,没有扩展头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40字节限制,以便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展头总是8字节长度的整数倍。

目前,RFC 2460中定义了以下6个IPv6扩展头:Hop-by-Hop(逐个跳段)选项包头、目的地选项包头、路由包头、分段包头、认证包头和ESP协议包头:

(一)Hop-by-Hop选项包头包含分组传送过程中,每个路由器都必须检查和处理的特殊参数选项。其中的选项描述一个分组的某些特性或用于提供填充。这些选项有:

Pad1选项(选项类型为0),填充单字节。 PadN选项(选项类型为1),填充2个以上字节。

Jumbo Payload选项(选项类型为194),用于传送超大分组。使用Jumbo Payload选项,分组有效载荷长度最大可达4,294,967,295字节。负载长度超过65,535字节的IPv6包称为“超大包”。

路由器警告选项(选项类型为5),提醒路由器分组内容需要做特殊处理。路由器警告选项用于组播收听者发现和RSVP(资源预定)协议。

(二)目的地选项包头指名需要被中间目的地或最终目的地检查的信息。有两种用法:

如果存在路由扩展头,则每一个中转路由器都要处理这些选项。 如果没有路由扩展头,则只有最终目的节点需要处理这些选项。 (三)路由包头

17

重庆邮电大学 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

重庆邮电大学 6LoWPAN调研报告

实现动态的16-bits短地址分配机制。

6)、路由协议:

现网络拓扑构建和地址分配相同,IEEE 802.15.4标准并没有定义MAC层的多跳路由。适配层将在地址分配方案的基础上提供两种基本的路由机制——树状路由和网状路由。适配层是整个6LowPAN的基础框架,6LowPAN的其它一些功能也是基于该框架实现的。整个适配层功能模块的示意图如图4.2所示。

IPv6网络层头部压缩移动性链路层的分片和重组异构网络互操作性组播支持MAC层路由IPv6报文的转发网络拓扑构建和地址分配6LowPAN其他功能IEEE 802.15.4 MAC层 图4.2适配层功能块

4.2、适配层报文格式

由于LowPAN网络有报文长度小、低带宽、低功耗的特点,为了减小报文长度,适配层帧头部分为两种格式,即不分片和分片,分别用于数据部分小于MAC层MTU(102字节)的报文和大于MAC层MTU的报文。当IPv6报文要在802.15.4链路上传输时,IPv6报文需要封装在这两种格式的适配层报文中,即IPV6报文作为适配层的负载紧跟在适配层头部后面。特别地,若”M”或“B”bit被置为1时,适配层头部后面将首先出现MD或Broadcast字段,IPv6报文则出现在这两个字段之后。

不分片报文格式

LFprot_typeMBrsvPayload /MD /Broadcast Hdr 图4.3

不分片头部格式的各个字段含义如下:

? LF:链路分片(Link Fragment),占2bits。此处应为00,表示使用不

分片头部格式。

23

重庆邮电大学 6LoWPAN调研报告

? prot_type:协议类型,占8bits。指出紧随在头部后的报文类型。 ? M:Mesh Delivery字段标志位,占1 bit。若此位置为1,则适配层头

部后紧随着的是”Mesh Delivery”字段。

? B:Broadcast标志位,占1 bit。若此位置为1,则适配层头部后紧随

着的是”Broadcast”字段。 ? rsv:保留字段,全部置为0。 2)分片报文格式

若一个包括适配层头部在内的完整负载报文不能够在一个单独的 IEEE 802.15.4帧中传输时,需要对负载报文进行分片,此时适配层使用分片头部格式封装数据。分片头部格式如下:

LFprot_typeMBrsvDatagram_sizeDatagram_tagPayload/ MD/Broadcast Hdr第一分片LFfragment_offsetMBrsvDatagram_sizeDatagram_tagPayload/ MD/Broadcast Hdr后继分片图4.4

分片头部格式的各个字段含义如下:

? LF:链路分片(Link Fragment),占2bits。当该字段不为0时,指出链路

分片在整个报文中的相对位置,其中具体定义如下表所示。

LF 00 01 10 11

? prot_type:协议类型,占8 bits,该字段只在第一个链路分片中出现。 ? M: Mesh Delivery字段标志位,占1 bit。若此位置为1,则适配层头部

后紧随着的是”Mesh Delivery”字段。

? B:Broadcast标志位,占1 bit。若此位置为1,则适配层头部后紧随着的

是”Broadcast”。若是广播帧,每个分片中都应该有该字段。

? datagram_size:负载报文的长度,占11 bits,所以支持的最大负载报文

长度为2048字节,可以满足IPv6报文在IEEE 802.15.4上传输的1280字节MTU的要求。

? datagram_tag:分片标识符,占9 bits,同一个负载报文的所有分片的

24

链路分片位置 不分片 第一个分片 最后一个分片 中间分片 重庆邮电大学 6LoWPAN调研报告

datagram_tag字段应该相同。

? fragment_offset:报文分片偏移,8 bits。该字段只出现在第二个以及后

继分片中,指出后继分片中的payload相对于原负载报文的头部的偏移。

4.3、分片与重组

当一个负载报文不能在一个单独的IEEE 802.15.4帧中传输时,需要对负载报文进行适配层分片。此时,适配层帧使用4字节的分片头部格式而不是2字节的不分片头部格式。另外,适配层需要维护当前的fragment_tag值并在节点初始化时将其置为一个随机值。 1) 分片

当上层下传一个超过适配层最大payload长度的报文给适配层后,适配层需要对该IP报文分片进行发送。适配层分片的判断条件为:负载报文长度+不分片头部长+Mesh Delivery(或Broadcast)字段长度> IEEE 802.15.4 MAC层的最大payload长度。在使用16-bits短地址并且不使用IEEE 802.15.4安全机制的情况下,负载报文的最大长度为95(127-25(MAC头部)-2(不分片头部)-5(MD的长度))字节。适配层分片的具体过程如下所示:

Payload 原始负载报文适配层分片01ProtocolMBSizeTag第一片MeshPayload Fragment11Offset MBSizeTag第二片MeshPayload Fragment10Offset MBSizeTag第三片MeshPayload Fragment

图4.5

对于第一个分片:

? 将分片头部的LF字段设置为01表示是第一个分片。

? Prot_type字段置为上层协议的类型。若是IPv6协议该字段置为1。另

外,由于是第一个分片,offset必定为0,所以在该分片中不需要fragment_offset字段。

? 用当前维护的datagram_tag值来设置datagram_tag字段;

datagram_size字段填写原始负载报文的总长度。

25

重庆邮电大学 6LoWPAN调研报告

? 若需要在Mesh网络中路由,Mesh Delivery字段应该紧随在分片头部

之后并在负载报文小分片之前。

对于后继分片:

? 分片头部的LF字段设置为11或10,表示中间分片或最后一分片。 ? fragment_offset 字段则设置为当前报文小分片相对于原负载报文起

始字节的偏移,需要注意的是这里的偏移是以8字节为单位的,因此每个分片的最大负载报文小分片长度也必须是8字节边界对齐的,也就是说负载报文小分片的最大长度实际上只有88字节。

当一个被分片报文的所有小分片都发送完成后datagram_tag加1,当该值超过511后应该翻转为0。 2) 重组

当适配层收到一个分片后,根据以下两个字段判断该分片是属于哪个负载报文的:源MAC地址和适配层分片头部的datagram_tag字段。

对于同一个负载报文的多个分片,适配层使用如下算法进行重组,其重组过程如下所示。

a. 如果是第一次收到某负载报文的分片,节点记录下该被分片的源MAC地址和datagram_tag字段以供后继重组使用。需要注意的是,这里的源MAC地址应该是适配层分片帧源发地址,若分片帧有Mesh Delivery字段的话,源MAC地址应该是Mesh Delivery字段中的Originator Address字段。

b. 若已经收到该报文的其它分片,则根据当前分片帧的fragment_offset字段进行重组。若发现收到的是一个重复但不重叠的分片,应该使用新收到的分片进行替换。若本分片和前后分片有重叠,则应该丢弃当前分片,这样的目的主要是简化处理,认为若出现这种情况一定是发送方出现了错误,不应该继续接收。

c. 若成功收到所有分片,将所有分片按offset进行重组,并将重组好的原始负载报文递交给上层。同时,还需要删除在步骤(a)中记录源MAC地址和datagram_tag字段信息。

26

重庆邮电大学 6LoWPAN调研报告

Payload 原始负载报文适配层重组01ProtocolMBSizeTag分片1MeshPayload Fragment11Offset MBSizeTag分片2MeshPayload Fragment10Offset MBSizeTag分片3MeshPayload Fragment

图4.6

重组一个分片的负载报文时需要使用一个重组队列来维护已经收到的分片以及其他一些信息(源MAC地址和datagram_tag字段)。同时,为了避免长时间等待未达到的分片,节点还应该在收到第一个分片后启动一个重组定时器,重组超时时间为15s,定时器超时后节点应该删除该重组队列中的所有分片及相关信息。

4.4、报头压缩

由于LowPAN网络的特性,在实现IPv6在IEEE 802.15.4上的头部压缩时应当考虑最少的预建上下文需求,也要求压缩方案尽量的简单直接。目前适配层支持3种压缩格式,分别是LOWPAN_HC1格式,用于IPv6头部压缩;HC_UDP格式,用于UDP头部压缩;HC_ICMP压缩格式,用于ICMPv6压缩。

4.4.1、HC1-IPv6报头压缩

首先分析一下IPv6的基本报头结构,如图4.7所示,由于IPv6报头是定长,在压缩设计上会比IPv4报头简单一些,它有六个域和两个地址空间,在起始的64比特之后是128比特的源地址和目的地址,全长总共是40个字节。

VersionTraffic ClassNext HeaderFlow LabelHop LimitPayload LengthSource AddressDestination Address图4.7

27

重庆邮电大学 6LoWPAN调研报告

各个字段分析:

(1)版本号Version (4 位):取值为6,可以省略,因为所有节点都运行IPv6 协议

(2)流类型Traffic class (8 位):可以通过压缩编码压缩; (3)流标识Flow label (20 位):可以通过压缩编码压缩;

(4)载荷长度Payload Length (16 位):可以省略,因为IP 头长度可以通过MAC 头中的载荷长度字段计算出来;

(5)下一个头Next Header (8 位):可以通过压缩编码压缩,假设下一个头是UDP,ICMP, TCP或者扩展头的一种;

(6)跳极限Hop Limit (8 位):唯一不能够进行压缩的信息;

(7)源地址Source Address(128 位):可以进行压缩,省略掉前缀或者IID; (8)目标地址Destination Address (128 位):可以进行压缩,省略掉前缀或者IID。 具体的压缩格式如下:

12301234567890123456789012345678901HC1 encoding[HC2 encoding(if exists)]+Non-compressed Field...图4.8

IPv6 Source IPv6 Destination V_T_FNext HeaderHC2 EncodingNon-Compressed FieldAddress(2bits)Address(2 bits) (1 bit)(2 bit) (1 bit)图4.9

综合以上分析,一个使用HC1 编码压缩的IPv6 报头由一个8 bits的HC1 编码域组成,共由五部分组成:IPv6 Source Address(2 bits),IPv6Destination Address(2 bits),V_T_F 整合字段(1 bit),Next Header(2 bit),HC2encoding(1 bit)。

由于IPv6 头部中源地址和目的地址占了很大空间,所以需要对地址域专门 进行编码。IPv6 地址由前缀和接口标识两部分组成,如果是Link-Local 地址的 话,则前缀默认是FE80::/64 并可以在头部中省去;而对于接口标识来说,由于 IID(Interface ID)是从MAC 地址生成的,所以可以从IEEE802.15.4 MAC 帧头部 或者Mesh Delivery 字段中的源、目的MAC 地址重新生成IID,因此在这种情况下接口标识也是可以省去的。这样,就有如下四种可能的地址字段编码方式: ?? PI:(Prefix carried In-line)前缀在链路(in-line)上传输

28

重庆邮电大学 6LoWPAN调研报告

?? PC:(Prefix Compressed)前缀被压缩(默认是link-local 前缀) ?? II:(Interface carried In-line)接口标识在链路上传输

?? IC:(Interface Compressed)接口标识被压缩(从相应的链路层地址获得) HC1 编码字段的具体编码格式如下: ?? IPv6 Source Address (bits 0,1) ??00:PI,II ·01:PI,IC ·10:PC,II ??11:PC,IC

?? IPv6 Destination Address (bits 2,3) ??00:PI,II ??01:PI,IC ??10:PC,II ??11:PC,IC

?? V_T_F 整合字段(Version、Traffic Class 与Flow Label 整合)(bit 4) ??0:不压缩,4 bits 的Version,8 bits 的Traffic Class 和20 bits 的

FlowLabel 都在链路上传输。将Version 与Traffic Class 和Flow Label 放在一起压缩主要是考虑到字节对齐的需要,避免出现不必要的半字节填充情况。

??1:Traffic Class 和Flow Label 均为0。 ??Next Header (bits 5, 6)

??00:不压缩,8 bits 的Next Header 在链路上传输。 ??01:UDP ??10:ICMP ??11:TCP

??HC2 Encoding (bit 7)

??0:没有后继的头部压缩编码字段。

??1:HC1 编码字段后紧跟着其它的HC2 编码字段,具体的HC2 编

码字段类型由bits 5 和6 决定。

通常在HC1 编码域之后为未压缩域。如果使用了HC2压缩编码则未压缩域位于HC2 编码之后;否则它们就位于HC1 编码域之后。在未压缩域中,以Hop Limit 为起始,如果还存在其他未压缩域都应紧跟在Hop Limit域之后。这些域的排列顺序必须与它们在HC1 编码域中相应位的顺序相同,其顺序如下所示:

01 跳数限制Hop Limit (8 bits)

29

重庆邮电大学 6LoWPAN调研报告

02 源地址前缀Source Address Prefix (64 bits) 03 源地址接口标识符Interface Identifier (64 bits) 04 目的地址前缀Destination Address Prefix (64 bits) 05 目的地址接口标识符Interface Identifier (64 bits) 06 版本号Version (4 bits)

07 通信等级Traffic Class (8 bits) 08 流量标签Flow Label (20 bits) 09 下一个报头Next Header (8 bits)

如果没有使用HC2 压缩编码,在这些未压缩域之后紧跟着的就是由原始的IPv6 报头中的Next Header 域所指示的实际下一个报头,如UDP、TCP 或者ICMP报头。按照这种压缩方式,在理想状态下使用HC1 编码能够将普通的IPv6 报头从40 字节压缩到2 字节,其中一个字节用于HC1 编码域,另一个则用于HopLimit 域。 4.4.2、HC2-UDP报头压缩

6LoWPAN 草案在对IPv6 报头使用HC1 编码压缩的同时,也为ICMP,UDP,TCP 以及将来可能出现的其它协议报头提供了HC2 编码压缩,这些协议类型由HC1 的Next Header 域指定。本实现的HC2 压缩仅支持UDP 报文。仅当HC1编码的第7 位指示后续报文使用了HC2 编码,并且其第5-6 位指示其后续报文为UDP 时才会调用HC2 编码压缩进行处理。

Source PortLengthDestination PortChecksumPayload 图4.10 UDP基本报头

位于UDP 报头中的以下域可以被压缩:源端口,目的端口和长度。UDP 的校验和字段始终都必须完整地传输。UDP 报文的长度域可以从其它报头的信息中推断,而端口域必须进行链路传输,无论其是否被压缩。 具体压缩格式如下:

12301234567890123456789012345678901HC2 encodingField carried in-line图4.11

30

重庆邮电大学 6LoWPAN调研报告

UDP Source UDP Destination LengthPort(1 bit)Port(1 bit)(1 bit)图4.12

res(5 bit)Field carried in-line紧跟在HC1 编码域之后的HC2 编码长度也为8 bits,如图所示,也由四个部分组成:UDP Source Port (1 bit),UDP Destination Port (1 bit),Length (1 bit),保留字段(5 bits)。 HC2 编码的具体格式如下:

★ UDP Source Port (bit 0) ??0:不压缩,在链路上传输。

??1:压缩到4 bits。实际的16-bit 源端口号使用如下方法计算出来:

P+short_port。其中P 是双方预协商的一个基值,而short-port 则是在链路上传输的4-bit 短端口号。P 是一个大于0 的值,如果使用该基值则Source port 和Destination port 均使用这个基值P 来进行压缩。

★ UDP Destination Port (bit 1) ??0:不压缩,在链路上传输。

??1:压缩到4 bits,压缩方式同Source Port。

★ Length (bit 2) ??0:不压缩,在链路上传输

??1:压缩,通过IPv6 头部Length 字段计算长度。 ??保留字段(bit3-7)

如果设置了HC2 编码域的第0 位表示UDP 的源端口被压缩到4bit。实际 的16bit 端口号通过P+short_port 进行计算。此处P 为61616(0xF0B0)。第3-7位为保留位。

与HC1 压缩编码的处理方法类似,对于UDP 头部的非压缩字段,将出现在IPv6 头部及其相关字段之后,其未被压缩字段按其在原UDP 头部中的顺序出现。各个非压缩字段的出现顺序如下:

01 UDP 源端口号Source port(4 或16 bits) 02 UDP 目的端口号Destination port(4 或16 bits) 03 长度Length(16bist) 04 校验和Checksum(16bist)

在理想情况下,HC2 机制能够将8 字节的UDP 报头压缩到4 字节。 4.4.3、ICMP报头压缩

31

重庆邮电大学 6LoWPAN调研报告

如图4.13所示是ICMP基本报头的格式:

TypeencodingChecksumPayload 图4.13

各个字段分析: (1)

TYPE:类型字段,我们只用到4bit,就能取得所需的报文类型,可以满足本项目的报文类型要求,具体如下所示: 0000=128(PING请求) 0001=129(PING回应) 0010=133(路由器请求) 0011=134 (路由器通告) 0100-135(邻居请求) 0101=136(邻居通告) 0110保留

0111表示属于其它类型未压缩

(2)CODE:进一步区分报文的类型,在每一个TYPE类型中,继续区分子报 文类型

(3)ICMP checksum:校验和字段

因此,位于ICMP报头中的以下域可以被压缩:类型、编码。ICMP的校验和字段始终都必须完整地传输。 ICMPv6压缩报头的格式如下:

12301234567890123456789012345678901HC_ICMP encodingNon-compressed or in-line Field...图4.14

Type(4 bit)Code(4 bit)Non-compressed or in-line Field... 图4.15

32

重庆邮电大学 6LoWPAN调研报告

HC_ICMP编码具体格式如下:

★ Type(bit 0)

· 0:不压缩,在链路上传输

· 1:Type字段在HC_ICMP编码字段的Compressed Type字段中指出 ★ Code(bit 1)

· 0:不压缩,在链路上传输 · 1:Code字段为0 ★ Reserved(bit 2)

· 0:该32位被全部或部分使用,不压缩,在链路上传输 ·1:ICMPv6报文头部后面的头32位是保留的,在这里被省去 ★ Compressed(bit 3-7)

·bit 3指出当前是错误报文还是信息报文(错误报文的最高位为0,而信息报文的最高位为1,所以bit 3实际上对应ICMPv6头部Type字段的最高位)。bit 4到7则对应这ICMPv6 Type字段的低4位。若Type(bit 0)字段为0,bit 3到7为全0。

这样,可以将ICMP报文头压缩由四个字节压缩到三个字节。

4.5、组播支持

IPv6组播对IPv6协议特别是邻居发现协议有非常重要的作用。此外,WSN的一些应用也需要MAC层的广播功能。然而,IEEE 802.15.4 MAC层不支持组播仅提供有限的广播功能,这就需要适配层利用受控广播泛洪的方式来在整个LowPAN网络中传播IPv6组播报文。 1)适配层广播帧

6LowPAN使用适配层广播帧来封装IPv6组播报文或其它广播负载,格式如下所示。

在适配层广播帧中,适配层头部的B字段需要被置为1,并在适配层头部后添加一个Broadcast字段。其中Broadcast字段的S标志位指出Source Address字段使用的是EUI-64地址还是16-bits短地址,Broadcast Radius字段设置为本网络指定的最大广播跳数,Sequence Number字段设置为节点当前的广播序号计数值,Source Address设置为本源节点的MAC地址,负载报文将紧随在Broadcast字段之后。 2)受控广播泛洪算法

在介绍受控广播泛洪算法之前,需要先给出6LowPAN逻辑节点的概念。运

33

重庆邮电大学 6LoWPAN调研报告

行IEEE 802.15.4 MAC协议的无线节点可以从硬件功能上分成全功能节点FFD(Full Function Device)和部分功能节点RFD(Reduce Function Device)两类。为了从逻辑上划分各节点的不同协议行为,在适配层上将节点分为PAN Coordinator、Common Coordinator以及End Device三类逻辑节点。

? PANCoordinator:只能是全功能节点(FFD),在硬件上有着较为丰富的

资源,可以承担较为复杂的任务,是整个LowPAN网络的根节点。 ? Common Coordinator:也只能是全功能节点(FFD),同PAN Coordinator

相似,有着较为丰富的资源,可作为PAN内部在MAC层上的路由器,为其邻居节点转发数据。

? End Device:可以使用全功能节点(FFD)也可以使用部分功能节点

(RFD),但是一般考虑到End Device节点通常不需要太多的计算资源,因此通常从节点能耗方面考虑采用部分功能节点(RFD)。

适配层使用的受控广播泛洪算法来发送适配层广播帧,其算法描述如下:源发节点或者中继节点转发适配层广播帧时,应该首先检查其适配层邻居缓存,并根据邻居缓存信息处理:

(1) 若该节点的所有邻居均为PAN Coordinator或者Common Coordinator,且均为该节点的子节点时,直接用IEEE 802.15.4 MAC层广播该适配层广播帧。特别的,若只有一个PAN Coordinator或者Common Coordinator的邻居且其为适配层广播帧的入口节点,不断转发适配层广播帧。

(2) 若该节点的部分邻居为End Device或者为该节点的父节点,并且不为适配层广播帧的入口节点时,除了执行(1)中的IEEE 802.15.4 MAC层广播以外,还要通过IEEE 802.15.4 MAC层广单播向该邻居发送该帧。

(3) 若该节点的邻居均为End Device或该节点的父节点,并且不为适配层广播帧的入口节点时,只通过IEEE 802.15.4 MAC层单播向其每个邻居发送该帧。

下图4.16即为使用受控广播泛洪算法时适配层广播帧在LowPAN网络中的传

播过程。需要注意的是该过程需要和广播风暴控制配合使用才能完成。

34

重庆邮电大学 6LoWPAN调研报告

图4.16 受控广播泛洪(1)

图4.16受控广播泛洪(2)

3)广播风暴控制

6LowPAN使用受控广播泛洪算法可以大大减少需要发送的适配层广播帧数量,但是若使用Mesh拓扑时,整个LowPAN网络拓扑中会存在大量环路。在这种存在环路的网络中,中继节点对广播帧的重复转发将会造成严重的广播风暴。 为了避免广播风暴,每个节点需要记录已经转发过和适配层广播帧。具体做法是节点维护一张广播记录表(BRT),每张广播记录表中有若干个广播记录项(BRE),每个广播记录项至少有Source Address、Sequence Number和Broadcast Valid Time(广播有效时间,BVT)三个字段,广播记录表的结构如下图4.17所示。

图4.17广播记录表(BRT)

当节点收到一个适配层广播帧后,首先检查Broadcast字段中的Source Address:

? 若是本地节点地址,直接丢弃;

? 若不是本地节点,根据Broadcast字段中的Source Address和Sequence

35

重庆邮电大学 6LoWPAN调研报告

Number来检查本节点维护的BRT:

? 若在BRT中找到匹配并且BVT不为0的BRE,则认为该帧已经被本

地节点收到或者转发过,丢弃该广播帧;

? 若没有找到,则认为是第一次收到该广播帧。节点需要为其新建一

个BRE(源发节点发送适配层广播帧时不需要在BRT中添加一个新的BRE),并根据Broadcast字段初始化BRE的Source Address和Sequence Number两个字段,Broadcast Valid Time设置为本网络指定的广播有效时间值。同时,将Broadcast字段中的Broadcast Radius减1,若该值减到0则停止转发,否则使用受控广播泛洪算法继续转发该广播帧。最后,将新收到的适配层广播帧递交给上层是。特别的,对于End Device,可以选择不对收到的广播帧进行转发。

每个BRE中有一个Broadcast Valid Time字段,该值表示现一个适配层广播帧在网络中传播的有效时间。协议栈定时减小该值,若该值减小到0,则认为适配层广播帧已经过期并删除对应的BRE。若此后再收到Source Address和Sequence Number均相同的广播帧,节点将不再认为是重复的适配层广播帧,仍然需要为其新建BRE并进行比较。

五、6LoWPAN邻居发现协议

与传统网络不同,6LoWPAN网络具有高丢包、低功率等特点,传输帧的MAC层载荷小于100字节,包头压缩和分片使得载荷更小,并且6LoWPAN网络在链路层不支持组播,需要通过广播或单播复制来模拟出组播,而一些节点为了省电常处于休眠状态。这些都使得传统IPv6邻居发现协议中的NS消息组播传输,RA消息定期接收,以及需要节点处理的地址解析等功能不适合6LowPAN网络。6LoWPAN邻居发现(6LoWPAN Neighbor Discov—ery)协议优化了IPv6邻居发现的机制,定义了节点注册(NR)机制。

5.1、节点引导过程

图3所示的是节点引导过程。6LoWPAN 邻居发现协议定义了节点注册消息(NR,NodeRegistration)和节点确认消息(NC,Node Confirmation) 两个新的ICMP报文。NR消息是节点向路由器发送注册绑定信息,NC消息是路由器发送给注册节点的响应信息。

(1)一个节点首先根据自己的EUI一64地址或MAC地址生成接口标识,形

36

重庆邮电大学 6LoWPAN调研报告

成链路本地单播地址。节点通过广播路由器请求消息(RS,RouterSolicitation),接收路由器发出的路由器通告消息(RA,Router Advertisemem),加入一个6LoWPAN 网络。如果在RA消息中包含有效的地址前缀,主机节点将自动配置一个全局地址。

(2)节点向链路本地路由器发送NR消息,NR消息包含节点想注册的地址,也有可能请求路由器分配一个地址。在处理完地址并完成冲突地址检测后,路由器将回复NC消息,消息包含路由器确认的地址集合。由此,主机节点完成引导,可以使用6LoWPAN网络。节点可以向6LoWPAN 网内、外任一脚6地址发送报文,除了是链路本地地址,其余地址的报文都会转发到默认路由器,默认路由器的链路层地址解析在节点注册时已经完成。6LowPAN路由绑定表需要通过定期发送新的NR消息进行更新,如果主机移位或网络拓扑发生变化,现有的路由器不可用时,节点需要重新向另一个路由器进行注册。如果在同一个6LoWPAN 网络内,主机节点地址不变。如果主机节点移动到另一个6LoWPAN网络内,节点需要重新完成引导过程。

图5.1

5.2、消息和选项

6LoWPAN邻居发现协议新定义的NR和NC消息,使用了RFC4861中的RS和RA消息,还新增加了6LoWPAN 地址选项(6AO,6LoWPAN Ad&ess Option),6LoWPAN 信息选项(6IO,6LoWPAN Infor—mationOption),6LoWPAN 概要选项(6SO,6LoWPAN SummaryOption)和所有者接口标识选项(0I10,Owner InterfaceIdentifierOption)4个ICMPv6选项。NR 和NC 消息承载于标准的ICMPv6报文内,主要用于节点向路由器的注册过程,未注册节点向在线路由器的单播IPv6地址发送NR消息,在完成地址冲突检测后,路由器会向节点返回NS消息,完成注册过程。同时,需要节点周期性地发送NR消息,刷新路由器的地址绑定表,发送周期要小于绑定表项的生命周期。NR和NC消息注册选项目前主要有两种选项:6AO选项,包含主机节点想绑定到接口上的地址;6IO选项,NC消息可能用此选项携带LoWPAN前缀等信息。

37

本文来源:https://www.bwwdw.com/article/yqhg.html

Top