Subject: Appropriate byte counting, revisited.
To: None <tech-net@NetBSD.org>
From: Kentaro A. Kurahone <kurahone@sigusr1.org>
List: tech-net
Date: 06/04/2006 18:41:54
--M9NhX3UHpAaciwkO
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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 =3D tp->snd_cwnd;
  u_int incr =3D tp->t_segsz;

  incr =3D 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?

--=20
Kentaro A. Kurahone
SIGUSR1 Research and Development

--M9NhX3UHpAaciwkO
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (FreeBSD)

iQIVAwUBRIMpcGfp+SLSG+tuAQJdbw//UQN9bflTcz+HEfmhUJp+n27/X5gYN0tT
VU/ijotlAz6xjiMR/C/v2cSuddSOjhOweTseIXf0nXhSt04IrISj9mPRDil9O6Cx
LKHqWveTYLGRjBzM93p0DPUO+xVtR6doesWlRorfmxt2knsijHPOqKfqfy/Cn1Pw
7bEnROqbtvAooqZn9H+Djqojx2RRp+82CL7p2SUNRh1seW6X4z866KQeG2lBLWU0
gjlI3iNe3MAf4axsZdPTuP9/DTEZjeYjLGJZIxNjNHjqlmrhK0FfSfvJPo0Ro6A7
4kk28dEpUvS7th4SG3FDw09xdji8T2vRF24oa6YjkaU7okJCwxfrtKlHOtWnAcrh
tzoIBH5X1wtj90yKlWaqw06bfc+L6WR0fNB0R/R5IalXclj30kbwAUYHPOD9B+AC
ljrdU5xhqVJBZMg/uU1NQYPX+3IjwQvNor3mJQL3RjbkIUl1n/aSSdskVd5yXNoc
VOlbKxwxwsVjZPRz0jN3Zsx8xbz3Y+cb69Md/qscpa/83o29JkwkuUdm5q0H1UGO
toKVmrHJlYjq4ulqb2CUu/xQg55uW+JdGosoDfb/HC35MsoA9GorPTwWbGMj8qAK
qwcAHvHPRh/a6xd8Z0wckzGiVEoXnjRE2XXW4SZprISPtUT1rCnd+F3BSSFcJfuV
BZxmlMdOBxs=
=uM5B
-----END PGP SIGNATURE-----

--M9NhX3UHpAaciwkO--