- Weighted fairness based on weights assigned to each flow
- Only a subset of node sending data
- Nodes joining and leaving the network
- Fairness with in-network aggregation
- Multiple base stations
- Congestion Detection: Building on previous work we detect congestion based on current packet queue size and congestion thresholds.
- Congestion Sharing: On congestion detection IFRC shares congestion information with the set of
flows that share capacity with the congested link. Our main contributions are
- Precisely identifying the set of flows to be signaled during congestion at a particular node in a wireless network. We define this set of flows (and the corresponding nodes from which they originate) as the potential interferers of the congested node.
- A simple distributed mechanism to efficiently share congestion information to all the potential interferers. (we aren't using packet drop as a signaling mechanism.)
- Rate Adaptation: Flows adapt their rate based on AIMD rule. However our scheme uses multiple queue thresholds, signaling congestion (feedback signal) on every threshold, thus eliminating any packet loss due to queue overflow in our experiments.
IFRC had been implemented on Tmote Sky and tested on our testbed. Below are the results showing performace of IFRC.
This figure shows the routing tree used during the experiments. (The numbers show the packet reception ratio for that link averaged over the entire run of the experiment.) The topology of the network can be viewed here (dotted lines are asymmetric links).
The next figure shows a plot of end-2-end goodput for every node in the network. The green bar shows the rate at which a node sent its own packets and the red bar shows the rate at which packets were received from that node at the base station. (Note: Bar for node 1 represents the beacon messages from the base station.)
The next figure shows the instantaneous queue at every node during the experiment. (Buffer Queue size at each node is 64.). It can be observed that there is no queue overflow at any node.
The next figure shows the instantaneous sending rate (of node's own packets and not including the packets forwarded by the node) at each node during the experiment.
The next figure shows the packet count of packets from each node received at the base station with respect to time.
For clarity, the startup behavior was removed from the above figures. This figure shows the instantaneous sending rate of each node along with the startup behavior of each node which has similarities with TCP's slow start.
IFRC is also available in tinyos-1.x tree under contrib/usc-ifrc.





