Slashdot Mirror


Ask Bram Cohen about BitTorrent

It's a clever P2P 'information broadcasting' concept, as the simple diagram on the BitTorrent home page shows. It's gotten a fair amount of notice, especially here on Slashdot. And reader Ignorant Aardvark wrote to us about BitTorrent sites disappearing, possibly because of RIAA/MPAA intervention, so this technology is now generating some controversy as well. The person behind BitTorrent is Bram Cohen, and he's agreed to answer 10 of the highest-moderated questions about BitTorrent you post here. So ask away (after reading the project FAQ and other info about BitTorrent and Bram, of course). We'll run Bram's answers as soon as he emails them back to us.

17 of 477 comments (clear)

  1. torrentse.cx by faust2097 · · Score: 3, Informative

    Torrentse.cx is down because it was originally supposed to be a semi-private [or at least obscure] site serving a medium-sized community of people. The problem is that it got so popular that the guy who runs it [the enigmatically named hello.jpg] went waaay over his bandwidth cap and shut it down to prevent him from going bankrupt. There is no RIAA/MPAA conspiracy going on.

    p.s. yo Bram, it's James.

    1. Re:torrentse.cx by HELLO.JPG · · Score: 5, Informative

      Actually the site is down because we're in the process of moving to a new server. Our wimpy 1.1GHz Celeron cannot handle being /.ed every other day.

  2. Re:python by Anonymous Coward · · Score: 5, Informative

    read his resume. I think you will find that your question is answered there.

    He seems to like JavaSCRIPT, Python, and not much C/C++.

  3. Partially Right by Zach+Garner · · Score: 2, Informative

    Supposedly, through user donations, they are moving Torrentse.cx to another server. The current server reached its bandwidth limit and Hello.jpg decided to just leave the site down until the new server is in place.

  4. Re:Why Python? by jamie · · Score: 4, Informative
    He already answered this to a large extent, in an essay on Advogato, How to Write Maintainable Code.

    "My favorite language for maintainability is Python. It has simple, clean syntax, object encapsulation, good library support, and optional named parameters."

  5. Re:Unofficial clients? by Anonymous Coward · · Score: 4, Informative

    Restricting upload speeds restricts download speeds. This is an absolute must-have feature for those of us on ADSL or other asymetric connection. I don't care if I stick my upload at 9 (rather than a full 12/13) and thus limit my download speed to about the same. Uploading at full speed throttles my whole connection, and that 3-4 left over lets me use the internet at almost full speed.

  6. not useful for that by boarder · · Score: 4, Informative

    The mistake you made was trying to use BitTorrent to download an oldish file. The way BT works best is when there is a /. effect occurring. When a new ISO of RH9 comes out, there is a bullrush to get it which overwhelms mirrors. BT solves this by having users DL from other users and the mirrors at the same time. Once the majority of users have DL'd the ISO's, they are going to close their BT client. It's been weeks since the RH9 ISO's came out, so most everyone has closed their client. This means you are mostly DL'ing from the seeding servers and not the users. The seeders aren't really built to handle massive bandwidth.

    BT is a temporary solution for getting high demand files. It works in an inverse supply-demand curve: the higher the demand, the higher the supply of bandwidth.

    --
    IANAL, but I play one on /.
  7. Re:Slashdotting by Zach+Garner · · Score: 4, Informative

    You could do that right now, if the browser supported it. BitTorrent can already automatically ship around a .zip file and unpack it.

    I absolutely hate it when people do this. BitTorrent works fine on directories without any help. Don't zip media files! Zip's compression does little for the filesize and, more importantly, you the downloader is unfortunate to only get part of the file, the Zip file remains corrupt. If you use Tar, at least, you can recover the portion of the files that you have downloaded.

  8. Re:Bandwidth Scaling by cdrudge · · Score: 3, Informative

    Ever try to download an ISO just after it's released? Basically you can't because the servers are overloaded. Every available amount of upload bandwidth adds just that much more that the ftp servers don't have. Sure it would scale much better if the outgoing pipes were as large as the incoming pipes. But since they aren't, the downloading will just scale back to the point where the outgoing pipes can supply the files.

  9. Re:most obvious question... by wavelet · · Score: 4, Informative

    No it was originally developed as a "regular" P2P application... a highly scalable way to download stuff.

    The first slashdot story on it was in March 2002, where its was used to distribute CodeCon 2002 .mp3s where Brian presented on bittorrent

    This is for CodeCon 2003:
    "CodeCon 2.0 is the premier event in 2003 for the P2P, Cypherpunk, and network/security application developer community.
    It is a workshop for developers of real-world applications with working code and active development projects."

    you get the idea...
    peek-a-booty (top 10 vaporware of 2001) was also presented at CodeCon 2002.

  10. Re:Are you a tool of Satan? - RTFM by Azathoth!EDC · · Score: 3, Informative

    If you're on a win32 box, you can run:

    "btdownloadgui.exe --max_upload_rate [X] --responsefile file.torrent"

    Where [X] is the rate of kB/s. This will throttle the bandwith available to BitTorrent.

    On a *nix box, I believe you just subsitute ".py" for ".exe"

  11. Re:Forward successful download stats to originator by Splork · · Score: 2, Informative

    easy: host the .torrent on your website and count its hits.

    semi-easy: run your own tracker for your content.

    the bittorrent tracker knows how many people attempted to download the content and how many people actually finished getting the whole thing (they become seed nodes).

    complaining that bittorrent messes up your hit counts is like complaining that someone taking your content and hosting it on another server to ease your load messes up your hit counts.

  12. Re:Yes! Finally! by jandrese · · Score: 2, Informative

    What are you talking about? I didn't want to check everything in your post because it sounds like crazy troll blather, but the torrent files for Slashdot effect victims ist still live and well. The Original site is live and well also.

    --

    I read the internet for the articles.
  13. Re:Please help NAT users... by shadowjk · · Score: 3, Informative

    I don't think BT even has the concept of push/pulk as such. I am behind my own NAT, and a firewall which denies all incoming connections, and I can use BT just fine.

    The way it works, it seems, is that BT requests peers from the tracker, the tracker gives a list of peers to connect to, BT connects to whichever of them are alive or reachable from that specific location on the Internet. After that, the BT clients tell eacother which parts of the file they have, and which parts they are interested in.
    I don't know specifics, but it seems that BT stays in contact with between 20 and 40 peers at one time, but only uploads to 4 at a time. The 4 which give the highest *download* to you back. i.e., if you have extremely fast upload to another peer, that peer will put you in its own first uploat slot, so that you get download from it. BT seems to continously 'test' the other peers that it isn't actively engaged in data transfer with, to see if any of them offer faster speeds, while prioritizing 'testing' peers it has recently established contact with.
    This results in, that when you first start downloading a file, it might take some time before other peers give you enough pieces to start uploading, and really get download speeds. The start-time seems to be between 5 to 10 minutes, by experience. I'm sure someone could come up with the statistical average for this based on the default BT settings :)

    Anyhow, what all this means, is that initially, the fastest hosts will find eachother, and distribute the file to eachother very quickly, after which, they will upload to the peers they get fastest upload to. (provided the user doesn't close the torrent)

    What this also means, is that, if you have alot of async users (such as ADSL and capped Cable), they will on average only get as much download as their upload, provided there are high-speed uploaders that can fill in the gap between the different asyncs. In a way, I suppose, the average download speed of async users equal the average upload of them, plus any high-speed users which provide a "boost". This makes it, of course, entirely possible, and not uncommon, to be uploading at a faster speed than you are downloading. This is not a bad thing, you're not selfish, are you?

    Anyhow, back to the original topic. As I've understood it, the tracker gives you IP's to connect to, of both completes, incompletes, and peers with nothing of the file. It's not technically "push" type connection, but in practice it is, since you'll most likely connect to a wide range of peers with different parts of the file you want.

    However, an issue NAT users could have is the number of connections their NAT machine allows them. BT uses between and 20 - 40 in default config, I'm told. If the NAT can only keep track of, say 5 or 10, per user, it might just drop the oldest connection, forcing BT to constantly connect to more peers, as the older ones are dropped. This of course makes it very problematic to maintain any sort of connection with BT, and thus you never see any download nor upload. Note that most NAT's just ignores packets they aren't keeping track of, so the connection would just time out, without the user getting any error messages from BT.

    Another issue is Windows 9x. Windows 95 and Windows 98 by default only allows 100 connections. Open 2 - 4 torrents, and you will exhaust this limit, creating sporadic errors such as ENOBUFS (Not enough buffer space). I don't know about more recent versions of the windows operating system, I've heard the max number of connections is artificially limited in some versions though, but don't take my word on it, I might just be spreading FUD :)

  14. Traffic shaping by swillden · · Score: 1, Informative

    Restricting upload speeds restricts download speeds. This is an absolute must-have feature for those of us on ADSL or other asymetric connection.

    This issue causes problems in other situations as well, but there's a simple solution for those on Linux or BSD: traffic shaping. I use Wondershaper, but there are a bunch of scripts out there that set this up for you, and it's actually not all that hard to do yourself if you're willing to spend a little time on it.

    The result is ping times and interactive responsiveness that don't change perceptibly regardless of the load. It does cost you a tiny fraction of your bandwidth, since the shaper intentionally leaves just a bit of unused space in your pipe so that new connections can start up, but the overall effect is a huge perceived performance improvement on a full pipe.

    --
    Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
  15. Re:Non-Linear Downloading by Anonymous Coward · · Score: 1, Informative

    Actually, you are wrong, that's how it DOES work. It gets the pieces at random, and also tries to keep one or more "distributed copies" so even if the seeders all disconnect, the full file is still "floating" between the clients allowing everyone to complete their d/l..

    PS. Editors, think you can fix Slash. AGAIN so when you use the back button after one of your stupid rules, you don't lose the post you wrote. I fucking know 12 year olds who can code better than that.

  16. Please stop posting links to trackers! by eaglebtc · · Score: 3, Informative
    Dear Slashdot editors,

    Will you please stop posting links to individual torrent trackers? They are already overloaded with bandwidth as it is, and getting slashdotted is not helping the situation.

    I belong to a very popular forum that found this article and has said some nasty things about ./ and its users, but I will not post them as I do not want to reduce my karma with flamebait material.

    Having said that, I strongly urge Slashdot's editors to think twice about posting the actual links (or any stories relating thereto) of torrent trackers.

    Respectfully yours, - Brad C.

    --
    Homestarrunner.net -- It's Dot Com!