Do you wish you had a fatter upstream pipe for Bit Torrent?
June 11, 2004 8:42 PM   Subscribe

Those of you who have gotten way into Bit Torrent: have you found yourself wishing your internet connection had a fatter upstream pipe? According to this FAQ: "Sometimes, limiting your upload rate will increase your download rate ... If you are seeing very high upload rates and low download rates, this is probably the case. The reason this happens is due to the nature of TCP/IP -- every packet received must be acknowledged with a small outbound packet. If the outbound link is saturated with BitTorrent data, the latency of these TCP/IP ACKs will rise, causing poor efficiency." [MI]

I use burst! as my GUI app. It allows me to set my outbound bandwidth at a maximum of 10Kb/sec for any single download, but I can't set it any lower. Unfortunately, with 5 torrents leeching at once, this leaves my outbound pipe pretty saturated, around 50Kb/sec outbound, and my download pipe suffers horrendously.

It would be nice to be able to view web pages, for example, while BitTorrent runs in the background. It seems retarded: I may only be downloading a total of 15-20Kb/sec on Bit Torrent, but it chokes me completely, even though normally I can get up to 400Kb/sec download on my cable connection!

I'm trying to be good and seed files after they finish, too, but this is getting ridiculous. Suggestions? I'd rather not pay money to choke my uploads with Net Limiter unless there's no other choice. It just seems like I'd be cheating the network.

Finally, the question(s):

Is 10Kb/sec really as low as I can set it? Or is that just my GUI app's problem? Should I try the command-line argument instead?

Has anyone found good deals on home net access with a good upstream pipe? Where should I be looking? And will that even help me?

Am I missing something?
posted by scarabic to Computers & Internet (33 answers total)
 
[Yet] Another Bittorrent Client will let you set the maximum upload rate to anything you want. Worked fine for me, when I had the same problem. YMMV.
posted by gd779 at 8:48 PM on June 11, 2004


I run up to 5 or 6 concurrent BT downloads -- each at speeds up to 150Kb/s or so -- on my ancient, rickety PII 400, all the while surfing the net without a problem and watching a movie.

Things get a little laggy, perhaps, but not bad. I do not limit bandwidth in either direction.

I use Bittornado as my client app. You might want to try it.

I also bump up the thread priority of my browser a bit (at OS level -- there are various tools to do this).
posted by stavrosthewonderchicken at 8:54 PM on June 11, 2004


Response by poster: Are you guys using asymmetric connections?
posted by scarabic at 9:10 PM on June 11, 2004


My asymmetric ADSL gives me about 121kbs down and 30-40k up, before it begins to degrade. I use Azureaus, a java client.
posted by five fresh fish at 9:21 PM on June 11, 2004


Azureus is another client that lets you set the maximum upload rate for all torrents to a comfortable value.

On preview, FFF just mentioned this client but I'll offer the link anyway.
posted by hashashin at 9:25 PM on June 11, 2004


Response by poster: Oooooh.... YA Bittorrent Client is niiice. I like to be able to monitor multiple downloads in one window, and the pause feature, global upload choke and queueing are just what I needed. Thank you, gd779!

The only question that remains is who stavros is downloading from at 150Kb/sec times 5. That's one serious Megasuck, even for a T1. You live in a closet at Mae West or what, stav?
posted by scarabic at 10:17 PM on June 11, 2004


Response by poster: Oh... wow! I love the feature that lets you set preferences for automatically seeding once able, but then cutting off after reaching a certain upload/download ratio. How sweet is that? It's like setting a conscience tolerance. I love it!

Damn. The last time I dl'ed a BitTorrent client, there were exactly 3 to choose from, and burst! was the friendliest of them. It's served me well, but this is just way beyond. Very nice to have ETA, size, and ul/dl ratio right in the columnar display. Sweet. Sweet. Sweet.

So what's the difference between "on hold" and "pause?"
posted by scarabic at 10:42 PM on June 11, 2004


Are there any BitTorrent clients which let you set the uploads to zero?
posted by skylar at 10:48 PM on June 11, 2004


Are there any BitTorrent clients which let you set the uploads to zero?

Dunno, but you probably wouldn't want this anyway, as most clients use a tit-for-tat algorithm, which means if you upload nothing, you'll download pretty close to nothing.

IMHO, the best Windows BT client is TorrentStorm. The current version lets you set both a per-torrent and a global upload limit. It's really just a wrapper for BitTornado, but it's a very nice one. OTOH, I haven't tried YA Bittorrent Client, and the screenshots of it look pretty impressive.
posted by boaz at 11:01 PM on June 11, 2004


Recommended reading for broadband router setting optimizations. I had a 10x download speed increase after doing this.
posted by stbalbach at 11:15 PM on June 11, 2004


Response by poster: most clients use a tit-for-tat algorithm

To what extent are the clients just front-ends for the core Python code? Is this particular issue up to the client, or is it built into the original code?

According to this FAQ, you can use Bittorrent even behind a firewall, where no one can connect to you (aka uploads = 0), but you will have better results if you can accept incoming connections.
posted by scarabic at 11:31 PM on June 11, 2004


Response by poster: Wow, stbalbach, I see what you mean. That's probably as much help as anything.

*huge, fantastically grateful AskMe hug*
posted by scarabic at 12:04 AM on June 12, 2004


The only question that remains is who stavros is downloading from at 150Kb/sec times 5.

scarabic, you do understand how swarming downloads work, right? On any given torrent that I've hopped on, I may be connected to anywhere from 1 to 50 or more (if it's a particularly popular file) peers. My aggregate speed on each file may be 150Kb/s or more. This 150K download (on a given file) is spread between those peers, in the same way that the data I upload is probably being spread out to many individual clients. My total aggregate download speed may be 750Kb/s and my upload close to that, but all that data is coming from and going to many peers. I may only be sucking down a coupla K per second from someone with less bandwidth. It's the aggregate that makes it useful.
posted by stavrosthewonderchicken at 12:19 AM on June 12, 2004


you probably wouldn't want this anyway, as most clients use a tit-for-tat algorithm, which means if you upload nothing, you'll download pretty close to nothing.

I believe this is baked-in at the protocol level with BT, rather just built into client apps, but I may be mistaken. Even if it weren't, your up/down ratio should be close to 1/1, just to be a decent peer-citizen.
posted by stavrosthewonderchicken at 12:28 AM on June 12, 2004


If you're not accepting incoming-initiated connections, you're screwed. But it'll still work...slowly.

There is a TCP/IP OS setting to control ACK.

ADSL for many of us has a (relatively) narrow upstream pipe. It makes seeding anything on BT a pain. I don't do a good job of maintaining a 1:1 ratio for this reason. I have to limit ul bw to less than 10kBps to keep my connection usable. I really don't think there's much you can do about this, scarabic. If you have ADSL with only 256K upstream, like I do, then it's a problem. If it's really important to you, switch to cable.
posted by Ethereal Bligh at 12:51 AM on June 12, 2004


You guys gotta use Azureus. Everything you've discussed re: different functionality and features is in Azureus, plus much, much more. I'm pretty darn sure it's the best client, bar none.
posted by five fresh fish at 12:54 AM on June 12, 2004


Response by poster: My total aggregate download speed may be 750Kb/s

Oh yeah, I got the swarming thing down. Sorry if I made it sound like I thought you'd found the motherlode server. but still, 750Kb/s is pretty damn fast for any home pipe. But then, I might be caught in some kind of kilobytes-per-second versus kilobits-per-second, 8-to-1 versis 1-to-10 spasm of retardation. Don't mind me. I'm known for fucking that up every damn time.

