Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CC_NEWRENO(4)	       FreeBSD Kernel Interfaces Manual		 CC_NEWRENO(4)

NAME
     cc_newreno	-- NewReno Congestion Control Algorithm

SYNOPSIS
     #include <netinet/cc/cc_newreno.h>

DESCRIPTION
     The NewReno congestion control algorithm is the default for TCP.  Details
     about the algorithm can be	found in RFC5681.

Socket Options
     The cc_newreno module supports a number of	socket options under TCP_CCAL-
     GOOPT (refer to tcp(4) and	moc_cc(9) for details) which can be set	with
     setsockopt(2) and tested with getsockopt(2).  The cc_newreno socket
     options use this structure	defined	in <sys/netinet/cc/cc_newreno.h>:

     struct cc_newreno_opts {
	     int name;
	     uint32_t val;
     }

     CC_NEWRENO_BETA	  Multiplicative window	decrease factor, specified as
			  a percentage,	applied	to the congestion window in
			  response to a	congestion signal per: cwnd = (cwnd *
			  CC_NEWRENO_BETA) / 100.  Default is 50.

     CC_NEWRENO_BETA_ECN  Multiplicative window	decrease factor, specified as
			  a percentage,	applied	to the congestion window in
			  response to an ECN congestion	signal when
			  net.inet.tcp.cc.abe=1	per: cwnd = (cwnd *
			  CC_NEWRENO_BETA_ECN) / 100.  Default is 80.

MIB Variables
     The algorithm exposes these variables in the net.inet.tcp.cc.newreno
     branch of the sysctl(3) MIB:

     beta      Multiplicative window decrease factor, specified	as a percent-
	       age, applied to the congestion window in	response to a conges-
	       tion signal per:	cwnd = (cwnd * beta) / 100.  Default is	50.

     beta_ecn  Multiplicative window decrease factor, specified	as a percent-
	       age, applied to the congestion window in	response to an ECN
	       congestion signal when net.inet.tcp.cc.abe=1 per: cwnd =	(cwnd
	       * beta_ecn) / 100.  Default is 80.

SEE ALSO
     cc_chd(4),	cc_cubic(4), cc_hd(4), cc_htcp(4), cc_vegas(4),	mod_cc(4),
     tcp(4), mod_cc(9)

     Mark Allman, Vern Paxson, and Ethan Blanton, TCP Congestion Control, RFC
     5681.

     Naeem Khademi, Michael Welzl, Grenville Armitage, and Gorry Fairhurst,
     TCP Alternative Backoff with ECN (ABE), internet draft, draft-ietf-tcpm-
     alternativebackoff-ecn, February 2018, work in progress.

ACKNOWLEDGEMENTS
     Development and testing of	this software were made	possible in part by
     grants from the FreeBSD Foundation	and Cisco University Research Program
     Fund at Community Foundation Silicon Valley.

HISTORY
     The cc_newreno congestion control algorithm first appeared	in its modular
     form in FreeBSD 9.0.

     The module	was first released in 2007 by James Healy and Lawrence Stewart
     whilst working on the NewTCP research project at Swinburne	University of
     Technology's Centre for Advanced Internet Architectures, Melbourne, Aus-
     tralia, which was made possible in	part by	a grant	from the Cisco Univer-
     sity Research Program Fund	at Community Foundation	Silicon	Valley.	 More
     details are available at:

     http://caia.swin.edu.au/urp/newtcp/

AUTHORS
     The cc_newreno congestion control module was written by James Healy
     <jimmy@deefa.com>,	Lawrence Stewart <lstewart@FreeBSD.org>	and David
     Hayes <david.hayes@ieee.org>.

     Support for TCP ABE was added by Tom Jones	<tj@enoti.me>.

     This manual page was written by Lawrence Stewart <lstewart@FreeBSD.org>.

FreeBSD	Ports 11.2		March 19, 2018		    FreeBSD Ports 11.2

NAME | SYNOPSIS | DESCRIPTION | Socket Options | MIB Variables | SEE ALSO | ACKNOWLEDGEMENTS | HISTORY | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cc_newreno&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help