# Novel Extensions to Enhance Scalability and Reliability of the IEEE 802.15.4-DSME Protocol
## 4 Mirror D-DSME Extension  
The standard DSME protocol provides two mechanisms that can be used for acknowledgement and retransmissions. In the first mechanism a message is acknowledged in the same GTS, right after the message transmission. The second mechanism is based on the Group ACK option. When the Group ACK option is enabled, two GTSs, namely GACK1 and GACK2, are used to send ACKs. To take advantage of the Group ACK, it is important to assign two GTSs per each flow within a multi-superframe, i.e., one GTS before GACK1 and another GTS between GACK1 and GACK2. This way, the first GTS is used for the frame transmission. If the transmitted frame is not correctly received, i.e., the ACK of that frame is not received in the GACK1 slot, the second allocated GTS,namely GTSR (i.e., GTS for Retransmission), will be used for the frame retransmission. The outcome of the retransmission will be checked during the GACK2 slot. Consequently, the Group ACK option supports retransmissions using GTSs dedicated to this scope, but this increases the number of GTSs required by a flow within the multi-superframe. If no Ack is received, the source node must retransmit the message. Retransmission is performed using another dedicated GTS, but this increases the number of GTSs required by a flow within the multi-superframe. In industrial applications, the messages are typically generated with different periods, so it may happen than for some flow \(P_{f}>T_{MSF}\) and, therefore, some of the GTSs assigned to the flow within the multi-superframe cannot be used for transmission. The Mirror D-DSME extension introduces _miGTS (Mirror GTS)_, which exploits these unused GTSs for multiple retransmissions of the same message. For instance, in the scenario shown in Figure 3 each multi-superframe is made up of one superframe (i.e., \(T_{MSF}=T_{SF}\)). In the CFP, 7 flows \([1\dots 7]\) are transmitted, with period \(P_{f}=4T_{SF}=4T_{MSF}\). As \(P_{f}>T_{MSF}\), the GTS assigned to a flow \(f\) is used for the transmission only one multi-superframe over four. As a consequence, the GTS can be labelled as _miGTS_. This way, the three unused occurrences of the GTS are used for message retransmission. The _miGTS_ allocation procedure performed by the source node is the same as the standard DSME-GTS allocation one described in Section 3.1. The messages transmitted through _miGTSs_ are _unconfirmed_. No Ack reception is supported, so the source node transmits all the configured replicas of the message, thus leaving to the destination node the task of discarding any received duplicate. This means that _miGTS_ can reduce the packet loss rate (thus improving reliability), but it cannot guarantee that no message is lost. However, this is an acceptable limitation in industrial applications, as the newest value acquired from a sensor is typically more important than a previous value delivered late. In typical Industrial WSN applications the network nodes are mains-powered devices; however, in recent industrial applications battery-powered nodes can also be found. In this case, using the Mirror D-DSME extension, multiple retransmissions entail an increase in the energy consumption of the transmitting nodes that is directly proportional to the number of retransmissions allowed for each node, i.e., deltaEnergy = MsgTxEnergy x NumOfRetransmissions. Conversely, it is possible to configure the receiving nodes so that they switch to the sleep mode following the correct reception of a message. Hence, a trade-off between the number of allowed retransmissions (i.e., the reliability) and the energy consumption has to be found. As both these parameters are strictly related to the application requirements and the adopted hardware [30], they have to be tuned during the network design phase. The _miGTSs_ increase the reliability without requiring the allocation of additional GTSs, thus _miGTSs_ are useful in networks with nodes that require reliable transmissions.