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 acknowledgments
     (SACKs) and has two parts.  Recent Acknowledgment (RACK) starts fast recov-
     ery  quickly  using time-based inferences derived from acknowledgment (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 ap-
     proach, RACK-TLP detects losses more efficiently when  there  are	applica-
     tion-limited flights of data, lost retransmissions, or data packet reorder-
     ing 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 before we
	     start pacing?

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

     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  Reduc-
     tion 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 ports 15.quarterly	 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+15.1-RELEASE+and+Ports.quarterly>

home | help