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  use this TCP	stack, place the following line	in the kernel configu-
       ration file:

	     options TCPHPTS

       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	Dukkipat, and Priyaranjan Jha,
       The RACK-TLP Loss Detection Algorithm for TCP, February 2021, RFC 8985.

       Ahmed M.	Abdelmoniem and	Brahim Bensaou,	 T-RACKs:  A  Faster  Recovery
       Mechanism   for	 TCP   in   Data   Center   Networks,  February	 2021,
       https://arxiv.org/abs/2102.07477.

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.0			March 19, 2023			   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.0-RELEASE>

home | help