CC_HD(4)
๐
CC_HD(4) โ the cc_hd girlies' manual page โจ
okay so bestie, you're looking at cc_hd(4), section 4 of the Kernel Interfaces Manual โ yes it's a driver-ish/manual page situation, no cap, and it's all about the HD Congestion Control Algorithm. Buckle up ๐
๐ธ NAME ๐ธ
cc_hd โ the HD Congestion Control Algorithm. that's it, that's the name, periodt ๐
โจ DESCRIPTION โจ
okay so the HD congestion control algorithm is literally an implementation of the Hamilton Institute's delay-based congestion control, and its whole vibe is keeping network queuing delays below a particular threshold (queue_threshold). iconic behavior honestly ๐ฆ
HD probabilistically reduces the congestion window (cwnd) based on its estimate of the network queuing delay. so the probability of reducing cwnd is zero at hd_qmin or less, rising to a maximum at queue_threshold, and then back to zero at the maximum queuing delay. it's giving bell curve, it's giving main character energy ๐
Loss-based congestion control algorithms such as NewReno probe for network capacity by filling queues until there is a packet loss. not cute of them tbh. HD competes with loss-based congestion control algorithms by allowing its probability of reducing cwnd to drop from a maximum at queue_threshold to be zero at the maximum queuing delay. 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_cdg(4),cc_chd(4),cc_cubic(4),cc_dctcp(4),cc_htcp(4),cc_newreno(4),cc_vegas(4),h_ertt(4),mod_cc(4),tcp(4),khelp(9),mod_cc(9)โ go read these too, iykyk ๐- 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. yes that's a citation, we stan a scholarly moment ๐
๐ ACKNOWLEDGEMENTS ๐
development and testing of this software were made possible in part by grants from the FreeBSD Foundation and Cisco University Research Program Fund at Community Foundation Silicon Valley. funding besties, we love to see it ๐ซถ๐ธ
๐ฎ FUTURE WORK ๐ฎ
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โฆ homework for future you, bestie ๐โจ
๐ HISTORY ๐
the cc_hd congestion control module first appeared in FreeBSD 9.0. vintage. iconic. ๐
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>. king behavior honestly ๐ซก๐
and that's the whole page bestie โ this edition came from Debian, dated May 13, 2021, CC_HD(4), and it ate, no crumbs left ๐ธโจ๐
๐ฆ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 2010-2011 The FreeBSD Foundation
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms