CC_HD(4)
๐ cc_hd โ HD Congestion Control Algorithm ๐
okay bestie, welcome to the cc_hd(4) page from the Kernel Interfaces Manual โ yes we're reading kernel docs together, this is our bonding era ๐ซถ
โจ NAME โจ
cc_hd โ the HD Congestion Control Algorithm, no cap ๐
๐ธ DESCRIPTION ๐ธ
So. The HD congestion control algorithm is an implementation of the Hamilton Institute's delay-based congestion control, and its whole personality is: keep network queuing delays below a particular threshold (queue_threshold). That's the dream, that's the goal, that's the vibe check it's constantly running on your packets ๐โจ
HD probabilistically reduces the congestion window (cwnd) based on its estimate of the network queuing delay. And the way the probability works is so specific, okay, listen:
- the probability of reducing
cwndis zero athd_qminor less ๐ป - it rises to a maximum at
queue_threshold๐ - and then it drops back down to zero at the maximum queuing delay ๐ป
It's giving a little hill of chaos. Iconic behaviour honestly.
Now, loss-based congestion control algorithms like NewReno probe for network capacity by literally filling queues until there's a packet loss ๐ญ (not them just brute-forcing it). HD competes with those loss-based algorithms by letting its probability of reducing cwnd drop from a maximum at queue_threshold to zero at the maximum queuing delay. And this has been shown to work well when the bottleneck link is highly multiplexed. slay ๐
๐ MIB Variables ๐
The algorithm exposes the following tunable variables in the net.inet.tcp.cc.hd branch of the sysctl(3) MIB:
queue_thresholdโ Queueing congestion threshold (qth) in ticks. Default is20. ๐pmaxโ Per packet maximum backoff probability as a percentage. Default is5. ๐ฅqminโ Minimum queuing delay threshold (qmin) in ticks. Default is5. ๐
๐ฆ SEE ALSO ๐ฆ
cc_chd(4)cc_cubic(4)cc_htcp(4)cc_newreno(4)cc_vegas(4)h_ertt(4)mod_cc(4)tcp(4)khelp(9)mod_cc(9)
and also this academic baddie:
- L. Budzisz, R. Stanojevic, R. Shorten, and F. Baker, โA strategy for fair coexistence of loss and delay-based congestion control algorithmsโ, IEEE Commun. Lett., 7, 13, 555-557, Jul 2009. ๐โจ
๐ ACKNOWLEDGEMENTS ๐
Development and testing of this software were made possible in part by grants from the FreeBSD Foundation and the Cisco University Research Program Fund at Community Foundation Silicon Valley. we love funding, we love research, we love it here ๐ซถ
๐ฎ FUTURE WORK ๐ฎ
Plot twist bestie: the Hamilton Institute have recently made some improvements to the algorithm implemented by this module and have called it Coexistent-TCP (C-TCP). The improvements should be evaluated and potentially incorporated into this module. so likeโฆ TBD, watch this space ๐
๐ HISTORY ๐
The cc_hd congestion control module first appeared in FreeBSD 9.0.
The module was first released in 2010 by David Hayes whilst working on the NewTCP research project at Swinburne University of Technology's Centre for Advanced Internet Architectures, Melbourne, Australia. More details are available at:
http://caia.swin.edu.au/urp/newtcp/
๐ AUTHORS ๐
The cc_hd congestion control module and this manual page were written by David Hayes <david.hayes@ieee.org>. ๐
and that's the whole page, bestie โ every flag, every default, every reference, nothing skipped, periodt ๐ โจ
this one came from the Debian edition, dated September 15, 2011 โ shoutout to the CC_HD(4) footer for keeping it real all these years ๐๐ฆ
๐ฆ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 ยท BSD-2-Clause-FreeBSD AND BSD-4-Clause
- Copyright (c) 2010-2011 The FreeBSD Foundation
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms