RFC4919:将 IPv6 应用于低功耗无线个人局域网(6LoWPANs):概述,设想,问题陈述,目标

这篇文档网上已有翻译,但是是直译,晦涩难懂,而且有很多地方都不准确,甚至有错误,所以对其进行了重新翻译。翻译原则:

  • 信:忠实于原文
  • 达:通顺
  • 雅:优雅

如果译文中发现任何问题或需要改进,请到我的个人博客发表评论,我会以最快的速度改进。 博客地址:https://tidyjiang8.github.io/2016/06/28/rfc-doc/rfc4919/ 英文原版:http://download.csdn.net/detail/tidyjiang/9561967

1 简介

  低功耗无线个人局域网(LoWPAN)由符合 IEEE 802.15.4-2003 标准 [IEEE802.15.4] 的设备组成。IEEE 802.15.4 设备的特点是短距离、低速率、低功耗和低成本。大多数遵循 IEEE 802.15.4 的设备都受到计算能力、存储能力、电源供应等方面的限制。

  本文档对 LoWPAN 做了一个概述,并描述 IP 网络(尤其是 IPv6 网络)给 LoWPAN 带来的好处。本文描述了LoWPAN 对 IP 层和更上层提出的要求,并做了一些假设。最后,本文描述了在 LoWPAN 网络中使用 IP 通信所面临的相关问题,并为解决这些问题定义了若干目标。当然,本文所列的条款未必全都适合于 IETF 的工作。然而,本文是为了给一个更大的问题做简要阐述。这不仅有助于 IETF 更好地组织内部工作,又有助于与其它外部组织相互合作。

2 概述

  LoWPAN 是一个简单、低成本的通信网络,它允许低功耗、低速率的应用也能使用无线通信。LoWPAN 中通常包含若干设备,如无线传感器,这些设备协同作用,将物理环境和现实应用连接起来。LoWPAN 遵循 IEEE 802.15.4-2003 标准 [IEEE802.15.4]。

  LoWPAN 的一些特性如下:

  1. 报文尺寸小。物理层的最大数据包是 127 字节, MAC 层的最大帧长是 102 字节。链路层安全协议也占用了一定的空间(AES-CCM-128 占用 21 字节,AES-CCM-32 占用 9 字节,AES-CCM-64 占用 13 字节),所以剩下给用户数据的空间可能只有 81 字节。
  2. 支持 16 位短地址和 64 位 IEEE 扩展 MAC 地址两种地址模式。
  3. 低带宽。对于物理层所定义的三种频段 2.4 GHz、915 MHz、868 MHz ,其对应的数据速率分别是 250 kbps,40 kbps 和 20 kbps。
  4. 包括星型和 mesk 两种拓扑结构。
  5. 低功耗。通常,网络中的部分设备(甚至全部设备)使用电池供电。
  6. 低成本。这些设备通常是传感器、开关等。这一特性与其它一些特性相关,比如低处理能力、低存储空间等。因为设备的成本会随着时间而变化,所以“低”的具体数值是无法定义的。
  7. 设备部署量大。这些设备的数量可能远远超过 PC 机。
  8. 由于设备很可能以 ad-hoc 的方式部署,所以设备的位置通常都不能预先确定。此外,设备所处的位置可能不容易进入,设备也可能会被移动到新的位置。
  9. LoWPAN 中的设备多是不可靠的,主要是因为:不可靠的无线连接、电池耗尽、设备锁定、物理干扰等。
  10. 在很多环境下,连接到 LoWPAN 的设备为了节约电量可能长时间处于休眠状态,而在休眠时期不能进行通信。

  后续章节将具体描述 LoWPAN 特别是 6LoWPAN(基于 IPv6 的LoWPAN 网络)的假设、问题陈述和目标。

