## 2 Mechanisms Specific to QoS and Multicast in Ad Hoc Networks
### Mechanisms for Resource Estimation
#### 2.5.2.1 Direct Estimation  
The bandwidth estimation in contention-based MAC ad hoc networks must incorporate four factors: available resource estimation, transmission resources consumed by transmitting a flow along a chain of nodes, interference between different branches in the multicast tree/mesh, and interference between different flows. The bandwidth consumed by a requesting flow at a relaying node is different from the requested minimum bandwidth of the flow, since the relaying will block neighboring nodes from transmitting. Define \(r\) as the flow rate measured in Bytes per sec. A relaying node will therefore occupy \(h*r\), where \(h\) is a function of topology and radio. In unicast, \(h\) will typically be between 2 and 7, depending on topology and the ratio between sensing and transmission range [54]. In multicast, the branching at a relaying node may increase the factor even further. In a simplistic case, where the transmission range equals the sensing range, the total capacity consumed at the forwarding node for \(k\) branches would be \((2+k)*r\). A receiving node connecting to an existing relay node does not consume resources. This illustrates that estimation of bandwidth consumed must be different for a source node, a relaying node, and a receiver that is not relaying. So far, the examples have been formulated as interferences along a path from packets in the same flow. However, transmission of neighboring nodes will affect the available capacity of a node. [PERSON] [17] classified the interference into two groups, interferences from different branches of the same multicast tree/mesh (the hidden multicast route problem) and interference from unicast of another multicast traffic (the hidden route problem). The available bandwidth needs to be estimated. Three different methods can be identified: information exchange between the nodes, listening on the MAC layer, and summation of rates. The latter neglects any of the effects discussed in the previous paragraphs, and it is therefore not suited for contention based MAC layers. In addition, 12 protocols do not estimate resource. They assume that the information about resource is available from lower layers. The different methods can be summarized by:  
* Bandwidth usage exchanging--In this technique, the information for the metric is gathered by exchanging information of current bandwidth usage of existing session to its neighbor nodes. Protocols in [29, 17, 18] belong to this category. In AQM [29], each node sends its current bandwidth usage to its one-hop neighbors. It calculates its available bandwidth based on information received from its one-hop neighbors. The maximum bandwidth capacity of the node is acquired by the MAC layer. The residual bandwidth of the node is computed by subtracting the bandwidth usage of the node and all its neighbors from the maximum bandwidth. Hu [17] also uses this technique to compute available bandwidth. Each node in QMRP [18] collects bandwidth usage information of its one-hop neighbors and two-hop neighbors by periodically broadcast hello messages. A hello message contains bandwidth usage of the sender and of its one-hop neighbors. When a node receives a hello message, it knows its first and second neighbors and their bandwidth usages. Then the residual bandwidth is computed as the difference between raw channel bandwidth and total bandwidth usage (accumulation of bandwidth usage of the node and its first and second neighbors) divided by a weight factor. * Medium listening--In this method, a node estimates the available bandwidth by observing the traffic coming in and going out of a node. Each node listens to the channel to determine the channel status (idle or busy) and compute the idle duration for a period of time. In [16, 37], the available bandwidth is computed as \(T_{i}/t*BW\), where \(T_{i}\) is the total idle time, \(t\) is observation time, and \(BW\) is the raw channel bandwidth. However, the above estimation techniques are imprecise because they do not account for packet overhead and coding rates.