Kentaro A. Kurahone
2006-06-04 18:41:54 UTC
There was some discussion a while back regarding Appropriate Byte
Counting (RFC 3465). As part of poking at HSTCP, I found a compelling
reason to implement this mechanism:
When a connection is in congestion avoidance, we currently grow the
window like thus:
u_int cw = tp->snd_cwnd;
u_int incr = tp->t_segsz;
incr = incr * incr / cw;
The problem occurs when the congestion window grows past t_segsz
segments, since the increment is under a byte, the congestion window
won't be opened further.
Diff:
http://www.sigusr1.org/~kurahone/misc-hacks/tcp-abc-netbsd-3.99.20.diff.gz
The diff implements straight forward per-RFC ABC, with the "L" parameter
set at "1*SMSS". As an additional bonus, I changed the header prediction
code to execute even when the connection is congestion window bound,
which should help overall performance.
Questions/Comments?
Counting (RFC 3465). As part of poking at HSTCP, I found a compelling
reason to implement this mechanism:
When a connection is in congestion avoidance, we currently grow the
window like thus:
u_int cw = tp->snd_cwnd;
u_int incr = tp->t_segsz;
incr = incr * incr / cw;
The problem occurs when the congestion window grows past t_segsz
segments, since the increment is under a byte, the congestion window
won't be opened further.
Diff:
http://www.sigusr1.org/~kurahone/misc-hacks/tcp-abc-netbsd-3.99.20.diff.gz
The diff implements straight forward per-RFC ABC, with the "L" parameter
set at "1*SMSS". As an additional bonus, I changed the header prediction
code to execute even when the connection is congestion window bound,
which should help overall performance.
Questions/Comments?
--
Kentaro A. Kurahone
SIGUSR1 Research and Development
Kentaro A. Kurahone
SIGUSR1 Research and Development