Optimizing the Transmission Bittorrent Client for Speed

This guide shows how to speed up downloads in Transmission.  All bittorrent programs need to have their incoming and outgoing communications flow freely in order to achieve the highest download speeds and that is essentially what this guide is about.
This guide was put together using information given by the developers of bittorrent programs at their forums, guides and FAQs.  There are no secret tricks, just the real basics of proper set up of a bittorrent program.  Following these simple steps should result in increased download speed.
These are the basic principles of optimizing a bittorrent client, like Transmisssion, for speed: 
  • Choose a proper port to avoid ISP blocks and conflicts with other programs
  • Forward that port through any software firewall and router to allow incoming connections
  • Adjust internal settings based upon upload capacity of the internet connection to allow room for outgoing communications and to distribute upload efficiently. 
There are some programs that claim to optimize speed in Transmission.  Such programs are a scam and generally contain adware or spyware.  I have seen it said, by the developers of all bittorrent programs, that nothing will increase your download speed in a bittorrent client more than the basic steps set forth herein.
Note When viewing this guide in Internet Explorer the Mac command key symbol appears as a box.  I do not know why yet.

This guide is now for Transmission 1.33, thanks to the anonymous poster below who provided the screen shots.

Choosing A Proper Port

To avoid messing up a network connection that is already cleared, first check and see if your communications are blocked or are already clear.  Have Transmission running while testing the port.
Click to Test Your Port  Success-just go to Adjusting Internal Settings.   Error- follow all steps.
This setting in Transmission is at Preferences (? + ,) or (Ctrl+,)>Network -"Network: Peer listening port":
transmission-preferences-network-port-choice-location-image
If you failed the port test above, then you should first set your port to a proper one.  The most important choice here is to avoid using a port within the 6881-6999 range.  This was the range originally used by bittorrent programs and is often blocked by Internet Service Providers (ISPs).  (If your port was in this range, change and re-test). The safest choice is a port in the 49152-65534 range as this will avoid ISP blocks and possible conflicts with other applications.

Forwarding The Port

Introduction
A router will block incoming communications unless an exception is made.  All software firewalls will block incoming communications and most will also block outgoing communications, unless an exception is made.  If you are "firewalled", then other people will not be able to initiate connections with you (see Why Is Being Firewalled Bad).
As there are many firewalls and routers, this guide can not give explanations as to each.  However, there are guides available, on the internet for most firewalls and routers and this guide will link you to them.
Software Firewall - The permission should be set to allow TCP and UDP in both directions.  Generally, you will have a choice to set permission for  the Transmission port or for the Transmission program.  Setting permission for the port is the safer choice.  You can check these options for guides:
Router - There are two choices here.  The easier way is to use UPnP.  However, this has a possible security issue.  Using UPnP allows any program to create a port mapping through the router without consent of the owner.  Note:  Given the recent findings of Rapid7 regarding security flaws in UPnP, it is generally suggested here that manual forwarding be used.  If you still want to use UPnP, then it would be a good idea totest and see if your device is vulnerable to attack through UPnP.
The other choice is to manually forward the port through the router.  This does not have that security issue, but involves going through several steps to accomplish.  Using the guides linked herein, this should not be that difficult and is the preferred method.
UPnP (NAT-PMP in Apple) - The Easy Way -  Enable UPnP (NAT-PMP for Apple) in Transmission and router.
In Transmission this setting is at Preferences (? + ,) or (Ctrl+,)>Network "Automatically Map Port"
transmission-preferences-network-upnp-location-image
Manual Forwarding-The Preferred Way
  1. UPnP (NAT-PMP) must be disabled in Transmission (see Image above). 
  2. Use the Static IP Guide.
  3. Set permission for Transmission port.  This should be set to allow both TCP and UDP communications.
    You can check these options for guides: 
Click Here to Re-Test Port    Success-Proceed to next step.   Error- re-do steps or seek help in Forums.  Have Transmission running while re-testing the port.
Note:  Portforward.com does not have guides specific to Transmission.  Use the guides for Azureus/uTorrent and the screen shots from this guide.

Adjusting Internal Settings

