Tuesday, August 2, 2005

Blizzard Downloader Forces Seeding?

So, I decided to bite the bullet and purchase the much vaunted World of Warcraft (WOW) by Blizzard. If you don't know what WOW is, well then you're probably living under a rock. Regardless, after purchasing the game, I created an account and used another installation to play my account for a few hours. Once I got home and had to install the game myself, the requisite waiting and patching ensued.

The blizzard updater uses a system based upon the very popular BitTorrent (BT) peer-to-peer distribution mechanism. In essence, your client talks to other users downloading the same file and randomly exchanges parts that you have for parts that they have. It's a quite beautiful system because the more popular a file is, the more people there are to download it from and everybody works together to get everybody copies of the file.

One problem that plagues most bittorrent distributions is the lack of what are called seeders. Seeders have a copy of the entire file and therefore can serve up any block you are missing. Without a seeder in the peer group, only those blocks that are in the network will eventually be copied everywhere. It would seem that in order to ensure there are enough complete (or nearly complete) sets of blocks exist in the Blizzard/WOW/BT network, the client has some magic.



While I was downloading, my transfer rate was around 300KB/s, this rate enabled me to receive the majority of a 150MB+ file in a very short period of time. The counter showing the upload rate hovered in the tens the whole time. This is consistent with my experience using the more mainstream BitTorrent clients. However, where things went sideways was when the file had downloaded 99%. At that point, with right around 1.6MB to go, my download rate dropped to 0KB/s while my upload rate remained at what it was prior. I let the program run for a while thinking it was some sort of glich, but then I clicked the box disallowing peers.

Now this may be an artifact of my download experience combined with my paranoid mind, but I suspect that Blizzard has designed its client so that it waits with a 99% download for a while to allow its users to continue sharing blocks when they would otherwise hit the 'finished' button, and then go patching and play. It makes perfect business sense to hold your users hostage with a nearly complete patch and thereby maximize the availability of the data they have to other users, it just seems a tad underhanded to do it without disclosing it--if this is actually occurring.

I only have a strong suspicion at this point, and until another patch is due out I won't know for sure, but for now, I'm going to be watching my updater very carefully. Unlike most WOW users, I'm actually looking forward to the next update. I hope it's a big one.

12 comments:

  1. I think your right on this one. Also what is kinda frustrating is at 99% if you try disabling p2p it wont get the last bytes from the http server.

    Im missing the last 1% of patch 2 of tbc, kinda frustrating since the 2.8gb file already took a day.

    ReplyDelete
  2. what makes me mad is that thanks to BT technoligy Blizzard gets to charge us $$ for the subscription yet at the same damn time there passing of "PATCH" Bandwidth to the end consumer. NOT FAIR BLIZZ. IF your gunna charge us monthly fee's then set up servers to handle the load not put the load on other users!.

    ReplyDelete
  3. For a 3rd download in a row now, stays at 99% and will now download from the HTTP.

    ReplyDelete
  4. There sure are some strange goings on with this damn software.

    I use BitTorrent frequently, so I know roughly what to expect when using uTorrent and such. This morning, I downloaded a 1.79Mb patch. Why then, did the Blizzard client download 23Mb of data?

    It is not impossible, but very unlikely, that it was multiple hash failures in corrupt chunks. I think, along with the 99% forced seed issue, there are some underhand things going on from Blizzard.

    It really does look like they are manipulating the users bandwidth. =(

    ReplyDelete
  5. it also happens to me, but havent seen this before..
    could it be fake seeders which not are blizzard's?

    ReplyDelete
  6. If you use a router, it _could_ be an unlikely scenario preventing the last packet to be properly sent to your computer: If your IP and the data of the packet form a specific pattern, your router modifies it, thus the packet is now modified and doesn't help the file finish. This last packet will be sent again and again, but the router would mangle it again and again. If you get a new IP, the packet could pass.

    More Information:
    http://www.azureuswiki.com/index.php/99

    ReplyDelete
  7. What also sucks is they use the downloader for non-patches as well, such as the new Starcraft 2 videos. There are a TON of seeders for these, and in fact for long periods of time I will only be connected to seeders or other 99%. This means it becomes nearly impossible to finish the download as there is no one to seed to! Just sits at 99% with 0 download and 0 upload speed. I can kinda understand the forced seeding, but when all peers are saturated, just let it finish!

    ReplyDelete
  8. You can get around this by canceling the download, then restarting it and disabling peer to peer transfer. It will verify what you have already downloaded and then download the rest from the HTTP server. It seems there is a limit to how much you can download from the HTTP server in one sitting (around 700 MB for me). But once you restart it will start from scratch.

    ReplyDelete
  9. Well, I am downloading the WRATH OF THE LICH KING BETA. I AM STUCK AT 99% DOWNLOAD AS WELL. DOWNLOAD RATE COMPLETELY ZEROED, UPLOAD STILL GOING, I'VE UPLOADED 2.46 GB, ISN'T THAT ENOUGH? UGH... CANCELING WOULD SUCK REAL BAD IF I HAD TO START ALL OVER!

    ReplyDelete
  10. If you cancel mid-DL and restart it. It will accelerate through the already downloaded material until it catches up with your last point. It usually takes about 5-60 seconds.
    Crappy downloader regardless.

    ReplyDelete
  11. I have been downloading this now for 112 hours and did not appreciate seeding 3.99 Gb, more than i downloaded by far! (3.27Gb) while being stuck at 99%.

    As suggested, I turned p2p off, cancelled mine and restarted it, it caught up with itself by checking in about a minute, and downloaded the extra in a few seconds from the HTTP server n problem.

    Good fix! :D

    ReplyDelete
  12. Another thing I noticed is that other then playing tricks with forced seeding, while downloading they don't give you the option to limit upload speed either.

    By maxing out your upload, they hamper your download considerably.
    Even in µTorrent, possibly one of the most performant BT clients out there, if you leave your upload at unlimited, your download won't even be half of what it could be if you limited a say 50KB/s upload pipe to 30KB/s

    Because of their annoying upload policy, I've been downloading 3.2 at a speed of 50KB/s (including the HTTP DDL) while I'm uploading at 77KB/s.

    Even if they only allow me to limit my upload to 70KB/s I'd be dlding at full speed (650KB/s for me).

    ReplyDelete