3 假设

  基于 LoWPAN 报文尺寸小这一特性,本文假定应用程序通常只发送很少量的数据。当然,协议本身并没有限制发送大量数据。

  本文所描述的 LoWPAN 基于 IEEE 802.15.4-2003。IEEE 802.15.4 的具体规范在未来可能会发生改变,因此上面提到的一些特性也可能随之改变。

  部分假设基于 LoWPAN 网络中设备的处理能力有限这一特性。因此当设备的处理能力变强、消耗的电能减少时,上述所提到的一些条件可以适当放松。

  LoWPAN 中的设备可以分为两类:资源极其受限的设备(精简功能设备,简称 RFD);功能稍强的设备(全功能设备,简称 FFD)。全功能设备通常拥有更多的资源,且可能以传输线供电的方式供电。因此,全功能设备可以用来辅助精简功能设备提供一些额外的功能,如网络协调、报文转发、连接其它类型的网络等。

  使用 IP 技术主要有以下好处:

  1. IP 网络的普遍性使得设备可以利用现有的网络基础设施。
  2. 基于 IP 的技术是已经存在的,且是广为人知的、并被证明是可行的。
  3. 一个不可否认的非技术性但重要的因素是 IP 网络技术是公开、免费的,这是有好处的,或至少相对于专有的技术方案来说,IP 技术更容易让大众理解。
  4. 已经存在很多关于 IP 网络的工具,比如诊断、管理、调试等。
  5. 基于 IP 的设备能够很容易的与其他 IP 网络连接,不需要中转设备,如转换网关、代理等。

4 问题

  基于第 2 章中提到的特性,本章将阐述 LoWPAN 中关于 IP 的主要问题。

4.1 IP 连接性

  LoWPAN 中 IP 连接性的需求受到下列条件的影响:

  1. LoWPAN 网络中的许多设备需要网络进行自动配置并保持高度无状态。对于这一点,IPv6 已经有了解决方案。
  2. 大量设备需要大量的地址空间。IPv6 能满足这个需求。
  3. 由于 LoWPAN 的报文尺寸有限,因此可以根据需要,在 IPv6 地址格式中包含 IEEE 802.15.4 地址。
  4. 简化了与其它网络的连通性,比如因特网。

  然而,因受报文大小限制,必须尽可能地将 IPv6 和上层报文头进行压缩。

4.2 拓扑结构

  LoWPAN 必须支持包括星型和 mesk 在内的各种拓扑结构。

  Mesk 拓扑意味着报文需要经过多跳路由才能达到目的地。在这种情形下,中间设备在链路层扮演报文转发的角色(与网络层的路由器类似)。这种中间设备一般都是 FFD,因为它们比 RFD 具有更好的电源供应和更高的计算能力。路由协议的需求如下:

  1. 由于 LoWPAN 的报文尺寸小,路由协议必须只占用少量(或者不占用)报文数据,且最好与跳数无关。
  2. 路由协议应该只有少量的路由开销(少交换数据),平衡拓扑的变化和电量消耗。
  3. 为了满足低成本和低功耗的目标,路由协议对于计算能力和存储的要求尽可能低。因此,存储和维护大路由表是不利的。
  4. 支持由电池供电或有线供电的 FFD 或 RFD 所组成的拓扑网络。这意味着要考虑到对睡眠节点的路由。

  与 mesh 拓扑一样,星型拓扑也包含一个具有报文转发功能的设备子集。这些设备可能会使用除 IEEE 802.15.4 之外的其它网络接口,比如以太网、IEEE 802.11,所以我们需要将这些构建在不同技术之上的网络进行无缝集成。当然,这是一开始使用 IP 的最主要原因。

4.3 受限的报文大小

  应用程序发送的报文要尽可能小,最好能保证应用程序的数据加上各层的头部能在一帧之内传输,这样就能减小不必要的分片和重组。更进一步,在设计或选择协议时,必须保证单个“控制/协议报文”能够填充在一个 802.15.4 帧之内。按照这些原则,低端设备在对 IPv6 进行子 IP 重组(参考第 5 章)时将面临一些挑战,因为这些设备没有足够的内存或者存储空间来存储 1280 个字节的报文。

4.4 受限的配置和管理

  如前面所述,LoWPAN 网络中部署的设备的数量可能是极其庞大的。此外,这些设备一般都只有很弱的显示和输入的功能。而且,有些设备部署的地方是很难进入的。因此,LoWPAN 所使用的协议应尽量减小配置项,使设备容易启动,最好是开箱即用。此外,由于设备所固有的不可靠性,网络需要具有自动修复功能。在保证能够控制大量的密集部署的设备的前提下,网络管理的开销要尽量小。

4.5 服务发现

  LoWPAN 需要一个简单的服务发现网络协议来发现、控制和维护设备所提供的服务。在某些情况下,特别是密集部署时,可以通过整合几个节点来提供一个服务。为了实现这样的功能,需要设计新的协议。

