[Roll] simplified Trickle (was Re: trickle question)

Omprakash Gnawali <gnawali@cs.stanford.edu> Sun, 29 November 2009 21:13 UTC

Return-Path: <gnawali@cs.stanford.edu>
X-Original-To: roll@core3.amsl.com
Delivered-To: roll@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 2631A3A681F for <roll@core3.amsl.com>; Sun, 29 Nov 2009 13:13:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.977
X-Spam-Level:
X-Spam-Status: No, score=-5.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ze7S9XaG6NKH for <roll@core3.amsl.com>; Sun, 29 Nov 2009 13:13:06 -0800 (PST)
Received: from cs-smtp-2.Stanford.EDU (cs-smtp-2.Stanford.EDU [171.64.64.26]) by core3.amsl.com (Postfix) with ESMTP id B7ED228C0D7 for <roll@ietf.org>; Sun, 29 Nov 2009 13:13:06 -0800 (PST)
Received: from mail-qy0-f191.google.com ([209.85.221.191]) by cs-smtp-2.Stanford.EDU with esmtpsa (TLSv1:RC4-MD5:128) (Exim 4.60) (envelope-from <gnawali@cs.stanford.edu>) id 1NEr4l-00068D-KU for roll@ietf.org; Sun, 29 Nov 2009 13:13:00 -0800
Received: by qyk29 with SMTP id 29so1277175qyk.32 for <roll@ietf.org>; Sun, 29 Nov 2009 13:12:58 -0800 (PST)
MIME-Version: 1.0
Received: by 10.224.102.207 with SMTP id h15mr1715337qao.139.1259529178750; Sun, 29 Nov 2009 13:12:58 -0800 (PST)
Date: Sun, 29 Nov 2009 13:12:58 -0800
Message-ID: <d4dcddd20911291312o574c1f4j5d5bb25ae4b119df@mail.gmail.com>
From: Omprakash Gnawali <gnawali@cs.stanford.edu>
To: Philip Levis <pal@cs.stanford.edu>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Scan-Signature: 323acaff36744e8473855e70acc36bcb
Cc: roll <roll@ietf.org>
Subject: [Roll] simplified Trickle (was Re: trickle question)
X-BeenThere: roll@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Routing Over Low power and Lossy networks <roll.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/roll>
List-Post: <mailto:roll@ietf.org>
List-Help: <mailto:roll-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/roll>, <mailto:roll-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 29 Nov 2009 21:13:17 -0000

On Sat, Nov 14, 2009 at 11:12 AM, Philip Levis <pal@cs.stanford.edu> wrote:
>
> On Nov 14, 2009, at 7:16 AM, Joakim Eriksson wrote:
>
>> Hello Phil and Julien,
>>
>> Is it really necessary to wait until the complete I interval has
>> passed before doubling I and restarting T (with the new interval)?
>>
>> It feels that we get basically the same behavior with less complex
>> code if we skip the wait for the complete interval to pass.
>
> Hm -- I can't recall if I tried this variant. I'm searching around for the
> analytical simulator source code, if I find it, I'll let you know.
>
> One thing is that trickle is more efficient when intervals are synchronized
> (it sends half as many messages). Let's say you reset the interval after T.
> First, the average interval length is 0.75I, leading to 33% more messages.
> Second, it will inherently desynchronize intervals, leading to twice as many
> messages compared to the best case. This is a total overhead of sending
> approximately 2.5 times as many messages if you don't. Of course, the 33%
> also results in a lower detection latency.
>
> Given how the interval length changes, if you want to implement it this way,
> *all* nodes need to do so, or you break load balancing.
>
> But this is just off the top of my head. The behavior of protocols like
> these can often be not something you'd expect (e.g., "basically the same
> behavior"). I would definitely run some tests to see how it behaves under
> very high density. It could be that nodes which pick small T values end up
> shouldering more of the load due to a variant of the short listen problem.
>  My intuition is that this is a shortcut which probably isn't worth it as it
> might bite you later, but that intuition could be wrong.
>
> Usually, it's just easier to keep track of the rand() result, rather than
> keep two timers.

I ran the version than Joakim suggested (Truncated interval) and the
one of the draft (Full interval). Here are the results:
http://stuff.stanford.edu/~om_p/ctp/trickle-interval/beacontime.html

(Graph with lots of lines show number of beacons for each node).

Experiment setup:
- 55 nodes with cc2420 radios (Tutornet)
- max interval 512s
- 0 dBm transmit power
- CTP Noe as is and with modifications for truncated interval

Result: Larger number of beacons with Truncated intervals, otherwise
performance measured in delivery ratio and cost (excluding control
pkts) similar. We can use a larger interval with the truncated
interval to match the number of beacons with the full interval.

It makes sense to use the simplified specification.

- om_p