Technology in terms you understand. Sign up for the Confident Computing newsletter for weekly solutions to make your life easier. Click here and get The Ask Leo! Guide to Staying Safe on the Internet — FREE Edition as my thank you for subscribing!

Are there any legitimate uses for peer-to-peer file sharing programs?

Question:

My son installed Torrent on the house computer. This of course, without
asking first as is the rule. This program slowed my computer down
so much that I could not get online. I found out that as it was downloading, it
was also uploading with unlimited bandwidth. I could not find any
information on what it was uploading. I dislike P2P because of past
experience with them, virus, spyware and the feeling I am stealing
from the programmer, this program was promptly uninstalled. Is there
any legitimate use for P2P programs?

This is a very sad case of some very amazing technology getting
smeared with a bad reputation because of how some people choose to use
it.

Absolutely, there are many legitimate uses for peer-to-peer (P2P)
file sharing programs like BitTorrent.

In fact, I wish it were used more.

]]>

In a traditional download there is one “master” server on which a file is placed, and then everyone wanting that file downloads it from that server:

Traditional File Download Using a Single Server
Traditional File Download Using a Single Server

Now, as you might expect, if a lot of people want that file, then the server can quickly become overloaded.

One solution is to “mirror” the file on several servers, and then somehow distribute the download requests across those servers:

Traditional File Download, Using Multiple Mirrors
Traditional File Download, Using Multiple Mirrors

This is still a “master copy” model; only a handful of servers hold the master copy of a file, and you must go to one of those servers to get it.

P2P does away with this distinction. The fundamental concept is this: given that many machines have downloaded a file, they each then make the file available to others directly from their machine. There is no “master” distinction, all the computers are equal “peers”, and any that have a copy of the file can offer that to any other computers looking for a copy of that file:

Peer-to-peer File Sharing
Peer-to-peer File Sharing

The advantages over normal file downloads are many. If a master file server goes down, you can’t get the file. If one of the peers in a P2P network drops off, you keep on getting the file from another peer. The bandwidth usage, rather than being focussed on a single master server is distributed across all peers, often resulting in faster downloads.

“… peer-to-peer file sharing is just a technology designed to optimize how bits (files) get distributed on the internet.”

In addition, the P2P protocols add some additional optimizations. For example, rather than downloading the file from start to finish on one connection, as you would in a traditional server based download, a peer may open connections to several other peers, each downloading separate parts of the file all at once. This typically makes much better use of bandwidth than a straight download. The moment any part of the file has been downloaded, that part can be immediately shared with other peers who don’t have it yet. Yes, this means that a machine could be sharing and uploading parts of a file that it hasn’t even completed downloading yet.

But hopefully by now you can see that peer-to-peer file sharing is just a technology designed to optimize how bits (files) get distributed on the internet. Nothing more, nothing less.

The fact that much of what is being shared might be in violation of someone’s copyright doesn’t alter the fact that the technology being used is valid and valuable.

For example, that same peer-to-peer software can be used to fetch the latest copies of many open source projects, such as Ubuntu Linux, other Linux distributions, and applications like OpenOffice. Since P2P works well for truly large downloads of things like entire CD or DVD images you’ll often find it as an option for these types of files.

By the way, my expectation is that the program slowed your internet connection down, not your entire computer. BitTorrent is designed to make the maximum, most efficient use of the internet connection that it can, often leaving it difficult for other computers or applications trying to share that internet connection. The good news is that almost all P2P file sharing programs have “bandwidth throttles” built in. This means that you can instruct them to limit their upload and/or download speeds to something less than your full connection speed, leaving bandwidth over for anything else you might like to do while files are being transferred.

Do this

Subscribe to Confident Computing! Less frustration and more confidence, solutions, answers, and tips in your inbox every week.

I'll see you there!