Thanks to the help here I'm getting half a dozen downloads over 10Kb/sec with no noticeable lag on web browsing, and that's keeping me pretty fucking happy for the time being.

Even if it weren't, your up/down ratio should be close to 1/1

I sorta strive for more than that, though, because of the unique nature of the Bittorrent design. Sure, there are 99 leechers who have parts of the file, but without that 1 seeder they're all screwed in the end. By the time I finish a download, I'm usually already over 1:1 for Ul/Dl, but if I don't seed at least a little, I'm still just a perpetual leecher. I just set my auto-shutoff Ul/Dl threshold to 500%. We'll see how that works out on my cable connection.
posted by scarabic at 1:03 AM on June 12, 2004


FWIW, I've tried switching to Azureus from ABC several times on multiple machines, and every time it causes my DSL to disconnect, crashes my computer, and forces a hard boot.

If you hate your data, use Azureus. :)
posted by Jairus at 1:17 AM on June 12, 2004


You guys gotta use Azureus.

I have always said (and continue to do so) that Client-side Java is Stupid. For this reason, I will not use Azureus (also my PC is ancient, and the overhead of the java runtime (never mind the 5 minutes it takes for it to fire up) ain't worth it).

scarabic -- although I have an 8Mb connection here in Korea, that's downright slow compared to the cutting edge here (which only costs about the equivalent of $50 a month and is very common): VDSL, which comes in 10Mb, 20Mb, 50Mb and 100Mb downstream speeds. W00t, as they say.
posted by stavrosthewonderchicken at 2:27 AM on June 12, 2004


I was a TorrentStorm user originally, but after getting Azuerus going, it's on an entirely different level of quality. Faster downloads, more seeds, and the plug-in support. Never had a crash once with Azureus, either.
posted by Big Fat Tycoon at 6:32 AM on June 12, 2004


I use Azureus, a friend swears by YABC but we both have the same problem*: left unchecked, BT "crashes" the network connection in a very funny way. The only solution is to reset the cable modem, but (according to the ISP) the modem is still online. It just won't serve anything. My friend solved the issue by throttling with Netlimiter and I'll probably do the same either with Netlimiter or by upgrading my POS D-Link router to the Linksys WRT that people have written better freeware for. However, that really doesn't solve the problem, it just dances around it and is inefficient. Comcast claims to be providing 2 or 3 meg download pipes and I'd like to test that. Any ideas?

* We've tried the obvious tweaks listed here with no success.
posted by yerfatma at 7:26 AM on June 12, 2004


By "obvious" I mean "the ones we thought of," not "the ideas listed here are obvious to anyone".
posted by yerfatma at 7:26 AM on June 12, 2004


If people are saying that BitTorrent requires users to upload to download, presumably that means more BitTorrent users will be opening themselves up to potential copyright infringement claims than with other p2p systems?
posted by skylar at 7:35 AM on June 12, 2004


The whole "it's shit behind blocked ports" theory is bogus. My ADSL connection in Japan has a NAT'ed connection from the ISP - meaning that I get a 192.168.x.x address, and absolutely no control over which ports are forwarded.

But I can still upload and the downloads still come in damned fast. In fact I've even seeded several large files with no problems. It just means that you can't communicate with the clients on a Torrent that are also behind a firewall. The same rule applies for the eDonkey/Overnet system, and possibly other filesharing apps.

Not that I ever use any filesharing applications :-)
posted by LukeyBoy at 8:26 AM on June 12, 2004


It just means that you can't communicate with the clients on a Torrent that are also behind a firewall.
Who usually aren't the big seeders anyways, since they can only upload at 20 KB/s or so, and that's split among all their connections. The big seeders are usually the guys on T1 pipes with matching upload/download speeds.
posted by smackfu at 10:52 AM on June 12, 2004


Oh, and Azareus is a pretty good example of good/bad Java on the desktop. Pro: Lots of features, pretty, works well, open source on Windows, which is kinda rare. Con: sucks memory like a donkey sometimes... it can cause paging on a 768 MB machine I have.
posted by smackfu at 10:55 AM on June 12, 2004


