Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to set the TCP congestion control algorithm to Westwood+. Is this possible in OS X?

share|improve this question

migrated from Apr 14 '11 at 23:40

This question came from our site for users of Linux, FreeBSD and other Un*x-like operating systems.

Mac OS X uses SACKs, and I don't imagine you can change that. SU thread. – Nathan Greenstein Apr 14 '11 at 23:48
up vote 5 down vote accepted

According to you can actually modify the algorthims used by Mac OS X by using the sysctl command, but you cannot use anything but the New Reno algorithm:

net.inet.tcp.newreno implements the New Reno modification to the TCP Fast Recovery Protocol (RFC 2582). New Reno is the name given to an enhancement to TCP partial acknowledgments that is used in the absence of a stack that supports SACKs. Keep in mind that while this shouldn’t cause problems in the normal case, it’s only really useful over a congested link like, say, checking mail while streaming NPR or similar. Even then, it’s not a magic bullet. No harm in turning it on, but understand what it is and isn’t, first. It’s off by default.

The command is sysctl -w net.inet.tcp.newreno=1 which you could reverse with sysctl -w net.inet.tcp.newreno=0 if you had issues with it.

share|improve this answer
I know this is a three-and-a-half year old question, but is there a new command for OS X Yosemite? When I entered the command above, I got: sysctl: unknown oid 'net.inet.tcp.newreno' – Behdad Dec 16 '14 at 20:06
Sorry Behdad, I moved off the OSX stack, but given the previous information and error you posted, I think that they either renamed or removed that option entirely. I would look into seeing if you can enumerate the options available via the sysctl man page. – ConstantineK Dec 17 '14 at 17:50
@Behdad The net.inet.tcp.use_newreno variable enables or disables the use of the New Reno algorithm. The net.inet.tcp.newreno_sockets variable shows the number of sockets using the New Reno algorithm. – rob mayoff Mar 10 at 17:46

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.