14 comments on “Are there any legitimate uses for peer-to-peer file sharing programs?”

  1. Hi Leo — What security risks do P2P downloads have? How do you know that one of the peers has not corrupted the file?

    A good thought, since it does happen. Most files are published not only with a link to the P2P downloading information or “torrent”, but also with an “md5sum” or “sha1sum”. This is a number that’s calculated based on the contents of the file. Once you complete downloading the file you use the md5sum or sha1sum tools to calculate the number of the file as you got it, and if it matches there have been no changes from the original.

    – Leo
    19-Jan-2009
    Reply
  2. Every file has a hash. If the file doesn’t match that of the original file everyone else is sharing (which is the same copy as the first, original upload), it will not be shared. In fact, the torrent will warn you that a file does not match and wont share it to other peers.

    As far as corruption while downloading.. It wont happen. The Transport Layer of the TCP/IP model insures that. If a packet is received corrupted, it will simply request the packet again and wait for it. TCP/IP insures that:
    * data arrives in-order
    * data has minimal error (i.e. correctness)
    * duplicate data is discarded
    * lost/discarded packets are resent

    Reply
  3. All of that still doesn’t mean that you can’t download a dangerous file. Many times a file is labeled with the name of a desired file only to contain a Trojan or worse.

    After downloading your file AND BEFORE OPENING IT, let your antivirus program take a look at it. This one extra step has saved my own @ss many times.

    Reply
  4. Interesting quick tip with bittorrent that I noticed that other day:

    If you are trying to download a torrent, and it suddenly becomes unavailable (and the download process turns “red” on the screen) then you can “repair your Internet” connection.

    To do this you right-click the Internet connection icon on the bottom right of your screen, in the “system-tray” (with XP).

    You then select the option “Repair Connection”.

    By repairing the connection it seems to force your computer to find new peers, and some of those new peers may then hold the parts of the file that you need.

    This technique works quite well for me.

    Reply
  5. Also… whenever I use bittorrent, I find that my Internet slows to a snail pace.

    This is probably because my computer is using the limited band width of my Internet connection to send out parts of multiple files, and make connections with many other bittorrent users (peers).

    If you want to see just how many peers you are connected to, you can use a couple of easy commands.

    When you reboot your computer, press Windows-R key to bring up the run prompt. Type “cmd”.

    Once you are in the command line, type:
    netstat -b

    That will show you all the connections you have to the “outside world”.

    Next, run your bittorrent program, and wait a few minutes. Then type that command again:
    netstat -b

    You will see yourself suddenly connected to people all around the planet — sometimes hundreds of them. The list can grow to be really long.

    If you want to disconnect all those people to speed up your internet again, once you are finished with Bittorrent, you can type these 2 commands:

    ipconfig /release
    ipconfig /renew

    Wait a few seconds before typing the second command.

    Also, sometimes after using bittorrent my internet connection seems glitchy for some reason. In those cases I “repair the connection” by right clicking the icon for the internet connection at the bottom right of the screen and selecting “repair connection”.

    That usually does the trick, and re-stabilizes my Internet connection and makes it quick again.

    The approach you outline is kind of like hammering in a thumbtack with a sledgehammer. Yes it’ll work, but it ain’t pretty and it’s totally unneccessary.

    Connecting to multiple computers is exactly how bittorrent and peer-to-peer file sharing is supposed to work.

    If bittorrent is slowing your machine down, then as I said in the article, look for a setting to cap the bandwidth you’ll use.

    And if you’re done downloading your file, then exit bittorrent completely. That’ll solve it too.

    But there’s no need at all to go mucking about with your network connection.

    – Leo
    20-Jan-2009

    Reply
  6. A couple of comments – firstly, one of the reasons that many people get download speeds that are less than advertised by their ISP is because of contention with other users ‘hogging’ bandwidth by file-sharing. A typical home broadband connection will have a contention ratio of 50:1, so you are already sharing your connection with up to 49 other people; it only takes a few of these to use Bit Torrent, Limewire, Azureus etc excessively and down goes your speed. Many ISPs are wise to this now, and will throttle your connection if you use P2P filesharing and may even impose penalties (including disconnection) if the abuse is too great. For this reason, it’s best to limit any P2P transfers to the hours between midnight and 6am.
    Secondly, most P2P software lets you limit the number of shared connections – best not to leave this as unlimited! 10 download, 5 upload is reasonable.

    Reply
  7. Hi Leo, thanks for your reply, and that interesting metaphor about me hammering my network connection with a sledge hammer! I like that visualization!

    Well, the reason I have been “hammering” my network connection in such an extreme way is because it remains slow even after I close my bit-torrent client (U-Torrent). I always make sure that I select “exit completely”.

    And yet, even though U-Torrent supposedly closes completely, the internet speed remains noticeably slower, and more sluggish.

    Interestingly, after I close the bittorrent client, and type “netstat -b” in the command line, I still see lots of open TCP connections to my computer.

    So far the only thing I know that fixes the issue, is to take the drastic step and “hammer” my internet connection with the trusty sledge-hammer of “repairing Internet connection”!

    Maybe my situation is unique and there’s something glitchy with the way my bittorrent client is operating, or the way I set up my network? (Admittedly I’m a complete amateur at home-networking, and I only just now bought some books on networking which I started reading.)

    Anyways… not sure if anyone else is experiencing this type of problem after they have opened and then closed their bittorrent client?

    I’d use task manager or process explorer to see if that bittorrent client is REALLY shutting down. I’ll bet it’s not.

    – Leo
    21-Jan-2009
    Reply
  8. I’ve stopped using BitTorrent for the reason that it slows my computer considerably when I do. It was so bad as to make a decent, tough a little old, computer pretty much unusable. I’ve not stopped using P2P though. I simply switched to UTorrent.
    I haven’t noticed nearly the problems with slowing the computer or my internet connection that I had with BitTorrent.

    AG

    Reply
  9. I find that BitTorrent and Utorrent suck. Vuze is far superior in speed and you can search inside of the program from several different bittorrent sites.

    Reply
  10. Actually, there are 2 ways that your internet may slow to a snails pace when using bittorrent..

    1. You are maxing out your upload speed. (easily fixed by capping your upload in your bittorrent client).
    2. You are surpassing window’s maximum allowed # of connections controlled by the tcpip.sys in your system32/drivers folder. (this is a precaution implemented by Microsoft to pretend the spreading worms from machine to machine post sp2)

    If indeed your upload isnt being maxed out, you might want to think of getting a cracked tcpip.sys file if you’re thinking about continuing with bittorrent. You will know if you are surpassing the max number of connections if you see Event ID 4226 in your Event Viewer.

    Reply
  11. One has to be careful when using bittorrents. Every search includes infected files, usually with different names, but similar sizes. After some experience a careful user can tell which ones are suspicious. My antivirus and firewall software have very good P2P shields and so far haven’t let one infected file pass through.
    P2P programs have to be configured to access only a dedicated folder otherwise private information can also be accessed by others. Copyrighted contents should also be avoided to be included. Legal action has been taken in some P2P sharing instances. Bandwidth U/D load limits, number of simultaneous uploaders permitted, chat options, search permits for other sharers should all be configured. Some of the P2P software programs can be still active even after exiting. Ctrl+Alt+Del window will usually indicate such a process in the process window, if not, in the network window. I have tried almost all of the bittorrent software and observed malicious behavior in one or two. If a user selects a good P2P software and configures it wisely, with P2P shields included, P2P file sharing is safe and sometimes invaluable.

    Reply
  12. I am an avid torrent user. One of the best things I did to speed up, or I should say, to manage, my bandwidth and stop the torrent client slowing down everything else was to install a program called CfosSpeed. this program gives you prioritising control over any Internet using software. You can allow certain protocols to have a higher priority on your bandwidth than others. for example, torrent programs are put on the lowest priority. this does not slow them down, it just means that, if another program like a web browser suddenly needs to use the bandwidth, then, as web browsers are set to the highest priority then the browser will always be able to just cut in and display pages as fast as it ever could, instead of what can happen if you have torrents going: The page cannot be displayed.
    You can set up the priorities yourself and so have complete control over what protocols and or programs have the most or least bandwidth.
    I don’t want to sound like I am trying to sell the program so let me just say there are now loads of similar programs out there and, I am sure I read there are also freeware ones too. I use CfosSpeed as it was one of the first of its kind and I have just stuck with it.
    If you googled for speed up torrents or packet control you may well find something else like it. Download.com or a big site like that is bound to have a freeware option.

    Reply

Leave a reply:

Before commenting please:

  • Read the article.
  • Comment on the article.
  • No personal information.
  • No spam.

Comments violating those rules will be removed. Comments that don't add value will be removed, including off-topic or content-free comments, or comments that look even a little bit like spam. All comments containing links and certain keywords will be moderated before publication.

I want comments to be valuable for everyone, including those who come later and take the time to read.