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

FreeBSD Manual Pages

  
 
  

home | help
TCP_RACK(4)		    Kernel Interfaces Manual		   TCP_RACK(4)

NAME
       tcp_rack	-- TCP RACK-TLP	Loss Detection Algorithm for TCP

SYNOPSIS
       To  load	 the  TCP  stack as a module at	boot time, place the following
       line in loader.conf(5):

	     tcp_rack_load="YES"

       To  enable  the	TCP  stack,  place   the   following   line   in   the
       sysctl.conf(5):

	     net.inet.tcp.functions_default=rack

DESCRIPTION
       RACK-TLP	uses per-segment transmit timestamps and selective acknowledg-
       ments  (SACKs)  and has two parts.  Recent Acknowledgment (RACK)	starts
       fast recovery quickly using time-based inferences derived from acknowl-
       edgment (ACK) feedback, and Tail	Loss Probe (TLP)  leverages  RACK  and
       sends  a	 probe	packet to trigger ACK feedback to avoid	retransmission
       timeout (RTO) events.

       Compared	to the widely used duplicate acknowledgment (DupAck) threshold
       approach, RACK-TLP detects losses more efficiently when there  are  ap-
       plication-limited flights of data, lost retransmissions,	or data	packet
       reordering events.

       It is intended to be an alternative to the DupAck threshold approach.

MIB Variables
       The  algorithm  exposes	the  following scopes in the net.inet.tcp.rack
       branch of the sysctl(3) MIB:

       net.inet.tcp.rack.misc
	       Misc related controls

       net.inet.tcp.rack.features
	       Feature controls

       net.inet.tcp.rack.measure
	       Measure related controls

       net.inet.tcp.rack.timers
	       Timer related controls

       net.inet.tcp.rack.tlp
	       TLP and Rack related Controls

       net.inet.tcp.rack.timely
	       Rack Timely RTT Controls

       net.inet.tcp.rack.hdwr_pacing
	       Pacing related Controls

       net.inet.tcp.rack.pacing
	       Pacing related Controls

       net.inet.tcp.rack.tp
	       Rack tracepoint facility

       net.inet.tcp.rack.probertt
	       ProbeRTT	related	Controls

       net.inet.tcp.rack.stats
	       Rack Counters

       net.inet.tcp.rack.sack_attack
	       Rack Sack Attack	Counters and Controls

       Besides the variables within the	above scopes the  following  variables
       are also	exposed	in the net.inet.tcp.rack branch:

       net.inet.tcp.rack.clear
	       Clear counters

       net.inet.tcp.rack.opts
	       RACK Option Stats

       net.inet.tcp.rack.outsize
	       MSS send	sizes

       net.inet.tcp.rack.req_measure_cnt
	       If  doing  dynamic pacing, how many measurements	must be	in be-
	       fore we start pacing?

       net.inet.tcp.rack.use_pacing
	       If set we use pacing, if	clear we use only the  original	 burst
	       mitigation

       net.inet.tcp.rack.rate_sample_method
	       What method should we use for rate sampling 0=high, 1=low

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

       Neal Cardwell, Yuchung Cheng, Nandita Dukkipati,	and  Priyaranjan  Jha,
       The RACK-TLP Loss Detection Algorithm for TCP, February 2021, RFC 8985.

       M. Allman, V. Paxson, and E. Blanton, TCP Congestion Control, September
       2009, RFC 5681.

       M.  Mathis,  Nandita  Dukkipati,	 and  Yuchung Cheng, Proportional Rate
       Reduction for TCP, May 2013, RFC	6937.

HISTORY
       The tcp_rack congestion control module first appeared in	FreeBSD	13.0.

AUTHORS
       The tcp_rack congestion control module was written by  Randall  Stewart
       <rrs@FreeBSD.org>  and sponsored	by Netflix, Inc.  This manual page was
       written by Gordon Bergling <gbe@FreeBSD.org>.

FreeBSD	14.3			March 18, 2024			   TCP_RACK(4)

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

home | help