| < draft-ietf-6tisch-tsch-01.txt | draft-ietf-6tisch-tsch-02.txt > | |||
|---|---|---|---|---|
| 6TiSCH T. Watteyne, Ed. | 6TiSCH T. Watteyne, Ed. | |||
| Internet-Draft Linear Technology | Internet-Draft Linear Technology | |||
| Intended status: Informational MR. Palattella | Intended status: Informational MR. Palattella | |||
| Expires: January 5, 2015 University of Luxembourg | Expires: April 20, 2015 University of Luxembourg | |||
| LA. Grieco | LA. Grieco | |||
| Politecnico di Bari | Politecnico di Bari | |||
| July 4, 2014 | October 17, 2014 | |||
| Using IEEE802.15.4e TSCH in an LLN context: | Using IEEE802.15.4e TSCH in an IoT context: | |||
| Overview, Problem Statement and Goals | Overview, Problem Statement and Goals | |||
| draft-ietf-6tisch-tsch-01 | draft-ietf-6tisch-tsch-02 | |||
| Abstract | Abstract | |||
| This document describes the environment, problem statement, and goals | This document describes the environment, problem statement, and goals | |||
| for using the IEEE802.15.4e TSCH MAC protocol in the context of LLNs. | for using the IEEE802.15.4e TSCH MAC protocol in the context of LLNs. | |||
| The set of goals enumerated in this document form an initial set | The set of goals enumerated in this document form an initial set | |||
| only. | only. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 37 ¶ | skipping to change at page 1, line 37 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on January 5, 2015. | This Internet-Draft will expire on April 20, 2015. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2014 IETF Trust and the persons identified as the | Copyright (c) 2014 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. TSCH in the LLN Context . . . . . . . . . . . . . . . . . . . 4 | 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3. Problems and Goals . . . . . . . . . . . . . . . . . . . . . 6 | 3. TSCH in the LLN Context . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. Network Formation . . . . . . . . . . . . . . . . . . . . 6 | 4. Problems and Goals . . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.2. Network Maintenance . . . . . . . . . . . . . . . . . . . 6 | 4.1. Network Formation . . . . . . . . . . . . . . . . . . . . 6 | |||
| 3.3. Multi-Hop Topology . . . . . . . . . . . . . . . . . . . 7 | 4.2. Network Maintenance . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.4. Routing and Timing Parents . . . . . . . . . . . . . . . 7 | 4.3. Multi-Hop Topology . . . . . . . . . . . . . . . . . . . 7 | |||
| 3.5. Resource Management . . . . . . . . . . . . . . . . . . . 7 | 4.4. Routing and Timing Parents . . . . . . . . . . . . . . . 7 | |||
| 3.6. Dataflow Control . . . . . . . . . . . . . . . . . . . . 8 | 4.5. Resource Management . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.7. Deterministic Behavior . . . . . . . . . . . . . . . . . 8 | 4.6. Dataflow Control . . . . . . . . . . . . . . . . . . . . 8 | |||
| 3.8. Scheduling Mechanisms . . . . . . . . . . . . . . . . . . 8 | 4.7. Deterministic Behavior . . . . . . . . . . . . . . . . . 8 | |||
| 3.9. Secure Communication . . . . . . . . . . . . . . . . . . 9 | 4.8. Scheduling Mechanisms . . . . . . . . . . . . . . . . . . 8 | |||
| 4. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 4.9. Secure Communication . . . . . . . . . . . . . . . . . . 9 | |||
| 5. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.2. Informative References . . . . . . . . . . . . . . . . . 9 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3. External Informative References . . . . . . . . . . . . . 12 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 | ||||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | ||||
| 8.3. External Informative References . . . . . . . . . . . . . 13 | ||||
| Appendix A. TSCH Protocol Highlights . . . . . . . . . . . . . . 15 | Appendix A. TSCH Protocol Highlights . . . . . . . . . . . . . . 15 | |||
| A.1. Timeslots . . . . . . . . . . . . . . . . . . . . . . . . 15 | A.1. Timeslots . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
| A.2. Slotframes . . . . . . . . . . . . . . . . . . . . . . . 15 | A.2. Slotframes . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| A.3. Node TSCH Schedule . . . . . . . . . . . . . . . . . . . 15 | A.3. Node TSCH Schedule . . . . . . . . . . . . . . . . . . . 16 | |||
| A.4. Cells and Bundles . . . . . . . . . . . . . . . . . . . . 16 | A.4. Cells and Bundles . . . . . . . . . . . . . . . . . . . . 16 | |||
| A.5. Dedicated vs. Shared Cells . . . . . . . . . . . . . . . 16 | A.5. Dedicated vs. Shared Cells . . . . . . . . . . . . . . . 17 | |||
| A.6. Absolute Slot Number . . . . . . . . . . . . . . . . . . 17 | A.6. Absolute Slot Number . . . . . . . . . . . . . . . . . . 17 | |||
| A.7. Channel Hopping . . . . . . . . . . . . . . . . . . . . . 17 | A.7. Channel Hopping . . . . . . . . . . . . . . . . . . . . . 18 | |||
| A.8. Time Synchronization . . . . . . . . . . . . . . . . . . 18 | A.8. Time Synchronization . . . . . . . . . . . . . . . . . . 18 | |||
| A.9. Power Consumption . . . . . . . . . . . . . . . . . . . . 18 | A.9. Power Consumption . . . . . . . . . . . . . . . . . . . . 19 | |||
| A.10. Network TSCH Schedule . . . . . . . . . . . . . . . . . . 19 | A.10. Network TSCH Schedule . . . . . . . . . . . . . . . . . . 19 | |||
| A.11. Join Process . . . . . . . . . . . . . . . . . . . . . . 19 | A.11. Join Process . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| A.12. Information Elements . . . . . . . . . . . . . . . . . . 19 | A.12. Information Elements . . . . . . . . . . . . . . . . . . 20 | |||
| A.13. Extensibility . . . . . . . . . . . . . . . . . . . . . . 20 | A.13. Extensibility . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| Appendix B. TSCH Gotchas . . . . . . . . . . . . . . . . . . . . 20 | Appendix B. TSCH Gotchas . . . . . . . . . . . . . . . . . . . . 21 | |||
| B.1. Collision Free Communication . . . . . . . . . . . . . . 20 | B.1. Collision Free Communication . . . . . . . . . . . . . . 21 | |||
| B.2. Multi-Channel vs. Channel Hopping . . . . . . . . . . . . 20 | B.2. Multi-Channel vs. Channel Hopping . . . . . . . . . . . . 21 | |||
| B.3. Cost of (continuous) Synchronization . . . . . . . . . . 20 | B.3. Cost of (continuous) Synchronization . . . . . . . . . . 21 | |||
| B.4. Topology Stability . . . . . . . . . . . . . . . . . . . 21 | B.4. Topology Stability . . . . . . . . . . . . . . . . . . . 21 | |||
| B.5. Multiple Concurrent Slotframes . . . . . . . . . . . . . 21 | B.5. Multiple Concurrent Slotframes . . . . . . . . . . . . . 22 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 1. Introduction | 1. Introduction | |||
| The IEEE802.15.4e standard [IEEE802154e] was published in 2012 as an | IEEE802.15.4e [IEEE802154e] was published in 2012 as an amendment to | |||
| amendment to the Medium Access Control (MAC) protocol defined by the | the Medium Access Control (MAC) protocol defined by the | |||
| IEEE802.15.4-2011 [IEEE802154] standard. The Timeslotted Channel | IEEE802.15.4-2011 [IEEE802154] standard. IEEE802.15.4e will be | |||
| Hopping (TSCH) mode of IEEE802.15.4e is the object of this document. | rolled into the next revision of IEEE802.15.4, scheduled to be | |||
| published in 2015. The Timeslotted Channel Hopping (TSCH) mode of | ||||
| IEEE802.15.4e is the object of this document. | ||||
| This document describes the main issues arising from the adoption of | This document describes the main issues arising from the adoption of | |||
| the IEEE802.15.4e TSCH in the LLN context, following the terminology | the IEEE802.15.4e TSCH in the LLN context, following the terminology | |||
| defined in [I-D.ietf-6tisch-terminology]. | defined in [I-D.ietf-6tisch-terminology]. | |||
| TSCH was designed to "allow IEEE802.15.4 devices to support a wide | TSCH was designed to allow IEEE802.15.4 devices to support a wide | |||
| range of industrial applications" [IEEE802154e]. At its core is a | range of applications including, but not limited to, industrial ones | |||
| medium access technique which uses time synchronization to achieve | [IEEE802154e]. At its core is a medium access technique which uses | |||
| ultra low-power operation and channel hopping to enable high | time synchronization to achieve ultra low-power operation and channel | |||
| reliability. This is very different from the "legacy" IEEE802.15.4 | hopping to enable high reliability. Synchronization accuracy impacts | |||
| MAC protocol, and is therefore better described as a "redesign". | power consumption, and can vary from micro-seconds to milli-seconds | |||
| TSCH does not amend the physical layer; i.e., it can operate on any | depending on the solution. This is very different from the "legacy" | |||
| IEEE802.15.4-compliant hardware. | IEEE802.15.4 MAC protocol, and is therefore better described as a | |||
| "redesign". TSCH does not amend the physical layer; i.e., it can | ||||
| operate on any IEEE802.15.4-compliant hardware. | ||||
| IEEE802.15.4e can be seen as the latest generation of ultra-lower | IEEE802.15.4e is the latest generation of ultra-lower power and | |||
| power and reliable networking solutions for LLNs. [RFC5673] | reliable networking solutions for LLNs. [RFC5673] discusses | |||
| discusses industrial applications, and highlights the harsh operating | industrial applications, and highlights the harsh operating | |||
| conditions as well as the stringent reliability, availability, and | conditions as well as the stringent reliability, availability, and | |||
| security requirements for an LLN to operate in an industrial | security requirements for an LLN to operate in an industrial | |||
| environment. Commercial networking solutions are available today in | environment. In these environments, vast deployment environments | |||
| with large (metallic) equipment cause multi-path fading and | ||||
| interference to thwart any attempt of a single-channel solution to be | ||||
| reliable; the channel agility of TSCH is the key to its ultra high | ||||
| reliability. Commercial networking solutions are available today in | ||||
| which motes consume 10's of micro-amps on average [CurrentCalculator] | which motes consume 10's of micro-amps on average [CurrentCalculator] | |||
| with end-to-end packet delivery ratios over 99.999% | with end-to-end packet delivery ratios over 99.999% | |||
| [doherty07channel]. | [doherty07channel]. | |||
| Bringing industrial-like performance into the LLN stack developed by | ||||
| Internet of Things (IoT) related IETF working groups such as 6Lo, | ||||
| ROLL and CoRE opens up new application domains for these networks. | ||||
| Sensors deployed in smart cities [RFC5548] will be able to be | ||||
| installed for years without needing battery replacement. "Umbrella" | ||||
| networks will interconnect smart elements from different entities in | ||||
| smart buildings [RFC5867]. Peel-and-stick switches will obsolete the | ||||
| need for costly conduits for lighting solutions in smart homes | ||||
| [RFC5826]. | ||||
| IEEE802.15.4e TSCH focuses on the MAC layer only. This clean | IEEE802.15.4e TSCH focuses on the MAC layer only. This clean | |||
| layering allows for TSCH to fit under an IPv6 enabled protocol stack | layering allows for TSCH to fit under an IPv6 enabled protocol stack | |||
| for LLNs, running 6LoWPAN [RFC6282], RPL [RFC6550] and CoAP | for LLNs, running 6LoWPAN [RFC6282], IPv6 Routing Protocol for Low | |||
| [RFC7252]. | power and Lossy Networks (RPL) [RFC6550] and the Constrained | |||
| Application Protocol (CoAP) [RFC7252]. What is missing is a Logical | ||||
| Bringing industrial-like performance into the LLN stack developed by | Link Control (LLC) layer between the IP abstraction of a link and the | |||
| the 6LoWPAN, ROLL and CORE working groups opens up new application | TSCH MAC, which is in charge of scheduling a timeslot for a given | |||
| domains for these networks. Sensors deployed in smart cities | packet coming down the stack from the upper layer. | |||
| [RFC5548] will be able to be installed for years without needing | ||||
| battery replacement. "Umbrella" networks will interconnect smart | ||||
| elements from different entities in smart buildings [RFC5867]. Peel- | ||||
| and-stick switches will obsolete the need for costly conduits for | ||||
| lighting solutions in smart homes [RFC5826]. | ||||
| While [IEEE802154e] defines the mechanisms for a TSCH mote to | While [IEEE802154e] defines the mechanisms for a TSCH mote to | |||
| communicate, it does not define the policies to build and maintain | communicate, it does not define the policies to build and maintain | |||
| the communication schedule, match that schedule to the multi-hop | the communication schedule, match that schedule to the multi-hop | |||
| paths maintained by RPL, adapt the resources allocated between | paths maintained by RPL, adapt the resources allocated between | |||
| neighbor nodes to the data traffic flows, enforce a differentiated | neighbor nodes to the data traffic flows, enforce a differentiated | |||
| treatment for data generated at the application layer and signalling | treatment for data generated at the application layer and signaling | |||
| messages needed by 6LoWPAN and RPL to discover neighbors, react to | messages needed by 6LoWPAN and RPL to discover neighbors, react to | |||
| topology changes, self-configure IP addresses, or manage keying | topology changes, self-configure IP addresses, or manage keying | |||
| material. | material. | |||
| In other words, IEEE802.15.4e TSCH is designed to allow optimizations | In other words, IEEE802.15.4e TSCH is designed to allow optimizations | |||
| and strong customizations, simplifying the merging of TSCH with a | and strong customizations, simplifying the merging of TSCH with a | |||
| protocol stack based on IPv6, 6LoWPAN, and RPL. | protocol stack based on IPv6, 6LoWPAN, and RPL. | |||
| 2. TSCH in the LLN Context | 2. Requirements Language | |||
| In many cases, to map the services required by the IP layer to the | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| services provided by the link layer, an adaptation layer is used | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | ||||
| 3. TSCH in the LLN Context | ||||
| To map the services required by the IP layer to the services provided | ||||
| by the link layer, an adaptation layer is used | ||||
| [palattella12standardized]. The 6LoWPAN working group started | [palattella12standardized]. The 6LoWPAN working group started | |||
| working in 2007 on specifications for transmitting IPv6 packets over | working in 2007 on specifications for transmitting IPv6 packets over | |||
| IEEE802.15.4 networks [RFC4919]. Typically, low-power WPANs are | IEEE802.15.4 networks [RFC4919]. Low-power WPANs are characterized | |||
| characterized by small packet sizes, support for addresses with | by small packet sizes, support for addresses with different lengths, | |||
| different lengths, low bandwidth, star and mesh topologies, battery | low bandwidth, star and mesh topologies, battery powered devices, low | |||
| powered devices, low cost, large number of devices, unknown node | cost, large number of devices, unknown node positions, high | |||
| positions, high unreliability, and periods during which communication | unreliability, and periods during which communication interfaces are | |||
| interfaces are turned off to save energy. Given these features, it | turned off to save energy. Given these features, it is clear that | |||
| is clear that the adoption of IPv6 on top of a Low-Power WPAN is not | the adoption of IPv6 on top of a Low-Power WPAN is not | |||
| straightforward, but poses strong requirements for the optimization | straightforward, but poses strong requirements for the optimization | |||
| of this adaptation layer. For instance, due to the IPv6 default | of this adaptation layer. | |||
| minimum MTU size (1280 bytes), an un-fragmented IPv6 packet is too | ||||
| large to fit in an IEEE802.15.4 frame. Moreover, the overhead due to | For instance, due to the IPv6 default minimum MTU size (1280 bytes), | |||
| the 40-byte long IPv6 header wastes the scarce bandwidth available at | an un-fragmented IPv6 packet is too large to fit in an IEEE802.15.4 | |||
| the PHY layer [RFC4944]. For these reasons, the 6LoWPAN working | frame. Moreover, the overhead due to the 40-byte long IPv6 header | |||
| group has defined an effective adaptation layer [RFC6568]. Further | wastes the scarce bandwidth available at the PHY layer [RFC4944]. | |||
| issues encompass the auto-configuration of IPv6 addresses | For these reasons, the 6LoWPAN working group has defined an effective | |||
| [RFC2464][RFC6755], the compliance with the recommendation on | adaptation layer [RFC6282]. Further issues encompass the auto- | |||
| supporting link-layer subnet broadcast in shared networks [RFC3819], | configuration of IPv6 addresses [RFC2460][RFC4862], the compliance | |||
| the reduction of routing and management overhead [RFC6606], the | with the recommendation on supporting link-layer subnet broadcast in | |||
| adoption of lightweight application protocols (or novel data encoding | shared networks [RFC3819], the reduction of routing and management | |||
| techniques), and the support for security mechanisms (confidentiality | overhead [RFC6606], the adoption of lightweight application protocols | |||
| and integrity protection, device bootstrapping, key establishment, | (or novel data encoding techniques), and the support for security | |||
| and management). | mechanisms (confidentiality and integrity protection, device | |||
| bootstrapping, key establishment, and management). | ||||
| These features can run on top of TSCH. There are, however, important | These features can run on top of TSCH. There are, however, important | |||
| issues to solve, as highlighted in Section 3. | issues to solve, as highlighted in Section 4. | |||
| Routing issues are challenging for 6LoWPAN, given the low-power and | Routing issues are challenging for 6LoWPAN, given the low-power and | |||
| lossy radio-links, the battery-powered nodes, the multi-hop mesh | lossy radio links, the battery-powered nodes, the multi-hop mesh | |||
| topologies, and the frequent topology changes due to mobility. | topologies, and the frequent topology changes due to mobility. | |||
| Successful solutions take into account the specific application | Successful solutions take into account the specific application | |||
| requirements, along with IPv6 behavior and 6LoWPAN mechanisms | requirements, along with IPv6 behavior and 6LoWPAN mechanisms | |||
| [palattella12standardized]. The ROLL working group has defined RPL | [palattella12standardized]. The ROLL working group has defined RPL | |||
| in [RFC6550]. RPL can support a wide variety of link layers, | in [RFC6550]. RPL can support a wide variety of link layers, | |||
| including ones that are constrained, potentially lossy, or typically | including ones that are constrained, potentially lossy, or typically | |||
| utilized in conjunction with host or router devices with very limited | utilized in conjunction with host or router devices with very limited | |||
| resources, as in building/home automation [RFC5867][RFC5826], | resources, as in building/home automation [RFC5867][RFC5826], | |||
| industrial environments [RFC5673], and urban applications [RFC5548]. | industrial environments [RFC5673], and urban applications [RFC5548]. | |||
| RPL is able to quickly build up network routes, distribute routing | RPL is able to quickly build up network routes, distribute routing | |||
| knowledge among nodes, and adapt to a changing topology. In a | knowledge among nodes, and adapt to a changing topology. In a | |||
| typical setting, motes are connected through multi-hop paths to a | typical setting, motes are connected through multi-hop paths to a | |||
| small set of root devices, which are usually responsible for data | small set of root devices, which are usually responsible for data | |||
| collection and coordination. For each of them, a Destination | collection and coordination. For each of them, a Destination | |||
| Oriented Directed Acyclic Graph (DODAG) is created by accounting for | Oriented Directed Acyclic Graph (DODAG) is created by accounting for | |||
| link costs, node attributes/status information, and an Objective | link costs, node attributes/status information, and an Objective | |||
| Function, which maps the optimization requirements of the target | Function, which maps the optimization requirements of the target | |||
| scenario. The topology is set up based on a Rank metric, which | scenario. | |||
| encodes the distance of each node with respect to its reference root, | ||||
| as specified by the Objective Function. Regardless of the way it is | The topology is set up based on a Rank metric, which encodes the | |||
| distance of each node with respect to its reference root, as | ||||
| specified by the Objective Function. Regardless of the way it is | ||||
| computed, the Rank monotonically decreases along the DODAG towards | computed, the Rank monotonically decreases along the DODAG towards | |||
| the destination, building a gradient. RPL encompasses different | the root, building a gradient. RPL encompasses different kinds of | |||
| kinds of traffic and signalling information. Multipoint-to-Point | traffic and signaling information. Multipoint-to-Point (MP2P) is the | |||
| (MP2P) is the dominant traffic in LLN applications. Data is routed | dominant traffic in LLN applications. Data is routed towards nodes | |||
| towards nodes with some application relevance, such as the LLN | with some application relevance, such as the LLN gateway to the | |||
| gateway to the larger Internet, or to the core of private IP | larger Internet, or to the core of private IP networks. In general, | |||
| networks. In general, these destinations are the DODAG roots and act | these destinations are the DODAG roots and act as data collection | |||
| as data collection points for distributed monitoring applications. | points for distributed monitoring applications. Point-to-Multipoint | |||
| Point-to-Multipoint (P2MP) data streams are used for actuation | (P2MP) data streams are used for actuation purposes, where messages | |||
| purposes, where messages are sent from DODAG roots to destination | are sent from DODAG roots to destination nodes. Point-to-Point (P2P) | |||
| nodes. Point-to-Point (P2P) traffic allows communication between two | traffic allows communication between two devices belonging to the | |||
| devices belonging to the same LLN, such as a sensor and an actuator. | same LLN, such as a sensor and an actuator. A packet flows from the | |||
| A packet flows from the source to the common ancestor of those two | source to the common ancestor of those two communicating devices, | |||
| communicating devices, then downward towards the destination. RPL | then downward towards the destination. RPL therefore has to discover | |||
| therefore has to discover both upward routes (i.e. from nodes to | both upward routes (i.e. from nodes to DODAG roots) in order to | |||
| DODAG roots) in order to enable MP2P and P2P flows, and downward | enable MP2P and P2P flows, and downward routes (i.e. from DODAG roots | |||
| routes (i.e. from DODAG roots to nodes) to support P2MP and P2P | to nodes) to support P2MP and P2P traffic. | |||
| traffic. | ||||
| Section 3 highlights the challenges that need to be addressed to use | Section 4 highlights the challenges that need to be addressed to use | |||
| RPL on top of TSCH. | RPL on top of TSCH. | |||
| Several open-source initiatives have emerged around TSCH. The | Several open-source initiatives have emerged around TSCH. The | |||
| OpenWSN project [OpenWSN][OpenWSNETT] is an open-source | OpenWSN project [OpenWSN][OpenWSNETT] is an open-source | |||
| implementation of a standards-based protocol stack, which aims at | implementation of a standards-based protocol stack, which aims at | |||
| evaluating the applicability of TSCH to different applications. This | evaluating the applicability of TSCH to different applications. This | |||
| implementation was used as the foundation for an IP for Smart Objects | implementation was used as the foundation for an IP for Smart Objects | |||
| Alliance (IPSO) [IPSO] interoperability event in 2011. In the | Alliance (IPSO) [IPSO] interoperability event in 2011. In the | |||
| absence of a standardized scheduling mechanism for TSCH, a "slotted | absence of a standardized scheduling mechanism for TSCH, a "slotted | |||
| Aloha" schedule was used. | Aloha" schedule was used. | |||
| 3. Problems and Goals | 4. Problems and Goals | |||
| As highlighted in Appendix A, TSCH is different for traditional low- | As highlighted in Appendix A, TSCH differs from traditional low-power | |||
| power MAC protocols because of its scheduled nature. TSCH defines | MAC protocols because of its scheduled nature. TSCH defines the | |||
| the mechanisms to execute a communication schedule, yet it is the | mechanisms to execute a communication schedule, yet it is the entity | |||
| entity that sets up that schedule which controls the topology of the | that sets up that schedule which controls the topology of the | |||
| network. This scheduling entity also controls the resources | network. This scheduling entity also controls the resources | |||
| allocated to each link in that topology. | allocated to each link in that topology. | |||
| How this entity should operate is out of scope of TSCH. The | How this entity should operate is out of scope of TSCH. The | |||
| remainder of this section highlights the problems this entity needs | remainder of this section highlights the problems this entity needs | |||
| to address. For simplicity, we will refer to this entity by the | to address. For simplicity, we refer to this entity by the generic | |||
| generic name "6TiSCH". Note that the 6top sublayer, currently being | name "LLC". Note that the 6top sublayer, currently being defined in | |||
| defined in [I-D.wang-6tisch-6top-sublayer], can be seen as an | [I-D.wang-6tisch-6top-sublayer], can be seen as an embodiment of this | |||
| embodiment of this generic "6TiSCH". | generic "LLC". | |||
| Some of the issues 6TiSCH needs to target might overlap with the | Some of the issues the LLC needs to target might overlap with the | |||
| scope of other protocols (e.g., 6LoWPAN, RPL, and RSVP). In this | scope of other protocols (e.g., 6LoWPAN, RPL, and RSVP). In this | |||
| case, it is entailed that 6TiSCH will profit from the services | case, it is entailed that the LLC will profit from the services | |||
| provided by other protocols to pursue these objectives. | provided by other protocols to pursue these objectives. | |||
| 3.1. Network Formation | 4.1. Network Formation | |||
| 6TiSCH needs to control the way the network is formed, including how | The LLC needs to control the way the network is formed, including how | |||
| new motes join, and how already joined motes advertise the presence | new motes join, and how already joined motes advertise the presence | |||
| of the network. 6TiSCH needs to: | of the network. The LLC needs to: | |||
| 1. Define the Information Elements to include in the Enhanced | 1. Define the Information Elements included in the Enhanced Beacons | |||
| Beacons advertising the presence of the network. | advertising the presence of the network. | |||
| 2. For a new mote, define rules to process and filter received | 2. For a new mote, define rules to process and filter received | |||
| Enhanced Beacons. | Enhanced Beacons. | |||
| 3. Define the joining procedure. This includes a mechanism to | 3. Define the joining procedure. This might include a mechanism to | |||
| assign a unique 16-bit address to a mote, and the management of | assign a unique 16-bit address to a mote, and the management of | |||
| initial keying material. | initial keying material. | |||
| 4. Define a mechanism to secure the joining process and the | 4. Define a mechanism to secure the joining process and the | |||
| subsequent optional process of scheduling more communication | subsequent optional process of scheduling more communication | |||
| links. | cells. | |||
| 3.2. Network Maintenance | 4.2. Network Maintenance | |||
| Once a network is formed, 6TiSCH needs to maintain the network's | Once a network is formed, the LLC needs to maintain the network's | |||
| health, allowing for motes to stay synchronized. 6TiSCH needs to: | health, allowing for motes to stay synchronized. The LLC needs to: | |||
| 1. Manage each mote's time source neighbor. | 1. Manage each mote's time source neighbor. | |||
| 2. Define a mechanism for a mote to update the join priority it | 2. Define a mechanism for a mote to update the join priority it | |||
| announces in its Enhanced Beacon. | announces in its Enhanced Beacon. | |||
| 3. Schedule transmissions of Enhanced Beacons to advertise the | 3. Schedule transmissions of Enhanced Beacons to advertise the | |||
| presence of the network. | presence of the network. | |||
| 3.3. Multi-Hop Topology | 4.3. Multi-Hop Topology | |||
| RPL, given a weighted connectivity graph, determines multi-hop | RPL, given a weighted connectivity graph, determines multi-hop | |||
| routes. 6TiSCH needs to: | routes. The LLC needs to: | |||
| 1. Define a mechanism to gather topological information, which it | 1. Define a mechanism to gather topological information, which it | |||
| can then feed to RPL. | can then feed to RPL. | |||
| 2. Ensure that the TSCH schedule contains links along the multi-hop | 2. Ensure that the TSCH schedule contains cells along the multi-hop | |||
| routes identified by RPL. | routes identified by RPL. | |||
| 3. Where applicable, maintain independent sets of links to transport | 3. Where applicable, maintain independent sets of cells to transport | |||
| independent flows of data. | independent flows of data. | |||
| 3.4. Routing and Timing Parents | 4.4. Routing and Timing Parents | |||
| At all times, a TSCH mote needs to have a time source neighbor it can | At all times, a TSCH mote needs to have a time source neighbor it can | |||
| synchronize to. 6TiSCH therefore needs to assign a time source | synchronize to. The LLC therefore needs to assign a time source | |||
| neighbor to allow for correct operation of the TSCH network. A time | neighbor to allow for correct operation of the TSCH network. A time | |||
| source neighbors could, or not, be taken from the RPL routing parent | source neighbors could, or not, be taken from the RPL routing parent | |||
| set. | set. | |||
| 3.5. Resource Management | 4.5. Resource Management | |||
| A link in a TSCH schedule is a "unit" of resource. The number of | ||||
| links to assign between neighbor motes needs to be appropriate for | ||||
| the size of the traffic flow. 6TiSCH needs to: | ||||
| 1. Define rules on when to create or delete a slotframe. | ||||
| 2. Define rules to determine the length of a slotframe, and the | ||||
| trigger to modify the length of a slotframe. | ||||
| 3. Define rules on when to add or delete links in a particular | A cell in a TSCH schedule is an atomic "unit" of resource. The | |||
| slotframe. | number of cells to assign between neighbor motes needs to be | |||
| appropriate for the size of the traffic flow. The LLC needs to: | ||||
| 4. Define a mechanism for neighbor nodes to exchange information | 1. Define a mechanism for neighbor nodes to exchange information | |||
| about their schedule and, if applicable, negotiate the addition/ | about their schedule and, if applicable, negotiate the addition/ | |||
| deletion of links. | deletion of cells. | |||
| 5. Allow for an entity (e.g., a set of devices, a distributed | 2. Allow for an entity (e.g., a set of devices, a distributed | |||
| protocol, a PCE, etc.) to take control of the schedule. | protocol, a PCE, etc.) to take control of the schedule. | |||
| 6. Define a set of metrics to evaluate the trade-off between | 4.6. Dataflow Control | |||
| latency, bandwidth and energy consumption achieved by a | ||||
| particular schedule. | ||||
| 3.6. Dataflow Control | ||||
| TSCH defines mechanisms for a mote to signal it cannot accept an | TSCH defines mechanisms for a mote to signal it cannot accept an | |||
| incoming packet. It does not, however, define the policy which | incoming packet. It does not, however, define the policy which | |||
| determines when to stop accepting packets. 6TiSCH needs to: | determines when to stop accepting packets. The LLC needs to: | |||
| 1. Define a queueing policy for incoming and outgoing packets. | 1. Define a queuing policy for incoming and outgoing packets. | |||
| 2. Manage the buffer space, and indicate to TSCH when to stop | 2. Manage the buffer space, and indicate to TSCH when to stop | |||
| accepting incoming packets. | accepting incoming packets. | |||
| 3. Handle transmissions that have failed. A transmission is | 3. Handle transmissions that have failed. A transmission is | |||
| declared failed when TSCH has retransmitted the packet multiple | declared failed when TSCH has retransmitted the packet multiple | |||
| times, without receiving an acknowledgement. This covers both | times, without receiving an acknowledgment. This covers both | |||
| dedicated and shared links. | dedicated and shared cells. | |||
| 3.7. Deterministic Behavior | 4.7. Deterministic Behavior | |||
| As highlighted in [RFC5673], in some applications, data is generated | As highlighted in [RFC5673], in some applications, data is generated | |||
| periodically and has a well understood data bandwidth requirement, | periodically and has a well understood data bandwidth requirement, | |||
| which is deterministic and predictable. 6TiSCH needs to: | which is deterministic and predictable. The LLC needs to: | |||
| 1. Ensure timely delivery of such data. | 1. Ensure timely delivery of such data. | |||
| 2. Provide a mechanism for such deterministic flows to coexist with | 2. Provide a mechanism for such deterministic flows to coexist with | |||
| bursty or infrequent traffic flows of different priorities. | bursty or infrequent traffic flows of different priorities. | |||
| 3.8. Scheduling Mechanisms | 4.8. Scheduling Mechanisms | |||
| Several scheduling mechanisms can be envisioned, and possibly coexist | Several scheduling mechanisms can be envisioned, and possibly coexist | |||
| in the same network. For example, | in the same network. For example, | |||
| [I-D.phinney-roll-rpl-industrial-applicability] describe how the | [I-D.phinney-roll-rpl-industrial-applicability] describes how the | |||
| allocation of bandwidth can be optimized by an external Path | allocation of bandwidth can be optimized by an external Path | |||
| Computation Element (PCE). Alternatively, two neighbor nodes can | Computation Element (PCE). Alternatively, two neighbor nodes can | |||
| adapt the number of cells autonomously by monitoring the amount of | adapt the number of cells autonomously by monitoring the amount of | |||
| traffic, and negotiating the allocation to extra cell when needed. | traffic, and negotiating the allocation to extra cell when needed. | |||
| This mechanism can be used to establish multi-hop paths in a fashion | This mechanism can be used to establish multi-hop paths in a fashion | |||
| similar to RSVP. 6TiSCH needs to: | similar to RSVP. The LLC needs to: | |||
| 1. Provide a mechanism for two 6TiSCH devices to negotiate the | 1. Provide a mechanism for two 6TiSCH devices to negotiate the | |||
| allocation and deallocation of cells between them. | allocation and deallocation of cells between them. | |||
| 2. Provide a mechanism for device to monitor and manage the 6TiSCH | 2. Provide a mechanism for device to monitor and manage the 6TiSCH | |||
| capabilities of a node several hops away. | capabilities of a node several hops away. | |||
| 3. Define an mechanism for these different scheduling mechanisms to | 3. Define an mechanism for these different scheduling mechanisms to | |||
| coexist in the same network. | coexist in the same network. | |||
| 3.9. Secure Communication | 4.9. Secure Communication | |||
| Given some keying material, TSCH defines mechanisms to encrypt and | Given some keying material, TSCH defines mechanisms to encrypt and | |||
| authenticate MAC frames. It does not define how this keying material | authenticate MAC frames. It does not define how this keying material | |||
| is generated. 6TiSCH needs to: | is generated. The LLC needs to: | |||
| 1. Define the keying material and authentication mechanism needed by | 1. Define the keying material and authentication mechanism needed by | |||
| a new mote to join an existing network. | a new mote to join an existing network. | |||
| 2. Define a mechanism to allow for the secure transfer of | 2. Define a mechanism to allow for the secure transfer of | |||
| application data between neighbor motes. | application data between neighbor motes. | |||
| 3. Define a mechanism to allow for the secure transfer of signalling | 3. Define a mechanism to allow for the secure transfer of signaling | |||
| data between motes and 6TiSCH. | data between motes and the LLC. | |||
| 4. Acknowledgements | 5. IANA Considerations | |||
| This memo includes no request to IANA. | ||||
| 6. Security Considerations | ||||
| This memo is an informational overview of existing standards, and | ||||
| does define any new mechanisms or protocols. | ||||
| It does describe the need for the 6TiSCH WG to define a secure | ||||
| solution. In particular, Section 4.1 describes security in the join | ||||
| process. Section 4.9 discusses data frame protection. | ||||
| 7. Acknowledgments | ||||
| Special thanks to Jonathan Simon for his review and valuable | Special thanks to Jonathan Simon for his review and valuable | |||
| comments. Thanks to the IoT6 European Project (STREP) of the 7th | comments. Thanks to the IoT6 European Project (STREP) of the 7th | |||
| Framework Program (Grant 288445). | Framework Program (Grant 288445). | |||
| 5. References | 8. References | |||
| 5.1. Normative References | 8.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, March 1997. | Requirement Levels", BCP 14, RFC 2119, March 1997. | |||
| 5.2. Informative References | 8.2. Informative References | |||
| [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
| Application Protocol (CoAP)", RFC 7252, June 2014. | Application Protocol (CoAP)", RFC 7252, June 2014. | |||
| [RFC6755] Campbell, B. and H. Tschofenig, "An IETF URN Sub-Namespace | ||||
| for OAuth", RFC 6755, October 2012. | ||||
| [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem | [RFC6606] Kim, E., Kaspar, D., Gomez, C., and C. Bormann, "Problem | |||
| Statement and Requirements for IPv6 over Low-Power | Statement and Requirements for IPv6 over Low-Power | |||
| Wireless Personal Area Network (6LoWPAN) Routing", RFC | Wireless Personal Area Network (6LoWPAN) Routing", RFC | |||
| 6606, May 2012. | 6606, May 2012. | |||
| [RFC6568] Kim, E., Kaspar, D., and JP. Vasseur, "Design and | [RFC6568] Kim, E., Kaspar, D., and JP. Vasseur, "Design and | |||
| Application Spaces for IPv6 over Low-Power Wireless | Application Spaces for IPv6 over Low-Power Wireless | |||
| Personal Area Networks (6LoWPANs)", RFC 6568, April 2012. | Personal Area Networks (6LoWPANs)", RFC 6568, April 2012. | |||
| [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., | [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., | |||
| skipping to change at page 10, line 39 ¶ | skipping to change at page 11, line 14 ¶ | |||
| [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | |||
| "Transmission of IPv6 Packets over IEEE 802.15.4 | "Transmission of IPv6 Packets over IEEE 802.15.4 | |||
| Networks", RFC 4944, September 2007. | Networks", RFC 4944, September 2007. | |||
| [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | [RFC4919] Kushalnagar, N., Montenegro, G., and C. Schumacher, "IPv6 | |||
| over Low-Power Wireless Personal Area Networks (6LoWPANs): | over Low-Power Wireless Personal Area Networks (6LoWPANs): | |||
| Overview, Assumptions, Problem Statement, and Goals", RFC | Overview, Assumptions, Problem Statement, and Goals", RFC | |||
| 4919, August 2007. | 4919, August 2007. | |||
| [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless | ||||
| Address Autoconfiguration", RFC 4862, September 2007. | ||||
| [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D., | [RFC3819] Karn, P., Bormann, C., Fairhurst, G., Grossman, D., | |||
| Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L. | Ludwig, R., Mahdavi, J., Montenegro, G., Touch, J., and L. | |||
| Wood, "Advice for Internet Subnetwork Designers", BCP 89, | Wood, "Advice for Internet Subnetwork Designers", BCP 89, | |||
| RFC 3819, July 2004. | RFC 3819, July 2004. | |||
| [RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet | [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 | |||
| Networks", RFC 2464, December 1998. | (IPv6) Specification", RFC 2460, December 1998. | |||
| [I-D.ietf-6tisch-tsch] | [I-D.ietf-6tisch-tsch] | |||
| Watteyne, T., Palattella, M., and L. Grieco, "Using | Watteyne, T., Palattella, M., and L. Grieco, "Using | |||
| IEEE802.15.4e TSCH in an LLN context: Overview, Problem | IEEE802.15.4e TSCH in an LLN context: Overview, Problem | |||
| Statement and Goals", draft-ietf-6tisch-tsch-00 (work in | Statement and Goals", draft-ietf-6tisch-tsch-01 (work in | |||
| progress), November 2013. | progress), July 2014. | |||
| [I-D.ietf-6tisch-architecture] | [I-D.ietf-6tisch-architecture] | |||
| Thubert, P., Watteyne, T., and R. Assimiti, "An | Thubert, P., Watteyne, T., and R. Assimiti, "An | |||
| Architecture for IPv6 over the TSCH mode of IEEE | Architecture for IPv6 over the TSCH mode of IEEE | |||
| 802.15.4e", draft-ietf-6tisch-architecture-02 (work in | 802.15.4e", draft-ietf-6tisch-architecture-03 (work in | |||
| progress), June 2014. | progress), July 2014. | |||
| [I-D.ietf-6tisch-terminology] | [I-D.ietf-6tisch-terminology] | |||
| Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | Palattella, M., Thubert, P., Watteyne, T., and Q. Wang, | |||
| "Terminology in IPv6 over the TSCH mode of IEEE | "Terminology in IPv6 over the TSCH mode of IEEE | |||
| 802.15.4e", draft-ietf-6tisch-terminology-01 (work in | 802.15.4e", draft-ietf-6tisch-terminology-02 (work in | |||
| progress), February 2014. | progress), July 2014. | |||
| [I-D.ietf-6tisch-minimal] | [I-D.ietf-6tisch-minimal] | |||
| Vilajosana, X. and K. Pister, "Minimal 6TiSCH | Vilajosana, X. and K. Pister, "Minimal 6TiSCH | |||
| Configuration", draft-ietf-6tisch-minimal-01 (work in | Configuration", draft-ietf-6tisch-minimal-02 (work in | |||
| progress), June 2014. | progress), July 2014. | |||
| [I-D.ietf-6tisch-6top-interface] | [I-D.ietf-6tisch-6top-interface] | |||
| Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | |||
| Operation Sublayer (6top) Interface", draft-ietf-6tisch- | Operation Sublayer (6top) Interface", draft-ietf-6tisch- | |||
| 6top-interface-00 (work in progress), March 2014. | 6top-interface-01 (work in progress), July 2014. | |||
| [I-D.wang-6tisch-6top-sublayer] | [I-D.wang-6tisch-6top-sublayer] | |||
| Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | Wang, Q., Vilajosana, X., and T. Watteyne, "6TiSCH | |||
| Operation Sublayer (6top)", draft-wang-6tisch-6top- | Operation Sublayer (6top)", draft-wang-6tisch-6top- | |||
| sublayer-00 (work in progress), February 2014. | sublayer-01 (work in progress), July 2014. | |||
| [I-D.ietf-6tisch-coap] | [I-D.ietf-6tisch-coap] | |||
| Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and | Sudhaakar, R. and P. Zand, "6TiSCH Resource Management and | |||
| Interaction using CoAP", draft-ietf-6tisch-coap-00 (work | Interaction using CoAP", draft-ietf-6tisch-coap-01 (work | |||
| in progress), May 2014. | in progress), July 2014. | |||
| [I-D.thubert-roll-forwarding-frags] | [I-D.thubert-roll-forwarding-frags] | |||
| Thubert, P. and J. Hui, "LLN Fragment Forwarding and | Thubert, P. and J. Hui, "LLN Fragment Forwarding and | |||
| Recovery", draft-thubert-roll-forwarding-frags-02 (work in | Recovery", draft-thubert-roll-forwarding-frags-02 (work in | |||
| progress), September 2013. | progress), September 2013. | |||
| [I-D.tsao-roll-security-framework] | [I-D.tsao-roll-security-framework] | |||
| Tsao, T., Alexander, R., Daza, V., and A. Lozano, "A | Tsao, T., Alexander, R., Daza, V., and A. Lozano, "A | |||
| Security Framework for Routing over Low Power and Lossy | Security Framework for Routing over Low Power and Lossy | |||
| Networks", draft-tsao-roll-security-framework-02 (work in | Networks", draft-tsao-roll-security-framework-02 (work in | |||
| skipping to change at page 12, line 44 ¶ | skipping to change at page 13, line 23 ¶ | |||
| Object Security Workshop', 23rd March 2012, Paris, | Object Security Workshop', 23rd March 2012, Paris, | |||
| France", draft-gilger-smart-object-security-workshop-00 | France", draft-gilger-smart-object-security-workshop-00 | |||
| (work in progress), October 2012. | (work in progress), October 2012. | |||
| [I-D.phinney-roll-rpl-industrial-applicability] | [I-D.phinney-roll-rpl-industrial-applicability] | |||
| Phinney, T., Thubert, P., and R. Assimiti, "RPL | Phinney, T., Thubert, P., and R. Assimiti, "RPL | |||
| applicability in industrial networks", draft-phinney-roll- | applicability in industrial networks", draft-phinney-roll- | |||
| rpl-industrial-applicability-02 (work in progress), | rpl-industrial-applicability-02 (work in progress), | |||
| February 2013. | February 2013. | |||
| 5.3. External Informative References | 8.3. External Informative References | |||
| [IEEE802154e] | [IEEE802154e] | |||
| IEEE standard for Information Technology, "IEEE std. | IEEE standard for Information Technology, "IEEE std. | |||
| 802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area | 802.15.4e, Part. 15.4: Low-Rate Wireless Personal Area | |||
| Networks (LR-WPANs) Amendament 1: MAC sublayer", April | Networks (LR-WPANs) Amendament 1: MAC sublayer", April | |||
| 2012. | 2012. | |||
| [IEEE802154] | [IEEE802154] | |||
| IEEE standard for Information Technology, "IEEE std. | IEEE standard for Information Technology, "IEEE std. | |||
| 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) | 802.15.4, Part. 15.4: Wireless Medium Access Control (MAC) | |||
| skipping to change at page 15, line 24 ¶ | skipping to change at page 15, line 52 ¶ | |||
| presented precisely. | presented precisely. | |||
| o Techniques and ideas which are part of IEEE802.15.4e and which | o Techniques and ideas which are part of IEEE802.15.4e and which | |||
| might be useful for the work of the 6TiSCH WG. | might be useful for the work of the 6TiSCH WG. | |||
| A.1. Timeslots | A.1. Timeslots | |||
| All motes in a TSCH network are synchronized. Time is sliced up into | All motes in a TSCH network are synchronized. Time is sliced up into | |||
| timeslots. A timeslot is long enough for a MAC frame of maximum size | timeslots. A timeslot is long enough for a MAC frame of maximum size | |||
| to be sent from mote A to mote B, and for mote B to reply with an | to be sent from mote A to mote B, and for mote B to reply with an | |||
| acknowledgement (ACK) frame indicating successful reception. | acknowledgment (ACK) frame indicating successful reception. | |||
| The duration of a timeslot is not defined by the standard. With | The duration of a timeslot is not defined by the standard. With | |||
| IEEE802.15.4-compliant radios operating in the 2.4GHz frequency band, | IEEE802.15.4-compliant radios operating in the 2.4GHz frequency band, | |||
| a maximum-length frame of 127 bytes takes about 4ms to transmit; a | a maximum-length frame of 127 bytes takes about 4ms to transmit; a | |||
| shorter ACK takes about 1ms. With a 10ms slot (a typical duration), | shorter ACK takes about 1ms. With a 10ms slot (a typical duration), | |||
| this leaves 5ms to radio turnaround, packet processing and security | this leaves 5ms to radio turnaround, packet processing and security | |||
| operations. | operations. | |||
| A.2. Slotframes | A.2. Slotframes | |||
| skipping to change at page 15, line 46 ¶ | skipping to change at page 16, line 25 ¶ | |||
| continuously repeats over time. TSCH does not impose a slotframe | continuously repeats over time. TSCH does not impose a slotframe | |||
| size. Depending on the application needs, these can range from 10s | size. Depending on the application needs, these can range from 10s | |||
| to 1000s of timeslots. The shorter the slotframe, the more often a | to 1000s of timeslots. The shorter the slotframe, the more often a | |||
| timeslot repeats, resulting in more available bandwidth, but also in | timeslot repeats, resulting in more available bandwidth, but also in | |||
| a higher power consumption. | a higher power consumption. | |||
| A.3. Node TSCH Schedule | A.3. Node TSCH Schedule | |||
| A TSCH schedule instructs each mote what to do in each timeslot: | A TSCH schedule instructs each mote what to do in each timeslot: | |||
| transmit, receive or sleep. The schedule indicates, for each | transmit, receive or sleep. The schedule indicates, for each | |||
| scheduled (transmit or receive) cell a channelOffset and the address | scheduled (transmit or receive) cell, a channelOffset and the address | |||
| of the neighbor to communicate with. | of the neighbor to communicate with. | |||
| Once a mote obtains its schedule, it executes it: | Once a mote obtains its schedule, it executes it: | |||
| o For each transmit cell, the mote checks whether there is a packet | o For each transmit cell, the mote checks whether there is a packet | |||
| in the outgoing buffer which matches the neighbor written in the | in the outgoing buffer which matches the neighbor written in the | |||
| schedule information for that timeslot. If there is none, the | schedule information for that timeslot. If there is none, the | |||
| mote keeps its radio off for the duration of the timeslot. If | mote keeps its radio off for the duration of the timeslot. If | |||
| there is one, the mote can ask for the neighbor to acknowledge it, | there is one, the mote can ask for the neighbor to acknowledge it, | |||
| in which case it has to listen for the acknowledgement after | in which case it has to listen for the acknowledgment after | |||
| transmitting. | transmitting. | |||
| o For each receive cell, the mote listens for possible incoming | o For each receive cell, the mote listens for possible incoming | |||
| packets. If none is received after some listening period, it | packets. If none is received after some listening period, it | |||
| shuts down its radio. If a packet is received, addressed to the | shuts down its radio. If a packet is received, addressed to the | |||
| mote, and passes security checks, the mote can send back an | mote, and passes security checks, the mote can send back an | |||
| acknowledgement. | acknowledgment. | |||
| How the schedule is built, updated and maintained, and by which | How the schedule is built, updated and maintained, and by which | |||
| entity, is outside of the scope of the IEEE802.15.4e standard. | entity, is outside of the scope of the IEEE802.15.4e standard. | |||
| A.4. Cells and Bundles | A.4. Cells and Bundles | |||
| Assuming the schedule is well built, if mote A is scheduled to | Assuming the schedule is well built, if mote A is scheduled to | |||
| transmit to mote B at slotOffset 5 and channelOffset 11, mote B will | transmit to mote B at slotOffset 5 and channelOffset 11, mote B will | |||
| be scheduled to receive from mote A at the same slotOffset and | be scheduled to receive from mote A at the same slotOffset and | |||
| channelOffset. | channelOffset. | |||
| A single element of the schedule characterized by a slotOffset and | A single element of the schedule characterized by a slotOffset and | |||
| channelOffset, and reserved for mote A to transmit to mote B (or for | channelOffset, and reserved for mote A to transmit to mote B (or for | |||
| mote B to receive from mote A) within a given slotframe, is called a | mote B to receive from mote A) within a given slotframe, is called a | |||
| "scheduled cell". | "scheduled cell". | |||
| If there is a lot of data flowing from mote A to mote B, the schedule | If there is a lot of data flowing from mote A to mote B, the schedule | |||
| might contain multiple cells from A to B, at different times. | might contain multiple cells from A to B, at different times. | |||
| Multiple cells scheduled to the same neighbor can be equivalent, i.e. | Multiple cells scheduled to the same neighbor can be equivalent, i.e. | |||
| the MAC layer sends the packet on whichever of these cells happens to | the MAC layer sends the packet on whichever of these cells shows up | |||
| show up first after the packet was put in the MAC queue. The union | first after the packet was put in the MAC queue. The union of all | |||
| of all cells between two neighbors, A and B, is called a "bundle". | cells between two neighbors, A and B, is called a "bundle". Since | |||
| Since the slotframe repeats over time (and the length of the | the slotframe repeats over time (and the length of the slotframe is | |||
| slotframe is typically constant), each cell gives a "quantum" of | typically constant), each cell gives a "quantum" of bandwidth to a | |||
| bandwidth to a given neighbor. Modifying the number of equivalent | given neighbor. Modifying the number of equivalent cells in a bundle | |||
| cells in a bundle modifies the amount of resources allocated between | modifies the amount of resources allocated between two neighbors. | |||
| two neighbors. | ||||
| A.5. Dedicated vs. Shared Cells | A.5. Dedicated vs. Shared Cells | |||
| By default, each scheduled transmit cell within the TSCH schedule is | By default, each scheduled transmit cell within the TSCH schedule is | |||
| dedicated, i.e., reserved only for mote A to transmit to mote B. | dedicated, i.e., reserved only for mote A to transmit to mote B. | |||
| IEEE802.15.4e allows also to mark a cell as shared. In a shared | IEEE802.15.4e allows also to mark a cell as shared. In a shared | |||
| cell, multiple motes can transmit at the same time, on the same | cell, multiple motes can transmit at the same time, on the same | |||
| frequency. To avoid contention, TSCH defines a back-off algorithm | frequency. To avoid contention, TSCH defines a back-off algorithm | |||
| for shared cells. | for shared cells. | |||
| A scheduled cell can be marked as both transmitting and receiving. | A scheduled cell can be marked as both transmitting and receiving. | |||
| In this case, a mote transmits if it has an appropriate packet in its | In this case, a mote transmits if it has an appropriate packet in its | |||
| output buffer, or listens otherwise. Marking a cell as | output buffer, or listens otherwise. Marking a cell as | |||
| [transmit,shared,receive] results in slotted-Aloha behavior. | [transmit,receive,shared] results in slotted-Aloha behavior. | |||
| A.6. Absolute Slot Number | A.6. Absolute Slot Number | |||
| TSCH defines a timeslot counter called Absolute Slot Number (ASN). | TSCH defines a timeslot counter called Absolute Slot Number (ASN). | |||
| When a new network is created, the ASN is initialized to 0; from then | When a new network is created, the ASN is initialized to 0; from then | |||
| on, it increments by 1 at each timeslot. In detail: | on, it increments by 1 at each timeslot. In detail: | |||
| ASN = (k*S+t) | ASN = (k*S+t) | |||
| where k is the slotframe cycle (i.e., the number of slotframe | where k is the slotframe cycle (i.e., the number of slotframe | |||
| repetitions since the network was started), S the slotframe size and | repetitions since the network was started), S the slotframe size and | |||
| t the slotOffset. A mote learns the current ASN when it joins the | t the slotOffset. A mote learns the current ASN when it joins the | |||
| network. Since motes are synchronized, they all know the current | network. Since motes are synchronized, they all know the current | |||
| value of the ASN, at any time. The ASN is encoded as a 5-byte | value of the ASN, at any time. The ASN is encoded as a 5-byte | |||
| number: this allows it to increment for hundreds of years (the exact | number: this allows it to increment for hundreds of years (the exact | |||
| value depends on the duration of a timeslot) without wrapping. The | value depends on the duration of a timeslot) without wrapping over. | |||
| ASN is used to calculate the frequency to communicate on, and can be | The ASN is used to calculate the frequency to communicate on, and can | |||
| used for security-related operations. | be used for security-related operations. | |||
| A.7. Channel Hopping | A.7. Channel Hopping | |||
| For each scheduled cell, the schedule specifies a slotOffset and a | For each scheduled cell, the schedule specifies a slotOffset and a | |||
| channelOffset. In a well-built schedule, when mote A has a transmit | channelOffset. In a well-built schedule, when mote A has a transmit | |||
| cell to mote B on channelOffset 5, mote B has a receive cell from | cell to mote B on channelOffset 5, mote B has a receive cell from | |||
| mote A on the same channelOffset. The channelOffset is translated by | mote A on the same channelOffset. The channelOffset is translated by | |||
| both nodes into a frequency using the following function: | both nodes into a frequency using the following function: | |||
| frequency = F {(ASN + channelOffset) mod nFreq} | frequency = F {(ASN + channelOffset) mod nFreq} | |||
| skipping to change at page 17, line 51 ¶ | skipping to change at page 18, line 28 ¶ | |||
| channelOffset values as there are frequencies available (e.g. 16 when | channelOffset values as there are frequencies available (e.g. 16 when | |||
| using IEEE802.15.4-compliant radios at 2.4GHz, when all channels are | using IEEE802.15.4-compliant radios at 2.4GHz, when all channels are | |||
| used). Since both motes have the same channelOffset written in their | used). Since both motes have the same channelOffset written in their | |||
| schedule for that scheduled cell, and the same ASN counter, they | schedule for that scheduled cell, and the same ASN counter, they | |||
| compute the same frequency. At the next iteration (cycle) of the | compute the same frequency. At the next iteration (cycle) of the | |||
| slotframe, however, while the channelOffset is the same, the ASN has | slotframe, however, while the channelOffset is the same, the ASN has | |||
| changed, resulting in the computation of a different frequency. | changed, resulting in the computation of a different frequency. | |||
| This results in "channel hopping": even with a static schedule, pairs | This results in "channel hopping": even with a static schedule, pairs | |||
| of neighbors "hop" between the different frequencies when | of neighbors "hop" between the different frequencies when | |||
| communicating. Channel hopping is a technique known to efficiently | communicating. A way of ensuring communication happens on all | |||
| combat multi-path fading and external interference. | available frequencies is to set the number of timeslots in a | |||
| slotframe to a prime number. Channel hopping is a technique known to | ||||
| efficiently combat multi-path fading and external interference. | ||||
| A.8. Time Synchronization | A.8. Time Synchronization | |||
| Because of the slotted nature of communication in a TSCH network, | Because of the slotted nature of communication in a TSCH network, | |||
| motes have to maintain tight synchronization. All motes are assumed | motes have to maintain tight synchronization. All motes are assumed | |||
| to be equipped with clocks to keep track of time. Yet, because | to be equipped with clocks to keep track of time. Yet, because | |||
| clocks in different motes drift with respect to one another, neighbor | clocks in different motes drift with respect to one another, neighbor | |||
| motes need to periodically re-synchronize. | motes need to periodically re-synchronize. | |||
| Each mote needs to periodically synchronize its network clock to | Each mote needs to periodically synchronize its network clock to | |||
| another mote, and it also provides its network time to its neighbors. | another mote, and it also provides its network time to its neighbors. | |||
| It is up to the entity that manages the schedule to assign an | It is up to the entity that manages the schedule to assign an | |||
| adequate time source neighbor to each mote, i.e., to indicate in the | adequate time source neighbor to each mote, i.e., to indicate in the | |||
| schedule which of neighbor is its "time source neighbor". While | schedule which of neighbor is its "time source neighbor". While | |||
| setting the time source neighbor, it is important to avoid | setting the time source neighbor, it is important to avoid | |||
| synchronization loops, which could result in the formation of | synchronization loops, which could result in the formation of | |||
| independent clusters of motes. | independent clusters of synchronized motes. | |||
| TSCH adds timing information in all packets that are exchanged (both | TSCH adds timing information in all packets that are exchanged (both | |||
| data and ACK frames). This means that neighbor motes can | data and ACK frames). This means that neighbor motes can | |||
| resynchronize to one another whenever they exchange data. In detail, | resynchronize to one another whenever they exchange data. In detail, | |||
| in the IEEE 802.15.4e standard two methods are defined for allowing a | two methods are defined in IEEE802.15.4e-2012 for allowing a device | |||
| device to synchronize in a TSCH network: (i) Acknowledgement-Based | to synchronize in a TSCH network: (i) Acknowledgment-Based and (ii) | |||
| and (ii) Frame-Based synchronization. In both cases, the receiver | Frame-Based synchronization. In both cases, the receiver calculates | |||
| calculates the difference in time between the expected time of frame | the difference in time between the expected time of frame arrival and | |||
| arrival and its actual arrival. In Acknowledgement-Based | its actual arrival. In Acknowledgment-Based synchronization, the | |||
| synchronization, the receiver provides such information to the sender | receiver provides such information to the sender mote in its | |||
| mote in its acknowledgement. Thus, in this case, it is the sender | acknowledgment. In this case, it is the sender mote that | |||
| mote that synchronizes to the clock of the receiver. In Frame-Based | synchronizes to the clock of the receiver. In Frame-Based | |||
| synchronization, the receiver uses the computed delta for adjusting | synchronization, the receiver uses the computed delta for adjusting | |||
| its own clock. Therefore, it is the receiver mote that synchronizes | its own clock. In this case, it is the receiver mote that | |||
| to the clock of the sender. | synchronizes to the clock of the sender. | |||
| Different synchronization policies are possible. Motes can keep | Different synchronization policies are possible. Motes can keep | |||
| synchronization exclusively by exchanging EBs. Motes can also keep | synchronization exclusively by exchanging EBs. Motes can also keep | |||
| synchronized by periodically sending valid frames to a time source | synchronized by periodically sending valid frames to a time source | |||
| neighbor and use the acknowledgement to resynchronize. Both method | neighbor and use the acknowledgment to resynchronize. Both method | |||
| (or a combination thereof) are valid synchronization policies; which | (or a combination thereof) are valid synchronization policies; which | |||
| one to use depends on network requirements. | one to use depends on network requirements. | |||
| A.9. Power Consumption | A.9. Power Consumption | |||
| There are only a handful of activities a mote can perform during a | There are only a handful of activities a mote can perform during a | |||
| timeslot: transmit, receive, or sleep. Each of these operations has | timeslot: transmit, receive, or sleep. Each of these operations has | |||
| some energy cost associated to them, the exact value depending on the | some energy cost associated to them, the exact value depends on the | |||
| the hardware used. Given the schedule of a mote, it is | the hardware used. Given the schedule of a mote, it is | |||
| straightforward to calculate the expected average power consumption | straightforward to calculate the expected average power consumption | |||
| of that mote. | of that mote. | |||
| A.10. Network TSCH Schedule | A.10. Network TSCH Schedule | |||
| The schedule defines entirely the synchronization and communication | The schedule entirely defines the synchronization and communication | |||
| between motes. By adding/removing cells between neighbors, one can | between motes. By adding/removing cells between neighbors, one can | |||
| adapt a schedule to the needs of the application. Intuitive examples | adapt a schedule to the needs of the application. Intuitive examples | |||
| are: | are: | |||
| o Make the schedule "sparse" for applications where motes need to | o Make the schedule "sparse" for applications where motes need to | |||
| consume as little energy as possible, at the price of reduced | consume as little energy as possible, at the price of reduced | |||
| bandwidth. | bandwidth. | |||
| o Make the schedule "dense" for applications where motes generate a | o Make the schedule "dense" for applications where motes generate a | |||
| lot of data, at the price of increased power consumption. | lot of data, at the price of increased power consumption. | |||
| o Add more cells along a multi-hop route over which many packets | o Add more cells along a multi-hop route over which many packets | |||
| flow. | flow. | |||
| A.11. Join Process | A.11. Join Process | |||
| Motes already part of the network can periodically send Enhanced | Motes already part of the network can periodically send Enhanced | |||
| Beacon (EB) frames to announce the presence the network. These | Beacon (EB) frames to announce the presence of the network. These | |||
| contain information about the size of the timeslot used in the | contain information about the size of the timeslot used in the | |||
| network, the current ASN, information about the slotframes and | network, the current ASN, information about the slotframes and | |||
| timeslots the beaconing mote is listening on, and a 1-byte join | timeslots the beaconing mote is listening on, and a 1-byte join | |||
| priority. Because of the channel hopping nature of TSCH, these EB | priority. Even if a node is configured to send all EB frames on the | |||
| same channel offset, because of the channel hopping nature of TSCH | ||||
| described in Appendix A.7, this channel offset translates into a | ||||
| different frequency at different slotframe cycles. As a result, EB | ||||
| frames are sent on all frequencies. | frames are sent on all frequencies. | |||
| A mote wishing to join the network listens for EBs. Using the ASN | A mote wishing to join the network listens for EBs. Since EBs are | |||
| and the other timing information of the EB, the new mote synchronizes | sent on all frequencies, the joining node can listen on any frequency | |||
| to the network. Using the slotframe and link information from the | until it hears an EB. What frequency it listens on, and whether it | |||
| EB, it knows how to contact the network. | slowly changes frequency during this joining period is | |||
| implementation-specific. Using the ASN and the other timing | ||||
| information of the EB, the new mote synchronizes to the network. | ||||
| Using the slotframe and cell information from the EB, it knows how to | ||||
| contact other nodes in the network. | ||||
| The IEEE802.15.4e TSCH standard does not define the steps beyond this | The IEEE802.15.4e TSCH standard does not define the steps beyond this | |||
| network "bootstrap". | network "bootstrap". | |||
| A.12. Information Elements | A.12. Information Elements | |||
| TSCH introduces the concept of Information Elements (IEs). An | TSCH introduces the concept of Information Elements (IEs). An | |||
| information element is a list of Type-Length-Value containers placed | information element is a list of Type-Length-Value containers placed | |||
| at the end of the MAC header. A small number of types are defined | at the end of the MAC header. A small number of types are defined | |||
| for TSCH (e.g., the ASN in the EB is contained in an IE), and an | for TSCH (e.g., the ASN in the EB is contained in an IE), and an | |||
| skipping to change at page 20, line 25 ¶ | skipping to change at page 21, line 14 ¶ | |||
| Appendix B. TSCH Gotchas | Appendix B. TSCH Gotchas | |||
| This section lists features of TSCH which we believe are important | This section lists features of TSCH which we believe are important | |||
| and beneficial to the work of 6TiSCH. | and beneficial to the work of 6TiSCH. | |||
| B.1. Collision Free Communication | B.1. Collision Free Communication | |||
| TSCH allows one to design a schedule which yields collision-free | TSCH allows one to design a schedule which yields collision-free | |||
| communication. This is done by building the schedule with dedicated | communication. This is done by building the schedule with dedicated | |||
| cells in such a way that at most one node can communicate with a | cells in such a way that at most one node communicates with a | |||
| specific neighbor in each slotOffset/channelOffset cell. Multiple | specific neighbor in each slotOffset/channelOffset cell. Multiple | |||
| pairs of neighbor motes can exchange data at the same time, but on | pairs of neighbor motes can exchange data at the same time, but on | |||
| different frequencies. | different frequencies. | |||
| B.2. Multi-Channel vs. Channel Hopping | B.2. Multi-Channel vs. Channel Hopping | |||
| A TSCH schedule looks like a matrix of width "slotframe size", S, and | A TSCH schedule looks like a matrix of width "slotframe size", S, and | |||
| of height "number of frequencies", nFreq. For a scheduling | of height "number of frequencies", nFreq. For a scheduling | |||
| algorithm, these can be considered atomic "units" to schedule. In | algorithm, these can be considered atomic "units" to schedule. In | |||
| particular, because of the channel hopping nature of TSCH, the | particular, because of the channel hopping nature of TSCH, the | |||
| skipping to change at page 21, line 24 ¶ | skipping to change at page 22, line 12 ¶ | |||
| each frequency. If a transmission from mote A to mote B fails, | each frequency. If a transmission from mote A to mote B fails, | |||
| retransmitting on a different frequency has a higher likelihood of | retransmitting on a different frequency has a higher likelihood of | |||
| succeeding that retransmitting on the same frequency. As a result, | succeeding that retransmitting on the same frequency. As a result, | |||
| even when some frequencies are "behaving bad", channel hopping | even when some frequencies are "behaving bad", channel hopping | |||
| "smoothens" the contribution of each frequency, resulting in more | "smoothens" the contribution of each frequency, resulting in more | |||
| stable links, and therefore a more stable topology. | stable links, and therefore a more stable topology. | |||
| B.5. Multiple Concurrent Slotframes | B.5. Multiple Concurrent Slotframes | |||
| The TSCH standard allows for multiple slotframes to coexist in a | The TSCH standard allows for multiple slotframes to coexist in a | |||
| mote's schedule. It is possible that at some timeslot, a mote has | mote's schedule. It is possible that, at some timeslot, a mote has | |||
| multiple activities scheduled (e.g. transmit to mote B on slotframe | multiple activities scheduled (e.g. transmit to mote B on slotframe | |||
| 2, receive from mote C on slotframe 1). To handle this situation, | 2, receive from mote C on slotframe 1). To handle this situation, | |||
| the TSCH standard defines the following precedence rules: | the TSCH standard defines the following precedence rules: | |||
| 1. Transmissions take precedence over receptions; | 1. Transmissions take precedence over receptions; | |||
| 2. Lower slotframe identifiers take precedence over higher slotframe | 2. Lower slotframe identifiers take precedence over higher slotframe | |||
| identifiers. | identifiers. | |||
| In the example above, the mote would transmit to mote B on slotframe | In the example above, the mote would transmit to mote B on slotframe | |||
| End of changes. 99 change blocks. | ||||
| 231 lines changed or deleted | 264 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||