I inadvertently changed my port forwarding setting on my firewall for two weeks before I figured out why my BT downloads were much slower than usual. So, not only does my experience demonstrate that this happens, but it's also mentioned in the BT faq.

I don't normally get files that have a lot of fat pipe seeders.
posted by Ethereal Bligh at 11:54 AM on June 12, 2004


I use Azureus, a friend swears by YABC but we both have the same problem*: left unchecked, BT "crashes" the network connection in a very funny way. The only solution is to reset the cable modem, but (according to the ISP) the modem is still online. It just won't serve anything. My friend solved the issue by throttling with Netlimiter and I'll probably do the same either with Netlimiter or by upgrading my POS D-Link router to the Linksys WRT that people have written better freeware for. However, that really doesn't solve the problem, it just dances around it and is inefficient. Comcast claims to be providing 2 or 3 meg download pipes and I'd like to test that. Any ideas?

I had this problem as well. Turned out to be a modem problem. After reading rbua.org info about people having similar problems i got my provider to replace the modem with a motorola.

The problem was the brand of modem (lancity I think - some sort of shark fin looking thing) crapped out when uploads reached a certain level.
posted by srboisvert at 12:48 PM on June 12, 2004


An important thing to do when working with a heavily saturated pipe is to enable TCP SACK, or "selective ACK." This reduces the turnaround time for ACKs being sent upstream, which can substantially improve performance.

It's easy to turn this on for Windows and Linux, though I have no idea how to go about doing so under OSX -- or even if Darwin's stack has SACK support.

As for Azureus: it runs like crap on any but the most memory-packed machines, although carefully choosing your JRE helps, too. Sun's isn't always the best choice for client-side apps.
posted by majick at 1:52 PM on June 12, 2004


Response by poster: It's easy to turn this on for Windows

majick - I checked out that link and I'd like to try it. I've edited the registry in the past, but I'm not incredibly comfortable with it. Can you recommend a more detailed step-by-step tutorial for enabling TCP SACK?
posted by scarabic at 2:46 PM on June 12, 2004


skylar: are you saying you're using bittorrent for illegal file trading ;)

Even BT's author says that using BT for illegal file trading isn't smart because it is totally transparent. That said, there are tons of legal ways to use BT. Getting a new Linux distro on release day? use to be next to impossible. Now, i can get it with my 3mbit DSL connection in about an hour. also, the thing i use it the most frequnetly for is getting new game demos and patches. With BT, software distributors are probably saving a ton on bandwith while reaching more people.

that, and I can get the daily show without having to subscribe to cable.
posted by Hackworth at 3:04 PM on June 12, 2004


Thanks srboisvert. I've a Linksys modem I own-- I had seen posts about upgrading the firmware but I'm not sure how to do that to the modem (router's easy-- modem is what, direct USB cable?).
posted by yerfatma at 4:07 PM on June 12, 2004


I use Azureus, as I mentioned above.

I get up to 140+ KB/s download speed and 40 KB/s upload. This is on an asymmetric ADSL line, 1400d/384u (Telus Internet).

I don't believe it could work any faster. And fwiw, it's running on a laptop using 802.11b with the 22Mbps proprietary extension; 512Mb memory, 1.8GHz celery, 60Gb drive. I'm using Sun's Java and Win2k. The ADSL modem is an el-cheapo D-Link, IIRC.

I've yet to have any problems at all with Azureus. It starts up quick, it runs at full tilt, it shuts down nicely. It hasn't been chowing down on my RAM memory, hasn't needed a humongous paging file, etc.
posted by five fresh fish at 7:14 PM on June 12, 2004


« Older What "useful" trivia have you learned from the...   |   Keeping a daily task list on a Windows computer? Newer »
This thread is closed to new comments.