The paper "CODA: Congestion Detection and Avoidance in Sensor Networks" by Wan et al. was presented at the SenSys '03 conference in Los Angeles, California (November 2003).
This paper ties in with the previous few papers related to sensor networks. A sensor network is generally considered to be made up of heterogeneous elements (sensors) that have significant resource constraints, either in terms of computational power, broadcast range (they are typically all considered to be wireless), battery power or memory. These facts have led a group of researchers to claim that the use of TCP/IP is there inappropriate for sensor networks and a whole branch of networking has sprung up trying to define network protocols and techniques suitable for these applications.
The main contribution of the CODA paper is to discuss congestion
control. Three different scenarios are presented in the paper:
There are three significant aspects to the CODA design for congestion control. The first is congestion detection. This is not as straight-forward as might first appear. The authors ran a simple experiment that measured buffer queue length (a seemingly obvious choice for congestion detection). They found that the queue length grows much slower than the actual saturation of the channel, so relying strictly on buffer queue lengths will not provide the fast response times desired for congestion control. The other obvious method for detecting congestion is to monitor the transmission channel ... however battery power is limited and monitoring is expensive, so this is not an option. The authors combine the two techniques, using a sampling scheme for the channel listening to detect congestion and conserver battery power.
The second prong of the CODA design is to use an open-loop broadcast of a backpressure message when congestion is detected. This is essentially the equivalent of a NACK (or dropped packet) in TCP/IP. Any nodes that receive the backpressure message can choose an appropriate congestion control strategy (AIMD or dropped packets for example). The backpressure message is transmitted until congestion is relieved.
The open loop backpressure message is designed to handle short term transient hotspots. The last part of CODA is designed to handle permanent hotspots. In this situation, CODA enforces a change in transmission policy whereby all packets must be ACK'ed before another packet can be sent. This reduces the overall transmission rate and relives the congestion.
As usual, there was no significant class discussion. A few salient
points were raised however, and these are presented here:
The original paper that this presentation was based on.
The Microsoft Power Point presentation.