]> git.michaelhowe.org Git - packages/o/openafs.git/commit
Improve accuracy of Rx RTT calculation by skipping retransmitted packets
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 5 Oct 2009 18:34:59 +0000 (14:34 -0400)
committerDerrick Brashear <shadow|account-1000005@unknown>
Thu, 17 Dec 2009 06:54:36 +0000 (22:54 -0800)
commit58c7c1cc805c59a2b7010ab5cf370dc9c2829939
tree94bacb3fc514995c3207edcd78eccfa4b10fd115
parentfbd2aa2fa68390498d8df83190dae68c240ed9eb
Improve accuracy of Rx RTT calculation by skipping retransmitted packets

Rx RTT calculations are based on Van Jacobson's work using
constants that make computations fast but are not necessarily
the best for modeling Rx protocol exchanges.  This patch does
not alter the constants but does improve the comments to show
that the math is correct.

Phil Karn in 1987 demonstrated that Van Jacobson's algorithms
produced inaccurate results when the RTT computed from an
acknowledgement of a retransmitted packet were included.  The
resulting RTT would either be too small causing the system to
retransmit too many packets or too long resulting in too few
being sent.

This patch follows Phil Karn's advice which was also adopted
as mandatory for TCP in RFC2988.  Retransmitted packets and
delayed acks are skipped and the retransmit time is backed off
(up to a maximum of 3 seconds) until a successful acknowlegement
is received for an initially transmitted packet.

LICENSE BSD

Reviewed-on: http://gerrit.openafs.org/580
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
(cherry picked from commit 917a860e818d5cdda82add0d4d50b594820816f2)
Change-Id: Icae199bfaaa4c64b4ab61eec650ed121c8e36a14
Reviewed-on: http://gerrit.openafs.org/969
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/rx/rx.c
src/rx/rx.h
src/rx/rx_clock.h