Subject: Re: Appropriate byte counting, revisited.
To: None <tech-net@NetBSD.org>
From: Rui Paulo <rpaulo@fnop.net>
List: tech-net
Date: 06/05/2006 14:39:42
At Sun, 4 Jun 2006 18:41:54 +0000,
Kentaro A. Kurahone wrote:
>
> 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?
I found a typo ;-)
+ /* Grow our congestion window if neccecary. */
What about a sysctl to disable/enable this ? As the RFC says:
On the other hand, in some cases
the modified cwnd growth algorithm causes larger bursts of segments
to be sent into the network. In some cases this can lead to a non-
negligible increase in the drop rate and reduced performance (see
section 4 for a larger discussion of the issues).