Introduction
The  most important setting here is to cap upload in  Transmission to 80% of your overall upload capacity.   Setting upload in Transmission is a fine line.  The more upload you give, the more download you will get from other peers. However, if upload is set too high, or to unlimited, then download speeds will suffer as outgoing communications (acknowledgment signals, resend requests etc) will be interfered with. Other adjustments are made here to distribute your upload so that you receive back the most download from other peers.
First the upload capacity of your internet connection must be determined by taking an online speed test.  Speedtest.net has test locations worldwide and will highlight the one closest to you.
To take the test you must have Flash installed and javascript enabled.
Before taking the speed test, press Settings in the upper right of the speedtest.net page.  This will take you to another page.  At the bottom of that page is the "Global Settings" options.  Set "Speed Measurement" to kilobytes and press "Save" .  This will facilitate entry into the calculator below and will lessen confusion as Transmission  shows speeds in kilobytes.

speedtest-net-settings-button-location

speedtest-net-speed-measurement-kilobytes
speedtest-net-save-settings-button
You should stop all internet activity, including torrents, before taking the test and the test should be taken a few times to obtain a reliable average. Results will now show in KiloBytes. It is the upload rate that is important here.
speedtest-net-results-kilobytes
Another Way To Test Upload Speed
For most people these test results will be reliable (Comcast users see Note).  However, you may wish to do a double check on real life upload speed.  When you are active on a torrent with a good number of peers and you are using your upload cap, set upload to unlimited and watch for about 5-10 minutes and see where upload settles in at.  Then input that number into the calculator in the kiloBytes section. 
Note:  Some ISPs will show inaccurate results on the speed test.  If your ISP has anything like Comcast's PowerBoost, then your results will show higher than the actual speed of your connection.  PowerBoost provides a burst of download and upload speeds above your provisioned download and upload speeds for the first 10MB and 5MB respectively.  Since the speed test involves relatively small files, this will skew results upward.
If you have PowerBoost, or something similar, my findings from my own results and those of others is that the actual speeds are 60% of the test result.  So if you get 200kB/s for upload at the test, you should enter 120 in the kB/s box in the calculator.  Using Google ("speed result" x .6) will get the proper number to enter in  the calculator and this actually turns out to be very accurate.  You should end up with the calculator showing a cap that is about half of the test result.
Once you have an average upload speed for your connection go to the online Azureus Upload Settings Calculator. Although designed for Azureus, this calculator will work for all bittorrent clients.

This calculator was created by the8472 a contributor to Vuze (fka Azureus) and part of the team that createdBittorrent Protocol Encryption.
Enter your average upload speed in the appropriate box
azureus-upload-settings-calculator-kBs-entry-image
The calculator will automatically give the proper figures to adjust various options in Transmission
calculator-transmission-bandwidth-results
calculator-transmission-connections-results
calculator-transmission-queue-results

Input Results Into Transmission - Screen shots of locations in Transmission of settings to be adjusted
Preferences (? + ,) or (Ctrl+,)>Bandwidth
transmission-preferences-bandwidth-settings-image
NOTE:  The calculator will give a reading of "0" for download as this means "unlimited" for all other bittorrent clients.  For Transmission if you want download set to unlimited, then do not check the box to limit bandwidth for download.  The only box that should be checked is the one for "Upload rate" and the appropriate number from the calculator should be entered in the box.
The "Speed Limit Mode" is a scheduler and should not be enabled at this time.  If you are with and ISP that limits bandwidth usage at certain times of day, this would be useful.

Preferences (? + ,) or (Ctrl+,)>Peers
transmission-connections-settings-location-peers
The three options below the connections options should be enabled.  Peer Exchange (PEX) allows Transmission to seek seeds/peers outside of the tracker.  This will obviously help torrent health and speeds.  Transmission does not have DHT (Distributed Hash Table) capability at this time.  DHT, like PEX seeks additional seeds/peers outside of the tracker.  In my readings at their forum, it appears that there recently has been some work on this and it may be included in the future.  However, it is not one of their priorities.

The "Prefer Encrypted Peers" option means that Transmission will accept all seeds/peers, but will first attempt to contact via an encrypted connection.  Clients like Vuze/uTorrent will switch to encrypted automatically upon such contact.

The "Prevent known bad peers from connecting" option utilizes a blocklist of known anti-P2P IPs, to prevent them from connecting and possibly interfering with transfers.  I do not have information on setting up the list as of yet.
Preferences (? + ,) or (Ctrl+,)>Transfers>Management
transmission-queue-settings-tranfers-management
Transmission does not have the "Max Active Torrents" setting.  I would suggest using the Max simultaneous downloads figure from the calculator for both of these Queue settings.