# Time Slotted Channel Hopping and ContikiMAC for IPv6 Multicast-Enabled Wireless Sensor Networks
## 3 Background
### TSCH and the Orchestra Scheduler  
TSCH [2] structures the MAC sublayer in a superframe. The superframe has two dimensions: time and frequency. The time is split in timeslots, and the available frequency band is split in channels. Slotframes are composed of timeslots and repeat over time, as illustrated in Figure 3. Each traffic layer has its own slotframe, and these slotframes have different priorities at runtime. The TSCH control traffic has the highest priority, followed by RPL control traffic. Application traffic has the lowest priority. The personal area network (PAN) coordinator is responsible with time synchronization. Through the received packets from parents and the PAN coordinator, every node in the network adjusts its clock. A timeslot is long enough to accommodate the transmission of a frame, as well as the reception of its acknowledgement. This means that the length of a timeslot depends on the physical layer parameters in the network. Two coordinates define a timeslot from a slotframe, the time offset, and the channel offset. The time offset shows when the timeslot starts in a slotframe, and the channel offset determines the frequency channel in which the communication occurs. Through judicious cell assignment and channel hopping, TSCH is a reliable approach for low power networking. Cell assignment should be done in such a way to accommodate  
Figure 3: Example of TSCH slots grouped into repeating slotframes by Orchestra. the predictable and/or event-driven data streams while avoiding collisions as much as possible. Power and throughput-efficient scheduling is challenging in highly dynamic networks. It is indeed less efficient when communication needs are not recurrent and cannot be predicted. A scheduler dictates a node whether to transmit, receive, or sleep within each timeslot. There are two main approaches for scheduling: centralized and decentralized. In the first approach, a central entity periodically collects data (like link quality and application needs), computes a schedule and disseminates it back to the rest of the nodes. When every node locally computes its own requirements in terms of scheduling, exchanges information with neighbors, and negotiates specific slots, the scheduler is decentralized. Orchestra introduces autonomous scheduling. In this case, every node locally computes its schedule without exchanging information with neighbors since other protocols, e.g., RPL, collects the needed information beforehand. The Orchestra scheduler can be used in Contiki to build the schedule that dictates what a node should do during each timeslot. The rules that govern this schedule are expressed in terms of TSCH storframes and slots with specific properties [15]. There are four types of active slots in Orchestra: rendezvous or common-shared (CS), receiver-based shared (RBS), sender-based shared (SBS), and sender-based dedicated (SBD) slots [15]. When using CS slots, a single slot common to all the nodes in the network is allocated. All the nodes use the same slot to transmit or listen. This slot is going to repeat at every slotframe for the whole lifetime of the network. RBS slots are used to communicate between two neighbors. Every node has its own receive slot (only one) allocated, and all the nodes that want to communicate are going to maintain a transmit slot for every neighbor they want to communicate with. This approach can lead to contention when two or more nodes send packets to the same destination. When using SBS slots, instead of having one receive slot at every node, there is a transmit slot for every node and nodes are going to listen to every neighbor they want to receive from. Using SBD slots can lead to contention-free communication by setting a slotframe long enough to accommodate a unique transmit slot for every node. Using SBS or SBD slots is more expensive, resource-wise, because a node must maintain a listen slot for each neighbor it wants to receive from, which means the node wakes up and listens more often [16].