[radvd-devel-l] mdelay

Pekka Savola pekkas at netcore.fi
Mon Dec 28 02:41:16 EST 2009

On Thu, 24 Dec 2009, Reuben Hawkins wrote:
> Can somebody explain to me what the random delays are?  I don't
> understand why we would wait for any reason getting a response to a
> request...  Shouldn't a request go out as soon as possible?  What am I
> missing?

>From RFC4861,

    random delay
                - when sending out messages, it is sometimes necessary to
                  delay a transmission for a random amount of time in
                  order to prevent multiple nodes from transmitting at
                  exactly the same time, or to prevent long-range
                  periodic transmissions from synchronizing with each
                  other [SYNC].  When a random component is required, a
                  node calculates the actual delay in such a way that the
                  computed delay forms a uniformly distributed random
                  value that falls between the specified minimum and
                  maximum delay times.  The implementor must take care to
                  ensure that the granularity of the calculated random
                  component and the resolution of the timer used are both
                  high enough to ensure that the probability of multiple
                  nodes delaying the same amount of time is small.

This has been employed in both client and router side.  On client 
side, it could easily be argued that on a link with lots of hosts, 
some random delay is warranted.  On router side it seems a bit of 
exaggeration, but this is a MUST requirement in the spec (S 6.2.6 of 
RFC4861) and our implementation would not be compliant with the spec 
if it was omitted.

Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings

More information about the radvd-devel-l mailing list