4.6 安全

  尽管 IEEE 802.15.4 使用了 AES 保证了链路安全,但它在程序启动、密钥管理和上层协议的安全性方面没有作任何具体的规定。当然,LoWPAN 设备必须根据应用的需要仔细考虑一个完整的安全性方案。请参考后面安全相关的章节做更具体的讨论和深入的安全需求分析。

5 目标

  下面所提到的目标并非限定在 IETF,而是具有一般性的,这不仅仅涉及到 IETF 的相关工作(例如关于传输 IP 的规范、传输 IP 报文最好的配置、相关的上层协议等),它同样指向了跟其它标准更相关的工作(例如与 IEEE 802.15.4 相关的变化描述或配置文件、W3C 等)。当一个目标属于 IETF 的工作范围时,它用来说明 IETF 需要完成什么样的工作(不管是否在一个或多个新的或已存在的工作组里完成)。当一个目标不属于 IETF 的工作范围时,它用来说明其它组织 [LIAISON] 需要完成什么样的工作。

  注意,一个共同的目标是减小报文开销、带宽开销、处理器需求、和电量消耗。

  下面是按优先级列出的一些 LoWPAN 目标:

  1. 分片和重组层:正如概述里提到的一样,协议数据单元可能只有 81 字节,这明显比 IPv6 的最小报文 1280 字节还要小得多。为了符合 IPv6 规范 [RFC2460] 第 5 章的要求,必须在 IP 层下面提供一个分片和重组的适配层。
  2. 报头压缩:考虑到在最坏情况下,一个 IEEE 802.15.4 帧可用于传输 IP 报文的大小只有 81 字节,并且 IPv6 报头长度为 40 字节(在没有可选头的情况下),这就只剩下 41 字节给上层协议,如 UDP 和 TCP。UDP 使用 8 字节的报头,TCP 使用 20 字节的报头。别外,如上面所提到的,还需要一个分片和重组层,这还会占据一定的字节,留给数据的字节就更少了。如果要使用这样的协议,数据包长度只有 10 个字节左右,这将会导致大量的分片和重,所以需要进行报头压缩。因为有大量的已发行的和正在制定中的关于报头压缩的标准文件,6LoWPAN 必须考虑使用现有的报头压缩技术,并且,如果有需要的话,制定新的标准。
  3. 地址自动配置:[6LoWPAN] 指定了自动配置无状态 IPv6 地址的方法。无状态自动配置(相对于有状态)非常适合于 6LoWPANs,因为它减少了主机上的配置开销。这就需要一种方法来从 IEEE 802.15.4 设备上分配的 EUI-64 [EUI64] 来生成“接口标识符”。
  4. Mesh 路由协议:一种支持多跳 mesh 网络的路由协议是必需的。现已有很多发布的点对点多跳路由协议,比如 [RFC3561]、[RFC3626]、[RFC3684](但是这些都是实验性的)。这些协议都是基于 IP 地址而设计的,具有非常大的开销。例如,按需距离矢量路由协议(AODV)[RFC3561] 的 IPv6 地址路由请求占据 48 直字节。由于报文大小的限制,不得不使用分片、重组的方法传输这种报文。为了使路由报文能够填充在一个 IEEE 802.15.4 帧内,在选择现有的路由协议(或设计新的协议)时需要慎重考虑。
  5. 网络管理:使用 IPv6 传输报文的一个重要原因是为了尽可能重用现有协议。LoWPAN 的网络管理功能是非常挑剔的。然而,管理方案必须考虑到资源受限这一特性和在 4.4 节提到的最小配置和自动修复功能。在传统的网络中,简单网络管理协议(SNMP)[RFC3410] 被广泛的使用在数据资源和传感器的监控上。SNMP 功能是 LoWPAN 利用现有工具的所带来的好处的具体表现。然而,由于受到存储容量、处理能力和报文大小的限制,还需要进一步研究使用 SNMPv3 是否合适,或者在 SNMPv3 上加一个适配层,或者使用另一个不同的协议。
  6. 实施注意事项:如果通过“某种”方式来实施,在 IEEE 802.15.4 上传输 IP 报文是非常有好处的。因此,这里出现了实施注意事项。
  7. 应用层和更高层的注意事项:正因报头压缩变得越来越普遍,总体性能会更依赖于应用协议的高效性。基于 XML 的重量级协议如 SOAP[SOAP] 可能不太适合 LoWPAN,所以需要更简洁的编码(或许协议)。本文的目标是指定或建议如何修改现有协议以使它们适合用于 LoWPAN。此外,应用层的互操作性在未来可能是必需的,因此需要考虑到。
  8. 安全事项:必须仔细理解和研究各层的安全威胁。考虑到设备的安装位置、有限的显示、高度密集和点对点部署,加入安全网络是需要全面考虑的。

