The problem that it solves is that when you are uploading something utilizing all your upload bandwidth, surfing or downloading comes to a grinding halt because the acknowledgment packets can't be sent in a timely manner since your upload pipe is saturated. Carrafix allows you to set a delay between packets that are being sent on a specific port. This basically allows you to control how fast data is sent on that port which leaves time/bandwidth for other things.
I thought that was cool, but I do most of my file transfers using FTP. When I'm uploading stuff to my servers, all other network traffic bogs down to the point where it's pretty useless. I came up with a way to use this same program to throttle back ftp transfers.
Read the rest of the article for the how-to...
Carrafix allows you to specify a TCP/UDP port to throttle. You might think it would be simple then to throttle port 21, which is the ftp port by default. That would be true except that port 21 is not the actually port used during uploads. It is just the port used for the FTP protocol. Every transfer creates a new and random port. Nothing in the FTP transcript tells you what the port is either. I found another app called IPNetMonitorX [$40 shareware] that has a feature called connection list. This will tell you the port that your ftp connection is using once it is established:
TCP ESTABLISHED My_IP:54355 server_IP:56260 FTP_ApplicationIn this example, I entered 54355 into CarraFix, and I had full control of the upload bandwidth. My DSL connection gives me a max upload speed of about 30-35k. I throttled the transfer back to about 20k, and now my surfing and downloads where back to their full 150k. Without throttling I could only get 15k down since the acknowledge packets never made it back to the host in a timely manner.
I hope this helps others as much as it's helped me.

