Title: Congestion Control and Fairness for ManytoOne Routing in Sensor Networks
1Congestion Control and Fairness for Many-to-One
Routing in Sensor Networks
- Cheng Tien Ee and Ruzena Bajcsy
- University of California, Barkeley
2Outline of the Talk
- Introduction
- Motivation behind this work
- Congestion control
- Fairness
- Results Simulation Implementation
- Conclusion
3Introduction
- Sensor motes send data to the Base
- Intermediate motes relay messages from far away
motes to the Base - Routing of messages form a tree rooted at the
base
base
4Motivation
- Problems
- Distributed system no global knowledge
- Motes near the base has to transmit more packets
than far away motes bottleneck - Packets generated by far away motes may be
dropped (unfairness) - Loss of packet due to buffer overflow and
collision (congestion) -
5Motivation
- Solutions
- Determine the maximum data generation rate of the
network and adjust transmission rate accordingly
thus buffer overflow wont occur - Implement hop by hop ARQ no packet loss is
ensured - TCP
- Global Coordination
- But .
6Motivation
- Limitations
- Dynamic and distributed configuration
- Obtaining maximum data generation global
information - Underestimation of generation rate reduces
effective bandwidth - Transient congestion
- Local perturbation
7Congestion Control
- The Algorithm
- Simple limited resources
- Distributed no global coordination
8Congestion Control
- Design Network Stack Model
Congestion
Application
Transport
Network
Data-Link
Routing
Physical
MAC
9Congestion Control
- Types of Congestion
- Type A - Simultaneous transmission interference
packet loss reduction in throughput - Type B - Data generation rate is faster than the
transmission rate - Buffer overflow -
-
10Congestion Control
- The idea
- The network should be self-adaptive
- Type A congestion can be reduced by phase
shifting - Type B congestion can be reduced by buffer
monitoring -
-
11Congestion Control
- The idea
- The two different rates we need
- data generation rate rate at which data is
passed from application - transmission rate rate at which packets, both
locally produced and from downstream motes, are
transmitted upstream - transmission rate of parent mote should ideally
be greater than or equal to data generation rate
of all motes downstream -
-
12Congestion Control
Application
Transport
Transmission
Network
Data Generation
Data-Link
Physical
13Congestion Control
Transmission rate of parent should be gt
5pkts/sec
Each mote generates data at the rate 1pkt/sec
14Congestion Control
- The Algorithm
- Repeatedly run at each mote (localized algo)
- determines local maximum transmission rate
- divide transmission rate by total number of
children motes to give data generation rate - disseminate min(own_rate, parent_rate) downstream
-
Queue overflow adjustment incorporated
15Congestion Control
- The Algorithm
- Adjustment
-
- Let the data generation rate for a child
determined by the current node is denoted by rc - Let r denote data generation rate for the current
when the queues are overflowing or about to
overflow - disseminate min(parent_rate, r, rc) downstream
-
Current nodes data gen rate sent by its parent
16Congestion Control
Transmission rate 50 pkts/sec
Each childs data generation rate should be lt
10pkts/sec
17Congestion Control
- Lets look into the methods for
- determining effective transmission rate
- determining number of downstream motes
- disseminating data generation rate downstream
- adjusting data generation rate if buffers are
overflowing
18Congestion Control
- Calculating effective Transmission Rate
ack pkt
data pkt
data pkt
no ack, timeout
data pkt
no ack, timeout
Total time taken
19Congestion Control
- Counting number of Downstream Motes
- each mote sums childrens count, adds 1 (for
itself), then transmits count to parent (data
aggregation)
5
2
1
1
1
20Congestion Control
- Disseminating data generation rate
- downstream
- via control packets
- piggy-backed on data packets
21Congestion Control
- Adjusting data generation rate if buffers are
- overflowing
22Congestion Control
Taking mean data gen. rate
- The Solution Explained
- The packet generation rate assignment is fair
- Why?
- Type B congestion is minimized
- How?
- Type A congestion is reduced
- How?
Queue overflow check
23Congestion Control
A
Rate updates takes time to propagate introducing
phase shift
D
B
C
E
E
24Fairness
- Requirement
- The base station should receive the same number
of packets from each mote - The idea
- Transmit number of packets from each subtree with
equal probability - Within each period of time, transmit number of
packets from each subtree equal to size of that
subtree
25Fairness
- Mechanisms
- Per-child packet queues
- Maintenance of per-child tree size
- Obtained as before
- FIFO Queues
- small in size, independent of subtree size
26Fairness
- Algorithm
- Probabilistic Selection
-
27Fairness
- Algorithm
- Correctness of PS
- Allows packet from all nodes to have equal
probability of reaching the base station. - Proof by induction
- Effective only when queues are backlogged
queues small in size unable to absorb bursty
traffic -
28Fairness
- Algorithm
- Epoch based proportional selection
- We define an epoch to have units of packets and
is an integer multiple of the total number of
nodes in this subtree and a positive integer n. - With each epoch we transmit from each queue
exactly n times the number of nodes serviced by
that queue. - Queues are FIFO
- No work conservation is implemented
29Fairness
In one time period transmit 2 from A, 1 from B, 1
from C and 1 from this parent node
C
A
1
B
2
1
30Fairness
Referring to node A and letting n1, the number
of packets selected for transmission from the
queues corresponding to nodes A, B, C and D are
1, 2, 3, 1 respectively.
31Fairness
- In node A, packets from B are received according
to Bs epoch - No order is imposed on childs transmission
- Within each epoch one packet per child
32Fairness
- Algorithm
- Selecting the next packet to transmit
-
- In node A, packets from B are received according
to Bs epoch - No order is imposed on childs transmission
33Fairness
- Algorithm
- Effect of non-work conservation
- Congestion in any branch of the network will
cause rates to decrease throughout all other
parts of the network -
34Fairness
- Algorithm
- Correctness of EPS
- Proof by induction
- WLOG, we can assume size of an epoch is equal to
the subtree size - Within each epoch one packet from each downstream
node is transmitted to the parent node -
35Fairness
- Algorithm
- Necessity of ARQ
- Implementing EPS without ARQ
- Suppose link between parent A and a child Q is
very lossy - A may miss time intervals to transmit as it waits
for Q to send data - Entire performance deteriorates due to one single
link ! - Best solution is to implement hop-by-hop ARQ
-
36Results
- Simulation
- Bit rate, control packet size, data packet size
- No interference from motes more than one hop away
- Uses MACA as MAC protocol
- Packet level simulation
- Round-robin servicing of queues to show effect
of loss of packets further away from the base -
37Results
- The (Congestion Control EPS) graph
- is a constant at 5000 packets
- The (Congestion Control PS) graph fluctuates
slightly around 5000 packets
38Results
- Implementation on mica2dot motes
- MACA with transport layer ACKs
- 10 motes deployed indoors, within 15 feet of one
another - motes arbitrarily construct routing tree
- compare with round-robin servicing of queues
39Results
40Conclusion
- very scalable
- size of queues can be small, constant
- state required increases linearly with number of
neighbors - ARQ achieves fairness with small number of packet
transmission - exact, same, simple code runs in each mote
- reduces implementation, debugging time
- network adapts itself automatically
-
41Conclusion
- implemented in transport layer, thus independent
of the other network layers - Slight modification to the MAC layer may be
required - Can handle non-constant rate traffic
- Local computation
-
42Thank you
Questions??