5. 6LoWPAN Routing Requirements (6LoWPAN路由要求)
本节定义了6LoWPAN路由的一系列要求。低功耗网络的一个重要设计特性是LoWPAN必须支持多种设备类型和角色,例如:
- 从一次电池供电或使用能量收集的主机节点(有时称为"功耗受限节点")
- 市电供电的主机节点(我们称之为"功率充足节点"的一个例子)
- 功率充足的(但不一定是市电供电的)高性能网关
- 具有各种功能的节点(数据聚合器、中继器、本地管理器/协调器等)
由于这些不同的设备类型和角色,LoWPAN需要考虑以下两个主要属性:
-
功耗节约: 一些设备采用市电供电,但许多设备采用电池供电,需要使用单个AA电池维持数月至数年。许多设备大部分时间采用市电供电,但在可能较长的时间内仍需要使用电池供电(例如,在建筑工地上,在建筑供电首次接通之前)。
-
低性能: 微型设备、小内存容量、低性能处理器、低带宽、高丢包率等。
LoWPAN的这些基本属性影响路由解决方案的设计。无论是简化和修改现有的路由规范,还是引入新的解决方案以适应LoWPAN的低功耗要求,它们都需要满足下面描述的要求。
5.1. Support of 6LoWPAN Device Properties (支持6LoWPAN设备特性)
本节列出的一般目标应由6LoWPAN路由协议满足。每个要求的重要性取决于协议运行的节点类型以及节点的角色。以下要求考虑了LoWPAN中电池供电节点的存在。
[R01] 6LoWPAN路由协议应当 (SHOULD) 允许使用小代码量实现,并要求较低的路由状态以适应典型的6LoWPAN节点容量。一般来说,代码大小受可用闪存大小的限制,路由表受RAM大小的限制,可能将其限制为少于32个条目。
LoWPAN节点的RAM大小通常在4 KB到10 KB之间(最小2 KB),程序闪存通常由48 KB到128 KB组成。(例如,在当前市场上,MICAz具有128 KB程序闪存、4 KB EEPROM和512 KB外部闪存ROM; TIP700CM具有48 KB程序闪存、10 KB RAM和1 MB外部闪存ROM。)
由于这些硬件限制,代码应当 (SHOULD) 适合小内存大小——不超过48 KB到128 KB的闪存,包括至少几十KB的应用程序代码大小。(作为一般观察,低复杂度的路由协议可能有助于实现降低功耗的目标,提高鲁棒性,需要较低的路由状态,更容易分析,并且可能不太容易受到安全攻击。)
此外,应当 (SHOULD) 维护有限数量的路由状态(如路由表和邻居列表)的操作,因为某些典型的内存大小排除了存储大量节点的状态。例如,工业监控应用可能需要支持最多20跳 [RFC5673]。小型网络可以设计为支持较少的跳数。虽然对此的需求高度依赖于网络架构,但应该至少有一种操作模式可以使用32个或更少的转发条目运行。
[R02] 6LoWPAN路由协议应当 (SHOULD) 通过有效使用控制数据包(例如,最小化昂贵的IP多播,这会导致链路广播到整个LoWPAN)和有效路由数据包来实现最小的功耗。
优化电池寿命的一种方法是实现最小的控制消息开销。与计算操作或传感器采样等功能相比,无线电通信是功耗的主要因素 [Doherty]。传输和/或接收的功耗线性依赖于数据单元的长度以及数据单元的传输和接收频率 [Shih]。
[Hill] 中显示了两个用于低功耗节点的示例射频(RF)控制器的能耗。TR1000无线电在以0.75 mW传输时消耗21 mW,在接收期间消耗15 mW(接收器灵敏度为-85 dBm)。CC1000在以0.75 mW传输时消耗31.6 mW,在接收期间消耗20 mW(接收器灵敏度为-105 dBm)。[Hill] 中解释了理想电源概念下的功率持久性。基于理想AA电池的能量,CC1000可以连续传输约4天或连续接收9天。请注意,用于实际任务的可用性取决于通信的频率和其他低占空比操作,以及电池提供的能量容量。
在某些情况下,路由协议引入的开销很大。[Doherty] 报告说,在用于分层路由的LEACH协议中,[Heinzelman] 中提出的数据和协议包在每秒100位的速率下传输能耗的97%。在控制包开销要求不太高的情况下,控制包仍然在很大程度上起作用。对于低速率低功耗无线个人区域网络(LR-WPAN)的传感器数据,ZigBee (IEEE 802.15.4)在传感器数据传输中使用AODV路由,路由协议包消耗约15%的传输能量,而数据包的传输能耗约为85% [Doherty]。因此,路由协议应当 (SHOULD) 考虑使用有效的路由机制和简单的交换协议数据包格式。
[R03] 6LoWPAN路由协议控制消息应当不 (SHOULD NOT) 超过单个IEEE 802.15.4 MAC帧大小(最大127字节),以避免昂贵的碎片化和重组成本。
单个IEEE 802.15.4帧的最大物理层数据包大小为127字节 [IEEE802.15.4]。在LLC/SNAP承载以太网帧类型的情况下,40字节的IPv6报头加上UDP报头需要8字节,因此,UDP有效载荷为74字节。一般来说,为了保持协议简单并避免帧的分段和重组,6LoWPAN路由协议控制消息应当 (SHOULD) 以限制的数量发送,并尽可能小。
5.2. Support of 6LoWPAN Link Properties (支持6LoWPAN链路特性)
由于LoWPAN的拓扑条件,链路失败和传输失败经常发生。可能需要增加数据包的可靠性或使用额外的备份传输。处理意外的网络条件(如丢失数据或控制包、单向链路、变化的链路质量)对于设计健壮和可靠的路由协议至关重要。路由协议不仅需要在其设计中认识到这些类型的网络条件,还必须利用6LoWPAN的互联性提供的功能,以确保数据能够可靠地从源头传递到目的地。以下要求考虑了LoWPAN中链路的特性。
[R04] 6LoWPAN的路由协议设计必须 (MUST) 考虑路由优化的链路可靠性、链路错误率、链路质量和链路稳定性。
无线低功耗链路本质上是不可靠的,有多种原因会导致数据包丢失,例如:
- 许多设备可能在大部分时间处于睡眠状态,因此在数据包传输时可能没有邻居监听。
- 环境因素,如EMI、建筑物和基础设施的障碍物、地形等,可能导致传输失败或对称性链路变为不对称,反之亦然。
- 拥塞,特别是在传感器网络中,多跳通信和许多源向网关汇聚的路由流量增加了靠近网关节点周围的拥塞可能性 [Shelby-6LoWPAN]。
- 无线频谱通常是共享的,并且需要在几个采用ISM频段的无线技术之间进行协调,在这些频段中运行的网络可能会受到其他网络或设备的干扰的影响。
因此,6LoWPAN路由协议的设计必须 (MUST) 考虑链路可靠性、链路错误率、链路质量和链路稳定性以优化路由。
[R05] 6LoWPAN的路由协议设计必须 (MUST) 考虑不对称链路。
6LoWPAN路由协议必须 (MUST) 支持不对称链路,因为许多LoWPAN中的实际链路是不对称的(例如,低功耗感测节点和功率充足的基站之间的链路) [Shelby-CoAP]。在这种情况下,路由路径的选择必须 (MUST) 处理不对称链路。
[R06] 6LoWPAN路由协议应当 (SHOULD) 对链路丢失的动态变化具有鲁棒性。
6LoWPAN路由协议应当 (SHOULD) 对链路丢失的变化具有鲁棒性,以处理IEEE 802.15.4链路的不可靠性质。与LoWPAN节点连接的典型链路可能不是一直可用的。链路丢失的变化可能是由于各种因素,如节点移动、功率/电池耗尽、休眠周期、信号衰落或接收信号强度降低以及干扰引起的,并且可能导致长时间禁用链路。路由协议应当 (SHOULD) 以足够的方式处理这些链路的特性。
[R07] 6LoWPAN路由协议应当 (SHOULD) 设计为正确处理可能的帧大小。
在某些LoWPAN中,控制包可能的最大大小非常有限(单个IEEE 802.15.4 MAC帧中最多127字节),因为MAC层没有本地分段和重组支持。
最大帧大小意味着必须 (MUST) 强制执行小标头和低状态消息开销。控制包应当 (SHOULD) 足够小,以便适合单个链路层帧。然而,在构建消息时仍然需要灵活性;消息设计必须 (MUST) 适应标准IPv6报头和其他报头(如链路层报头和适配层报头)所需的空间,还必须 (MUST) 能够容纳其他路由协议和现有IETF协议所需的选项。
5.3. Support of 6LoWPAN Characteristics (支持6LoWPAN特性)
本节考虑了可能影响6LoWPAN路由协议设计的基本网络特性。
[R08] 6LoWPAN路由协议的设计应当 (SHOULD) 考虑到流量模式、网络密度、节点的可能角色或功能以及不同网络配置的使用和数量。
6LoWPAN路由协议应当 (SHOULD) 能够处理多种不同的LoWPAN拓扑,例如:
- 点对点、点对多点、多点对点或点对多点的流量模式
- 通信流量集中在单点(例如网关)
- 变化的主机和路由器密度,变化的路由器-主机比率
- 路由器功能可能与主机功能不同或可能在同一节点上
- 不同的节点功能,例如受限节点和不受限节点,或执行路由、中继、聚合等功能的节点
- 不同的网络配置,例如对等、星形、网状网络
- 在部署后期间(运行时)的动态网络形成和拓扑变化
- 变化的网络大小;网络的大小也可能非常多样化,从几个节点的网络到几百个或更多节点
- 网络分区可能发生并且需要被处理
[R09] 6LoWPAN路由协议使用的度量应当 (SHOULD) 考虑节点和链路属性的综合影响。
将链路质量和节点属性纳入路由度量中以最小化能源消耗和确保成功交付是很重要的。例如,最小跳数的最短路径可能不是最节能的路径,因为它可能通过非常拥塞的节点或通过经历更多错误并因此需要更多重传的链路。
关于度量的类型,路由度量应该能够有效地表示:
- 链路度量:接收信号强度指示(RSSI)、链路质量指示(LQI)、预期传输计数(ETX)、吞吐量、延迟
- 节点度量:状态(睡眠、清醒、听)、剩余能量、跳数、地理信息(例如GPS坐标)
- 复合度量(链路和节点)
还应当 (SHOULD) 考虑其他可能的度量,如:
- 可靠性
- 健壮性
- 稳定性
[R10] 6LoWPAN路由协议应当 (SHOULD) 设计为实现6LoWPAN中的可扩展性和寿命。
可扩展性和寿命要求是LoWPAN的基本特性:
-
可扩展性: 一个LoWPAN可能只包含几个节点(例如,用于个人区域网络或身体区域网络),但也可能包含数量多得多的设备(例如,监控城市基础设施或高速公路)。对于家庭自动化应用,设想路由协议必须 (MUST) 支持网络中的250个设备 [RFC5826],而大都市规模传感器网络的路由协议必须 (MUST) 能够将大量传感节点聚类到包含约10^2到10^4个传感节点的区域 [RFC5548]。因此,必须 (MUST) 设计路由机制以可扩展地在各种规模的网络中运行。然而,由于缺乏内存大小和计算能力,6LoWPAN路由可能会将转发条目限制为少量,例如最多32个路由表条目。特别是在大型网络中,路由机制必须 (MUST) 设计成使得路由器的数量小于主机的数量。
-
寿命: 路由修复的过程和相关控制消息应当不 (SHOULD NOT) 损害路由协议的整体能耗。
[R11] 路由修复的过程和相关控制消息应当不 (SHOULD NOT) 损害路由协议的整体能耗。
本地修复提高了吞吐量和端到端延迟,特别是在大型网络中。由于路由快速修复,丢弃的数据包更少,并且需要较少数量的路由协议包传输,因为路由可以在没有源发起的路由发现的情况下修复 [Lee]。这里的一个重要考虑因素可能是避免过早的能量耗尽,即使这会损害其他要求。
[R12] 6LoWPAN路由协议应当 (SHOULD) 允许动态自适应拓扑和移动节点。在支持动态拓扑和移动节点时,路由维护应该牢记最小路由状态和路由协议消息开销的目标。
拓扑节点移动性可能是物理移动和/或变化的无线电环境的结果,这使得即使在具有物理静态节点的网络中也很可能需要处理移动性。6LoWPAN不使用单独的协议来维护与移动节点的连接,而是期望路由协议来处理它。
此外,一些节点可能从一个6LoWPAN移动到另一个6LoWPAN,并期望在有限的时间内成为后者6LoWPAN的功能成员。
例如,建筑监控应用对移动性的恢复和稳定时间有许多要求,范围在5到20秒之间([RFC5867] 的第5.3.1节)。对于更多交互式应用,如家庭自动化系统中使用的应用,用户提供输入并期望即时反馈,移动性要求也更加严格,对于网络内的移动,通常需要低于0.5秒的收敛时间([RFC5826] 的第3.2节)。在工业环境中,移动设备(例如起重机)四处移动,路由协议需要支持高达35 km/h的车辆速度 [RFC5673]。目前,6LoWPAN通常不用于如此快速的移动性,但必须 (MUST) 在6LoWPAN中支持动态关联和解除关联。
6LoWPAN路由协议应当解决几个挑战,以便在动态环境中创建健壮的路由:
-
在LoWPAN内改变其位置的移动节点: 如果节点的移动模式未知,则路由协议不能轻易检测或区分移动性。移动节点可以被视为在一个地方消失并在另一个地方重新出现的节点。跟踪移动模式会增加复杂性,可以通过使用反应性路由更新来处理移动节点来避免。
-
LoWPAN相对于其他(互)连接的LoWPAN的移动: 在每个存根网络内,(一个或多个)相对强大的网关节点(6LBR)需要配置为处理移动的LoWPAN。
-
节点永久加入或离开LoWPAN: 为了简化路由表更新,减少这些更新的大小,并最小化错误控制消息,离开网络的节点可以向最近的边缘路由器或向负责本地关联和解除关联的特定节点(如果有)宣布其解除关联。
[R13] 6LoWPAN路由协议应当 (SHOULD) 支持各种流量模式——点对点、点对多点和多点对点——同时避免LoWPAN中过多的多播流量。
6LoWPAN通常具有点对多点或多点对点的流量模式。许多新兴应用也包括点对点通信。6LoWPAN路由协议应当 (SHOULD) 在设计时考虑从/到多个源/目的地转发数据包。ROLL工作组的当前文档解释说,LoWPAN用例的工作负载或流量模式往往是高度结构化的,不像主导典型客户端和服务器工作负载的任意到任意数据传输。在许多情况下,利用这种结构可以简化由资源限制或连接变化引起的困难问题。
5.4. Support of Security (支持安全性)
安全性是低功耗网络的一个关键问题。6LoWPAN路由协议的任何解决方案都应当 (SHOULD) 满足以下基本安全要求。这些要求必须 (MUST) 适用于路由机制和网络数据交换,同时应避免过多的功耗和处理能力使用。
[R14] 6LoWPAN路由协议应当 (SHOULD) 支持消息完整性、消息源身份验证和消息机密性服务,以抵御路由威胁。
考虑到路由协议安全性的重要性以及对6LoWPAN安全威胁的性质(例如,在[ROLL-SEC]中描述),路由协议应当 (SHOULD) 支持:
- 消息完整性,以防止中间节点的协议消息修改
- 消息源身份验证,以防止来自伪造源的欺骗攻击
- 消息机密性,以防止被动窃听
还应考虑消息的时效性。过时的消息本身可能是一种形式的攻击,在这种情况下,应用层本身或与数据链路安全功能一起的时效性服务对于6LoWPAN是有帮助的。
必须 (MUST) 保护路由协议免受攻击,如重放、注入、修改等,这些攻击可能导致包括路由或拓扑环路、对特定节点的定向拒绝服务、生成错误的路由信息、资源耗尽或网络分区在内的威胁 [ROLL-SEC]。
安全支持将是一个选项,如果启用,将遵守使用安全6LoWPAN路由协议的所有规则。通过实现链路层安全性(CCM*模式的安全性,定义在IEEE 802.15.4的子条款7.6中)并添加其他路由协议特定的安全性和消息完整性检查机制(如时间戳或序列号),可以实现对大多数安全威胁的抵抗力。
设计必须 (MUST) 考虑协议必须 (MUST) 执行的重型操作的成本。例如,与对称密钥相比,使用公钥可能导致更高的能量消耗。需要大量节点状态的安全操作(如地址/密钥管理、认证、链路层密钥建立)的通用解决方案应该在所有LoWPAN协议中使用以节省开销。6LoWPAN路由协议应当 (SHOULD) 设计用于支持启用这些功能,并且这些功能本身应该注意不要消耗过多的电力。
5.5. Support of Mesh-Under Forwarding (支持Mesh-Under转发)
当前的6LoWPAN架构允许通过mesh-under路由实现多跳转发 [RFC4944]。这种方法的一个关键特征是,能够支持mesh-under转发和route-over路由可以在6LoWPAN协议中作为一项要求。但这是否是6LoWPAN路由协议的要求仍然是一个开放的问题。在这方面,我们需要考虑对这两种不同方法(一个使用IP路由,另一个使用自己的转发机制)的要求。
mesh-under转发机制使用链路层地址(MAC地址),因此它在IP子网的边界处停止。当与使用IPv6地址和路由表的route-over路由配合使用时,它可能需要跨层信息,包括它自己的转发表。
由于这个原因,mesh-under转发机制可能为相关操作提供其自己的拓扑维护消息和转发表。这可能与route-over路由协议所需的功能相当,这些功能用于邻居/链路发现、转发表条目的管理、拓扑维护和路径发现。
因此,一个关键问题是这两种方法(route-over和mesh-under)应该如何结合,它们如何能够协调工作,从而避免可能出现的任何冗余或互操作性问题。未来的工作应该特别关注这些架构问题。
5.6. Support of Management (支持管理)
对于网络管理而言,以下要求应当 (SHOULD) 被考虑。
LoWPAN可能需要被动态配置和初始化,例如,在网关加电后,它不知道哪些节点属于它的子网。节点加入网络的能力本质上与路由技术无关,尽管一些路由协议可能有助于这一过程。路由协议应当 (SHOULD) 支持网络的初始化和配置。这在路由协议和其他功能(如地址分配、自动配置和邻居发现)之间的交互中可能涉及。
对于监控和调试,获取相关的路由协议参数、当前配置、路由器和主机功能的当前状态的能力是很重要的。应该可以获取路由表、邻居表、消息计数和链路质量信息等信息。应该考虑诊断、故障检测、监控和事件/告警报告功能的接口。虽然在某些情况下现有的协议和接口可用于此目的,但可能需要专门针对LoWPAN的解决方案。
因为某些LoWPAN通常会周期性地处于休眠状态,所以应该能够控制节点休眠/唤醒模式,这样可以使用较低的延迟收集信息。
支持路由协议进化以及根据情况和流量模式更改路由参数的能力是很重要的。例如,可能需要选择metric类型、调整计时器值或选择/更改协议的模式(如果支持)。一种可能性是切换到一个完全不同的协议。然而,这可能由于代码大小要求而不可行。用户应该能够支持多种路由协议的实现。
应该考虑以下附加的管理方面:
- 设备管理和节点拓扑配置能力
- 安全管理,包括密钥管理
- 睡眠时间表管理
- 服务质量管理
- 路径修复、故障检测和控制
- 跨层集成和协调