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

NAME
     cc_dctcp -- DCTCP Congestion Control Algorithm

DESCRIPTION
     The  DCTCP  (data center TCP) congestion control algorithm aims to maximise
     throughput and minimise latency in data center networks  by  utilising  the
     proportion  of  Explicit  Congestion Notification (ECN) marks received from
     capable hardware as a congestion signal.

     DCTCP uses fraction of ECN marked packets to update congestion window.  The
     window reduction ratio is always <= 1/2.  Only when all of the packets  are
     marked, congestion window is halved.

     In  order to keep the accuracy of the ECN marked fraction, a DCTCP receiver
     mirrors back incoming (or missing) CE marks by setting  (or  clearing)  ECE
     marks.   This  feedback  methodology is also adopted when the receiver uses
     delayed ACK.

     The FreeBSD DCTCP implementation includes two minor modifications	for  the
     one-sided	deployment.   Considering  the	situation  that DCTCP is used as
     sender and classic ECN is used as receiver, DCTCP sets the CWR flag as  the
     reaction  to the ECE flag.  In addition, when classic ECN is used as sender
     and DCTCP is used as receiver, DCTCP avoids to mirror back ACKs  only  when
     the CWR flag is set in the incoming packet.

     The  other  specifications are based on the paper and Internet Draft refer-
     enced in the "SEE ALSO" section below.

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

     alpha  An initial estimator of the congestion on the link.  Default is 0.

     dctcp_shift_g
	    An estimation gain in the alpha calculation.  Default is 16.

     slowstart
	    A trigger to halve congestion window after slow start.  Default does
	    nothing to halve window.

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

     Mohammad Alizadeh, Albert	Greenberg,  David  A.  Maltz,  Jitendra  Padhye,
     Parveen  Patel,  Balaji  Prabhakar, Sudipta Sengupta, and Murari Sridharan,
     "Data  Center  TCP  (DCTCP)",   ACM   SIGCOMM   2010,   http://research.mi-
     crosoft.com/pubs/121386/dctcp-public.pdf, 63-74, July 2010.

     Stephen  Bensley,	Lars Eggert, and Dave Thaler, Microsoft's Datacenter TCP
     (DCTCP):	   TCP	    Congestion	    Control	  for	    Datacenters,
     http://tools.ietf.org/html/draft-bensley-tcpm-dctcp-01.

HISTORY
     The cc_dctcp congestion control module first appeared in FreeBSD 11.0.

     The  module was first released in 2014 by Midori Kato studying at Keio Uni-
     versity, Japan.

AUTHORS
     The cc_dctcp congestion control module and this manual page were written by
     Midori Kato katoon@sfc.wide.ad.jp and Lars Eggert lars@netapp.com with help
     and modifications from Hiren Panchasara hiren@FreeBSD.org

FreeBSD 11.0			January 12, 2015		     CC_DCTCP(4)

home | help