Slashdot Mirror


Long-Awaited BitTorrent 4.0 Released

wintermute1974 writes "After sitting at a stable release of 3.4.2 since last spring, Bram Cohen's official BitTorrent client has been upgraded to version 4. In addition to its existing, rock-steady functionality, BitTorrent now sports a new queue-based UI. The revision details are on the BitTorrent site. Packets are now marked as bulk data too, which is significant considering that about a third of all Internet traffic is currently torrent data."

21 of 521 comments (clear)

  1. The 'bulk data' tag by Raindance · · Score: 5, Informative

    Since it's a decentralized standard, we'll need other clients to mark packets as 'bulk data' as well to get full benefits in routing from this. Since companies are starting to use BT commonly to distribute files in-game (or will, shortly), their code will need to be updated too. So, no magic bullet but a step in the direction of creating a heirarchy of data packets.

    I'm interested to see where this'll go-- will ISPs absolutely choke 'bulk data' packets and drive folks into using older or fringe BT clients to get faster downloads? Will this help solve VoIP realtime bandwidth issues? Will the 'good net citizen' vibe surrounding writing the 'bulk data' flag into ones code overshadow potentially making ones users into second-class net citizens?

    Or will this not be a big deal at all?

    Probably some of everything, I suppose.

    1. Re:The 'bulk data' tag by ip_fired · · Score: 5, Informative

      I'm interested to see where this'll go-- will ISPs absolutely choke 'bulk data' packets and drive folks into using older or fringe BT clients to get faster downloads?

      I don't think they'll choke "bulk data", because many other protocols mark their data bulk as well (ftp being one of them, if you have a modern client).

      It is very helpful to ISPs to have the bulk classification, so that their more time-sensitive data (ie, VOIP) doesn't get clobbered when someone starts using bittorrent.

      It's not like it's difficult to choke bittorrent traffic anyway, just look for communication on ports 6881 to 6888.

      If they do, it'll just make everyone remove the bulk flag, and then there will be no easy quality of service queing.

      --
      Don't count your messages before they ACK.
  2. Link and Changelog by perlionex · · Score: 4, Informative

    The actual link is to the download is here.

    The changelog:

    # 2005-03-07: 4.0.0 is now available.
    Changes since the last stable release:

    All new queue-based user interface Many options are now modifiable from the interface, including upload rate Lots of other interface improvements Extra stats are visible, for those who like it Remembers what it was doing across restarts New .torrent maker "btmaketorrentgui" replaces "btcompletedir" Better performance, as always License has changed to the BitTorrent Open Source License Torrent fields are correctly created and interpreted as utf8 Too many little things to list

    A few technical notes, for those interested:

    Single port: launchmany can seed and client can download many files from a single port and thread Interface now uses GTK instead of wxWidgets BitTorrent packets are marked as bulk data to make traffic shaping easier
    1. Re:Link and Changelog by NuclearDog · · Score: 5, Informative
      I'll translate the preamble to English...

      • The BitTorrent client and updates/etc are all covered under this license.
      • The license is considered a valid open source license.
      • You can give it (the software) away just by itself or on a cd/in a zip with multiple other programs. You don't have to pay royalties.
      • You have access to the source & binaries.
      • You can modify the source & fork the program.
      • Any modifications made to the program have to be licensed under this same license.
      • Use it however you want, but there is no warranty provided.
      • If you sublicense the code, you can charge for warranty/support or for offering indemnity for your customers, but the source must remain free.
      • If you file a patent claim against the BitTorrent software, you lose all rights under the license (right to re-distribute, etc.)
      • You can re-license any works you create based on the code, but you have to license it under an OSI-approved license that is compatible with this license.


      (Note: This may not be 100% accurate, IANAL, I am not responsible, etc, etc.)
      --
      This statement is forty-five characters long.
    2. Re:Link and Changelog by petard · · Score: 4, Informative

      fwiw, it's basically the jabber license with a couple of the restrictions lifted.

      HTH,

      petard

      --
      .sig: file not found
  3. Different License by Raindance · · Score: 4, Informative

    Also of note is that BT 4.0 is using a modified version of the Jabber Open Source License.

    It's complient with the Open Source Definition. Not huge shaking news it seems like.

  4. Re:Azureus rocks... by MicroBerto · · Score: 4, Informative
    Yes, Azureus does rock. It seems that the development has slowed down a bit recently, since the 2.2 series release.

    This makes sense though, because it simply works incredibly, and they're probably working on some bigger things now for a new version. It's stabilized quite nicely, better than any closed-source software out there lately!

    --
    Berto
  5. Re:Bulk data? by Anonymous Coward · · Score: 5, Informative
    Let's look at a few options vis-a-vis protocols that make use of TCP-IP. You have, for example Voice over IP (VoIP); Hypertext Transfer Protocol (HTTP); File Transfer Protocol (FTP); Network News Transfer Protocol (NNTP); Simple Mail Transfer Protocol (SMTP); Internet Relay Chat (IRC); and Secure Shell (SSH). (This list is not complete, but it's for illustrating the point, not to list every damn protocol on the whole Internet.)

    Now, taking these one at a time. VoIP has certain needs: it needs a certain amount of bandwidth, and its data must be transferred within a short period of time, or it becomes unusable. A VoIP connection is generally held for of the order of minutes, so quick setup of a connection is not a high priority. HTTP needs quick setup/teardown, because you have one connection for each file (typically kilobytes in size; yes, I know that later versions of HTTP can transfer multiple files within one connection), but latency is not a huge concern; bandwidth might be, depending on the data. FTP is an interesting beast: low latency and low bandwidth for commands, but high bandwidth and don't-care latency for data. Setup/teardown times not a major issue. NNTP needs high bandwidth, but latency is not a concern at all. SMTP usually needs low bandwidth, and latency isn't a major issue, as long as the message gets through. SSH needs low latency, but bandwidth needs are generally low.

    You have a relatively small pipe to the rest of the Internet. There are high demands on this pipe. How do you decide what gets pushed through, and what gets dropped, or delayed until later?

    BitTorrent marking its packets as bulk means that quality of service systems can say "These packets aren't of major importance; they can be deferred until later". So the short-term throughput of BT is reduced, for the benefit of others who need the pipe for applications like VoIP (for example). When those other applications reduce their demands, BT is able to transfer its data.

    The understanding is simple: the urgency in the transfer of data via bittorrent is low, so if bandwidth is at a premium, the routers can drop, or throttle, the bittorrent data to make room for high priority data. It's the same principle as FedEx uses: if you have stuff that needs to be moved FAST, you pay a price premium, and it gets moved on the next plane, bumping off some low-urgency, low-price cargo to the plane afterwards. If there's a lot of high priority and low priority traffic, such that the low priority traffic is building up faster than it can be moved, it's time for FedEx to buy more planes, or start not accepting low priority traffic -- or, in the ISP business, to buy a fatter pipe.

    Hope this helps.

  6. Control? by Chuck+Chunder · · Score: 4, Informative

    Look at the licence, it seems to me that's the "control" is something he certainly isn't overly interested in.

    He probably just wants to offer a product he can be proud of, maybe so people will appreciate his work and choose to support him.

    --
    Boffoonery - downloadable Comedy Benefit for Bletchley Park
  7. Re:Good to see progress... by mattkinabrewmindspri · · Score: 4, Informative

    Azureus runs just fine on OS X as an Aqua application. It's probably the best OS X BitTorrent out there.

  8. Re:GI JOE PSAs by Wescotte · · Score: 3, Informative

    Might as well link to the joke so...

    http://media.ebaumsworld.com/index.php?e=gijoe-c om puter.mov

    and more can be found at

    http://www.ebaumsworld.com/gijoe.html

    It's one of those were either you laugh your ass off or become disturbed at the amount of free time people have. Personally I laugh my ass off.

  9. Re:Initial impressions... by shadowmatter · · Score: 3, Informative

    There isn't much improvement to this client that will carry over to other clients. That is, this is not the second version of the BitTorrent protocol, as explained here. Bram has been pretty mum on the second version of the protocol, although the official developer forum has had some heated debates over how some of these features should be incorporated and what their parameters should be (note that, although at times heated, purely constructive ;).

    So if already content with Azureus or BitComet or whatever, nothing to see here... Move along folks.

    - shadowmatter

  10. Re:ABC by CammieCrookston · · Score: 4, Informative

    ABC is nice indeed. If you are an advocate of BitTornado, but prefer a single window for all of your downloads, ABC is the client for you. (It uses BitTornado as its core, so you get all of BitTornado + extra features + a single window).

  11. Re:Hmm by stratjakt · · Score: 5, Informative

    eXeem is a sloppy piece of crap, and a thinly veiled vehicle to get spyware and malware on your system (whse).

    Slashdot staff should be ashamed to have promoted it like they did. They did 2 or 3 articles about it, as if it were some great tech sent from the heavens.

    Besides the fact that the very notion of it is what's wrong with the internet, and why the government will eventually regulate the hell out of it. The entire point is to trade warez. I did an eXeem search for linux, and didn't get one result - so don't give me some bullshit about slackware isos. Society are like kindergarteners, they had a little freedom, and blew it. Now we're all going to be grounded.

    Actually, is that why michael left? It wasn't long after he "wrote" a couple "eXeem is great! get your warez on eXeem!" articles that he left.

    --
    I don't need no instructions to know how to rock!!!!
  12. Re:Bulk data? by Spy+Hunter · · Score: 4, Informative
    if bandwidth is at a premium, the routers can drop, or throttle, the bittorrent data to make room for high priority data.

    No. In order for users to voluntarily mark their packets as "bulk data", there has to be a benefit for them. That benefit is supposed to be higher overall transfer rate. The tradeoff is higher latency. So a router that receives a BitTorrent packet and a VOIP packet at the same time would send the VOIP packet first to reduce latency, and queue the BitTorrent packet for afterwards. But if the queue is full it would *not* preferentially drop the BitTorrent packet because that would reduce throughput. In fact, if the queue has many VOIP packets, the router should preferentially drop incoming VOIP packets, because it would not be able to send them with low latency anyway. This limits VOIP throughput, which is fine. In fact that's the result we want: VOIP = low latency low throughput, BitTorrent = high latency high throughput.

    At least, I hope this is how ISPs implement routing for packets marked as bulk data, because otherwise it will never be adopted.

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  13. Re:Azureus rocks... by dk01 · · Score: 4, Informative

    Yes Azureus does rock. Some of the features that have been around for a while are its support for pluggins. The one that seems to be most popular is its RSS feed reader. It monitors and filters RSS feeds for files that a user wants to have downloaded. This makes going on a several day vacation quite a bit easier. I use it to download my latest Al Franken Show from Air America. -dk

  14. Re:Looks Slick by r.muk · · Score: 3, Informative

    From http://www.torrentocracy.com/blog/archives/2005/02 /bram_cohen_unde.shtml
    Bram Cohen gave a technical talk on Bit Torrent at Stanford.

    Update: 3/7/2005, The torrent in this entry was just audio only, but Thomas Winningham has gotten permission from both Bram and Stanford ("Stanford holds copyright on the material but returns the copyright immediately to the speaker, that is, Bram. Get him to agree and go ahead.") to post their video as a torrent on Prodigem. Cool! Updated again since that video posted seems to only have the first 10 minutes. Anyway, the audio is below, or just check out my notes.

    Bram Cohen gave a technical talk on Bit Torrent yesterday at Stanford. I had planned to make video from it available, but the video I captured somehow got corrupted (boo Panasonic). I salvaged the audio from the video and have released that via a torrent under a creative commons license (with Bram's approval). The audio is a bit low. It's okay, though, as I didn't realize that Stanford would be making it's video available to the general public (though in crummy windows streaming format). Here are some notes:

    - Academic setting ... so how to benchmark/measure bit torrent
    - benchmarking is hard because it needs to be like the internet (buy a bad router)
    - key problem among swarming software is how to get everyone involved to maximize upload, people don't realize

    - Single seeder problem
    - must be careful not to at first trade with people who are likely to disappear

    - Bit Torrent extremely non-cooperative
    - each peer in it for himself
    - tit for tat
    - editorial note: isn't this cooperative? Peter Kollock: tit for tat as the optimal cooperative strategy

    - How to deal with people behind and not behind NAT

    - Centralized tracker is needed to produce randomized graph so as to avoid
    network segmentation
    - gossip (peers telling peers about other peers with content) very easily segments the network such that pieces of the content get isolated into islands

    - Choking Algorithm
    - sophistication
    - people like to pretend it doesn't exit
    - lots of use of made up magic numbers
    - eg. how long to wait for reciprication?
    - motivation opaque
    - methodology (the traditional approach) is Bram firing up a client and observing behavior
    - lots of room for study

    - TCP does not look like RPC calls (BitTorrent treats TCP like a black box)
    - don't avoid making a state machine, because no matter what you'll end up with a state machine anyway
    - why threads are a bad idea

    - Magic numbers
    - makes them up based on what works
    - pulls them from his "magic ass"
    - if you need a magic number feel free to ask him for one

    - Estimated Time Left Algorithm
    - never gotten any fan mail on how well it works
    - lots of effort and thought put into making this work sanely
    - any time you see a computer telling you time left it is lieing
    - research needs to be done on better algorithms
    - would gladly place your better algorithm into bit torrent
    - problem at end about going down 2 seconds per every 1 second
    - tradeoff between smoothness now vs. smoothness later

    - Current Transfer Rate Algorithm
    - its a mess
    - very important for tit-for-tat to work

    - Bad idea to be downloading too many torrents at one time (e.g. 5)

    - Peers at first never randomly tried new connections
    - added optimistic unchoke to solve this
    - if new person recipricates then continue
    - otherwise move on to the next person
    - may unchoke 4 or 7 clients depending
    - it's voodoo
    - nobody has seriously studied this

    - Piece Selection Algorithm
    - trade off between finishing the piece you are currently downloading vs going after a more valuable piece
    - priority is currently finishing a piece you started even if many others have it
    - downloading from the beginning of the content for everyone is a maximally bad strategy

    Q: Who has w

  15. Re:Azureus rocks... by uhmmmm · · Score: 3, Informative

    If you're downloading a lot, the overhead of running the one instance of Azureus needed to do that beats that of running, say, the dozen instances of the the official client, hands down.

  16. Re:Linux needs a gui alt to azureus by greg_barton · · Score: 3, Informative

    If you have a 3D video card, try activating opengl acceleration in java. From the script launching azureus, add the following command line property:

    -Dsun.java2d.opengl=true

    This will activate the opengl pipeline for Java2D calls. (Swing uses Java2D for all rendering...)

  17. Re:Bulk data? by Deven · · Score: 3, Informative

    In order for users to voluntarily mark their packets as "bulk data", there has to be a benefit for them. That benefit is supposed to be higher overall transfer rate.

    No, the benefit is that their Internet connection remains usable for interactive traffic instead of slowing to a crawl due to the BitTorrent traffic. (The overall transfer rate is likely to be the same either way.) You don't stop using the Internet just because you're downloading something, do you?

    If you're not using your connection for anything else, BitTorrent can max out the bandwidth, with or without the bulk data flag. If you have other traffic, the TCP/IP stack will have to make room in the stream of data for those other packets sooner or later -- and when those packets go through really won't affect the final download time because latency is of little importance. However, it may be critical to the other traffic, so it's best to label the bulk data to keep it from being prioritized before more urgent packets.

    Really, the only reason not to use the flag is because such traffic could be easily singled out for blocking. However, such action would be foolish, since people would just stop marking the data as "bulk" if that caused it to get dropped. This would cause all the bulk data to be transferred as if it were time-critical interactive traffic, defeating the value of the flag altogether. (Email can be marked as bulk email, but do spammers use that flag? Of course not! They know they'll be blocked.)

    It's best for everyone if all bulk data is labelled, the routers prioritize it intelligently, and nobody blocks bulk data transfers.

    --

    Deven

    "Simple things should be simple, and complex things should be possible." - Alan Kay

  18. Re:libtorrent by keytoe · · Score: 3, Informative

    While it doesn't include much in the way of a client, there is another C++ based library called - um - libtorrent (as opposed to LibTorrent mentioned above - note the caps) released under the BSD license. It doesn't really include a client (just a 'demo' CLI client that shows how to use the lib), but this is slashdot and we should all be able to write our own clients using other peoples' libraries, right?

    When I started writing my OS X client (Shameless plug: Hurricane. Early beta.) I shopped around for BT libraries and found libtorrent to be better documented than LibTorrent (Sheesh - could that naming issue be any more confusing?). Also, the developer community seems very receptive and active - always a good thing!

    Cool Features? Sure! It runs all torrents over a single port in a background thread, offers configuration and stats for damned near everything BT can do, 'fast resume' data for quickly restarting a download and various other niceties.

    And great documentation - a rarity for an OSS project ;)