[Tinyos-help] CTP and congestion control
Philip Levis
pal at cs.stanford.edu
Wed Jul 1 11:11:27 PDT 2009
On Jul 1, 2009, at 1:57 AM, Michiel Konstapel wrote:
> I was recently looking into the (now removed) congestion control
> code in
> CTP, and the net2 meeting notes
> (http://tinyos.stanford.edu:8000/Net2WG/Notes/20080321) mentioned "the
> failed attempts at ECN". What was attempted, and how did it fail?
> We're
> currently looking into implementing some congestion control, by
> increasing the delay between packets when your parent is congested,
> hoping to prevent nodes from dropping packets due to lack of queue
> space. Any thoughts on whether that would work? The other option would
> be to switch to network layer acks, but that's a more involved change.
In early versions of CTP, the specification stated what you have to do
when the C bit is set (cannot send packets to that destination until
you hear the C bit cleared). This turned out to be disastrous. One
node marks itself as congested, everyone stops sending to it, they
send to other nodes, those nodes become congested, suddenly there are
no routes in the network. So we changed it to a more useful
specification: you set the C bit when you drop a packet. The
specification went from stating what you MUST do when you hear the C
bit to a condition under which you MUST set the C bit.
This bit of information seems useful for higher-layer transport
services, as it warns that a packet was lost. But as the focus for CTP
so far has been on agility and low transmissions/delivery, the C bit
hasn't been explored much.
We didn't explore pausing/adding delay.
Phil
More information about the Tinyos-help
mailing list