In provisioning QoS for real-time traffic, the proposed scheme aims at meeting the QoS demands for upward traffic which usually suffers from congestion close to the gateway node due to funneling effect [15]. The proposed scheme works in two phases. In the first phase, guaranteed TDMA slots are statistically allocated to all the nodes of the network. It regulates various links’ transmission by introducing an operational constraint called restricted simultaneous operation (R-SynOp). In the second phase, transmission opportunities for QoS-bound traffic are enhanced through sharing of the unused bandwidth dynamically among the needy nodes. In this section, we have discussed the assumptions, structure of the TDMA frames, and the design of proposed scheme in details.
Protocol assumptions
In multi-hop configuration, wireless nodes are equipped with multiple radios co-located on the same tower. We consider a tree topology in our model which can easily be formed either by constructing it physically or by logically converting the mesh/graph topology. Figure 1 depicts a typical tree topology using which various important concepts involved in the proposed scheme is explained. Most of the existing MAC protocols for such networks use a token-based mechanism to establish a loose synchronization in a part of the network without any concern over the entire network synchronization [3,4,6,12]. The proposed scheme assumes tight node synchronization in the network. Nodes at the same level of the tree topology do not interfere with each other as it uses point-to-point directional links. Hence, we do not consider any horizontal interference which exists in networks using omni-directional antennas as mentioned in [7].
In WiLD networks, a node equipped with multiple radios can use separate non-overlapping channels on different links. However, in the line of the schemes proposed in [3,4,6], we consider the use of a single channel in our design. Each node employs a separate radio for all of its point-to-point links. All the co-located radios in a node can perform simultaneous synchronous transmit (SynTx) or simultaneous synchronous receive (SynRx) operation at the same time but mix of both is not achievable. This mode of operation is termed as synchronous operation (SynOp) [3]. This combination of hop-by-hop communications and data forwarding to root node creates a choke point on the free flow of traffic particularly in the nodes nearer to the root. The funneling effect [9] of traffic leads to increased transit traffic intensity and delay as events move closer towards the root node, resulting in significant packet collision, congestion, and loss leading to collapse of the network. Funneling effect is explained in Figure 1. For upward traffic, allowing all the children nodes to transmit simultaneously by performing SynOp may introduce congestion in the ancestral links which in turn will degrade the network performance. To overcome such a situation, the sibling nodes should not be allowed to perform SynTx simultaneously in forwarding traffic towards their parent. In the proposed scheme, an enhanced version of SynOp termed as Restricted-SynOp (R-SynOp) has been introduced which restricts the simultaneous sibling node transmission in the upward direction, i.e., children to parent node. Thereby, it prevents the parent node from being congested. However, the use of restricted SynOp in the first-level nodes is an exception as the root node is assumed to be connected with very high bandwidth link. The concept of R-SynOp is demonstrated in Figure 1. Use of R-SynOp does not impact the overall network performance and hence allows smooth flow of traffic.
Frame structure
In this scheme, a TDMA frame is broadly divided into two parts: synchronization interval and service interval. Figure 2 describes the format of a superframe indicating the distinct elements of it.
3.2.1 Synchronization interval
The synchronization interval comprises of control and contention slots which are used to synchronize the nodes in the network. The control slots are used to transmit control information such as TDMA frame and bandwidth grant. The number of control slots required to disseminate control information to all the nodes in a network is equal to the depth of the topology tree. Contention slots are used only by the non-root nodes (i.e., relay and leaf nodes) for the purpose of sending node join requests and bandwidth demands.
3.2.2 Service interval
Service interval is the time elapsed between two consecutive synchronization intervals during which data transmissions are scheduled. The service interval is equi-partitioned into unit slots which are necessarily even in numbers. Since transmissions of all the nodes of a network can be scheduled within two slots, say T
i
and T
j
where i≠j, we have merged two consecutive unit slots to form a time cycle, T
cycle. Hence, the service interval can be visualized as a collection of time cycles.
The protocol
Let a multi-hop WiLD network be represented as a tree T=(V,E) where, V is the set of nodes and E is the set of links in the network. Let n∈V be any arbitrary node. Adj [n] and Child [n] represent the number of adjacent links and the number of children nodes of the node n, respectively. The protocol distinguishes three different types of nodes in the network and entrusts different responsibilities to them. The different categories of nodes are: i) root node, ii) relay node, and iii) leaf node.
The root node, R, is a special node which satisfies the condition Adj [R]=Child[R] and acts as the central coordinator of the network. It carries out the task of constructing TDMA superframe, generating control packets, disseminating TDMA frames, multi-hop node synchronization, and static slot allocation process. Relay node receives control packets, processes, and forwards them to their children nodes. In addition, it forwards node join request to its parent and initially carries out the static slot allocation process for its 1-hop children nodes too. These nodes perform dynamic slot assignment on receipt of the traffic demands from their children nodes. A leaf node does not have any children and always has exactly one adjacent link. Leaf nodes are the end-points of the network which carry out the task of receiving control packets, generating node join request, and sending bandwidth demands to their parent nodes.
In the proposed scheme, we logically divide a multi-hop WiLD network into 1-hop clusters as shown in Figure 3. All the clusters exhibit a parent-child relationship and have identical behavior except at the cluster containing the first-level nodes. The kth cluster in level l consists of \({r^{l}_{k}}\) number of nodes in such a way that \(({r^{l}_{k}}-1)\) nodes are 1-hop children of a given parent node. Let us assume that at a given level l in the network, there are m number of clusters. The parent node in the kth cluster of level l is represented as \(n^{l}_{p_{k}}\) and the ith children in that cluster is represented as \(n^{l}_{i_{k}}\) such that \(0<i<{r^{l}_{k}}\).
The initial slot allocation and dynamic QoS-aware slot scheduling phases of the proposed scheme are explained below.
3.3.1 Initial static slot allocation
During the network initialization, a static slot allocation process is carried out. The basic task behind this slot allocation process is to equally distribute the time slots of a parent node among its children nodes of a given cluster. If the parent node, \(n^{l}_{p_{k}}\), of a cluster has a transmission slot T
i
in a given time cycle, T
cyclewhere i ∈{0,1}, the other slot in the T
cycle, i.e., T
j
, where j ∈{0,1} and T
i
≠T
j
, can be occupied by any other children node of that cluster. If T
j
is allocated to node \(n^{l}_{i_{k}}\), no other sibling nodes of \(n^{l}_{i_{k}}\) shall be assigned the same time slot for transmission to their parent node, \(n^{l}_{p_{k}}\).
The root node which acts as the central coordinator starts the slot allocation process. With the assumption that the root node has greater transmission capabilities in forwarding traffic outside the network, the root node shares the T
cycles equally between itself and all of its 1-hop children nodes. Therefore, if the total number of slots in a TDMA superframe is γ, the slot share of each 1-hop children can be given by
$$ \gamma_{n^{1}_{i_{k}}} = \frac{\gamma}{2} $$
Here, \(\gamma _{n^{1}_{i_{k}}}\) represents the bandwidth share of ith node belonging to kth cluster of level-1.
Now, as all the 1-hop children of the root node get the slot share equal to their parent, they can further share half of their allocated slots among their children. The slots allocated to a node need is shared equally among its children nodes. Therefore, the bandwidth share received by the ith children in kth cluster of level l denoted as \(\gamma _{n^{l}_{i_{k}}}\) can be given by
$$ \gamma_{n^{l}_{i_{k}}} = \frac{\gamma_{n^{l}_{p_{k}}}}{{r^{l}_{k}}} $$
This static slot allocation process is carried out subsequently by all the nodes which has at least one children node. The initial slot allocation process is illustrated in Algorithm 1. The algorithm first checks whether a node is root or non-root and then it starts allocating slots. The root node allocates every next slot in a frame to itself and the remaining to all its children nodes, thus sharing equal bandwidth between itself and its 1-hop children nodes. In the case of a non-root node, every alternate slot is allocated to one of the children nodes in a round-robin fashion. This algorithm ensures that no two nodes at 1-hop distance get the same slot for transmission which would otherwise have resulted in 1-hop vertical interference.
3.3.2 Dynamic slot scheduling
The proposed protocol introduces a dynamic slot allocation scheme based on bandwidth demands of the children nodes. Bandwidth demands of children nodes are placed to parent node through sending traffic indication map (TIM). After receiving the TIMs from its children, a parent node tries to allocate time slots according to their demands. If a parent node is not able to allocate the required number of slots to its children nodes, it prepares a TIM specifying the requirement and sends to its immediate parent node. This protocol classifies the demands of the children nodes into two broad categories - QoS demand (Q-demand) and additional demand (A-demand). The Q-demand indicates the total bandwidth demand for the delay and bandwidth sensitive real-time traffic such as VoIP and videoconferencing whereas A-demand indicates the requirement of non-real-time (best-effort) traffic. Both the demands are specified in terms of number of slots. The TIMs are sent in the last slot allocated to the node for transmission either through special packets or by piggybacking in data packets. In the absence of slots for transmission, the TIMs are sent in contention slot allocated to a node.
On receipt of TIMs from all the children, a parent node starts the dynamic slot rescheduling process and tries to fulfill the bandwidth demands while preparing transmission schedule for its children. The rescheduling process prioritizes Q-demands over A-demands. Therefore, a parent node first schedules the Q-demands of all of its children and then tries to schedule the A-demands. After generating the schedule, the parent node sends it to all of its children nodes. The scheduling process is highly localized where a parent prepares transmission schedules for its 1-hop children and distributes it without burdening or influencing other nodes with the exception in certain situations.
Consider cluster k belonging to level l. Let the slot allocated to parent of the cluster, \(n^{l}_{p_{k}}\), be \(\gamma _{n^{l}_{p_{k}}}\) and the demand from ith children of the cluster be \(\beta _{n^{l}_{i_{k}}}\). Then, the slots allocated to a children node, \(n^{l}_{i_{k}}\), can be calculated by using Equation (1).
$$ \gamma_{n^{l}_{i_{k}}}=\text{min}\left(\beta{n^{l}_{i_{k}}}, \gamma_{n^{l}_{p_{k}}}\times\frac{\beta_{n^{l}_{i_{k}}}}{\sum_{j=0}^{{r^{l}_{k}}}{\beta_{n^{l}_{i_{k}}}}}\right) $$
((1))
In situations when the Q-demands of all the children of a node is less than the allocated bandwidth, it releases the additional bandwidth to its parent in order to enable the use of those unused slots by other nodes. In such cases, a maximum of 80% of the total available bandwidth are released. The remaining 20% are reserved for future communication by the node. This phenomenon is termed as bandwidth release. On the other hand, when the total demand of all its children exceeds the allocated bandwidth, the available bandwidth is shared among its children based on their demands and the additional bandwidth request which could not be served are sent to its parent. The process of requesting additional TDMA slots is similar to that of a children placing traffic demands to its parent. Dynamic slot scheduling process is eventually started by the leaf nodes and continues till 1-hop children of the root in a hierarchical fashion.
Algorithm 2 presents the working of the dynamic slot allocation process. The cluster head of cluster k, n
k
is distributing a total number of \(\gamma _{n_{k}}\) slots of a TDMA frame, T
fr among its children. The algorithm first checks in which frame the node has a slot allocated to it and proceeds with allocating the other slot to any one of its children. The bandwidth \(\gamma _{n_{k}}\) is divided between Q-demand and A-demand traffic in the ratio 80:20. The time slots allocated for Q-demand and A-demand traffic are represented by \(\gamma _{n_{k}}^{Q}\) and \(\gamma _{n_{k}}^{A}\), respectively. After receiving the Q-demand (α
i
) and A-demand (β
i
) from all of its n children nodes, Child [0..(n−1)], the parent node computes the cumulative Q-demand, α
c, and A-demand, β
c. Out of the available slots in \(\gamma _{n_{k}}^{Q}\), it serves the Q-demands of all of its children nodes first. After serving the Q-demands, the A-demands of all the children nodes are served from the 20% bandwidth earmarked for A-demand, \(\gamma _{n_{k}}^{A}\). Any slots remaining unused after slot allocation for Q-demands are also allocated to A-demands.
The RESOURCE_RELEASE procedure releases the excess time slots to its parent for use by the higher level clusters. If the Q-demands of the children nodes cannot be met, the cumulative slot demand (α
c+β
c) is placed to its immediate parent node for additional slot allocation. This process is carried out by RESOURCE_REQUEST procedure. A parent node allocates Q-share of the children nodes in round-robin fashion. Therefore, the unused slots of a children node are automatically shared among the other needy nodes. Sending additional slot demand to the parent and allocating unused slots in round-robin fashion implicitly serves the purpose of resource request and resource grant.