Java Clients (platform independent)
- Azureus - A full-featured Java BitTorrent client with many enhancements and features.
- snark 0.4 - Snark is an implementation of BitTorrent protocol that uses gcj, the GNU Compiler for Java. In addition to acting as a regular client, Snark also includes an integrated .torrent file creator, micro-HTTPd server, and tracker. With Snark the user can share files with a single command, without the usual hassle of installing a tracker, finding a web server, posting the .torrent file, etc. Compilation requires gcj 3.3 or higher; alternatively you can find a precompiled bytecode version here. See the home page for more information.
- Effusion 0.3 - Experimental Java client with IRC integration. See home page for details and usage.
- JTorrent 0.1 - This is a line-by-line port of the 3.0.2 python client/tracker to Java. It currently installs and runs under Windows and Unix, and requires the JRE v1.4 or greater. To install, download the installer and have a look at the README file. See also the project status README. Note that this is alpha-level code, so be prepared for bugs.
What other BitTorrent-related utilities are out there?
- TorrentSpy - Recommended! An MS Windows tool which allows you to query a tracker about a specific torrent, view metadata info, check a file's hashes, etc. A new feature is the "create" tab for making torrent files to upload.
- maketorrent - A utility for creating torrent files, by the author of the burst! client. Version 1.x of MakeTorrent was a modified version of the Python 'completedir' program with extra features. Version 2.x is a complete rewrite in Delphi. Highly recommended!
- completedir 1.0.1 - A utility for creating new .torrent files, part of the official BitTorrent client package. This is packaged as a Windows installer, get the source code for use with other platforms.
- BNBT - This is a C++ implementation of a BitTorrent tracker. It should compile under most any Unix with GCC available, as well as MS Windows with MSVC (binaries included.) It includes all of the functionality of the reference Python tracker, but it also includes many enhancements: user accounts, improved web interface, statistics, etc. See also the TrackPak for a bundled BNBT and installer that's easy to use.
- Java BitTorrent Tools - A metafile viewer/editor, availability checker, and a basic tracker.
- BTChange 0.94a - For modifying tracker info in an existing .torrent file. Use this if the tracker changes, so that you don't have to recreate the file. See also: Sourceforge page.
- PHPBTTracker - a free (GPL) tracker implementation in PHP with a MySQL back-end, includes built-in statistics collection and reporting. See also: sample output.
- DumpTorrentCGI - Use this handy web page to parse and output the contents of a .torrent file (from either your local system or a link URL.) Use this to quickly determine a torrent's hash ID or which tracker is hosting it.
- trackerlyze.pl 1.11 - A free (GPL) Perl script that analyzes the logfile of a tracker and creates graphs and reports of the bandwidth used and number of peers/seeds. See also: Home page.
- libbt - A library implementation of the BitTorrent protocol in C. This project is still under development, and is not suitable to end-users at this point.
I've installed BitTorrent, now what? There's no program to run!
BitTorrent is not like other peer-to-peer applications (such as Winmx, Kazaa, Gnutella, etc.) in that it does not have its own "universe." Put another way, BT lives on top of the Web, which means that all of the searching/listing of available files is done on the web. When you find a file you want to download, you click on it and the BitTorrent client program will run and ask you where to put it, and then start downloading. See the
links section for some starting points on the web if you're new.
I just installed BitTorrent but whenever I click on a link I just get a small file and nothing happens?
Try closing and restarting your web browser. When BitTorrent installs, it registers a new MIME-Type (application/x-bittorrent) and this change will not take effect until the next time the web browser is opened.
What is this Mandrake thing I'm invited to download after BitTorrent?
You don't need it. Mandrake is a full Linux distribution, a replacement Operating System. It is an example of the kind of thing that BitTorrent was designed to distribute -- large programs which, upon release, cause a flood of eager downloaders. In other words, it's not related to BitTorrent in any way, it's just something a lot of people might be interested in.
How do I uninstall BitTorrent?
MS Windows
Go to
Add/Remove Programs in the Control Panel. There should exist an entry for BitTorrent. If it's not there, suspect an incorrect install. You can always reinstall the latest version and then uninstall it.
If you know what you are doing, you can manually remove BitTorrent by deleting the directory C:\Program Files\BitTorrent\ (substituting the actual location of your Program Files dir) and removing the following registry keys:
- HKEY_CLASSES_ROOT\.torrent
- HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/x-bittorrent
- HKEY_CLASSES_ROOT\bittorrent
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\Uninstall\BitTorrent
Mac OS X
Simply drag the application to the trash. If you also wish to delete the preferences, trash the file ~/Library/Preferences/BitTorrent.plist as well.
What do all these words mean? (seeding, uploading, share rating, etc.)
Here is a brief list of words associated with BitTorrent and their meanings.
torrent Usually this refers to the small metadata file you receive from the web server (the one that ends in .torrent.)
Metadata here means that the file contains information
about the data you want to download, not the data itself. This is what is sent to your computer when you click on a download link on a website. You can also save the torrent file to your local system, and then click on it to open the BitTorrent download. This is useful if you want to be able to re-open the torrent later on without having to find the link again. In some uses, it can also refer to everything associated with a certain file available with BitTorrent. For example, someone might say "I downloaded that torrent" or "that server has a lot of good torrents", meaning there are lots of good files available via BitTorrent on that server. peer A peer is another computer on the internet that you connect to and transfer data. Generally a peer does not have the complete file, otherwise it would be called a seed. Some people also refer to peers as leeches, to distinguish them from those generous folks who have completed their download and continue to leave the client running and act as a seed. seed A computer that has a complete copy of a certain torrent. Once your client finishes downloading, it will remain open until you click the Finish button (or otherwise close it.) This is known as being a seed or seeding. You can also start a BT client with a complete file, and once BT has checked the file it will connect and seed the file to others. Generally, it's considered good manners to continue seeding a file after you have finished downloading, to help out others. Also, when a new torrent is posted to a tracker, someone must seed it in order for it to be available to others. Remember, the tracker doesn't know anything of the actual
contents of a file, so it's important to follow through and seed a file if you upload the torrent to a tracker. reseed When there are zero seeds for a given torrent (and not enough peers to have a distributed copy), then eventually all the peers will get stuck with an incomplete file, since no one in the swarm has the missing pieces. When this happens, someone with a complete file (a seed) must connect to the swarm so that those missing pieces can be transferred. This is called reseeding. Usually a request for a reseed comes with an implicit promise that the requester will leave his or her client open for some time period after finishing (to add longevity to the torrent) in return for the kind soul reseeding the file. swarm The group of machines that are collectively connected for a particular file. For example, if you start a BitTorrent client and it tells you that you're connected to 10 peers and 3 seeds, then the swarm consists of you and those 13 other people. tracker A server on the Internet that acts to coordinate the action of BitTorrent clients. When you open a torrent, your machine contacts the tracker and asks for a list of peers to contact. Periodically throughout the transfer, your machine will check in with the tracker, telling it how much you've downloaded and uploaded, how much you have left before finishing, and the state you're in (starting, finished download, stopping.) If a tracker is down and you try to open a torrent, you will be unable to connect. If a tracker goes down
during a torrent (i.e., you have already connected at some point and are already talking to peers), you will be able to continue transferring with those peers, but no new peers will be able to contact you. Often tracker errors are temporary, so the best thing to do is just wait and leave the client open to continue trying. downloading Receiving data FROM another computer. uploading Sending data TO another computer. share rating If you are using the experimental client with the stats-patch, you will see a share rating displayed on the GUI panel. This is simply the ratio of your amount uploaded divided by your amount downloaded. The amounts used are for the current session only, not over the history of the file. If you achieve a share ratio of 1.0, that would mean you've uploaded as much as you've downloaded. The higher the number, the more you have contributed. If you see a share ratio of "oo", this means infinity, which will happen if you open a BT client with a complete file (i.e., you seed the file.) In this case you download nothing since you have the full file, and so anything you send will cause the ratio to reach infinity. Note: The share rating is just a number that is displayed for your convenience. It does not directly affect any aspect of the client at all. In general, out of courtesy to others you should strive to keep this ratio as high as possible, of course. distributed copies In some versions of the client, you will see the text "Connected to n seeds; also seeing n.nnn distributed copies." A seed is a machine with the complete file. However, the swarm can collectively have a complete copy (or copies) of the file, and that is what this is telling you. Referring again to the
"people at a table" analogy, consider the case where the book has 10 pages, and person A has pp.1-5 and B has pp.6-10. Collectively, A and B have a complete copy of the book, even though no one person has the whole thing. In other words,
even if there are no seeds, as long as there is at least one distributed copy of the file everyone can eventually get a complete file. Meditate on this, the Zen of BitTorrent, grasshopper. choked This is a term used in the
description of the BitTorrent protocol. It refers to the state of an uploader, i.e. the thread that sends data to another peer. When a connection is choked, it means that the transmitter doesn't currently want to send anything on that link. A BT client signals that it's choked to other clients for a number of reasons, but the most common is that by default a client will only maintain --max_uploads active simultaneous uploads, the rest will be marked choked. (The default value is 4 and this is the same setting that experimental client GUI lets you adjust.) A connection can also be choked for other reasons, for example a peer downloading from a seed will mark his connection as choked since the seed is not interested in receiving anything. Note that since each connection is bidirectional and symmetrical, there are two choked flags for each connection, one for each Tx endpoint. interested Another term used in the protocol specification. This is the corollary to the choked flag, in that interested refers to the state of a downloader with respect to a connection. A downloader is marked as interested if the other end of the link has any pieces that the client wants, otherwise the connection is marked as not interested. snubbed If the client has not received anything after a certain period (default: 60 seconds), it marks a connection as snubbed, in that the peer on the other end has chosen not to send in a while. See the definition of choked for reasons why an uploader might mark a connection as choked. The real function of keeping track of this variable is to improve download speeds. Occasionally the client will find itself in a state where even though it is connected to many peers, it is choked by all of them. The client uses the snubbed flag in an attempt to prevent this situation. It notes that a peer with whom it would like to trade pieces with has not sent anything in a while, and rather than leaving it up to the optimistic choking to eventuall select that peer, it instead reserves one of its upload slots for sending to that peer. (
Reference) optimistic unchoking Periodically, the client shakes up the list of uploaders and tries sending on different connections that were previously choked, and choking the connections it was just using. You can observe this action every 10 or 20 seconds or so, by watching the "Advanced" panel of one of the experimental clients.
Where can I go for support or to ask questions?
See the
Links and Resources section of this page for mailing lists, web sites, forums, etc.
What ports does BitTorrent use? Will it work with a firewall/NAT?
The quick summary: You need to forward your ports if you have NAT in order to get the fastest speeds. This is probably the most common thing that people fail to do when using BitTorrent. Read on for more details of what all this entails, and if it's something that you need to do.
Prior to version 3.2, BitTorrent by default uses ports in the range of
6881-6889. As of 3.2 and later, the range has been extended to
6881-6999. (These are all TCP ports, BitTorrent does not use UDP.) The client starts with the lowest port in the range and sequentially tries higher ports until it can find one to which it can bind. This means that the first client you open will bind to 6881, the next to 6882, etc. Therefore, you only really need to open as many ports as simultaneous BitTorrent clients you would ever have open. For most people it's sufficient to open 6881-6889.
The port range that BitTorrent uses is configurable, see the
section on command line parameters, specifically the --minport and --maxport parameters.
The trackers to which BitTorrent must connect usually are on port
6969, so the client must have
outbound access on this port. Some trackers are on other ports, however.
BitTorrent will usually work fine in a NAT (network address translation) environment, since it can function with only outbound connections. Such environments generally include all situations where multiple computers share one publicly-visible IP address, most commonly: computers on a home network sharing a cable or xDSL connection. If you are unsure of whether you have NAT or not,
then try this link which will try to determine if you are behind a NAT gateway.
However, you will get better speeds if you can accept incoming connections as well. To do this you must use the "port forwarding" feature of whatever is performing the NAT/gateway task. For example, if you have a cable or DSL connection and a router/switch/gateway/firewall, you will need to go into the configuration of this device and forward ports 6881-6889 to the local machine that will be using BitTorrent. If your device makes it hard to enter a range of ports (if you must enter each one separately), then you can just do the first 10 or so ports, or however many simultaneous clients you plan to ever have open. If more than one person behind such a gateway wishes to use BitTorrent, then each machine should use a different port range, and the gateway should be configured to forward each port range to the corresponding local machine.
If you have one of these broadband router/NAT devices (such as the Linksys BEFSR41, D-Link DI-701/704, Netgear RT311, SMC Barricade, 3Com Home Ethernet Gateway, etc.) you will usually need to enter the web configuration of the device. If you're not sure, try
http://192.168.1.1 or sometimes
http://192.168.0.1. If you can't figure it out, try the manual for the device -- they are often on the manufacturer's web site in PDF form. You can also try the forums at places like
Broadband Reports or
Practically Networked. To see an example of what you're looking for,
this is a link to the Linksys BEFSR41 manual. Look at page 55, under the section "Port Range Forwarding."
If you are using Microsoft's ICS (Internet Connection Sharing),
this article on mapping ports might be useful.
If you are using a software firewall, then you must also enable incoming connections to be answered by the BitTorrent client program. Note that Windows XP includes a primitive firewall ("Internet Connection Firewall" or ICF) which you may have to configure for BitTorrent. Here are the directions for opening ports in the
Windows XP firewall:
- Open the 'Network Connections' folder (click Start, then Control Panel, then Network and Internet Connections, then Network Connections.)
- Click the shared connection or the Internet connection that is protected by Internet Connection Firewall, and then, under Tasks, click Change settings of this connection.
- On the Advanced tab, click Settings.
- For each port you wish to forward, (i.e. 6881, 6882, ... 6889) do the following:
- On the Services tab, click Add and enter all of the following information:
- In Description of service, type an easily recognized name for the service, such as "BitTorrent".
- In Name or IP address of the computer hosting this service on your network, enter 127.0.0.1 (this means "the local machine.")
- In both External and Internal port number for this service, enter the port number, e.g. 6881.
- Select TCP, then OK.
See this link or this link for more information about the XP firewall.
If you are running another type of software firewall (such as Zone Alarm Pro, Norton Firewall, McAfee Firewall, BlackICE Defender, etc.), you may have to do something similar to allow inbound access on ports 688x to the BitTorrent client (usually
btdownloadgui.exe.)
For example, in
Zone Alarm Pro, in the Program Listings, click on the program's name (btdownloadgui.exe) and then click the
Options button and then enter the ports to use. If you're having trouble connecting, you might try giving BitTorrent access to all ports.
To open ports in the
Mac OS X firewall, do the following:
- Open System Preferences.
- Click Sharing.
- Select the Firewall tab.
- Click the New... button.
- Click the popup menu in the dialog that appears, and choose Other....
- In the Port Number, Range, or Series field, enter 6881-6999.
- In the Name field, enter BitTorrent (or any other identifying string.)
- Click OK.
Can I use a proxy server with BitTorrent?
First, note that there are two types of connections that the BitTorrent program must make:
- Outbound HTTP connections to the tracker, usually on port 6969.
- Inbound and outbound connections to the peer machines, usually on port 6881 and up.
A web proxy can only be used for the first type of connection, since the second type is not HTTP. Theoretically, you could use the HTTP CONNECT command to tunnel them through an HTTP proxy, but this would require additional code support in the client. There is a possible workaround for this scenario, however; see the final point below.
That having been said, here is how to configure an HTTP proxy for the tracker connections:
- If the proxy does not require authorization, the system-wide proxy configuration should work. For Windows, open the Control Panel select Internet Options, click on the Connections tab, select your connection and click Settings... (or Lan Settings... if you have a direct connection.) Make sure the Use a proxy server option is selected and enter the proxy's address and port.
- If your proxy requires basic authorization, set the http_proxy environment variable to http://username
assword@hostname
ort, where username and password are your login and password, and hostname
ort is the address and port of the proxy server. If you don't know how to set environment variables, there are instructions for Windows on this page by Mike Ravkine (krypt).
- If your proxy requires NTLM authorization (a Microsoft-proprietary scheme), you may have to use a third party program. Fortunately there is a utility called NTLM Authorization Proxy Server. It is a program you run on your local machine that acts as a proxy for your proxy. In other words, it takes the (unauthenticated) proxy requests from the application (BitTorrent) and forwards them on to your organization's proxy, adding the necessary NTLM authorization. It is written in Python and available as source, so you must install Python on your computer before running it. Refer to the home page for more information.
- If you are in a firewalled environment where NO outbound connections are allowed except those through an HTTP proxy, you will have difficulty using BitTorrent. One method which might work is as follows: The desproxy program can serve as a SOCKS 4 or 5 server than tunnels requests through the proxy server. Then use SocksCap to "socksify" (intercept the network calls and redirect them to the SOCKS server) the BitTorrent program. See below for a few notes about SocksCap. Note: If you get this method to work, please report your steps and results so that I can improve this part of the FAQ. Thanks.
What if I need to use SOCKS to access the Internet?
Look into a program called
SocksCap. It can be used to socksify any normal program. The complication here is that you have to give SocksCap a command line to run, and the btdownloadgui command line will be different for each torrent. One suggestion would be to setup a command line in SocksCap of btdownloadgui.exe --responsefile "c:\downloads\file.torrent". (Substitute any suitable directory in the command.) Now, when you want to open a torrent, save it as "file.torrent" in "c:\downloads" (or whatever you used) and then run the command in SocksCap.
BitTorrent says I'm uploading, what files am I sharing? What's being sent?
Don't worry. When you are downloading a particular torrent, you are also uploading that torrent at the same time. The parts of the file(s) that you have already downloaded are uploaded to other peers. This is normal, and it's how the protocol works. There is no "shared directory" setting as with other peer-to-peer applications. If you have a certain file (or files) that you want to make available to others, you must first create a .torrent file and upload it to a server, and then seed the file. See the section
creating a new torrent for the detailed procedure.
What happens if I cancel a download? How can I resume?
BitTorrent fully supports stopping and later resuming a partial download. You don't have to do anything special. If you cancel a download before it's finished, the partial download remains on your hard drive. To resume the transfer, just click on the same torrent link again and when asked where to save the file, select the same location as last time. BitTorrent will see that the file exists and check it to see how much has already been downloaded. It will then pick up where it left off the last time. See also the
section regarding file size.
Note: To resume properly, you must make the same selection when prompted as you made the first time. For torrents consisting of a single file, this is rather straight-forward: simply select the file. However, torrents that consist of a folder of multiple files can be a bit more confusing. To resume, you must select the folder that
contains the BitTorrent folder.
Here's an example of resuming a folder-type torrent. Let's suppose that you downloaded a torrent called SomeCoolBand, and selected to put it in the folder Downloads. So your directory structure resembles something like \Downloads\SomeCoolBand\file1, \Downloads\SomeCoolBand\file2, and so on. The important part of this example is that should you resume this transfer, when asked to select a destination folder you must select the \Downloads folder and
NOT \Downloads\SomeCoolBand. It may seem a bit counter-intuitive, but just remember to always make the same selection as the original choice. When you first started the transfer there was no SomeCoolBand folder; you instead selected \Downloads and BT created the SomeCoolBand folder.
Why is my downloaded file huge even though I only downloaded a small bit?
When BitTorrent starts, it allocates space for the entire file(s). That is what you see at startup as the progress bar moves across the screen and the disk drive goes crazy. The reason it does this is because it downloads the file in pieces, and those pieces arrive in an arbitrary order. Unlike http or ftp, which download the file from start to finish, BT downloads it in random order.
Why does my hard drive go crazy at the beginning of a resumed download?
When you open a torrent and give BitTorrent a filename/directory that already exists, it must check the file to see how much of it is useful data and how much is junk. (Recall that BT allocates space for the entire file when you first start a torrent.) To do this it must read the entire contents of the file, and generate what's known as a hash for each piece of the file. A hash is a cryptographic function that creates a small summary or digest of a large amount of data. BitTorrent uses the SHA hash function to determine which parts of the file are good and which are bad.
What is seeding? How do I do it? Why should I leave the client open after it finishes downloading?
First, you may want to review the
answers to the question on terminology. A seed is a client which has a complete file. Seeding is the process of connecting to a torrent when you have a complete file. There are two ways to do this:
- ...by leaving your client open after the download completes. Once you have the entire file you become a seed, and the BitTorrent client remains connected to the swarm, sending to other users until you close it.
- ...by clicking on a torrent link (or opening a saved .torrent file) and selecting a filename of a file that has already completed. BitTorrent will check over the file and realize that it's already complete, and continue to connect to the tracker and serve as a seed.
It's generally considered a good idea to leave your client open as long as possible, since it helps other users. Some communities have guidelines on when it's permissible to disconnect, typically after the ratio of bytes received to bytes sent reaches 1:1, or 24 hours after the download completes. Please be nice, and do what you can to contribute to other users.
I'm getting an error message, what does it mean?
The best thing to do in general if you're having connectivity problems is just wait. Often trackers are unavailable or slow to respond, usually due to high load or sometimes DDoS attacks. Some torrents can take a while to get up to speed, so patience is a virtue. That being said, below are some common error messages with explanations and what to do about them.
Note: Often you will get a red error message when there's a problem connecting to the tracker, but the client will keep on retrying. This is normal. It can result in the download progressing normally and successfully, even with an error message displayed on the screen. Make sure to note the time-stamp on the error, and if it's more than 5 to 10 minutes old, you can ignore it. The newer versions of the experimental client "age away" the error messages after 5 minutes to deal with this situation.
Problem getting response info - [Errno 2] No such file or directory: "C:\\Documents and Sett..." For some reason, Internet Explorer sometimes doesn't save the torrent file in the Temporary Internet Files directory properly. The solution seems to be to right click on the link and choose
Save As..., and save the torrent file to disk, and then double-click the file to launch the client. Clearing the IE cache seems to help if this problem is recurring. It seems to be related to torrent files with square brackets (']' and '[') in the filename. Too many args - 0 max. This error in indicative of a bad command line. See the section on
setting the command line and ensure that the arguments to the BitTorrent program include --responsefile "%1". A piece failed hash check, re-downloading it This is a benign message, you can safely ignore it. It means that you received a piece of the file that didn't check out as being correct, so it will be downloaded again. Probable cause of this might be someone incorrectly using the "skip hash check" option. bad data from tracker - Usually you can ignore this, it seems to happen when the tracker is overloaded or otherwise flaky. Problem connecting to tracker - timeout exceeded Problem connecting to tracker - HTTP Error 503: Connect failed Problem connecting to tracker - [Errno socket error] (10061, "Connection refused") Problem connecting to tracker - (111, 'Connection refused') There was a problem contacting the tracker. Trackers tend to be heavily loaded, and connections sometimes fail. The best thing to do is just be patient and leave the client open. If you find you're getting this a lot, you can try increasing the HTTP request timeout by adding the parameter "--http_timeout 120" (the default is 60, unit is seconds.) See the
section on changing the command line if you need help doing this. Problem connecting to tracker - HTTP Error 400: Not Authorized This indicates that the administrators of this tracker are not allowing it to be used for this torrent. Some trackers will only track torrents that are also posted in their forums/website, for example. Usually this indicates a stale torrent -- try going to the web site associated with the tracker and see if you can find an updated torrent. Problem connecting to tracker - HTTP Error 404: Not Found Probably a stale torrent. Try to find a new link to the torrent. Problem connecting to tracker - HTTP Error 407: Proxy Authentication Required You may need to configure a username and password for your proxy server setting in order to contact the tracker. See
this section for details.
What can I do if I get a blue screen error, spontaneous reboot, or lockup?
Some network cards and DSL modems have buggy drivers. Common symptoms include a blue screen (with a DRIVER_IRQL_NOT_LESS_OR_EQUAL error) or a spontaneous reboot. Here are some common culprits:
- Linksys LNE100TX model 5, Linksys NC100, Skymaster SK1207E, Planex FNW-9803-T, or any other network card based on the AN983B chipset by ADMtek, sometimes also sold under the no-name "Asound" or "Fast" brands. Note that this includes some motherboards' built-in Ethernet controllers, such as: MSI (Microstar) MS-6378, DFI NS70-EL & AZ30-EL, USI PM-845, Fujitsu D1451. The solution seems to be to install one of the following drivers from ADMtek: Windows XP, Windows ME/2000, Windows 98. These are drivers from the chipset manufacturer and are Microsoft certified. Use these drivers in place of any other driver for those cards, including the latest version from Linksys.
- Netgear FA311 - Try this version (1.30) of the drivers from Netgear.
- Netgear FA312 - Seems to have the same problem as the FA311, but try this version (1.8) of the drivers instead. (Note that this driver should work with both the FA311 and FA312, so also try it if you have the FA311 and the above driver doesn't work.)
- Alcatel Speed Touch USB DSL modem - Install these drivers.
If your network interface card (NIC) or DSL/cable modem were not listed above, then check with the manufacturer's website and make sure you have the latest drivers.
My internet connection drops, often during very fast downloads. What can I do?
This issue is still unresolved, but my guess is that it's due to buggy firmware in the xDSL/cable modem or router. Reports