Interference-Aware Fair Rate Control in Wireless Sensor Networks by Sumit Rangwala, Ramakrishna Gummadi, Ramesh Govindan and Konstantinos Psounis in ACM SIGCOMM 2006
What is the paper about ? • In a sensor network, multiple sensors try to send data to a base station or sink -- this could result in congestion en route. • No end-to-end mechanism to enforce congestion control. • Congestion control method needs to be lightweight, fair and efficient. • Towards this, the authors propose IFRC -- which stands for Interference-Aware Fair Rate control • IFRC controls source sending rates so as to provide fair share of the bandwidth to the sources while ensuring high efficiency.
Contributions • Design of the new congestion control method IFRC -- exploits the tree like structure that is constructed in sensor networks. • Provide some analysis of what are the right parameters to use with IFRC for ensuring stability and fast convergence • Implement IFRC in a real sensor network and conduct a thorough performance evaluation.
Roadmap • Why IFRC ? • Related Work in Brief • IFRC Design • Parameter selection in IFRC • Some details on the experimentation and results.
Problem Statement -- why IFRC? • Ensure that each sending source gets a fair share of the bandwidth -- data from all parts of the sensor network received by the base-station; at the same time, maintain efficiency. • Seek to achieve max-min fairness -- the minimum rate with which a source can send is maximized. • Assign to each flow at least the most congested fair share. • At the same time, allow flows that pass through less restrictive contention regions to send at higher rates. • Improves overall efficiency. • Note that the above tasks require interference-awareness.
An Example • Consider Link <16 -- 14>. • Links that interfere with this link are: • < 20 -- 16>, <21--16>, <14 --12>, <17 -- 14> since they are directly incident. • <13-11>, <12-10> since they interfere • This implies any flow that goes through any of these links shares capacity with 16. • This includes flows originating from 16, 20, 21, 14, 13, 17, 12, 15, 18, 19. • These form the set of interferers. • Thus, if Node 16 was the congested node, all of these originators should not generate packets at a rate higher than that of 16. • Notice that Node 11 is “not” a potential interferer. So it can generate packets at a higher rate.
Impact of MAC and routing • Routing affects tree construction. • Thus, quality of tree is determined by this -- although IFRC can work on any routing protocol. • A link state scheme can provide the construction of a tree with more reliable links and this is what the authors use. • MAC layer reliability is assumed when performing the higher layer rate control. • Authors use retransmissions at the MAC layer to ensure reliability. • With a limited number of retransmissions, their experiments show that packets are reliably transported.
Related Work • Distributed RED -- by Gerla et al. -- each node computes the drop probability based on queue states of all nodes contending for channel • Backpressure -- upon congestion, stall packets that are trying to get through -- eventually packets are stalled at the source -- CODA (Campbell et al) and Fusion (Hari Balakrishnan). • ESRT (Akyldiz) -- closed loop control. Depending on the sensor readings received, base-station could either ask the sources to either increase or decrease rates. • Other work -- read paper.
Some definitions • Fi - set of flows routed through node i • includes flow generated by node i -- fi • Assume that nodes have a nominal rate -- B • Fi -- union of Fi and all sets Fj, where j is either a neighbor of i or a neighbor of i’s parent.
IFRC Design • Three components • Congestion Detection • Signaling • Rate adaptation
Measuring Congestion Levels • Queue state indicative of congestion • If MAC layer congestion exists (contention), this results in increased queue sizes. • At each node, IFRC maintains a queue and computes the weighted moving avg. of queue length -- this is the measure of congestion. • avgq = (1- wq) avgq + wq instq • If average queue size > U, queue is congested. • Then multiplicative decrease is invoked -- node halves its current rate ri. • It then increases this additively. • Node however, remains in a congested state until average queue size falls below a lower threshold L.
Congestion Thresholds • In practice a single threshold may be too coarse. • Halving ri may still leave the node in a congested state. • Multiple thresholds are employed. For some small integer k, U(k) = U (k-1) + I/2k-1 • When average queue size is increasing node halves its rate ri whenever any U(k) is crossed (for any k). • Thus, rate halving becomes aggressive and the queue starts to drain.
Signaling • Each node explicitly transmits its queue length to its potential interferers. • Somewhat tricky since the interferers could be more than one hop away. • In each outgoing packet, a node indicates its current rate ri and its average queue length using which, other nodes can infer i’s congestion state. • Nodes may forward such packets or overhear them in promiscuous modes. • Note here that some of the nodes may not hear this.
Congestion Sharing • In order to enable convergence to the fair rate, IFRC introduces two rules: • Rule 1: ri cannot exceed rj, the rate of i’s parent j. • Rule 2: Whenever a congested neighbor j of i crosses a congestion threshold U(k) for any k, i sets its rate to the lower of ri and rj. The same rule is applied for the most congested child “l’ of neighbor of i. • Why do these rules work ?
Effects of the rules • If there is a congested node i, from rule 1, all of its children will reduce their rates to ri. • From rule 2, all of i’s neighbors (including its parent) will set their rates to ri. • Following this, i’s parent’s neighbors (from rule 2) will also set their rates to ri. • The process continues recursively -- the parent’s neighbors’ children etc. begin to set their rates to ri. • It is easy to verify that the recursion process has all of the desired interferers reducing their rates to that of i.
Note • ri is the average rate -- not the instantaneous rate. • Also note that this is the rate at which i generates traffic and does not include forwarding traffic. • Instantaneous rate may be affected by MAC layer transmission scheduling etc.
Additive Increase • Every 1/ri seconds, a node i, increases its rate by d/ri. • Remember that a node does rate halving successively when it enters the congestion state -- it stops the halving when it exits that state. • However, when a node hears that its own rate is higher than that of its parent, a neighbor or a neighbor’s child (as specified in the rules), it sets its rate appropriately. However, it does not enter a “congested” state itself.
Slow Start • Nodes start with an initial rate rinit. • IFRC implements a multiplicative rate increase initially -- similar to TCP’s slow start. • Node i would add f to its rate every 1/ri seconds. • It exists the slow start phase if one of three conditions is satisfied: • Node i becomes congested -- it has to then halve its rate. • If node i’s rate exceeds that of its parent, it sets its rate to that of its parent and transits to additive increase. • Finally, if it is constrained by congestion sharing (rules), it transits to the rate of the constraining node and transits to additive increase. • Slow start behavior also invoked when rate goes below rinit.
Base Station Behavior • Unique -- does not source traffic. • Uses a rate rb and adapts this in response to the rates of its children. • It uses a slightly different algorithm. • Base station decreases its rate only when any of its children j, cross U(k) for any k. • It does not decrease its rate when any of its non-child neighbors or any child of a neighbor is congested. • I won’t go into details -- but note that the initial value rb should be high enough so that the children are not affected by the configured value.
Extensions • Authors discuss how • weighted fairness can be accommodated • multiple sinks can be accommodated • Look at paper for details.
Parameter Selection • The authors do not analyze the impact of all the values. • The main parametric value that they study is d, the rate at which additive increase occurs. • This is important since there is no closed loop feedback like with TCP. • Let rmin,i, rmax,i and r st,i be the minimum rate of node i, the maximum rate of node i, and the maximum “sustainable” rate of node i.
Analyzing the AIMD behavior • Note that the AIMD behavior is dictated by: • It is easy to see that this is a linear function with slope d i.e., ri(t) = dt. • Thus, the behavior may be visualized as:
For stability, the amount of data transmitted when ri is above rst should be no more than the unexploited transmission opportunity when ri is below rst. or in other words, rst,i > (rmin,i + rmax,i)/ 2. • Also note that since the multiplicative factor is 1/2, rmax = 2 rmin. • Thus, one obtains:
To avoid jumping from rmin,ito rmax,i in one step, d/rmin,i << rmin,i and thus, d = e rmin,i2 , where e is a small number. • In order to compute the right value of d, it is enough to compute the right value for e. • The excess number of packets that a node will send when it is congested is equal to the area of the shaded region shown: This area is simply given by: (rmax,i - rst,i)2/2d.
Consider a congested node j. Let Iij be an indicator function that is 1 if node i’s packets pass through j and zero otherwise. • Then, the total accumulated packets at j is • Note here -- the basis for this is an assumption that ri values change in synchrony at all nodes -- something that the authors prove via experimentation. • The above expression also assumes that the service time of a queue is independent of congestion. This is not true -- congestion increases service times. Thus, instead of Iij, the authors use a function fij.
In order for the node to signal congestion: • In order to prevent multiple congestion signals i.e., to prevent multiple multiplicative decreases:
Latency effects • Up to here, the impact of the delay incurred in the propagation of congestion updates was ignored. • Assume that by the time node j’s update reaches node i, node i performed si rate updates (increases). Also assume that the rate at node i was rst,i when node j got congested. • We need that:
Without loss of generality, the authors assume that the values of r st,i, r min,i, and r max,i are the same for all i. They further replace si with an average value s. • Then, the inequalities can be simplified (refer paper) to obtain: where,
Furthermore, the ratio of rst,i to rmin, i ranges between 1.5 and 2. • The 1.5 value comes from and because • The higher value comes because rmax = 2 x rmin > rst. Thus: and
What does this mean ? • In sparse networks or networks with low contention, Fj is small and the first inequality determines e. • In dense networks with high contention Fj is high and second inequality limits e. • The authors argue for the tree structure Fj can be set to n log n. (Read paper).
Sample Results : Goodput • Red bar indicates packets/second that were transmitted from a given node and the green indicates packets/per second that were received from that node. • Blue bar -- base station overhead.
Sample Results -- Rate adaptation • Note -- all nodes act in synchrony • Slow start and AIMD behavior evident.
Other experiments • Show fairness in the presence of multiple sinks. • Validate the choice of e; they show that for higher values system becomes unstable. • They show that link layer retransmissions are the reason why goodput is fair. In the absence of such retransmissions, goodput varies among various nodes although the number of transmitted packets remain same. • Demonstrate viability with weighted fairness.