13

Sometimes, I require a lot of bandwidth but do not want to disturb other's browsing experience.

At the university I'm often connected to networks for multiple users which requires me to limit my download speed.

Question

How can I limit my download bandwith?

gentmatt
  • 49,722
  • 1
    usually this is done outside your control by QoS (Quality of Service) software/hardware within your IT infrastructure, where it has been installed and setup appropriately. QoS makes sure that bandwidth is apportioned appropriately and that no one process hogs the bandwidth. Usually this is used on a client to make sure that essential network services always have required bandwidth to provide functionality. – Stu Wilson Mar 18 '12 at 16:53

1 Answers1

12

OSX provides ipfw to define custom firewall rules. Using this tool you can create a pipe with limited bandwidth.

When you assign the throttled pipe to a specific port, this port's bandwidth is limited.

Quick How-To

  1. Create a pipe "1" limited to 500KBytes/s via

    sudo ipfw pipe 1 config bw 500KByte/s
    
  2. Guide all network traffic of port 80 through pipe "1" using

    sudo ipfw add 1 pipe 1 src-port 80
    
  3. When you don't need the pipe anymore, remove it from the port using

    sudo ipfw delete 1
    

Other

  • If you want to set higher traffic barriers, you can use MByte/s
  • Port 80: standard port for unencrypted http traffic. This port is used for most browsing and downloading. You should be fine with this in most cases.
  • Port 443: standard port for SSL encrypted https traffic.
gentmatt
  • 49,722
  • This is such an excellent answer! Easy to use, goes away when you restart (so you can't accidentally screw up your computer), well explained, works for all apps. Still valid on Yosemite too. Thanks @gentmatt. – bronson Oct 26 '14 at 00:25
  • 2
    ipfw is deprecated since OS X 10.9 and removed in Yosemite https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/ipfw.8.html – clark Jan 07 '15 at 16:23
  • 3
    For OS X Yosemite you can use Network Link Conditioner (from Hardware IO Tools for Xcode). Read more in this answer: http://apple.stackexchange.com/a/164964/123568 – Davide Apr 26 '15 at 14:22