6 安全考虑

  基于 IPv6 的 LoWPAN(6LoWPAN)应用经常需要保密性和完整性保护。安全保护可由应用层、传输层、网络层和/或链路层来提供(也就是说,在 6LoWPAN 的协议集里)。在所有这些情况下,诸多的限制会影响到一个特定协议的选择。一些更相关的限制是代码量小、低电量、低复杂度和小带宽。

  考虑到这些限制,首先,为了测试当做出有意义的假设和简单化时对于减轻成本的任何风险,必需为 6LoWPAN 设备开发一个威胁模型。这个模型中的威胁包括中间人攻击、拒绝服务攻击等。

  一个单独的安全事项集应用于 6LoWPAN 设备加入网络的过程(例如建立初始密钥)。这通常包含应用层交换或初始密钥建立的带外技术,并可能依赖于特定应用的信任模型;这不在 6LoWPAN 的范围内,所以本文不做更多描述。为了能够选择(或设计)下一项协议,这就需要由初始密钥建立的键控材料成为一个通用模型。

  除初始密钥建立之外,后面的密钥管理和数据传输安全协议在 6LoWPAN 考虑范围内。必须先依据 6LoWPAN 的限制来评估,然后再做出选择(TLS,IKE/IPsec 等)。

   由于 IEEE 802.15.4 设备已经支持 AES 链路层安全,所以还需要考虑在链路层上是否还需要使用其它安全协议。AES 是一个在固定块长度(128 位)操作的一个块密码。为了加密更长的消息,可使用几种不同的操作模式。最早的模式,如 ECB、CBC、OFB 和 CFB,只提供保密性,并不保证消息的完整性。其它已经设计出的模式可同时保证保密性和完整性,如 CCM*模式。6LoWPAN 可以使用前面的任一种模式,但最好使用最安全的链路层安全模式(即 CCM*)。

  对于网络层安全,有两种可用的模型:端到端安全(例如 IPsec 传输模式)和限制于网络无线部分的安全(例如使用安全网关和 IPsec 隧道模式)。后一种模式的不利之处是报头太大,这对 6LoWPAN 帧的 MTU 是很重要的。为了简化 6LoWPAN 的实施,指定相关的安全模型是有好处的,并要指定一组适合于受限环境的优先密码集。

7 致谢

  感谢 Geoff Mulligan、 Soohong Daniel Park、 Samita Chakrabarti、Brijesh Kumar 和 Miguel Garcia 提出的意见并帮助完成了这份文档。

8 参考文献

8.1 标准参考

[RFC2460]

  • Deering, S. and R. Hinden, “Internet Protocol, Version6 (IPv6) Specification”, RFC 2460, December 1998.

[IEEE802.15.4]

  • IEEE Computer Society, “IEEE Std. 802.15.4-2003”, October 2003.

8.2 信息性参考

[EUI64]

[6LoWPAN]

  • Thomson, S., Narten, T., and T. Jinmei, “IPv6 Stateless Address Autoconfiguration”, Work in Progress, May 2005.

[RFC3411]

  • Harrington, D., Presuhn, R., and B. Wijnen, “An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks”, STD 62, RFC 3411, December 2002.

[RFC3561]

  • Perkins, C., Belding-Royer, E., and S. Das, “Ad hoc On-Demand Distance Vector (AODV) Routing”, RFC 3561, July 2003.

[RFC3626]

  • Clausen, T. and P. Jacquet, “Optimized Link State Routing Protocol (OLSR)”, RFC 3626, October 2003.

[RFC3684]

  • Ogier, R., Templin, F., and M. Lewis, “Topology Dissemination Based on Reverse-Path Forwarding (TBRPF)”, RFC 3684, February 2004.

[SOAP]

[LIAISON]