-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK, I think this is the fix: keep a separate rate for each pair of
neighbours, and adjust it in response to both local and non-local
RejectedOverloads.

    E   F
    |   |
A---B---C---D

D sends a RejectedOverload in response to traffic from A. C reduces its
rate from B to D, and B reduces its rate from A to C. Even if A carries
on sending at the same rate, it is throttled at B. The path EBCF is
unaffected.

    F       G
    |       |
A---B---C---D---E

E sends a RejectedOverload in response to traffic from A. D reduces its
rate from C to E, C reduces its rate from B to D, and B reduces its rate
from A to C. Initially the path FBCDG is affected, but it starts to
recover as successful requests along FBCDE offset unsuccessful requests
along ABCDE. C's rate from B to D represents a combination of the two
paths. *However* in contrast to the previous approach, B's rate from A
to C remains low even after C's rate from B to D recovers, because B
reduces its rate whenever congestion occurs anywhere on the path ABCDE,
not only when C sends a RejectedOverload after reducing its own rate.
Thus A's traffic remains throttled at B, hopefully allowing FBCDE to
recover...

Does this sound plausible?

Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

iD8DBQFEPn9vyua14OQlJ3sRApylAJ9IdXsOF9R3HojP8p5j6FT0RZPq7QCgtfz5
Iq4qxWpRoJGlAWWPj+C8NDA=
=esxT
-----END PGP SIGNATURE-----
_______________________________________________
Devl mailing list
Devl@freenetproject.org
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to