Print this page
11554 Want TCP_CONGESTION socket option
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/man/man7p/tcp.7p.man.txt
          +++ new/usr/src/man/man7p/tcp.7p.man.txt
↓ open down ↓ 142 lines elided ↑ open up ↑
 143  143     Congestion Control
 144  144       TCP follows the congestion control algorithm described in RFC 2581, and
 145  145       also supports the initial congestion window (cwnd) changes in RFC 3390.
 146  146       The initial cwnd calculation can be overridden by the socket option
 147  147       TCP_INIT_CWND.  An application can use this option to set the initial
 148  148       cwnd to a specified number of TCP segments.  This applies to the cases
 149  149       when the connection first starts and restarts after an idle period.  The
 150  150       process must have the PRIV_SYS_NET_CONFIG privilege if it wants to
 151  151       specify a number greater than that calculated by RFC 3390.
 152  152  
      153 +     The operating system also provides alternative algorithms that may be
      154 +     more appropriate for your application, including the CUBIC congestion
      155 +     control algorithm described in RFC 8312.  These can be configured system-
      156 +     wide using ipadm(1M), or on a per-connection basis with the TCP-level
      157 +     socket option TCP_CONGESTION, whose argument is the name of the algorithm
      158 +     to use (for example "cubic").  If the requested algorithm does not exist,
      159 +     then setsockopt() will fail, and errno will be set to ENOENT.
      160 +
 153  161     TCP Keep-Alive
 154  162       Since TCP determines whether a remote peer is no longer reachable by
 155  163       timing out waiting for acknowledgements, a host that never sends any new
 156  164       data may never notice a peer that has gone away.  While consumers can
 157  165       avoid this problem by sending their own periodic heartbeat messages
 158  166       (Transport Layer Security does this, for example), TCP describes an
 159  167       optional keep-alive mechanism in RFC 1122.  Applications can enable it
 160  168       using the socket-level option SO_KEEPALIVE.  When enabled, the first
 161  169       keep-alive probe is sent out after a TCP connection is idle for two
 162  170       hours.  If the peer does not respond to the probe within eight minutes,
↓ open down ↓ 430 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX