Internet Engineering Task Force (IETF) M. Goyal, Ed. Request for Comments: 6998 Univ. of Wisconsin Milwaukee Category: Experimental E. Baccelli ISSN: 2070-1721 INRIA A. Brandt Sigma Designs J. Martocci Johnson Controls August 2013
Internet Engineering Task Force (IETF) M. Goyal, Ed. Request for Comments: 6998 Univ. of Wisconsin Milwaukee Category: Experimental E. Baccelli ISSN: 2070-1721 INRIA A. Brandt Sigma Designs J. Martocci Johnson Controls August 2013
A Mechanism to Measure the Routing Metrics along a Point-to-Point Route in a Low-Power and Lossy Network
一种在低功耗有损网络中沿点到点路由测量路由度量的机制
Abstract
摘要
This document specifies a mechanism that enables a Routing Protocol for Low-power and Lossy Networks (RPL) router to measure the aggregated values of given routing metrics along an existing route towards another RPL router, thereby allowing the router to decide if it wants to initiate the discovery of a better route.
本文档指定了一种机制,该机制使低功耗和有损网络(RPL)路由器的路由协议能够测量沿着现有路由到另一个RPL路由器的给定路由度量的聚合值,从而允许路由器决定是否要开始发现更好的路由。
Status of This Memo
关于下段备忘
This document is not an Internet Standards Track specification; it is published for examination, experimental implementation, and evaluation.
本文件不是互联网标准跟踪规范;它是为检查、实验实施和评估而发布的。
This document defines an Experimental Protocol for the Internet community. This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are a candidate for any level of Internet Standard; see Section 2 of RFC 5741.
本文档为互联网社区定义了一个实验协议。本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。并非IESG批准的所有文件都适用于任何级别的互联网标准;见RFC 5741第2节。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6998.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6998.
Copyright Notice
版权公告
Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2013 IETF信托基金和确定为文件作者的人员。版权所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。
Table of Contents
目录
1. Introduction ....................................................4 1.1. Terminology ................................................5 2. Overview ........................................................6 3. The Measurement Object (MO) .....................................7 3.1. Format of the Base MO ......................................8 3.2. Secure MO .................................................12 4. Originating a Measurement Request ..............................13 4.1. When Measuring a Hop-by-Hop Route with a Global RPLInstanceID .............................................14 4.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off .................15 4.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On ..................16 4.4. When Measuring a Source Route .............................17 5. Processing a Measurement Request at an Intermediate Point ......19 5.1. When Measuring a Hop-by-Hop Route with a Global RPLInstanceID .............................................19 5.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off .................21 5.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On ..................21 5.4. When Measuring a Source Route .............................22 5.5. Final Processing ..........................................23 6. Processing a Measurement Request at the End Point ..............23 6.1. Generating the Measurement Reply ..........................24 7. Processing a Measurement Reply at the Start Point ..............25 8. Security Considerations ........................................25 9. IANA Considerations ............................................27 10. Acknowledgements ..............................................27 11. References ....................................................28 11.1. Normative References .....................................28 11.2. Informative References ...................................28
1. Introduction ....................................................4 1.1. Terminology ................................................5 2. Overview ........................................................6 3. The Measurement Object (MO) .....................................7 3.1. Format of the Base MO ......................................8 3.2. Secure MO .................................................12 4. Originating a Measurement Request ..............................13 4.1. When Measuring a Hop-by-Hop Route with a Global RPLInstanceID .............................................14 4.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off .................15 4.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On ..................16 4.4. When Measuring a Source Route .............................17 5. Processing a Measurement Request at an Intermediate Point ......19 5.1. When Measuring a Hop-by-Hop Route with a Global RPLInstanceID .............................................19 5.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off .................21 5.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On ..................21 5.4. When Measuring a Source Route .............................22 5.5. Final Processing ..........................................23 6. Processing a Measurement Request at the End Point ..............23 6.1. Generating the Measurement Reply ..........................24 7. Processing a Measurement Reply at the Start Point ..............25 8. Security Considerations ........................................25 9. IANA Considerations ............................................27 10. Acknowledgements ..............................................27 11. References ....................................................28 11.1. Normative References .....................................28 11.2. Informative References ...................................28
Point-to-point (P2P) communication between arbitrary routers in a Low-power and Lossy Network (LLN) is a key requirement for many home and commercial building automation applications [RFC5826] [RFC5867]. The IPv6 Routing Protocol for LLNs (RPL) [RFC6550] constrains the LLN topology to a Directed Acyclic Graph (DAG) built to optimize the routing costs to reach the DAG's root. The P2P routing functionality, available under RPL, has the following key limitations:
低功耗有损网络(LLN)中任意路由器之间的点对点(P2P)通信是许多家庭和商业楼宇自动化应用的关键要求[RFC5826][RFC5867]。用于LLN的IPv6路由协议(RPL)[RFC6550]将LLN拓扑约束为一个有向无环图(DAG),该图用于优化到达DAG根的路由成本。RPL下提供的P2P路由功能具有以下关键限制:
o The P2P routes are restricted to use the DAG links only. Such P2P routes may potentially be suboptimal and may lead to traffic congestion near the DAG root.
o P2P路由仅限于使用DAG链接。这种P2P路由可能是次优的,并且可能导致DAG根附近的流量拥塞。
o RPL is a proactive routing protocol and hence requires that all P2P routes be established ahead of the time they are used. Many LLN applications require the ability to establish P2P routes "on demand".
o RPL是一种主动式路由协议,因此要求在使用所有P2P路由之前建立它们。许多LLN应用程序需要“按需”建立P2P路由的能力。
To ameliorate situations where the core RPL's P2P routing functionality does not meet an application's requirements, [RFC6997] describes P2P-RPL, an extension to core RPL. P2P-RPL provides a reactive mechanism to discover P2P routes that meet the specified routing constraints [RFC6551]. In some cases, the application's requirements or the LLN's topological features allow a router to infer these routing constraints implicitly. For example, the application may require that the end-to-end loss rate and/or latency along the route be below certain thresholds, or the LLN topology may be such that a router can safely assume that its destination is less than a certain number of hops away from itself.
为了改善核心RPL的P2P路由功能不能满足应用程序要求的情况,[RFC6997]描述了核心RPL的扩展P2P-RPL。P2P-RPL提供了一种反应机制来发现满足指定路由约束的P2P路由[RFC6551]。在某些情况下,应用程序的要求或LLN的拓扑特性允许路由器隐式地推断这些路由约束。例如,应用程序可能要求沿路由的端到端丢失率和/或延迟低于特定阈值,或者LLN拓扑可能使得路由器可以安全地假设其目的地距离自身的跳数小于特定数目。
When the existing routes are deemed unsatisfactory but the router does not implicitly know the routing constraints to be used in P2P-RPL route discovery, it may be necessary for the router to measure the aggregated values of the routing metrics along the existing route. This knowledge will allow the router to frame reasonable routing constraints to discover a better route using P2P-RPL. For example, if the router determines the aggregate ETX (expected transmission count) [RFC6551] along an existing route to be "x", it can use "ETX < x*y", where y is a certain fraction, as the routing constraint for use in P2P-RPL route discovery. Note that it is important that the routing constraints not be overly strict; otherwise, the P2P-RPL route discovery may fail even though a route exists that is much better than the one currently being used.
当现有路由被认为不令人满意,但路由器并不隐式地知道将在P2P-RPL路由发现中使用的路由约束时,路由器可能需要测量沿现有路由的路由度量的聚合值。这些知识将允许路由器制定合理的路由约束,以便使用P2P-RPL发现更好的路由。例如,如果路由器确定沿现有路由的聚合ETX(预期传输计数)[RFC6551]为“x”,则它可以使用“ETX<x*y”,其中y是某个分数,作为在P2P-RPL路由发现中使用的路由约束。请注意,重要的是布线约束不要过于严格;否则,即使存在比当前使用的路由好得多的路由,P2P-RPL路由发现也可能失败。
This document specifies a mechanism that enables a RPL router to measure the aggregated values of the routing metrics along an existing route to another RPL router in an LLN, thereby allowing the router to decide if it wants to discover a better route using P2P-RPL and determine the routing constraints to be used for this purpose. Thus, the utility of this mechanism is dependent on the existence of P2P-RPL [RFC6997]. The hope is that experiments with P2P-RPL and the mechanism defined in this document will result in feedback on the utility and benefits of this document, so that a Standards Track version of this document can then be developed.
本文档指定了一种机制,使RPL路由器能够测量沿现有路由到LLN中另一个RPL路由器的路由度量的聚合值,从而允许路由器决定是否希望使用P2P-RPL发现更好的路由,并确定用于此目的的路由约束。因此,这种机制的效用取决于P2P-RPL的存在[RFC6997]。希望通过对P2P-RPL和本文档中定义的机制的实验,可以对本文档的实用性和好处进行反馈,从而开发出本文档的标准跟踪版本。
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“建议”、“不建议”、“可”和“可选”应按照[RFC2119]中的说明进行解释。
Additionally, this document uses terminology from [RFC6550], [RFC6554], and [RFC6997]. Further terminology may be found in [ROLL-TERMS]. This document defines the following terms:
此外,本文件使用了[RFC6550]、[RFC6554]和[RFC6997]中的术语。更多术语见[滚动术语]。本文件定义了以下术语:
Start Point: The RPL router that initiates the measurement process defined in this document and that is the start point of the P2P route being measured.
起点:启动本文档中定义的测量过程的RPL路由器,它是正在测量的P2P路由的起点。
End Point: The RPL router at the end point of the P2P route being measured.
端点:位于被测量P2P路由端点的RPL路由器。
Intermediate Point: A RPL router, other than the Start Point and the End Point, on the P2P route being measured.
中间点:在被测量的P2P路由上,除了起点和终点之外的RPL路由器。
The following terms, as already defined in [RFC6997], are redefined in this document in the following manner:
[RFC6997]中已经定义的以下术语在本文件中以以下方式重新定义:
Forward direction: The direction from the Start Point to the End Point.
前进方向:从起点到终点的方向。
Reverse direction: The direction from the End Point to the Start Point.
反向:从终点到起点的方向。
The mechanism described in this document can be used by a Start Point in an LLN to measure the aggregated values of selected routing metrics along a P2P route to an End Point within the LLN. The route is measured in the Forward direction. Such a route could be a Source Route or a Hop-by-hop Route established using RPL [RFC6550] or P2P-RPL [RFC6997]. Such a route could also be a "mixed" route, with the initial part consisting of hop-by-hop ascent to the root of a non-storing DAG [RFC6550] and the final part consisting of a source-routed descent to the End Point. The Start Point decides what metrics to measure and sends a Measurement Request message, carrying the desired routing metric objects, along the route. If a Source Route is being measured, the Measurement Request carries the route inside an Address vector. If a Hop-by-hop Route is being measured, the Measurement Request identifies the route by its RPLInstanceID [RFC6550] (and, if the RPLInstanceID is a local value, the Start Point's IPv6 address associated with the route). On receiving a Measurement Request, an Intermediate Point updates the routing metric values inside the message and forwards it to the next hop on the route. Thus, the Measurement Request accumulates the values of the routing metrics for the complete route as it travels towards the End Point. Upon receiving the Measurement Request, the End Point unicasts a Measurement Reply message, carrying the accumulated values of the routing metrics, back to the Start Point. Optionally, the Start Point may allow an Intermediate Point to generate the Measurement Reply if the Intermediate Point already knows the relevant routing metric values along the rest of the route.
本文档中描述的机制可由LLN中的起点用于测量沿着P2P路由到LLN中的终点的所选路由度量的聚合值。在前进方向测量路线。这种路由可以是源路由或使用RPL[RFC6550]或P2P-RPL[RFC6997]建立的逐跳路由。这种路由也可以是“混合”路由,初始部分包括逐跳上升到非存储DAG的根[RFC6550],最终部分包括源路由下降到终点。起点决定要度量的度量,并沿路由发送一条度量请求消息,其中包含所需的路由度量对象。如果正在测量源路由,则测量请求在地址向量内携带路由。如果正在测量逐跳路由,则测量请求通过其RPLInstanceID[RFC6550](如果RPLInstanceID是本地值,则通过与路由关联的起点IPv6地址)来标识路由。在接收到测量请求时,中间点更新消息内的路由度量值,并将其转发到路由上的下一个跃点。因此,当整个路由向端点移动时,测量请求累积路由度量的值。在接收到测量请求时,端点单播一条测量回复消息,该消息携带路由度量的累积值,返回到起点。可选地,如果中间点已经知道沿着路由的其余部分的相关路由度量值,则起始点可以允许中间点生成测量应答。
The Measurement Request may include an Address vector that serves one of the following functions:
测量请求可以包括服务于以下功能之一的地址向量:
o To accumulate a Source Route for the End Point's use: If a Hop-by-hop Route with a local RPLInstanceID is being measured, the Start Point may require that each Intermediate Point add its global or unique-local IPv6 address to an Address vector inside the Measurement Request. The Source Route, thus accumulated, can be used by the End Point to reach the Start Point. In particular, the End Point may use the accumulated Source Route to send the Measurement Reply back to the Start Point. In this case, the Start Point includes a suitably sized Address vector in the Measurement Request. The size of the Address vector puts a hard limit on the length of the accumulated route. An Intermediate Point is not allowed to modify the size of the Address vector and must discard a received Measurement Request if the Address vector is not large enough to contain the complete route.
o 累积源路由以供端点使用:如果正在测量具有本地RPLInstanceID的逐跳路由,则起点可能要求每个中间点将其全局或唯一的本地IPv6地址添加到测量请求内的地址向量中。由此累积的源路由可由端点用于到达起点。具体地,端点可以使用累积源路由将测量应答发送回起点。在这种情况下,起始点在测量请求中包括适当大小的地址向量。地址向量的大小对累积路由的长度有一个硬限制。不允许中间点修改地址向量的大小,如果地址向量不足以包含完整路由,则中间点必须放弃接收到的测量请求。
o To carry the Source Route being measured: The Start Point may insert an Address vector inside the Measurement Request to carry the Source Route being measured. Also, the root of a global non-storing DAG may insert an Address vector, carrying a Source Route from itself to the End Point, inside a Measurement Request message if this message had been traveling along this DAG so far. This Source Route must consist of global or unique-local IPv6 addresses. An Intermediate Point is not allowed to modify an existing Address vector before forwarding the Measurement Request further. In other words, an Intermediate Point must not modify the Source Route along which the Measurement Request is currently traveling.
o 携带被测量的源路由:起点可以在测量请求中插入地址向量,以携带被测量的源路由。此外,全局非存储DAG的根可以在测量请求消息内插入地址向量,该地址向量携带从其自身到端点的源路由,如果该消息迄今为止一直沿着该DAG传播。此源路由必须由全局或唯一的本地IPv6地址组成。在进一步转发测量请求之前,不允许中间点修改现有地址向量。换句话说,中间点不得修改测量请求当前所沿的源路由。
This document defines two new RPL control message types: the Measurement Object (MO), with code 0x06; and the Secure MO, with code 0x86. An MO serves as both Measurement Request and Measurement Reply.
本文档定义了两种新的RPL控制消息类型:测量对象(MO),代码为0x06;和安全MO,代码为0x86。生产任务单同时作为计量请求和计量回复。
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID | Compr |T|H|A|R|B|I| SeqNo | Num | Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Start Point Address . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . End Point Address . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Address[0..Num-1] . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Metric Container Option(s) . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | RPLInstanceID | Compr |T|H|A|R|B|I| SeqNo | Num | Index | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Start Point Address . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . End Point Address . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Address[0..Num-1] . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | . Metric Container Option(s) . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Format of the Base Measurement Object (MO)
图1:基本测量对象(MO)的格式
The format of a base MO is shown in Figure 1. A base MO consists of the following fields:
基本MO的格式如图1所示。基本生产任务单由以下字段组成:
o RPLInstanceID: This field specifies the RPLInstanceID of the Hop-by-hop Route along which the Measurement Request travels (or traveled initially until it switched over to a Source Route).
o RPLInstanceID:此字段指定测量请求沿其移动的逐跳路由的RPLInstanceID(或最初移动直到切换到源路由)。
o Compr: In many LLN deployments, IPv6 addresses share a well-known, common prefix. In such cases, the common prefix can be elided when specifying IPv6 addresses in the Start Point/End Point Address fields and the Address vector. The "Compr" field, a 4-bit unsigned integer, is set by the Start Point to specify the number of prefix octets that are elided from the IPv6 addresses in Start Point/End Point Address fields and the Address vector. The Start Point will set the Compr value to zero if full IPv6 addresses are to be carried in the Start Point Address/End Point Address fields and the Address vector.
o Compr:在许多LLN部署中,IPv6地址共享一个众所周知的通用前缀。在这种情况下,在起点/终点地址字段和地址向量中指定IPv6地址时,可以省略公共前缀。“Compr”字段是一个4位无符号整数,由起点设置,用于指定从起点/终点地址字段和地址向量中的IPv6地址中删除的前缀八位字节数。如果要在起点地址/终点地址字段和地址向量中携带完整的IPv6地址,则起点会将Compr值设置为零。
o Type (T): This flag is set to one if the MO represents a Measurement Request. The flag is set to zero if the MO is a Measurement Reply.
o 类型(T):如果MO代表测量请求,则此标志设置为1。如果MO是测量回复,则该标志设置为零。
o Hop-by-hop (H): The Start Point MUST set this flag to one if (at least the initial part of) the route being measured is hop by hop. In that case, the Hop-by-hop Route is identified by the RPLInstanceID, the End Point Address, and, if the RPLInstanceID is a local value, the Start Point Address fields inside the Measurement Request. Here, the Start Point Address field is required to be the same as the DODAGID (the identifier of the Destination-Oriented DAG (DODAG) root) [RFC6550] of the route being measured. The Start Point MUST set the H flag to zero if the route being measured is a Source Route specified in the Address vector. An Intermediate Point MUST set the H flag in an outgoing Measurement Request to the same value that it had in the corresponding incoming Measurement Request, except under the following circumstance: If the Intermediate Point is the root of the non-storing global DAG along which the Measurement Request had been traveling so far and it intends to insert a Source Route inside the Address vector to direct the Measurement Request towards the End Point, then it MUST set the H flag to zero.
o 逐跳(H):如果(至少是初始部分)正在测量的路由是逐跳的,则起点必须将此标志设置为1。在这种情况下,逐跳路由由RPLInstanceID、端点地址以及(如果RPLInstanceID是本地值)测量请求内的起点地址字段标识。这里,起始点地址字段要求与被测量路由的DODAGID(面向目的地的DAG(DODAG)根的标识符)[RFC6550]相同。如果正在测量的路由是地址向量中指定的源路由,则起点必须将H标志设置为零。中间点必须将传出测量请求中的H标志设置为其在相应传入测量请求中的相同值,除非在以下情况下:如果中间点是测量请求一直沿着其移动的非存储全局DAG的根,并且它打算在地址向量内插入源路由以将测量请求指向端点,那么它必须将H标志设置为零。
o Accumulate Route (A): A value of 1 in this flag indicates that the Measurement Request is accumulating a Source Route for use by the End Point to send the Measurement Reply back to the Start Point. Route accumulation MUST NOT be used (i.e., this flag MUST NOT be set to one) inside a Measurement Request, unless it travels along a Hop-by-hop Route represented by a local RPLInstanceID (i.e., H = 1 and RPLInstanceID has a local value). Route accumulation MAY be used (i.e., this flag MAY be set to one) if the Measurement Request is traveling along a Hop-by-hop Route with a local RPLInstanceID. In this case, if the route accumulation is on, an Intermediate Point adds its unicast global/unique-local IPv6 address (after eliding Compr number of prefix octets) to the Address vector in the manner specified in Section 5.3. In other cases, this flag MUST be set to zero on transmission and ignored on reception. Route accumulation is not allowed when the Measurement Request travels along a Hop-by-hop Route with a global RPLInstanceID, i.e., along a global DAG, because:
o 累积路由(A):此标志中的值1表示测量请求正在累积源路由,供端点使用,以将测量回复发送回起点。在测量请求内不得使用路由累积(即,此标志不得设置为1),除非它沿着由本地RPLInstanceID表示的逐跳路由移动(即,H=1且RPLInstanceID具有本地值)。如果测量请求使用本地RPLInstanceID沿着逐跳路由移动,则可以使用路由累积(即,该标志可以设置为1)。在这种情况下,如果路由累积打开,中间点将以第5.3节中规定的方式将其单播全局/唯一本地IPv6地址(在省略前缀八位字节的压缩数后)添加到地址向量。在其他情况下,此标志必须在传输时设置为零,在接收时忽略。当测量请求沿着带有全局RPLInstanceID的逐跳路由(即沿着全局DAG)移动时,不允许路由累积,因为:
* The DAG's root may need the Address vector to insert a Source Route to the End Point; and
* DAG的根可能需要地址向量来插入到端点的源路由;和
* The End Point can presumably reach the Start Point along this global DAG (identified by the RPLInstanceID field).
* 终点可能会沿着此全局DAG(由RPLInstanceID字段标识)到达起点。
o Reverse (R): A value of 1 in this flag inside a Measurement Request indicates that the Address vector contains a complete Source Route from the Start Point to the End Point, which can be used, after reversal, by the End Point to send the Measurement Reply back to the Start Point. This flag MAY be set to one inside a Measurement Request only if a Source Route, from the Start Point to the End Point, is being measured. Otherwise, this flag MUST be set to zero on transmission and ignored on reception.
o 反向(R):测量请求中此标志的值为1表示地址向量包含从起点到终点的完整源路由,在反向后,终点可使用该路由将测量回复发送回起点。只有在测量从起点到终点的源路由时,此标志才可以在测量请求内设置为1。否则,此标志在传输时必须设置为零,在接收时必须忽略。
o Back Request (B): A value of 1 in this flag serves as a request to the End Point to send a Measurement Request towards the Start Point. On receiving a Measurement Request with the B flag set to one, the End Point SHOULD generate a Measurement Request to measure the cost of its current (or the most preferred) route to the Start Point. Receipt of this Measurement Request would allow the Start Point to know the cost of the back route from the End Point to itself and thus determine the round-trip cost of reaching the End Point.
o 返回请求(B):此标志中的值1用作向终点发送测量请求的请求,以向起点发送测量请求。当接收到B标志设置为1的测量请求时,端点应生成测量请求,以测量其当前(或最首选)到起点的路线的成本。收到该测量请求将允许起点了解从终点到终点的回路线成本,从而确定到达终点的往返成本。
o Intermediate Reply (I): A value of 1 in this flag serves as permission to an Intermediate Point to generate a Measurement Reply if it knows the aggregated values of the routing metrics being measured for the rest of the route. Setting this flag to one may be useful in scenarios where the Hop Count [RFC6551] is the routing metric of interest and an Intermediate Point (e.g., the root of a non-storing global DAG or a common ancestor of the Start Point and the End Point in a storing global DAG) may know the Hop Count of the remainder of the route to the End Point. This flag MAY be set to one only if a Hop-by-hop Route with a global RPLInstanceID is being measured (i.e., H = 1 and RPLInstanceID has a global value). Otherwise, this flag MUST be set to zero on transmission and ignored on reception.
o 中间应答(I):如果中间点知道为剩余路由测量的路由度量的聚合值,则此标志中的值1将用作中间点生成测量应答的权限。在跳数[RFC6551]是感兴趣的路由度量且中间点(例如,非存储全局DAG的根或存储全局DAG中起点和终点的共同祖先)可以知道到终点的路由剩余部分的跳数的情况下,将该标志设置为1可能有用。仅当测量具有全局RPLInstanceID的逐跳路由时(即,H=1且RPLInstanceID具有全局值),此标志才可设置为1。否则,此标志在传输时必须设置为零,在接收时必须忽略。
o SeqNo: This is a 6-bit sequence number, assigned by the Start Point, that allows the Start Point to uniquely identify a Measurement Request and the corresponding Measurement Reply.
o SeqNo:这是一个由起始点分配的6位序列号,允许起始点唯一标识测量请求和相应的测量回复。
o Num: This field indicates the number of elements, each (16 - Compr) octets in size, inside the Address vector. If the value of this field is zero, the Address vector is not present in the MO.
o Num:该字段表示地址向量内的元素数量,每个(16-Compr)八位字节大小。如果此字段的值为零,则MO中不存在地址向量。
o Index: If the Measurement Request is traveling along a Source Route contained in the Address vector (i.e., H = 0), this field indicates the index in the Address vector of the next hop on the route. If the Measurement Request is traveling along a Hop-by-hop Route with a local RPLInstanceID and the route accumulation is on (i.e., H = 1, RPLInstanceID has a local value, and A = 1), this
o 索引:如果测量请求沿着地址向量中包含的源路由(即H=0)移动,则此字段表示路由上下一跳的地址向量中的索引。如果测量请求沿着带有本地RPLInstanceID的逐跳路由移动,并且路由累积处于开启状态(即,H=1,RPLInstanceID具有本地值,且a=1),则
field indicates the index in the Address vector where an Intermediate Point receiving the Measurement Request must store its IPv6 address. Otherwise, this field MUST be set to zero on transmission and ignored on reception.
字段表示地址向量中的索引,在该索引中,接收测量请求的中间点必须存储其IPv6地址。否则,该字段必须在传输时设置为零,在接收时忽略。
o Start Point Address: This is a unicast global or unique-local IPv6 address of the Start Point after eliding Compr number of prefix octets. If the Measurement Request is traveling along a Hop-by-hop Route and the RPLInstanceID field indicates a local value, the Start Point Address field MUST specify the DODAGID value that, along with the RPLInstanceID and the End Point Address, uniquely identifies the Hop-by-hop Route being measured.
o 起始点地址:这是一个单播全局或唯一的本地IPv6地址,在省略了前缀八位字节的压缩数之后。如果测量请求沿着逐跳路由进行,并且RPLInstanceID字段指示本地值,则起点地址字段必须指定DODAGID值,该值与RPLInstanceID和终点地址一起唯一标识正在测量的逐跳路由。
o End Point Address: This is a unicast global or unique-local IPv6 address of the End Point after eliding Compr number of prefix octets.
o 端点地址:这是一个单播全局或唯一的本地IPv6地址,在省略了前缀八位字节的压缩数之后。
o Address[0..Num-1]: This field is a vector of unicast global or unique-local IPv6 addresses (with Compr number of prefix octets elided) representing a Source Route:
o 地址[0..Num-1]:此字段是表示源路由的单播全局或唯一本地IPv6地址(省略了前缀八位字节的压缩数)的向量:
* Each element in the vector has size (16 - Compr) octets.
* 向量中的每个元素都有大小(16-Compr)八位字节。
* The total number of elements inside the Address vector is given by the Num field.
* 地址向量中的元素总数由Num字段给出。
* The Start Point and End Point addresses MUST NOT be included in the Address vector.
* 地址向量中不得包含起点和终点地址。
* The Address vector MUST NOT contain any multicast addresses.
* 地址向量不得包含任何多播地址。
* If the Start Point wants to measure a Hop-by-hop Route with a local RPLInstanceID and accumulate a Source Route for the End Point's use (i.e., the Measurement Request has the H flag set to one, RPLInstanceID set to a local value, and the A flag set to one), it MUST include a suitably sized Address vector in the Measurement Request. As the Measurement Request travels over the route being measured, the Address vector accumulates a Source Route that can be used by the End Point, after reversal, to reach (and, in particular, to send the Measurement Reply back to) the Start Point. The route MUST be accumulated in the Forward direction, but the IPv6 addresses in the accumulated route MUST be reachable in the Reverse direction. An Intermediate Point MUST add only a global or unique-local IPv6 address to the Address vector and MUST NOT modify the size of the Address vector.
* 如果起点希望使用本地RPLInstanceID测量逐跳路由,并累积源路由以供终点使用(即,测量请求将H标志设置为1,RPLInstanceID设置为本地值,a标志设置为1),则必须在测量请求中包含适当大小的地址向量。当测量请求在被测量的路由上移动时,地址向量累积一个源路由,该源路由可由端点在反转后使用,以到达(尤其是将测量应答发送回)起点。该路由必须正向累积,但累积路由中的IPv6地址必须反向可访问。中间点必须仅向地址向量添加全局或唯一的本地IPv6地址,并且不得修改地址向量的大小。
* If the Start Point wants to measure a Source Route, it MUST include an Address vector, containing the route being measured, inside the Measurement Request. Similarly, if the Measurement Request had been traveling along a global non-storing DAG so far, the root of this DAG may insert an Address vector, containing a Source Route from itself to the End Point, inside the Measurement Request. In both cases, the Source Route inside the Address vector MUST consist only of global or unique-local IPv6 addresses that are reachable in the Forward direction. Further, in both cases, an Intermediate Point MUST NOT modify the contents of the existing Address vector before forwarding the Measurement Request further. In other words, an Intermediate Point MUST NOT modify the Source Route along which the Measurement Request is currently traveling. The Start Point MAY set the R flag in the Measurement Request to one if the Source Route inside the Address vector can be used by the End Point, after reversal, to reach (and, in particular, to send the Measurement Reply back to) the Start Point. In other words, the Start Point MAY set the R flag to one only if all the IPv6 addresses in the Address vector are reachable in the Reverse direction.
* 如果起点想要测量源路由,它必须在测量请求中包含一个地址向量,该地址向量包含被测量的路由。类似地,如果到目前为止测量请求一直沿着全局非存储DAG移动,则该DAG的根可以在测量请求内插入地址向量,该地址向量包含从其自身到端点的源路由。在这两种情况下,地址向量内的源路由必须仅由全局或唯一的本地IPv6地址组成,这些地址可以在前进方向上访问。此外,在这两种情况下,在进一步转发测量请求之前,中间点不得修改现有地址向量的内容。换句话说,中间点不得修改测量请求当前所沿的源路由。如果地址向量内的源路由在反转后可由端点使用以到达(尤其是将测量应答发送回)起始点,则起始点可将测量请求中的R标志设置为1。换句话说,仅当地址向量中的所有IPv6地址在相反方向上可到达时,起始点才可以将R标志设置为1。
o Metric Container Options: A Measurement Request MUST contain one or more Metric Container options [RFC6550] to accumulate the values of the selected routing metrics in the manner described in [RFC6551] for the route being measured.
o 度量容器选项:度量请求必须包含一个或多个度量容器选项[RFC6550],以便按照[RFC6551]中所述的方式为被度量的路由累积所选路由度量的值。
Section 4 describes how a Start Point sets various fields inside a Measurement Request in different cases. Section 5 describes how an Intermediate Point processes a received Measurement Request before forwarding it further. Section 6 describes how the End Point processes a received Measurement Request and generates a Measurement Reply. Finally, Section 7 describes how the Start Point processes a received Measurement Reply. In the following discussion, any reference to discarding a received Measurement Request/Reply with "no further processing" does not preclude updating the appropriate error counters or any similar actions.
第4节描述了在不同情况下,起点如何在测量请求内设置各种字段。第5节描述了中间点在进一步转发之前如何处理接收到的测量请求。第6节描述了端点如何处理收到的测量请求并生成测量回复。最后,第7节描述了起点如何处理收到的测量应答。在下面的讨论中,任何提及放弃接收到的测量请求/回复且“无进一步处理”的情况都不排除更新适当的错误计数器或任何类似操作。
A Secure MO follows the format shown in Figure 7 of [RFC6550], where the base format is the base MO shown in Figure 1. Sections 6.1, 10, and 19 of [RFC6550] describe the RPL security framework. These sections are applicable to the use of Secure MO messages as well, except as constrained in this section. An LLN deployment MUST support the use of Secure MO messages so that it has the ability to invoke RPL-provided security mechanisms and prevent misuse of the measurement mechanism by unauthorized routers.
安全MO遵循[RFC6550]图7所示的格式,其中基本格式是图1所示的基本MO。[RFC6550]的第6.1、10和19节描述了RPL安全框架。这些部分也适用于安全MO消息的使用,除非本部分有限制。LLN部署必须支持使用安全MO消息,以便能够调用RPL提供的安全机制,并防止未经授权的路由器滥用测量机制。
The Start Point determines whether Secure MO messages are to be used in a particular route measurement and, if yes, the Security Configuration (see definition in [RFC6997]) to be used for that purpose. The Start Point MUST NOT set the "Key Identifier Mode" field to a value of 1 inside this Security Configuration, since this setting indicates the use of a per-pair key, which is not suitable for securing the Measurement Request messages that travel over multiple hops. A router (an Intermediate Point or the End Point) participating in a particular route measurement
起点确定是否在特定路由测量中使用安全MO消息,如果是,则确定用于该目的的安全配置(参见[RFC6997]中的定义)。在该安全配置中,起点不得将“密钥标识符模式”字段设置为值1,因为该设置指示使用每对密钥,这不适合保护通过多个跃点传输的测量请求消息。参与特定路由测量的路由器(中间点或端点)
o MUST generate a Secure MO message (a Measurement Request or a Measurement Reply) if the received Measurement Request is a Secure MO. The Security Configuration used in generating a Secure MO message MUST be the same as the one used in the received message.
o 如果收到的测量请求是安全MO,则必须生成安全MO消息(测量请求或测量回复)。生成安全MO消息时使用的安全配置必须与收到的消息中使用的安全配置相同。
o MUST NOT generate a Secure MO message if the received Measurement Request is not a Secure MO.
o 如果收到的测量请求不是安全MO,则不得生成安全MO消息。
A router MUST discard a received Measurement Request if it cannot follow the above-mentioned rules. If the Start Point sends a Measurement Request in a Secure MO message using a particular Security Configuration, it MUST discard the corresponding Measurement Reply it receives with no further processing, unless the Measurement Reply is received in a Secure MO message generated with the same Security Configuration as the one used in the Measurement Request.
如果路由器不能遵守上述规则,则必须放弃接收到的测量请求。如果起点使用特定的安全配置在安全MO消息中发送测量请求,则必须放弃接收到的相应测量回复,无需进一步处理,除非在安全MO消息中接收到测量应答,该消息使用与测量请求中使用的安全配置相同的安全配置生成。
In the following discussion, any reference to an MO message is also applicable to a Secure MO message, unless noted otherwise.
在下面的讨论中,对MO消息的任何引用也适用于安全MO消息,除非另有说明。
A Start Point sets various fields inside the Measurement Request it generates in the manner described below. The Start Point MUST also include the routing metric objects [RFC6551] of interest inside one or more Metric Container options inside the Measurement Request. The Start Point then determines the next hop on the route being measured. If a Hop-by-hop Route is being measured (i.e., H = 1), the next hop is determined using the RPLInstanceID, the End Point Address, and, if RPLInstanceID is a local value, the Start Point Address fields in the Measurement Request. If a Source Route is being measured (i.e., H = 0), the Address[0] element inside the Measurement Request contains the next-hop address. The Start Point MUST ensure that
起点以下面描述的方式在其生成的测量请求内设置各种字段。起点还必须包括度量请求中一个或多个度量容器选项中感兴趣的路由度量对象[RFC6551]。然后,起点确定正在测量的路由上的下一跳。如果正在测量逐跳路由(即H=1),则使用RPLInstanceID、端点地址和测量请求中的起点地址字段(如果RPLInstanceID是本地值)确定下一跳。如果正在测量源路由(即H=0),则测量请求中的地址[0]元素包含下一跳地址。起点必须确保:
o the next-hop address is a unicast address, and
o 下一个跃点地址是单播地址,并且
o the next hop is on-link, and
o 下一个跃点在链接上,并且
o the next hop is in the same RPL routing domain [RFC6554] as the Start Point,
o 下一个跃点与起点在同一RPL路由域[RFC6554]中,
failing which the Start Point MUST discard the Measurement Request without sending. Depending on the routing metrics, the Start Point must initiate the routing metric objects inside the Metric Container options by including the routing metric values for the first hop on the route being measured. Finally, the Start Point MUST unicast the Measurement Request to the next hop on the route being measured.
如果失败,则起点必须放弃测量请求而不发送。根据路由度量,起点必须在度量容器选项中启动路由度量对象,方法是包括所测量路由上第一个跃点的路由度量值。最后,起点必须单播测量请求到被测量路由上的下一跳。
The Start Point MUST maintain state for a just-transmitted Measurement Request, for a lifetime duration that is large enough to allow the corresponding Measurement Reply to return. This state consists of the RPLInstanceID, the SeqNo, and the End Point Address fields of the Measurement Request. The lifetime duration for this state is locally determined by the Start Point and may be deployment specific. This state expires when the corresponding Measurement Reply is received or when the lifetime is over, whichever occurs first. Failure to receive the corresponding Measurement Reply before the expiry of a state may occur due to a number of reasons, including the unwillingness on the part of an Intermediate Point or the End Point to process the Measurement Request. The Start Point should take such possibilities into account when deciding whether to generate another Measurement Request for this route. The Start Point MUST discard a received Measurement Reply with no further processing if the state for the corresponding Measurement Request has already expired.
起始点必须在足够大的生存期内保持刚发送的测量请求的状态,以允许相应的测量应答返回。该状态由测量请求的RPLInstanceID、SeqNo和端点地址字段组成。此状态的生存期由起点在本地确定,可能是特定于部署的。当接收到相应的测量应答或生存期结束时(以先发生的为准),该状态将过期。由于多种原因,包括中间点或终点不愿意处理测量请求,可能会导致无法在状态到期前收到相应的测量回复。在决定是否为该路线生成另一个测量请求时,起点应考虑这些可能性。如果相应测量请求的状态已过期,则起点必须放弃接收到的测量回复,而无需进一步处理。
If a Hop-by-hop Route with a global RPLInstanceID is being measured (i.e., H = 1 and RPLInstanceID has a global value), the MO MUST NOT contain an Address vector, and various MO fields MUST be set in the following manner:
如果正在测量具有全局RPLInstanceID的逐跳路由(即H=1且RPLInstanceID具有全局值),则MO不得包含地址向量,并且必须以以下方式设置各种MO字段:
o RPLInstanceID: This field MUST be set to the RPLInstanceID of the route being measured.
o RPLInstanceID:此字段必须设置为正在测量的路由的RPLInstanceID。
o Compr: This field MUST be set to specify the number of prefix octets that are elided from the IPv6 addresses in Start Point/ End Point Address fields.
o Compr:此字段必须设置为指定从起点/终点地址字段中的IPv6地址中删除的前缀八位字节数。
o Type (T): This flag MUST be set to one, since the MO represents a Measurement Request.
o 类型(T):此标志必须设置为1,因为MO表示测量请求。
o Hop-by-hop (H): This flag MUST be set to one.
o 逐跳(H):此标志必须设置为1。
o Accumulate Route (A): This flag MUST be set to zero.
o 累积路由(A):此标志必须设置为零。
o Reverse (R): This flag MUST be set to zero.
o 反向(R):此标志必须设置为零。
o Back Request (B): This flag MAY be set to one to request that the End Point send a Measurement Request to the Start Point.
o 返回请求(B):此标志可设置为1,以请求端点向起点发送测量请求。
o Intermediate Reply (I): This flag MAY be set to one if the Start Point expects an Intermediate Point to know the values of the routing metrics being measured for the remainder of the route.
o 中间应答(I):如果起点期望中间点知道为剩余路由测量的路由度量值,则该标志可以设置为1。
o SeqNo: This is assigned by the Start Point so that it can uniquely identify the Measurement Request and the corresponding Measurement Reply.
o SeqNo:这是由起点分配的,因此它可以唯一地标识测量请求和相应的测量回复。
o Num: This field MUST be set to zero.
o Num:此字段必须设置为零。
o Index: This field MUST be set to zero.
o 索引:此字段必须设置为零。
o Start Point Address: This field MUST be set to a unicast global/unique-local IPv6 address of the Start Point after eliding Compr number of prefix octets.
o 起始点地址:此字段必须设置为起始点的单播全局/唯一本地IPv6地址(在省略前缀八位字节的压缩数后)。
o End Point Address: This field MUST be set to a unicast global/unique-local IPv6 address of the End Point after eliding Compr number of prefix octets.
o 端点地址:在省略前缀八位字节的压缩数后,此字段必须设置为端点的单播全局/唯一本地IPv6地址。
4.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off
4.2. 当使用本地RPLInstanceID测量逐跳路由时,禁用路由累积
If a Hop-by-hop Route with a local RPLInstanceID is being measured and the Start Point does not want the MO to accumulate a Source Route for the End Point's use, the MO MUST NOT contain the Address vector, and various MO fields MUST be set in the following manner:
如果正在测量具有本地RPLInstanceID的逐跳路由,且起点不希望MO累积源路由供终点使用,则MO不得包含地址向量,并且必须以以下方式设置各种MO字段:
o RPLInstanceID: This field MUST be set to the RPLInstanceID of the route being measured.
o RPLInstanceID:此字段必须设置为正在测量的路由的RPLInstanceID。
o Compr: This field MUST be set to specify the number of prefix octets that are elided from the IPv6 addresses in Start Point/ End Point Address fields.
o Compr:此字段必须设置为指定从起点/终点地址字段中的IPv6地址中删除的前缀八位字节数。
o Type (T): This flag MUST be set to one, since the MO represents a Measurement Request.
o 类型(T):此标志必须设置为1,因为MO表示测量请求。
o Hop-by-hop (H): This flag MUST be set to one.
o 逐跳(H):此标志必须设置为1。
o Accumulate Route (A): This flag MUST be set to zero.
o 累积路由(A):此标志必须设置为零。
o Reverse (R): This flag MUST be set to zero.
o 反向(R):此标志必须设置为零。
o Back Request (B): This flag MAY be set to one to request that the End Point send a Measurement Request to the Start Point.
o 返回请求(B):此标志可设置为1,以请求端点向起点发送测量请求。
o Intermediate Reply (I): This flag MUST be set to zero.
o 中间回复(I):此标志必须设置为零。
o SeqNo: This is assigned by the Start Point so that it can uniquely identify the Measurement Request and the corresponding Measurement Reply.
o SeqNo:这是由起点分配的,因此它可以唯一地标识测量请求和相应的测量回复。
o Num: This field MUST be set to zero.
o Num:此字段必须设置为零。
o Index: This field MUST be set to zero.
o 索引:此字段必须设置为零。
o Start Point Address: This field MUST contain the DODAGID value (after eliding Compr number of prefix octets) associated with the route being measured. This DODAGID MUST also be a global or unique-local IPv6 address of the Start Point.
o 起始点地址:此字段必须包含与正在测量的路由相关联的DODAGID值(在省略前缀八位字节的压缩数之后)。此DODAGID还必须是起点的全局或唯一本地IPv6地址。
o End Point Address: This field MUST be set to a unicast global or unique-local IPv6 address of the End Point after eliding Compr number of prefix octets.
o 端点地址:在省略前缀八位字节的压缩数后,此字段必须设置为端点的单播全局或唯一本地IPv6地址。
4.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On
4.3. 使用本地RPLInstanceID测量逐跳路由时,路由累积处于打开状态
If a Hop-by-hop Route with a local RPLInstanceID is being measured and the Start Point desires the MO to accumulate a Source Route for the End Point to send the Measurement Reply message back, the MO MUST contain a suitably sized Address vector, and various MO fields MUST be set in the following manner:
如果正在测量带有本地RPLInstanceID的逐跳路由,并且起点希望MO为终点累积源路由以发送回测量应答消息,则MO必须包含适当大小的地址向量,并且必须以以下方式设置各种MO字段:
o RPLInstanceID: This field MUST be set to the RPLInstanceID of the route being measured.
o RPLInstanceID:此字段必须设置为正在测量的路由的RPLInstanceID。
o Compr: This field MUST be set to specify the number of prefix octets that are elided from the IPv6 addresses in Start Point/ End Point Address fields and the Address vector.
o Compr:必须设置此字段,以指定从起点/终点地址字段和地址向量中的IPv6地址中删除的前缀八位字节数。
o Type (T): This flag MUST be set to one, since the MO represents a Measurement Request.
o 类型(T):此标志必须设置为1,因为MO表示测量请求。
o Hop-by-hop (H): This flag MUST be set to one.
o 逐跳(H):此标志必须设置为1。
o Accumulate Route (A): This flag MUST be set to one.
o 累积路线(A):此标志必须设置为1。
o Reverse (R): This flag MUST be set to zero.
o 反向(R):此标志必须设置为零。
o Back Request (B): This flag MAY be set to one to request that the End Point send a Measurement Request to the Start Point.
o 返回请求(B):此标志可设置为1,以请求端点向起点发送测量请求。
o Intermediate Reply (I): This flag MUST be set to zero.
o 中间回复(I):此标志必须设置为零。
o SeqNo: This is assigned by the Start Point so that it can uniquely identify the Measurement Request and the corresponding Measurement Reply.
o SeqNo:这是由起点分配的,因此它可以唯一地标识测量请求和相应的测量回复。
o Num: This field MUST specify the number of address elements, each (16 - Compr) octets in size, that can fit inside the Address vector.
o Num:该字段必须指定地址向量中可以容纳的地址元素的数量,每个(16-Compr)八位字节的大小。
o Index: This field MUST be set to zero to indicate the position in the Address vector where the next hop must store its IPv6 address.
o 索引:此字段必须设置为零,以指示下一个跃点必须存储其IPv6地址的地址向量中的位置。
o Start Point Address: This field MUST contain the DODAGID value (after eliding Compr number of prefix octets) associated with the route being measured. This DODAGID MUST also be a global or unique-local IPv6 address of the Start Point.
o 起始点地址:此字段必须包含与正在测量的路由相关联的DODAGID值(在省略前缀八位字节的压缩数之后)。此DODAGID还必须是起点的全局或唯一本地IPv6地址。
o End Point Address: This field MUST be set to a unicast global or unique-local IPv6 address of the End Point after eliding Compr number of prefix octets.
o 端点地址:在省略前缀八位字节的压缩数后,此字段必须设置为端点的单播全局或唯一本地IPv6地址。
o Address vector: The Address vector must be large enough to accommodate a complete Source Route from the End Point to the Start Point. All the bits in the Address vector field MUST be set to zero.
o 地址向量:地址向量必须足够大,以容纳从端点到起点的完整源路由。地址向量字段中的所有位必须设置为零。
If a Source Route is being measured, the Start Point MUST set various MO fields in the following manner:
如果正在测量源管线,则起点必须按以下方式设置各种MO字段:
o RPLInstanceID: This field does not have any significance when a Source Route is being measured and hence can be set to any value.
o RPLInstanceID:当测量源路由时,此字段没有任何意义,因此可以设置为任何值。
o Compr: This field MUST be set to specify the number of prefix octets that are elided from the IPv6 addresses in Start Point/ End Point Address fields and the Address vector.
o Compr:必须设置此字段,以指定从起点/终点地址字段和地址向量中的IPv6地址中删除的前缀八位字节数。
o Type (T): This flag MUST be set to one, since the MO represents a Measurement Request.
o 类型(T):此标志必须设置为1,因为MO表示测量请求。
o Hop-by-hop (H): This flag MUST be set to zero.
o 逐跳(H):此标志必须设置为零。
o Accumulate Route (A): This flag MUST be set to zero.
o 累积路由(A):此标志必须设置为零。
o Reverse (R): This flag SHOULD be set to one if the Source Route in the Address vector can be reversed and used by the End Point to send the Measurement Reply message back to the Start Point. Otherwise, this flag MUST be set to zero.
o 反向(R):如果地址向量中的源路由可以反向,并且端点可以使用该路由将测量应答消息发送回起点,则该标志应设置为1。否则,此标志必须设置为零。
o Back Request (B): This flag MAY be set to one to request that the End Point send a Measurement Request to the Start Point.
o 返回请求(B):此标志可设置为1,以请求端点向起点发送测量请求。
o Intermediate Reply (I): This flag MUST be set to zero.
o 中间回复(I):此标志必须设置为零。
o SeqNo: This is assigned by the Start Point so that it can uniquely identify the Measurement Request and the corresponding Measurement Reply.
o SeqNo:这是由起点分配的,因此它可以唯一地标识测量请求和相应的测量回复。
o Num: This field MUST specify the number of address elements, each (16 - Compr) octets in size, inside the Address vector.
o Num:该字段必须指定地址向量中地址元素的数量,每个(16-Compr)八位字节的大小。
o Index: This field MUST be set to zero to indicate the position in the Address vector of the next hop on the route.
o 索引:此字段必须设置为零,以指示路由上下一个跃点在地址向量中的位置。
o Start Point Address: This field MUST be set to a unicast global or unique-local IPv6 address of the Start Point after eliding Compr number of prefix octets.
o 起始点地址:此字段必须设置为起始点的单播全局或唯一的本地IPv6地址,在省略前缀八位字节的压缩数之后。
o End Point Address: This field MUST be set to a unicast global or unique-local IPv6 address of the End Point after eliding Compr number of prefix octets.
o 端点地址:在省略前缀八位字节的压缩数后,此字段必须设置为端点的单播全局或唯一本地IPv6地址。
o Address vector:
o 地址向量:
* The Address vector MUST contain a complete Source Route from the Start Point to the End Point (excluding the Start Point and the End Point).
* 地址向量必须包含从起点到终点(不包括起点和终点)的完整源路由。
* Each address appearing in the Address vector MUST be a unicast global or unique-local IPv6 address. Further, each address MUST have the same prefix as the Start Point Address and the End Point Address. This prefix, whose length in octets is specified in the Compr field, MUST be elided from each address.
* 地址向量中出现的每个地址必须是单播全局或唯一的本地IPv6地址。此外,每个地址必须具有与起点地址和终点地址相同的前缀。此前缀的长度(以八位字节为单位)在Compr字段中指定,必须从每个地址中删除。
* The IPv6 addresses in the Address vector MUST be reachable in the Forward direction.
* 地址向量中的IPv6地址必须在前进方向上可访问。
* If the R flag is set to one, the IPv6 addresses in the Address vector MUST also be reachable in the Reverse direction.
* 如果R标志设置为1,则地址向量中的IPv6地址也必须可以反向访问。
A router (an Intermediate Point or the End Point) MAY discard a received MO with no processing, in order to meet any policy-related goals. Such policy goals may include the need to reduce the router's CPU load, or to enhance its battery life, or to prevent the misuse of this mechanism by unauthorized nodes.
路由器(中间点或端点)可以丢弃接收到的MO而不进行处理,以满足任何与策略相关的目标。此类策略目标可能包括需要减少路由器的CPU负载,或提高其电池寿命,或防止未经授权的节点滥用此机制。
A router MUST discard a received MO with no further processing if the value in the Compr field inside the received message is more than what the router considers to be the length of the common prefix used in IPv6 addresses in the LLN.
如果接收到的消息中的Compr字段中的值大于路由器认为的LLN中IPv6地址中使用的公共前缀的长度,则路由器必须丢弃接收到的MO,而无需进一步处理。
On receiving an MO, if a router chooses to process the packet further, it MUST determine whether or not one of its IPv6 addresses is listed as either the Start Point or the End Point Address. If not, the router considers itself an Intermediate Point and MUST process the received MO in the following manner.
在接收到MO时,如果路由器选择进一步处理数据包,则必须确定其IPv6地址之一是否列为起点或终点地址。如果不是,路由器将自己视为中间点,并且必须以以下方式处理接收到的MO。
An Intermediate Point MUST discard the packet with no further processing if the received MO is not a Measurement Request (i.e., T = 0). This is because the End Point unicasts a Measurement Reply directly to the Start Point. So, the Intermediate Point treats a transiting Measurement Reply as a data packet and not a RPL control message.
如果接收到的MO不是测量请求(即T=0),则中间点必须丢弃数据包,而无需进一步处理。这是因为端点将测量应答直接发送到起点。因此,中间点将传递的测量应答视为数据包,而不是RPL控制消息。
Next, the Intermediate Point determines the type of the route being measured (by checking the values of the H flag and the RPLInstanceID field) and processes the received MO accordingly, in the manner specified next.
接下来,中间点确定正在测量的路由的类型(通过检查H标志和RPLInstanceID字段的值),并以接下来指定的方式相应地处理接收到的MO。
If a Hop-by-hop Route with a global RPLInstanceID is being measured (i.e., H = 1 and RPLInstanceID has a global value), the Intermediate Point MUST process the received Measurement Request in the following manner.
如果正在测量具有全局RPLInstanceID的逐跳路由(即,H=1且RPLInstanceID具有全局值),则中间点必须以以下方式处理接收到的测量请求。
If the Num field inside the received Measurement Request is not set to zero, thereby implying that an Address vector is present, the Intermediate Point MUST discard the received message with no further processing.
如果接收到的测量请求中的Num字段未设置为零,从而意味着存在地址向量,则中间点必须丢弃接收到的消息,而无需进一步处理。
If the Intermediate Reply (I) flag is set to one in the received Measurement Request and the Intermediate Point knows the values of the routing metrics (as specified in the Metric Container options) for the remainder of the route, it MAY generate a Measurement Reply on the End Point's behalf in the manner specified in Section 6.1
如果中间应答(I)标志在收到的测量请求中设置为1,并且中间点知道路由剩余部分的路由度量值(如度量容器选项中所规定),则它可以以第6.1节中规定的方式代表端点生成测量应答
(after including in the Measurement Reply the relevant routing metric values for the complete route being measured). Otherwise, the Intermediate Point MUST process the received message in the following manner.
(在测量回复中包括被测量的完整路由的相关路由度量值后)。否则,中间点必须以以下方式处理接收到的消息。
The Intermediate Point MUST determine the next hop on the route being measured using the RPLInstanceID and the End Point Address. If the Intermediate Point is the root of the non-storing global DAG along which the received Measurement Request had been traveling so far, it MUST process the received Measurement Request in the following manner:
中间点必须使用RPLInstanceID和端点地址确定正在测量的路由上的下一跳。如果中间点是非存储全局DAG的根,接收到的测量请求一直沿着该DAG移动,则它必须以以下方式处理接收到的测量请求:
o If the router does not know how to reach the End Point, it MUST discard the Measurement Request with no further processing and MAY send an ICMPv6 Destination Unreachable (with Code 0 -- No Route To Destination) error message [RFC4443] to the Start Point.
o 如果路由器不知道如何到达终点,它必须放弃测量请求,无需进一步处理,并可能向起点发送ICMPv6目的地不可到达(代码为0——无到目的地的路由)错误消息[RFC4443]。
o Otherwise, unless the router determines the End Point itself to be the next hop, the router MUST make the following changes in the received Measurement Request:
o 否则,除非路由器将端点本身确定为下一跳,否则路由器必须在收到的测量请求中进行以下更改:
* Set the H, A, R, and I flags to zero (the A and R flags should already be zero in the received message).
* 将H、A、R和I标志设置为零(在接收到的消息中,A和R标志应该已经为零)。
* Leave the remaining fields unchanged (the Num field would be modified in the next steps). Note that the RPLInstanceID field identifies the non-storing global DAG along which the Measurement Request traveled so far. This information MUST be preserved so that the End Point may use this DAG to send the Measurement Reply back to the Start Point.
* 保持其余字段不变(Num字段将在接下来的步骤中修改)。请注意,RPLInstanceID字段标识测量请求迄今为止所经过的非存储全局DAG。必须保留此信息,以便终点可以使用此DAG将测量回复发送回起点。
* Insert a new Address vector inside the Measurement Request, and specify a Source Route to the End Point inside the Address vector as per the following rules:
* 在测量请求中插入新的地址向量,并按照以下规则指定到地址向量内端点的源路由:
+ The Address vector MUST contain a complete route from the router to the End Point (excluding the router and the End Point).
+ 地址向量必须包含从路由器到端点的完整路由(不包括路由器和端点)。
+ Each address appearing in the Address vector MUST be a unicast global or unique-local IPv6 address. Further, each address MUST have the same prefix as the Start Point Address and the End Point Address. This prefix, whose length in octets is specified in the Compr field, MUST be elided from each address.
+ 地址向量中出现的每个地址必须是单播全局或唯一的本地IPv6地址。此外,每个地址必须具有与起点地址和终点地址相同的前缀。此前缀的长度(以八位字节为单位)在Compr字段中指定,必须从每个地址中删除。
+ The IPv6 addresses in the Address vector MUST be reachable in the Forward direction.
+ 地址向量中的IPv6地址必须在前进方向上可访问。
If the router cannot insert an Address vector satisfying the rules mentioned above, it MUST discard the Measurement Request with no further processing and MAY send an ICMPv6 Destination Unreachable (with Code 0 -- No Route To Destination) error message [RFC4443] to the Start Point.
如果路由器无法插入满足上述规则的地址向量,它必须放弃测量请求,无需进一步处理,并可能向起点发送ICMPv6目的地不可到达(代码为0——无目的地路由)错误消息[RFC4443]。
* Specify in the Num field the number of address elements in the Address vector.
* 在Num字段中指定地址向量中的地址元素数。
* Set the Index field to zero to indicate the position in the Address vector of the next hop on the route. Thus, the Address[0] element contains the address of the next hop on the route.
* 将索引字段设置为零,以指示路由上下一个跃点在地址向量中的位置。因此,地址[0]元素包含路由上下一跳的地址。
The Intermediate Point MUST then complete the processing of the received Measurement Request as specified in Section 5.5.
然后,中间点必须按照第5.5节的规定完成对收到的测量请求的处理。
5.2. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation Off
5.2. 当使用本地RPLInstanceID测量逐跳路由时,禁用路由累积
If a Hop-by-hop Route with a local RPLInstanceID is being measured and the route accumulation is off (i.e., H = 1, RPLInstanceID has a local value, and A = 0), the Intermediate Point MUST process the received Measurement Request in the following manner.
如果正在测量具有本地RPLInstanceID的逐跳路由,并且路由累积关闭(即,H=1,RPLInstanceID具有本地值,且a=0),则中间点必须以以下方式处理接收到的测量请求。
If the Num field inside the received Measurement Request is not set to zero, thereby implying that an Address vector is present, the Intermediate Point MUST discard the received message with no further processing.
如果接收到的测量请求中的Num字段未设置为零,从而意味着存在地址向量,则中间点必须丢弃接收到的消息,而无需进一步处理。
The Intermediate Point MUST then determine the next hop on the route being measured using the RPLInstanceID, the End Point Address, and the Start Point Address (which represents the DODAGID of the route being measured). If the Intermediate Point cannot determine the next hop, it MUST discard the Measurement Request with no further processing and MAY send an ICMPv6 Destination Unreachable (with Code 0 -- No Route To Destination) error message [RFC4443] to the Start Point. Otherwise, the Intermediate Point MUST complete the processing of the received Measurement Request as specified in Section 5.5.
然后,中间点必须使用RPLInstanceID、端点地址和起点地址(表示所测量路由的DODAGID)确定所测量路由上的下一跳。如果中间点无法确定下一个跃点,则它必须放弃测量请求,无需进一步处理,并可能向起点发送ICMPv6目的地不可到达(代码为0——无到目的地的路由)错误消息[RFC4443]。否则,中间点必须按照第5.5节的规定完成对收到的测量请求的处理。
5.3. When Measuring a Hop-by-Hop Route with a Local RPLInstanceID with Route Accumulation On
5.3. 使用本地RPLInstanceID测量逐跳路由时,路由累积处于打开状态
If a Hop-by-hop Route with a local RPLInstanceID is being measured and the route accumulation is on (i.e., H = 1, RPLInstanceID has a local value, and A = 1), the Intermediate Point MUST process the received Measurement Request in the following manner.
如果正在测量具有本地RPLInstanceID的逐跳路由,并且路由累积打开(即,H=1,RPLInstanceID具有本地值,且a=1),则中间点必须以以下方式处理接收到的测量请求。
If the Num field inside the received Measurement Request is set to zero, thereby implying that an Address vector is not present, the Intermediate Point MUST discard the received message with no further processing.
如果接收到的测量请求中的Num字段设置为零,从而意味着不存在地址向量,则中间点必须丢弃接收到的消息,而无需进一步处理。
The Intermediate Point MUST then determine the next hop on the route being measured using the RPLInstanceID, the End Point Address, and the Start Point Address (which represents the DODAGID of the route being measured). If the Intermediate Point cannot determine the next hop, it MUST discard the Measurement Request with no further processing and MAY send an ICMPv6 Destination Unreachable (with Code 0 -- No Route To Destination) error message [RFC4443] to the Start Point. If the index field has value Num - 1 and the next hop is not the same as the End Point, the Intermediate Point MUST drop the received Measurement Request with no further processing. In this case, the next hop would have no space left in the Address vector to store its address. Otherwise, the router MUST store one of its IPv6 addresses at location Address[Index] and then increment the Index field. The IPv6 address added to the Address vector MUST have the following properties:
然后,中间点必须使用RPLInstanceID、端点地址和起点地址(表示所测量路由的DODAGID)确定所测量路由上的下一跳。如果中间点无法确定下一个跃点,则它必须放弃测量请求,无需进一步处理,并可能向起点发送ICMPv6目的地不可到达(代码为0——无到目的地的路由)错误消息[RFC4443]。如果索引字段的值为Num-1,并且下一个跃点与端点不同,则中间点必须丢弃接收到的测量请求,而无需进一步处理。在这种情况下,下一个跃点在地址向量中没有空间来存储其地址。否则,路由器必须将其IPv6地址之一存储在位置地址[索引]处,然后递增索引字段。添加到地址向量的IPv6地址必须具有以下属性:
o This address MUST be a unicast global or unique-local address.
o 此地址必须是单播全局地址或唯一的本地地址。
o This address MUST have the same prefix as the Start Point Address and the End Point Address. This prefix, whose length in octets is specified in the Compr field, MUST be elided before the address is added to the Address vector.
o 此地址的前缀必须与起点地址和终点地址相同。在将地址添加到地址向量之前,必须删除该前缀,该前缀的长度(以八位字节为单位)在Compr字段中指定。
o This address MUST be reachable in the Reverse direction.
o 此地址必须可以反向访问。
If the router does not have an IPv6 address that satisfies the properties mentioned above, it MUST discard the Measurement Request with no further processing.
如果路由器没有满足上述属性的IPv6地址,则必须放弃测量请求,而无需进一步处理。
The Intermediate Point MUST then complete the processing of the received Measurement Request as specified in Section 5.5.
然后,中间点必须按照第5.5节的规定完成对收到的测量请求的处理。
If a Source Route is being measured (i.e., H = 0), the Intermediate Point MUST process the received Measurement Request in the following manner.
如果正在测量源路由(即H=0),中间点必须以以下方式处理接收到的测量请求。
If the Num field inside the received Measurement Request is set to zero, thereby implying that an Address vector is not present, the Intermediate Point MUST discard the received message with no further processing.
如果接收到的测量请求中的Num字段设置为零,从而意味着不存在地址向量,则中间点必须丢弃接收到的消息,而无需进一步处理。
The Intermediate Point MUST verify that the Address[Index] element lists one of its unicast global or unique-local IPv6 addresses (minus the prefix whose length in octets is specified in the Compr field), failing which it MUST discard the Measurement Request with no further processing. The Intermediate Point MUST then increment the Index field and use the Address[Index] element as the next hop (unless the Index value is now Num). If the Index value is now Num, the Intermediate Point MUST use the End Point Address as the next hop.
中间点必须验证Address[Index]元素是否列出了其单播全局或唯一本地IPv6地址之一(减去前缀,其长度以八位字节为单位在Compr字段中指定),否则必须放弃测量请求,无需进一步处理。然后,中间点必须递增索引字段,并使用Address[Index]元素作为下一个跃点(除非索引值现在是Num)。如果索引值现在为Num,则中间点必须使用端点地址作为下一个跃点。
The Intermediate Point MUST then complete the processing of the received Measurement Request as specified in Section 5.5.
然后,中间点必须按照第5.5节的规定完成对收到的测量请求的处理。
The Intermediate Point MUST drop the received Measurement Request with no further processing:
中间点必须放弃接收到的测量请求,无需进一步处理:
o if the next-hop address is not a unicast address; or
o 如果下一跳地址不是单播地址;或
o if the next hop is not on-link; or
o 如果下一跳不在链路上;或
o if the next hop is not in the same RPL routing domain as the Intermediate Point.
o 如果下一跳与中间点不在同一RPL路由域中。
Next, the Intermediate Point MUST update the routing metric objects, inside the Metric Container option(s) inside the Measurement Request, either by updating the aggregated value for the routing metric or by attaching the local values for the metric inside the object. An Intermediate Point can only update the existing metric objects and MUST NOT add any new routing metric objects to the Metric Container. An Intermediate Point MUST drop the Measurement Request with no further processing if it cannot update a routing metric object specified inside the Metric Container.
接下来,中间点必须通过更新路由度量的聚合值或通过在对象内附加度量的本地值,在度量请求内的度量容器选项内更新路由度量对象。中间点只能更新现有的度量对象,并且不能向度量容器添加任何新的路由度量对象。如果中间点不能更新在度量容器内指定的路由度量对象,则必须在不进行进一步处理的情况下删除度量请求。
Finally, the Intermediate Point MUST unicast the Measurement Request to the next hop.
最后,中间点必须将测量请求单播到下一跳。
On receiving an MO, if a router chooses to process the message further and finds one of its unicast global or unique-local IPv6 addresses (minus the prefix whose length in octets is specified in the Compr field) listed as the End Point Address, the router considers itself the End Point and MUST process the received MO in the following manner.
在接收到MO时,如果路由器选择进一步处理消息,并发现其单播全局或唯一本地IPv6地址(减去前缀,其长度以八位字节为单位在Compr字段中指定)中的一个列为端点地址,则路由器将其自身视为端点,并且必须以以下方式处理接收到的MO。
The End Point MUST discard the received message with no further processing if it is not a Measurement Request (i.e., T = 0).
如果接收到的消息不是测量请求(即T=0),则端点必须丢弃该消息,而无需进一步处理。
If the received Measurement Request traveled on a Hop-by-hop Route with a local RPLInstanceID with route accumulation on (i.e., H = 1, RPLInstanceID has a local value, and A = 1), elements Address[0] through Address[Index - 1] in the Address vector contain a complete Source Route from the Start Point to the End Point, which the End Point MAY use, after reversal, to reach the Start Point. Note that the Source Route in the Address vector does not include the Start Point and the End Point addresses, and that the individual addresses do not include the common prefix whose length in octets is specified in the Compr field.
如果接收到的测量请求在逐跳路由上移动,且路由累积为on(即,H=1,RPLInstanceID具有本地值,且a=1),则地址向量中的元素地址[0]到地址[Index-1]包含从起点到终点的完整源路由,终点可使用该源路由,反转后,到达起始点。请注意,地址向量中的源路由不包括起点和终点地址,并且各个地址不包括公共前缀,其长度(以八位字节为单位)在Compr字段中指定。
If the received Measurement Request traveled on a Source Route and the Reverse flag is set to one (i.e., H = 0 and R = 1), elements Address[0] through Address[Num - 1] in the Address vector contain a complete Source Route from the Start Point to the End Point, which the End Point MAY use, after reversal, to reach the Start Point. Again, the Source Route in the Address vector does not include the Start Point and the End Point addresses, and the individual addresses do not include the common prefix whose length in octets is specified in the Compr field.
如果接收到的测量请求在源路由上移动,并且反向标志设置为1(即,H=0和R=1),则地址向量中的元素地址[0]到地址[Num-1]包含从起点到终点的完整源路由,在反向后,终点可使用该源路由到达起点。同样,地址向量中的源路由不包括起点和终点地址,并且各个地址不包括公共前缀,其长度(以八位字节为单位)在Compr字段中指定。
The End Point MUST update the routing metric objects in the Metric Container options if required and MAY note the measured values for the complete route (especially if the received Measurement Request is likely a response to an earlier Measurement Request that the End Point had sent to the Start Point with the B flag set to one).
如果需要,端点必须更新度量容器选项中的路由度量对象,并且可以记录完整路由的测量值(特别是如果接收到的测量请求可能是对端点发送到起点且B标志设置为1的早期测量请求的响应)。
The End Point MUST generate a Measurement Reply message as specified in Section 6.1. If the B flag is set to one in the received Measurement Request, the End Point SHOULD generate a new Measurement Request to measure the cost of its current (or the most preferred) route to the Start Point. The routing metrics used in the new Measurement Request MUST include the routing metrics specified in the received Measurement Request.
端点必须生成第6.1节规定的测量回复消息。如果在接收到的测量请求中将B标志设置为1,则终点应生成一个新的测量请求,以测量其当前(或最首选)到起点的路线的成本。新度量请求中使用的路由度量必须包括在接收到的度量请求中指定的路由度量。
A Measurement Reply MUST have the Type (T) flag set to zero and need not contain the Address vector. The following fields inside a Measurement Reply MUST have the same values as they had inside the corresponding Measurement Request: RPLInstanceID, Compr, SeqNo, Start Point Address, End Point Address, and Metric Container option(s). The remaining fields inside a Measurement Reply may have any value and MUST be ignored on reception at the Start Point; the received Measurement Request can, therefore, trivially be converted into a Measurement Reply by setting the Type (T) flag to zero.
测量应答必须将类型(T)标志设置为零,并且不需要包含地址向量。度量回复中的以下字段必须与相应度量请求中的字段具有相同的值:RPLInstanceID、Compr、SeqNo、起点地址、终点地址和度量容器选项。测量应答中的剩余字段可以有任何值,在开始点接收时必须忽略;因此,通过将Type(T)标志设置为零,可以很容易地将接收到的测量请求转换为测量应答。
A Measurement Reply MUST be unicast back to the Start Point:
测量回复必须单播回起始点:
o If the Measurement Request traveled along a global DAG, identified by the RPLInstanceID field, the Measurement Reply MAY be unicast back to the Start Point along the same DAG.
o 如果测量请求沿着由RPLInstanceID字段标识的全局DAG传输,则测量回复可以沿同一DAG单播回起始点。
o If the Measurement Request traveled along a Hop-by-hop Route with a local RPLInstanceID and accumulated a Source Route from the Start Point to the End Point, this Source Route MAY be used after reversal to send the Measurement Reply back to the Start Point.
o 如果测量请求使用本地RPLInstanceID沿着逐跳路由移动,并累积了从起点到终点的源路由,则可在反转后使用该源路由将测量回复发送回起点。
o If the Measurement Request traveled along a Source Route and the R flag inside the received message is set to one, the End Point MAY reverse the Source Route contained in the Address vector and use it to send the Measurement Reply back to the Start Point.
o 如果测量请求沿着源路由移动,并且接收到的消息中的R标志设置为1,则端点可以反转地址向量中包含的源路由,并使用它将测量应答发送回起点。
When a router receives an MO, it examines the MO to see if one of its unicast IPv6 addresses is listed as the Start Point Address. If yes, the router is the Start Point and MUST process the received message in the following manner.
当路由器收到MO时,它会检查MO,以查看其单播IPv6地址之一是否列为起始点地址。如果是,路由器是起点,必须以以下方式处理接收到的消息。
If the Start Point discovers that the received MO is not a Measurement Reply, or if it no longer maintains state for the corresponding Measurement Request, it MUST discard the received message with no further processing.
如果起点发现接收到的MO不是测量回复,或者如果它不再保持相应测量请求的状态,则必须丢弃接收到的消息,而无需进一步处理。
The Start Point can use the routing metric objects inside the Metric Container to evaluate the metrics for the measured P2P route. If a routing metric object contains local metric values recorded by routers on the route, the Start Point can make use of these local values by aggregating them into an end-to-end metric, according to the aggregation rules for the specific metric. A Start Point is then free to interpret the metrics for the route, according to its local policy.
起点可以使用度量容器中的路由度量对象来评估测量的P2P路由的度量。如果路由度量对象包含路由上的路由器记录的本地度量值,则起点可以通过根据特定度量的聚合规则将这些本地值聚合为端到端度量来使用这些本地值。然后,起点可以根据其本地策略自由地解释路由的度量。
In general, the security considerations for the route measurement mechanism described in this document are similar to those for RPL (as described in Section 19 of the RPL specification [RFC6550]). Sections 6.1 and 10 of [RFC6550] describe RPL's security framework, which provides data confidentiality, authentication, replay protection, and delay protection services. This security framework is applicable to the route measurement mechanism described here as well, after taking into account the constraints specified in Section 3.2.
一般来说,本文件中描述的路由测量机制的安全注意事项与RPL类似(如RPL规范[RFC6550]第19节所述)。[RFC6550]第6.1节和第10节描述了RPL的安全框架,该框架提供数据保密性、身份验证、重播保护和延迟保护服务。考虑到第3.2节规定的约束条件后,该安全框架也适用于此处描述的路线测量机制。
This document requires that all routers participating in a secure invocation of the route measurement process use the Security Configuration chosen by the Start Point. The intention is to avoid compromising the overall security of the route measurement due to some routers using a weaker Security Configuration. A router is allowed to participate in a "secure" route measurement only if it can support the Security Configuration in use, which also specifies the key in use. It does not matter whether the key is preinstalled or dynamically acquired after proper authentication. The router must have the key in use before it can process or generate Secure MO messages. Hence, from the perspective of the route measurement mechanism, there is no distinction between the "preinstalled" and "authenticated" security modes described in the RPL specification [RFC6550]. Of course, if a compromised router has the key being used, it could cause the route measurement to fail, or worse, insert wrong information in Secure MO messages.
本文件要求参与路由测量过程安全调用的所有路由器使用起点选择的安全配置。其目的是避免由于某些路由器使用较弱的安全配置而影响路由测量的整体安全性。仅当路由器能够支持使用中的安全配置(该配置还指定了使用中的密钥)时,才允许路由器参与“安全”路由测量。密钥是预安装的还是在正确身份验证后动态获取的并不重要。路由器必须先使用密钥,然后才能处理或生成安全MO消息。因此,从路由测量机制的角度来看,RPL规范[RFC6550]中描述的“预安装”和“认证”安全模式之间没有区别。当然,如果受损路由器使用了密钥,则可能导致路由测量失败,或者更糟的是,在安全MO消息中插入错误信息。
A rogue router acting as the Start Point could use the route measurement mechanism defined in this document to measure routes from itself to other routers and thus find out key information about the LLN, e.g., the topological features of the LLN (such as the identity of the key routers in the topology) or the remaining energy levels [RFC6551] in the routers. This information can potentially be used to attack the LLN. A rogue router could also use this mechanism to send bogus Measurement Requests to arbitrary End Points. If sufficient Measurement Requests are sent, then it may cause CPU overload in the routers in the network, drain their batteries, and cause traffic congestion in the network. Note that some of these problems would occur even if the compromised router were to generate bogus data traffic to arbitrary destinations.
作为起点的流氓路由器可以使用本文件中定义的路由测量机制来测量从自身到其他路由器的路由,从而找出有关LLN的关键信息,例如LLN的拓扑特征(如拓扑中关键路由器的身份)或剩余能级[RFC6551]在路由器里。此信息可能用于攻击LLN。恶意路由器也可以使用这种机制向任意端点发送虚假的测量请求。如果发送了足够的测量请求,则可能会导致网络中路由器的CPU过载,耗尽其电池,并导致网络中的流量拥塞。请注意,即使受损的路由器生成到任意目的地的虚假数据流量,也会出现这些问题。
To protect against such misuse, this document allows RPL routers implementing this mechanism to not process MO messages (or process such messages selectively), based on a local policy. For example, an LLN deployment might require the use of Secure MO messages generated using a key that could be obtained only after proper authentication. Note that this document requires that an LLN deployment support Secure MO messages so that such policies can be enforced where considered essential.
为了防止此类误用,本文档允许基于本地策略实现此机制的RPL路由器不处理MO消息(或选择性地处理此类消息)。例如,LLN部署可能需要使用使用密钥生成的安全MO消息,该密钥只能在正确身份验证后获得。请注意,本文档要求LLN部署支持安全MO消息,以便在认为必要的情况下实施此类策略。
Since a Measurement Request can travel along a Source Route specified in the Address vector, some of the security concerns that led to the deprecation of Type 0 routing headers [RFC5095] may be valid here. To address such concerns, the mechanism described in this document includes several remedies, in the form of the following requirements:
由于测量请求可以沿着地址向量中指定的源路由传输,因此导致不推荐类型0路由头[RFC5095]的一些安全问题可能在这里有效。为了解决这些问题,本文件中描述的机制包括以下要求形式的几种补救措施:
o A route inserted inside the Address vector must be a strict Source Route and must not include any multicast addresses.
o 插入到地址向量中的路由必须是严格的源路由,并且不得包含任何多播地址。
o An MO message must not cross the boundaries of the RPL routing domain where it originated. A router must not forward a received MO message further if the next hop belongs to a different RPL routing domain. Hence, any security problems associated with the mechanism would be limited to one RPL routing domain.
o MO消息不得跨越其来源的RPL路由域的边界。如果下一跳属于不同的RPL路由域,则路由器不得进一步转发收到的MO消息。因此,与该机制相关的任何安全问题都将限于一个RPL路由域。
o A router must drop a received Measurement Request if the next-hop address is not on-link or if it is not a unicast address.
o 如果下一跳地址不在链路上或不是单播地址,路由器必须丢弃接收到的测量请求。
This document defines two new RPL messages:
本文档定义了两条新的RPL消息:
o "Measurement Object" (see Section 3.1), assigned a value of 0x06 from the "RPL Control Codes" space [RFC6550].
o “测量对象”(见第3.1节),从“RPL控制代码”空间[RFC6550]分配了0x06的值。
o "Secure Measurement Object" (see Section 3.2), assigned a value of 0x86 from the "RPL Control Codes" space [RFC6550].
o “安全测量对象”(见第3.2节),从“RPL控制代码”空间[RFC6550]分配0x86的值。
+------+---------------------------+---------------+ | Code | Description | Reference | +------+---------------------------+---------------+ | 0x06 | Measurement Object | This document | | 0x86 | Secure Measurement Object | This document | +------+---------------------------+---------------+
+------+---------------------------+---------------+ | Code | Description | Reference | +------+---------------------------+---------------+ | 0x06 | Measurement Object | This document | | 0x86 | Secure Measurement Object | This document | +------+---------------------------+---------------+
RPL Control Codes
RPL控制代码
The authors gratefully acknowledge the contributions of Ralph Droms, Adrian Farrel, Joel Halpern, Matthias Philipp, Pascal Thubert, Richard Kelsey, and Zach Shelby in the development of this document.
作者衷心感谢拉尔夫·德罗姆斯、阿德里安·法雷尔、乔尔·哈尔潘、马蒂亚斯·菲利普、帕斯卡·苏伯特、理查德·凯尔西和扎克·谢尔比在本文件编写过程中所作的贡献。
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。
[RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 4443, March 2006.
[RFC4443]Conta,A.,Deering,S.和M.Gupta,“互联网协议版本6(IPv6)规范的互联网控制消息协议(ICMPv6)”,RFC 4443,2006年3月。
[RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur, JP., and R. Alexander, "RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks", RFC 6550, March 2012.
[RFC6550]温特,T.,苏伯特,P.,勃兰特,A.,许,J.,凯尔西,R.,列维斯,P.,皮斯特,K.,斯特鲁克,R.,瓦塞尔,JP.,和R.亚历山大,“RPL:低功耗和有损网络的IPv6路由协议”,RFC 65502012年3月。
[RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 Routing Header for Source Routes with the Routing Protocol for Low-Power and Lossy Networks (RPL)", RFC 6554, March 2012.
[RFC6554]Hui,J.,Vasseur,JP.,Culler,D.,和V.Manral,“低功耗和有损网络(RPL)路由协议源路由的IPv6路由头”,RFC 65542012年3月。
[RFC6997] Goyal, M., Ed., Baccelli, E., Philipp, M., Brandt, A., and J. Martocci, "Reactive Discovery of Point-to-Point Routes in Low-Power and Lossy Networks", RFC 6997, August 2013.
[RFC6997]Goyal,M.,Ed.,Baccelli,E.,Philipp,M.,Brandt,A.,和J.Martocci,“低功率和有损网络中点对点路由的反应性发现”,RFC 69972013年8月。
[RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation of Type 0 Routing Headers in IPv6", RFC 5095, December 2007.
[RFC5095]Abley,J.,Savola,P.,和G.Neville Neil,“IPv6中0型路由头的弃用”,RFC 5095,2007年12月。
[RFC5826] Brandt, A., Buron, J., and G. Porcu, "Home Automation Routing Requirements in Low-Power and Lossy Networks", RFC 5826, April 2010.
[RFC5826]Brandt,A.,Buron,J.,和G.Porcu,“低功率和有损网络中的家庭自动化路由要求”,RFC 5826,2010年4月。
[RFC5867] Martocci, J., De Mil, P., Riou, N., and W. Vermeylen, "Building Automation Routing Requirements in Low-Power and Lossy Networks", RFC 5867, June 2010.
[RFC5867]Martocci,J.,De Mil,P.,Riou,N.,和W.Vermeylen,“低功率和有损网络中的楼宇自动化路由要求”,RFC 58672010年6月。
[RFC6551] Vasseur, JP., Kim, M., Pister, K., Dejean, N., and D. Barthel, "Routing Metrics Used for Path Calculation in Low-Power and Lossy Networks", RFC 6551, March 2012.
[RFC6551]Vasseur,JP.,Kim,M.,Pister,K.,Dejean,N.,和D.Barthel,“低功率和有损网络中用于路径计算的路由度量”,RFC 65512012年3月。
[ROLL-TERMS] Vasseur, JP., "Terminology in Low power And Lossy Networks", Work in Progress, March 2013.
[ROLL-TERMS]Vasseur,JP.,“低功耗和有损网络中的术语”,正在进行的工作,2013年3月。
Authors' Addresses
作者地址
Mukul Goyal (editor) University of Wisconsin Milwaukee 3200 N. Cramer St. Milwaukee, WI 53201 USA
Mukul Goyal(编辑)威斯康星大学密尔沃基3200 N.克莱默圣密尔沃基,WI 53201美国
Phone: +1-414-229-5001 EMail: mukul@uwm.edu
Phone: +1-414-229-5001 EMail: mukul@uwm.edu
Emmanuel Baccelli INRIA
伊曼纽尔杆菌
Phone: +33-169-335-511 EMail: Emmanuel.Baccelli@inria.fr URI: http://www.emmanuelbaccelli.org/
Phone: +33-169-335-511 EMail: Emmanuel.Baccelli@inria.fr URI: http://www.emmanuelbaccelli.org/
Anders Brandt Sigma Designs Emdrupvej 26A, 1. Copenhagen, Dk-2100 Denmark
Anders Brandt Sigma设计Emdrupvej 26A,1。丹麦哥本哈根,Dk-2100
Phone: +45-29609501 EMail: abr@sdesigns.dk
Phone: +45-29609501 EMail: abr@sdesigns.dk
Jerald Martocci Johnson Controls 507 E. Michigan Street Milwaukee, WI 53202 USA
Jerald Martocci Johnson Controls美国威斯康星州密尔沃基市密歇根街东507号,邮编53202
Phone: +1-414-524-4010 EMail: jerald.p.martocci@jci.com
Phone: +1-414-524-4010 EMail: jerald.p.martocci@jci.com