Bittorrent To Cause Internet Meltdown 872
Gimble writes "Richard Bennett has an article at the Register claiming that a recent uTorrent decision to use UDP for file transfers to avoid ISP 'traffic management' restrictions will cause a meltdown of the internet reducing everybody's bandwidth to a quarter of their current value. Other folks have also expressed concern that this may not be the best thing for the internet."
fairness (Score:5, Insightful)
If you're going to transfer files over UDP then you need to build some TCP-like protocol on top of it. The article doesn't say exactly how BT works in this respect, but he's probably right. There's no way that BT's protocol could be as sophisticated as TCP, given its 30+ years of development.
Most people don't appreciate how amazingly well TCP's flow control works in terms of maximizing link utilization in a way that is fair to all network users. We really don't need is an arms race of new, greedier protocols.
However, one thing to realize about P2P is that because there are often dozens of active TCP connections transmitting from one machine, fairness goes pretty much out the window anyway. An alternate protocol could conceivably improve on this by applying flow control to the aggregate throughput for the whole "bundle" of connections, rather than each connection individually. This would improve fairness and also increase efficiency because you wouldn't have a bunch of TCP streams individually trying to grow their windows, causing packet losses.
This is a good thing (Score:5, Insightful)
Forcing ISPs to treat all traffic the same, because they can't tell what is what, will be good for net neutrality.
You should get the bandwidth you pay for, regardless of what actually travels over it.
Re:A little extreme there, don't you think? (Score:5, Insightful)
Re:Well Duh (Score:2, Insightful)
That ISPs will start shutting BitTorrent users down, including legitimate ones, when they realize that BitTorrent users have forced them into a 95/5 choice. It isn't appropriate for legitimate bittorrent users to be driving other TCP off the network, let alone the vast bulk of what BitTorrent is really used for. You're not backed into a corner, getting stabbed in the face, or being locked in the bedroom; you just want to bully other people out of their bandwidth so you get more. It's about to explode in your face. There's no need or reason for this switch to UDP. This will, however, create a serious reason for ISPs to want rid of BitTorrent.
BitTorrent is going to find out, very soon, that it shouldn't try to be a bully; it's making other customers vote with their wallets, and if you force the point, there are actually a ton of ways to stop this cold (which unfortunately hurt the rest of us too, like caps). Unfortunately, BitTorrent fascinated mods are about to call me a troll or say I'm promoting flamebait, when I'm doing neither, because I'm telling them something they don't want to hear, but whatever.
This isn't the right way for BitTorrent to move forward, even when you only look at it as a collection of people using a protocol for legitimate purposes. You're just being greedy.
Re:This is a good thing (Score:5, Insightful)
Except that probably isn't what will happen.
Let's use Comcast as an example.
Their target customer "surfs the web", and checks their email.
Their high-maintenance customers, who complain about latency issues, throughput, etc. are the ones who use UDP in any significant volume.
UDP is used for online gaming, VoIP, etc. They will just start to deprioritize UDP, which is bad. 99% of customers won't notice the difference, but we will.
don't see it myself (Score:5, Insightful)
Well, since The Register don't seem to want to print my comment*, I'll repeat it here:
"I think this is a bit of scaremongering that's missing one vital point:
When an ISP throttles UDP packets because somebody is using excessive bandwidth, they'll be dropping packets *from that source*.
So while .torrent moving to UDP is going to affect VOiP and games, the effects of that will be *restricted to the person using excessive bandwidth* via bittorrent. There's no reason it would affect anybody else, and I doubt ISP's are going to be dumb enough to block packets at random.
Unfortunately that kind of blows the articles entire premise out of the water."
Myx
* Posted at 12:40pm, ten minutes after the article appeared, at a point where there were no other comments on the article. 3 hours later there are 37 comments, but no sign of mine. Now it may be that they've just been overwhelmed with comments, but I'm a suspicious soul at times...
Re:fairness (Score:4, Insightful)
That is addressing the problem from an ISP's point of view, or perhaps the "**AA's talking points for ISPs" point of view.
If I pay for 10Mbps download speed, it should not matter to anyone how I use those bits. If you as my ISP cannot handle that traffic, you should NOT have sold it to me in the first place. Every time you throttle or shape my traffic, I want a rebate. It's that simple. I don't think we should have bailed out wall street and I don't think It's my responsibility to support an ISPs bad business model. That is what this problem is all about. Bad business decisions on the part of ISPs. They over sold their networks and now want a bailout. BS!
If you want regulation, how's this: If you sold me 10Mbps download and can't provide it regardless of protocol, you have committed fraud and I'm allowed to sue. I don't want to hear about your problems, just provide what you sold me.
If you sell me a parachute I expect it to work in every state, on any day of the week, and from any kind of airplane, no matter what clothes I'm wearing or not wearing. After you sold it to me, it's simply criminal to then say it only works if you are wearing green, or skydiving on a day of the week that begins with a T.
If you don't want me to use BT, then give me a 50% discount on my bill.
Re:A little extreme there, don't you think? (Score:4, Insightful)
Using your stupid analogy, this would be more like threatening to raze the entire city to the ground because no one intervened to stopped the wife from being locked in the bedroom.
So she should sacrifice her entire life for people who clearly don't care? Why not let them all burn? Are you sure you wouldn't do the same if you were in her position? What if it was worse then being locked in the bedroom?
Ok, moving on from a rather stretched analogy...
Anyone who is caught using uTorrent with this setting gets their broadband internet access contract torn up.
Interesting anecdote. A few years ago, my NTL contract specifically mentioned how traffic over TCP/IP had to be legal, etc. For some reason UDP, ICMP, etc was not mentioned. Odd. I'm no longer with them, and they no longer exist anymore, so I can't check to see if its changed.
Don't even pretend that most bit torrent traffic is legitimate and legal. For every Linux DVD image distributed by bittorrent, there is probably dozens of times that much data in blatantly bootlegged content being distributed.
I don't care. I have *never* pirated anything over bittorrent, even thought I've used it a number of times.
Re:fairness (Score:4, Insightful)
Not really. You would need that if you were transferring a file from one computer to another. But Bittorrent scrapes together little bits of file from lots of other computers. If a packet is lost here and there, that bit of file is naturally requested again, probably from a different machine. That's just a consequence of the way Bittorrent works.
That behavior needs to be driven by some timing and retry logic. Also, hosts need to determine how fast they can fire these UDP packets at each other. Those are the most basic fundamentals of transmitting bulk data over a packet network. You really would be reinventing some subset of TCP.
obviously, metering of bandwidth should be by subscriber according to money paid, not by some arbitrary and easily manipulated value like number of open TCP connections.
It's not just about metering. What about where many users share a connection to the internet, such as at a business or school? Or even in a household? What if there's a bottleneck caused by a malfunction out on the backbone? You can't have good performance in these situations unless users agree on "equally aggressive" protocols.
Re:A little extreme there, don't you think? (Score:5, Insightful)
It could be, or it could not be. To me, that's not even an issue that should involve the ISP. I pay them for bandwidth, not to be my nanny. It's akin to a car dealer that keeps checking into to make sure I'm not running drugs in the car I bought from them. Right or wrong, legal or illegal, I paid for the car/bandwidth, so butt the hell out or I'm going to either find another seller who doesn't bother me about what I'm doing, or just ignore your and route around your interference.
I want an ISP that sells me a pipe. That's it. What I send down it is of no concern, and if I pay for 5Mbps or whatever other arbitrary number, then I can't possibly "steal" bandwidth from other users because by definition I'm already limited to the amount that you sold me. If you can't provide it then don't sell it, because some users will use what you sell them. If you took the current ISP business model to any other industry you'd be laughed out of town, yet they get away with it. Can you imagine signing up for a "3 DVD's at a time" plan from Netflix and then when you actually check out 3 at a time they start bitching up a storm because "You're hoarding the DVD's!!! None of the other customers will be able to rent any of them!!!". Of course not. Because like most industry's they understand that if you sell a capacity you better damn well be able to meet it.
Adobe Flash (Score:3, Insightful)
Is more in cause of the frickin' meltdown of the internet with about half the content of web sites being Flash-based animated and (GAH!) audio adds.
Flash video is also irreparably defective.
Disclaimer: did I mention I hate Flash?
Re:File Service Protocol (Score:5, Insightful)
They also said the same thing when UDP streaming internet video became a hit-- their servers couldn't keep up.
They just had to upgrade.
Hopefully the same thing will happen now.
Re:Ummm (Score:4, Insightful)
Re:fairness (Score:4, Insightful)
If I pay for 10Mbps download speed, it should not matter to anyone how I use those bits. If you as my ISP cannot handle that traffic, you should NOT have sold it to me in the first place
You have totally missed the point of my post! I wasn't even addressing ISP billing policy, I am talking about how to share a link. Maybe YOU have a dedicated 10Mbps link all to yourself, but not everyone is so lucky. Imagine a small business where 50 people are sharing a T1 line. For web browsing, this many users could all get decent performance, even if a handful of people are doing big downloads, provided they are all using TCP. But all it takes is one guy hammering the link at full throttle to ruin it for everyone else. For better or worse, the internet is designed on the assumption that applications play nicely in this regard.
Upgrade the core and its routers (Score:2, Insightful)
from http://www.dslreports.com/forum/r21500602- [dslreports.com] :
Re: Is this a good thing for the net?
Yawn, here comes the typical argument... bandwidth is bandwidth, either way you look at it. All p2p does is open several simultaneous connections, splitting the user's bandwidth. Unless you horribly misconfigured your client to open up, say, 1000 ports.
It's not as if the user is using any more bandwidth than if they were conducting a regular http download. P2P actually is better for a network, as (given enough peers) it completes downloads significantly faster than normal centralized server methods, thus getting heavy users off the network noticeably faster (obviously, unless the user is dumb enough to allocate their entire upstream bandwidth to seeding).
As to bypassing the "TCP congestion control" you speak of, do you think Bell's solution is ANY better? The throttling of particular packets by itself violates the principles of TCP. Not only that, it also throttles/cripples MANY legitimate applications, such as secure VPN's or other encrypted connections.
Do you REALLY want that as an alternative to this so-called "problem" of p2p? I've said over an over, the ideal solution is to gracefully scale back speed for ANY upload/download if the said user is using their full bandwidth for more than 20 minutes during peak hours. This actually solves the problem, unlike throttling schemes like bell's, which render many legitimate applications useless. Let's face it, even Comcast here in the states has been forced to take a long hard look at their policy on Sandvine. Soon enough, we can only hope Bell will as well...
Do I even support the above solution? By itself, absolutely NOT!! IMHO, the ideal solution is to upgrade the core and its routers. However, that takes time and capital that companies like Bell are rather unwilling to spend; they'd rather (ab)use their position in the limited Canadian ISP market to deploy band-aid solutions like throttling p2p.
Re:A little extreme there, don't you think? (Score:5, Insightful)
Don't even pretend that most bit torrent traffic is legitimate and legal.
So what? Piracy is a social problem. Blocking BT, which IS being used legitimately, is a wrong-headed attempt to use technology to "solve" a social problem.
And in this case, they're trying to do it on the most flexible network in the world, one that's SUPPOSED to route around problem areas.
Scare Mongering? (Score:5, Insightful)
This sounds like the basest kind of scare mongering, relying on a basic ignorance of the way networks work.
UDP is not any less filterable than TCP. To even make this argument, the reasoning is so contorted as to be silly. In either case, one uses a router to inspect packets and decide what to do with them. ISPs will simply go as deep through the envelopes as they like; they already do. With that knowledge they will do whatever is allowed by law. At present, almost anything is. If they abuse that power too foolishly, then it will start to be taken away from them.
And in the meantime, whoever they filter will tweak to retaliate, and it will always be a race. As far as I can see, this is just the ISPs (or their proxies) stopping at one random lap and crying how unfair it all is.
Why ignore the real issue here? If you sold a teenager in Topeka unlimited use of a large pipe, but now cannot handle her actual unlimited use of her large pipe, then you just need to start cutting better deals.
It's as simple as that.
If the teenager cannot actually use her fat pipe, 100% of the time, then stop lying about what it is you have sold to her. Either charge more or advertise less. It's as simple as that.
When I as a CEO, and millions of others like me, buy #MB upstream and #MB downstream, and utilize it 100%, 24/7, no one quakes over the calamity of the internet backbone melting down.
All of this discussion over filtering is really a discussion of pricing. And the fact that we are talking about it in the wrong terms is creepy.
Believe me, you do not want a bunch of unaccountable telecom bureaucrats playing god with the backbone. You want a free market making these decisions.
Re:fairness (Score:5, Insightful)
Not really, actually.
TCP enforces and faciliates delivery certainty. You may be sure that a packet arrived. It gives you everything to make sure some packet arrives in time, if it's fragmented and arrives in the wrong order it's reassembled and all the other little bits that are quite useful when you're normally transfering data.
This doesn't really apply to Bittorrent and the way it works. Bittorrent by its very nature transfers little parts of files. Parts in a size that can easily avoid fragmentation. Parts where it doesn't really matter whether they arrive at all. If they don't, the requesting machine will simply ask for it again. Maybe now, maybe later, maybe even from another source.
Yes, TCP has its merits and sometimes they are even used sensibly. Don't make me start about all the cases where TCP is used without any reason because neither packet size matters nor certainty of delivery is a criterion, but it's just "easier". But BT can well work on UDP and even generate less overhead and thus actually less traffic than it does today.
Face it. QoS, Netneutrality and traffic shaping or not: People will find a way around it. And when the choice is encryption and wrapping BT packets in even more overhead (because, say, the provider will only allow HTTP-Packets at full speed) or using UDP, it's a no brainer. For both sides.
Re:Well Duh (Score:5, Insightful)
Re:fairness (Score:3, Insightful)
Easy. Be able to deal with the bandwidth or stop signing up customers 'til you can.
Re:File Service Protocol (Score:5, Insightful)
I think this whole thing is just hinging on them upgrading the darned infrastructure. The ISP's have sat fat and lazy for too long just selling you a "faster pipe" as the last mile of cable got faster. All that while though the baseline infrastructure has been receiving upgrades as a snail's pace, while at the same time more and more users are jumping onto the net in droves.
They pocketed far too much money that should have been allocated to network upgrades to actually support increasing TRUE capacity - not just a theoretical burst speed that you might maybe be able to get for 3 or 4 minutes back home.
It's like that lazy employee who has 3 months to do 1 week's worth of work. He puts it all off until he has 2 days left, and then starts to moan about how he doesn't have enough time to do all this work. Well, at this point, he's right. It's his own fault though. My boss has a nice poster in her office that I think applies here: "Lack of planning on your part does not constitute an emergency on my part."
Re:A little extreme there, don't you think? (Score:2, Insightful)
"Better that ten guilty persons escape than that one innocent suffer"
That should sum it up.
Re:fairness (Score:5, Insightful)
If I pay for 10Mbps download speed
No, you don't. A dedicated 10 Mbps link would run thousands of dollars a month (a T1, which is 1.5 each way, is ~$300 in the US) and most consumers can't swing that sort of dedicated line. Instead, you paid for a connection that is 10 Mbps maximum and you knew damn well that you would be sharing it with others in your neighborhood. How else could you rationalize paying only $60/month for faster-than-T1 level service?
Pretending that you don't understand the difference between a dedicated line and a shared line is utterly unconvincing to me.
Re:fairness (Score:5, Insightful)
That said, the bottleneck for end users is typically the uplink on their last mile connection, so this probably won't bring the internet down or crash any ISPs, but it will make life worse for people sharing the connection.
Fun fact: The original implementations of TCP did not have flow control (it was on a test network after all). It did not take long for it to become apparent that flow control is a necessary feature. A few network meltdowns made the case quite well.
Re:fairness (Score:4, Insightful)
So, in other words, people complaining about BitTorrent users overutilizing the network should read their contract, see there's no minimum guarantee of service or line speed, and get stuffed instead of trying to bully other people into using the network in ways that would make life more convenient for them?
Re:Well Duh (Score:3, Insightful)
Ten years ago people only maxed out their connections 5% of the time. Nobody promised it would be like that forever.
You are not listening... (Score:2, Insightful)
His example is that multiple users behind ONE of these DSLAM ports have congestion. Per your example, the congestion is as soon as they reach their 64 kb/s policy.
However, everyone in these bittorrent debates pretends that the DSLAM port is the bottleneck. In a highly interconnected environment like a world full of bittorrent and other users, there are many other places for congestion far from the simple consumer-to-ISP policy enforcement point. TCP congestion control helps with congestion anywhere that multiple flow paths intersect. The Internet does not magically prevent intersections and congestion except at consumer head-ends.
Re:fairness (Score:5, Insightful)
TCP stream oriented model is also a godsend for application developers. Networking is hard enough without having to build your own application state control systems (which is what would happen if you tried to make TCP stateless) for every single connection. It would be a nightmare.
Those who don't understand TCP are doomed to reimplement it, badly.
Re:fairness (Score:5, Insightful)
Then maybe they should be sold as such.
Look, all I want is to get what I get sold. If a line is sold as a 10mbit line, I will expect it to be a 10mbit line.
If I sell you a garage for 2 bucks a month, you might wonder but you will probably take the deal. Then you come around and notice that someone else is already standing in the space I sold you, and I tell you that you're allowed to use that space to park your car but only when it's free. Would you be happy? I guess not.
People will expect to be able to use what you sell them. And some of them will even use it. They really want to use what they got allegedly sold! How dare they?
Re:A little extreme there, don't you think? (Score:5, Insightful)
That is a slippery slope, friend. You have chosen to live in a society and by extension have chosen to live by society's rules.
Didn't that society also make a few promises to the people that decided to live in it? Like freedom of speech, freedom to keep and bear arms, freedom against self-incrimination, etc, etc, etc?
If everyone gets to pick and choose which ones they want to abide by and not, then that becomes anarchy
So pot-smokers and people who exceed the speed limit lead us down the road to anarchy?
Good point, but I disagree with your conclusion (Score:3, Insightful)
Its true for now that most links are sold purely by bandwidth, so your statement about getting what you've paid for is valid -- unless what you're paying for includes by contract a cap on total use or continuous use, or something else. Most home network access contracts contain those use case caps.
What really caught my attention as I read your note is that comment about the number of open tcp connections. As I read it, I'm surprised that hasn't been used as a valid limit on use by contract.
If you think of things that add cost and hurt performance from an ISP perspective, total number of sessions is one of them. It increases the load on routers and adds overhead and latency to network (or it can, unless more money is spent on bigger and faster routers).
Limiting concurrent sessions is probably just around the corner.
I currently pay for the highest bandwidth version of consumer net access offered in my area. Its more that sufficient for downloads, but because I work from home it is slower than I'd like for uploads. I use a hosted server at a co-lo site so that my business system isn't carried over a consumer line, but I still pull down a pretty huge amount of data sometimes.
I'm completely convinced that if my ISP wanted, they could slow my links by about the third week of most months. I believe they don't only because they don't offer a higher level of service than I'm paying for. At least for me, they've always been fair and responsive.
If anyone is limited by an ISP when they've got an agreement to pay for services that doesn't support those limits being applied, they should take legal action. If not, they should pay more attention to what they purchased and either refuse to buy what's offered or live inside it.
If you can't live with what's in the agreement, lease a line and pay for your own service to somewhere. What you'll find is that without the aggregation that's done by the big ISP's, you'll never be able to afford the on-demand use you want to buy.
I want massive bandwidth on demand too -- I want to download 4gb movies in under 30 minutes whenever I want. I do not, however, want to pay for a leased line capable of doing that. When I buy into a shared provisioning system (a consumer isp arrangement) I'm agreeing to live within that ecosystem and share the cost of that high bandwidth as well as sharing that bandwidth.
The contracts are obscure and don't come right out and say so. Maybe it would be better if they did.
All applications should be what now? (Score:3, Insightful)
It enforces bad design -- most client/server applications should be either stateless or session-based, rather than connection-oriented.
What? Why? Why is a connection based application "bad design"?
A "session" is just a hack to give you connection-like qualities over a connectionless protocol, such as HTTP. If you want connection-like behavior, and you're free to design your own protocol, why not just use connections? Why make your life more complicated?
There are plenty of advantages to connection-based applications; no need to re-authenticate on every message, for one. Clear indications of when a client is done talking to you for another (the connection is dropped, whereas in a connectionless world you never really know if the client has died or is just about to send you another message).
Even most "connectionless" applications, such as your web browser, try to cheat and get connection based behavior. Renegotiating an SSL connection for every request would be remarkably expensive for the server, so the server and browser try to reuse the same connection as much as possible. Fire up wireshark, and you'll see your browser will only open two connections when you read Slashdot, and all the images and text all come across those two connections.
Re:A little extreme there, don't you think? (Score:4, Insightful)
Re:fairness (Score:5, Insightful)
also, even if you ended up recreating a "subset" of TCP, that could still be fine. TCP is huge compared to UDP, and if you use UDP as a base for adding what you need, you can still come up with something much simpler than TCP; see, for example, RUDP. TCP's benefit is its ubiquity, but if you have the combination of a constrained enough environment and wide enough client distribution, that's less of a big deal. BT and uTorrent likely satisfy those requirements.
Re:A little extreme there, don't you think? (Score:5, Insightful)
Actually yes, I can very well imagine that. Overselling capacity is a common practice in lots of industries, based on the customers' statistical use. For example, where I live, I have signed for an electrical plan that entitles me to use a certain amount of electrical power at a given time (=bandwidth). If everyone in my neighborhood used the power they're entitled to, the power lines would melt.
See also: banks and loans, but that's not a good example nowadays ;)
The ISP's problem is they oversold based on a given statistical model. That model is becoming obsolete as people increasingly use P2P. So they're trying to stem the tide by crying wolf (as in this example), or by claiming that the users are doing illegal stuff (copyright infringement) and should stop.
Re:A little extreme there, don't you think? (Score:2, Insightful)
You're a liar.
Why?
Because I think you might be, and I don't agree with your opinion.
See how that works?
Whatever happened to innocent until proven guilty? Do you have any proof (or even evidence) that the GP has pirated over bittorrent?
Then the legal assumption is that they haven't. End of story.
Re:You are not listening... (Score:5, Insightful)
I am saying that, in the case where multiple users have congestion, it is not a problem of user behavior. It is a problem of the ISP not having a wide enough uplink. If the users that are causing the congestion stop using their connection then they are not getting the service that they paid for. The ISP has three options at this point:
Almost every ISP in the country is selecting the first option and wondering why everybody is pissed at them. Number 2 would probably take away from their stock price (not that it has much further to slide at this point) despite it being the right thing to do, and Number 3, while honest and straightforward, would never fly.
However, everyone in these bittorrent debates pretends that the DSLAM port is the bottleneck. In a highly interconnected environment like a world full of bittorrent and other users, there are many other places for congestion far from the simple consumer-to-ISP policy enforcement point.
I'm not pretending that it doesn't exist. As a matter of fact, as I've said in other posts, this is due to oversold uplink connections and upstream networks not ready for this increase in bandwidth. Bandwidth is being charged for. Somebody is making money. Spend the money on increased network bandwidth at interconnects that are traditional and measurably congested and stop doing stupid shit like cutting off peering because someone looked at you funny.
However, BitTorrent here is a scapegoat - you'd have the same problem with large FTP sites, video archives, or masses and masses of streaming porn. A bottleneck isn't caused by the protocol. The bottleneck is caused by the demand, and demand for a service is independent the protocol it's wrapped in.
Re:A little extreme there, don't you think? (Score:5, Insightful)
A car lease would be a more accurate analogy since you are only leasing the equipment.
Still, would you lease a car if it came with some guy who sat in the back seat and bitched about the miles you put on the vehicle? Maybe disable the car or limit how far you can travel during periods of high usage? Or said "No, you can't drive to X because X is the bad part of town and you can't possibly have a legitimate reason to go there"?
Re:Well Duh (Score:1, Insightful)
In three words: Do as Sweden.
We got tons of high-speed fiber layed out and over one fourth of the country got fiber. Most ISPs sell 100/100 without throttling or caps for as little as $29 USD a month. ($20 with student discounts).
I haven't heard about any problems regarding bittorrent clogging the intertubes here, and most ISPs seem to deliver what the people wants.
Re:A little extreme there, don't you think? (Score:3, Insightful)
...and those 10 guilty persons, what about them?
They'll never cause another innocent to suffer?
Your logic (I know it's a stretch to even call it that) falls flat when those 10 guilty persons set free cause suffering to countless other innocents; such that could have been prevented but for the suffering of that one innocent.
We all suffer for the individual and the individual suffers for all. That's called society. Deal with it.
Re:All applications should be what now? (Score:3, Insightful)
What? Why? Why is a connection based application "bad design"?
Because connection maintenance is a very high-level task that should not be delegated to the very bowels of the application, much less to someone else's opaque API.
A "session" is just a hack to give you connection-like qualities over a connectionless protocol, such as HTTP. If you want connection-like behavior, and you're free to design your own protocol, why not just use connections? Why make your life more complicated?
The complication comes in when you have to code "connected versus unconnected" states into your app all the way up to the user-interface level, and you realize that you're doing a lot of redundant work to try to keep track of what TCP/IP thinks the connection state is. Admittedly, it's hard to explain unless you've been there.
There are plenty of advantages to connection-based applications; no need to re-authenticate on every message, for one.
TCP is doing this behind your back. Maybe you can do it better.
Clear indications of when a client is done talking to you for another (the connection is dropped, whereas in a connectionless world you never really know if the client has died or is just about to send you another message).
That's one of the worst examples you could pick. When, and whether, TCP will drop a connection is up to factors far beyond the application's control. You have to handle the "TCP dropped connection" state anyway; it's not really any easier to do that at the lowest networking level than it is to do it at a higher level.
Most applications I've worked on have ended up with their own keepalive-based housekeeping mechanisms anyway; the obvious tactic is to use those mechanisms for connection maintenance instead of a low-level TCP connection whose persistence your own code has to mirror.
Even most "connectionless" applications, such as your web browser, try to cheat and get connection based behavior.
Again you're making my point for me. Because TCP-level connections are not appropriate for Web browsing, various Procrustean hacks get brought into play.
Renegotiating an SSL connection for every request would be remarkably expensive for the server, so the server and browser try to reuse the same connection as much as possible. Fire up wireshark, and you'll see your browser will only open two connections when you read Slashdot, and all the images and text all come across those two connections.
Sure, but that has nothing to do with any inherent advantages of TCP-level connections, except insofar as SSL is tied to them. If you were driven by absolute maximization of server performance and weren't saddled with the baggage of existing protocols like HTTP, you certainly wouldn't use TCP; it'd be like doing unnecessary work in the inner loop of a graphics routine. That's the decision the BitTorrent people are faced with.
Re:fairness (Score:3, Insightful)
It's not just about metering. What about where many users share a connection to the internet, such as at a business or school?
Then the business or school should have usage policies. If they don't, it's not up to their ISP to regulate things for them.
Or even in a household?
Follow Russell Peters' advice. "White people. You need to beat your kids."
What if there's a bottleneck caused by a malfunction out on the backbone?
Then fix the damned backbone! Surely it takes less time to replace a screwed up router than to develop all these bandwidth restriction methods that only get circumvented anyway.
Re:A little extreme there, don't you think? (Score:3, Insightful)
FedEx/UPS/DHL have every right to open your packages, yes. You grant them that right when you agree to their shipping terms. Perhaps you should read the airbill before you sign it. The government operates under a different set of rules than private companies. If you'd like the government to run you ISP service then you can have the right to not have your traffic monitored.
Re:Well Duh (Score:5, Insightful)
Don't meter then. Sell them a realistic line speed.
My ISP is selling me a line speed. In an ideal world (leaving out the marketing droids), they will be selling me a speed that I can reasonably expect on their already oversold network. They will cap my network connection at this speed such that I can never exceed it, and that's it. That's all that they will need to do.
In the real world, however, the line speed they sell seems to have nothing to do with what their network capacity is. Their line speed seems to do with "having a bigger one than the next guy" to bring in more subscribers even if their network can't handle it. As a result, they oversell a network that already can't realistically cope with their utilization numbers. Instead of looking at utilization and capacity numbers and figuring out what they can realistically support, they make shit up.
This making shit up is biting them in the ass. Hard. The need to do one of two things:
They've been dragging their feet on the first item because they want to erect tollbooths and speedbumps (destroying network neutrality along the way) so that they become the gatekeepers of the Internet - using public funds to fuel a private agenda, penalizing popular sites because they didn't think of the idea first or because it threatens their business model. They won't do the second because honesty is apparently taboo even if their realistic line speeds are pretty much an open secret (see dslreports.com).
Re:fairness (Score:3, Insightful)
So, phrasing this as something other than a flame, you would suggest that HTTP, FTP, etc. use UDP and then let each client application implement its own rate limiting
Because my application is better at knowing how to adapt to a given amount of bandwidth than TCP/IP is.
retransmission policy
Because non-trivial applications often have better ways to deal with packet loss than TCP's acknowledgement/retransmission mechanism. ...and packet reordering?
It often makes more sense to let your application deal with this. BitTorrent's a great example, as are most action games that do client-side prediction. Likewise, the way streaming applications have to work in the presence of TCP's reordering is by grinding to a halt waiting for the retransmission. Gee, thanks, TCP. Instead of a 16-millisecond glitch, I get a 2000-millisecond dropout.
Or did you have some other exotic transport layer in mind to replace TCP
No; I believe that dictating those details to application developers is counterproductive. As long as the implementation is competent, datagram transport with application-specific reliable delivery is almost always a win for everybody concerned -- clients, servers, routers. And if the implementation is incompetent, TCP can only do so much to help.
Re:This is a good thing (Score:3, Insightful)
Most games are UDP based because TCP introduces latency. All the Doom/Quake/Unreal type games are UDP, as latency is important in those sorts of games.
PS3 uses UDP. XBox360 uses UDP.
Even WoW uses UDP for in-game voice chat.
As far as the future goes, there are already ISPs that offer video services and it's only a short step to them *only* allowing video downloads off their servers. I expect the likes of Amazon and Netflix will be doing deals to ensure they get a piece of that pie.
Re:This is a good thing (Score:4, Insightful)
Everyone here seems to work under the assumption that heavy bittorrent users would be worse off in a world with download caps or metered bandwidth. I don't think so. It would force companies to compete to give good service with clear contracts where they actually tell you what they are really selling. This is bound to increase, not decrease, the availability of real bandwidth per dollar for most users, included us computer geeks.
Re:A little extreme there, don't you think? (Score:5, Insightful)
While not correct if someone wants to be pedantic about it, it's very common to refer to the entire IP stack as TCP/IP or the TCP/IP stack. I can't think of a book that touches on networking either in part or is the entire subject of the book that I've read that does not use TCP/IP as the generic term for the entire stack. Possibly not a good idea for a legal document, but that's how it is.
Just like even though kleenex is a type of tissue, but tissue is not a type of kleenex, if someone asked you for a kleenex you wouldn't respond "I don't have any. All I've got here are these Great Value Facial Tissues", you'd just point them to whatever you have and know exactly what they meant. The same goes for when someone says "TCP/IP", while TCP/IP is a more specific thing than just IP, you know (or should know) what someone means and know that they very well may be referring to the entire stack, not just TCP and its sub-protocols specifically.
Re:fairness (Score:5, Insightful)
Think of it this way, you have a congested router that has 1mbps of available bandwidth. Normally you have 5 TCP streams sharing it at 200kbps each. Everybody is happy. Now you replace one of the TCP streams with your UDP sender which is configured to transmit at 800kbps. It will continue to pound the router with 800kbps worth of traffic while the TCP streams all throttle back to 50kbps. Now you're not playing fair, and there's nothing the other TCP guys can do about it because they're all trying to play fair still.
Re:A little extreme there, don't you think? (Score:3, Insightful)
Re:fairness (Score:5, Insightful)
You could make the opposite argument: the cool thing about TCP is it automatically retries and resends any dropped packets, so your router can drop all TCP traffic if it needs to.
In the scenario where multiple hosts have the data I want, I'd rather the software decide, not the router or my PC's stack. Like you said elsewhere [slashdot.org], it can just grab from another host. So I'd rather have the protocol with the lower overhead for my pipes/router/stack. If torrent software supports requesting the same block from multiple sources at the same time, this is even more important, because my stack will keep trying to get a good version of a mangled packet even if I really don't need it any more because someone else sent the block, whereas with UDP, the software knows it has it and won't bother.
Re:A little extreme there, don't you think? (Score:5, Insightful)
exactly. the argument espoused in this article is fundamentally flawed. in fact, it reads like it was written by an industry mouthpiece for the sole purpose of demonizing P2P users without absolutely no regard to logic or reality.
first off, as you said, it's impossible for the "download fiends" to actually use more than their share of bandwidth. if i have a 56K dial-up connection, there's no way for me to just decide, "hrmmm, this isn't fast enough for me. i think i'll be a dick and download at 9 Mbps by stealing bandwidth from my neighbors."
secondly, the author seems to be suggesting that everyone should use, or have access to, the exact same amount of bandwidth regardless of what they paid for, and that this level of bandwidth is decided by how much he personally uses/needs. well, that's very convenient for him and the ISPs. most of us are paying for 3+ Mbps connections, some people are paying for much more than that, but i guess we should all only be allowed to use 1~3% of the bandwidth we paid for because that's how much the author needs for his daily web surfing, e-mail, and posting of shitty articles on the web.
but why stop there? why not divide up internet bandwidth evenly between all 6.6 billion people around the globe. total global broadband internet bandwidth was estimated by Cisco [cisco.com] to be 5,372 petabytes per month in 2008. divided up between 6.6 billion people means we all get a 0.00265869476 Mbps connection--that's each person's 'fair share' of internet bandwidth. of course, we would all have faster internet connections if it weren't for those darn greedy business/enterprise internet subscribers.
internet bandwidth isn't a fixed commodity, or a limited natural resource. technology has always been driven by consumer demand, and broadband internet is no different. it's bandwidth-intensive applications like P2P, streaming-video/audio, enterprise applications, etc. that create the push for infrastructure upgrades and ever-increasing connection speeds/network capacities. it's idiotic to accuse "power users" or "downloaders" of destroying the internet or stealing other people's bandwidth. it's even more idiotic to think that everyone should use as little bandwidth as you do, as there's always going to be a someone who uses even less bandwidth. artificially manipulating internet usage while overselling more and more is what's going to cause broadband connection quality to continue to decrease. meanwhile, there are ISPs in Japan and Korea who are doing the exact opposite by increasing network capacity and connection speeds to meet the growing demand. perhaps if ISPs in the U.S. and Canada focused on making technological progress rather than opposing it, we'd be rolling out 1 Gbps symmetric broadband connections too, rather than fussing over people actually using their 3-4 Mbps connections.
Re:File Service Protocol (Score:3, Insightful)
The problem is that P2P traffic is notorious for expanding to fill whatever capacity is thrown at it, which is why it now takes up such a giant amount of backbone capacity. So your "lazy ISPs should upgrade the darn infrastructure" argument isn't that convincing, I expect them to do so and then I expect BitTorrent users to fill those links immediately with more crap that they download and then never watch/install/use.
Re:Total bullshit (Score:3, Insightful)
UDP does not guarantee delivery, but you can still run a packet loss test and take your ISP to court for selling a service of unmerchantable quality if it's that unreliable.
Re:A little extreme there, don't you think? (Score:5, Insightful)
It's called a society and there are acceptable and unacceptable behaviors. Being a filthy pirate and hogging all the bandwidth is not nor should be acceptable behavior even though you really like all the free stuff you get from it.
You can't hog all the bandwidth, you can only hog the bandwidth allocated to you.
What you're saying is this:
The ISP gave my neighbourhood 500mbps, and some asshole is using all of it so I can get on the internet, but still paying for it!
The realty is this however:
The ISP gave me personally 10mbps, and the asshole ISP is telling me now I can't use all of it but still expecting me to pay.
See the difference here?
Re:A little extreme there, don't you think? (Score:3, Insightful)
See also: Airlines.
The difference is, of course, that if your flight is overbooked, the airline will actually spend more money -- on hotel space, a taxi to take you to the hotel, dinner, etc -- and then put you on another flight.
If your ISP has determined that they've got too much load, they can just cut you off -- this would be like the airline telling you to go home.
Re:A little extreme there, don't you think? (Score:3, Insightful)
They'll never cause another innocent to suffer?
Your logic (I know it's a stretch to even call it that) falls flat when those 10 guilty persons set free cause suffering to countless other innocents; such that could have been prevented but for the suffering of that one innocent.
We all suffer for the individual and the individual suffers for all. That's called society. Deal with it.
The difference you're missing here is that 10 *individuals*, even if guilty and sure to cause harm, have a limited ability to cause society harm as they have only the power to compel others on a limited basis as individuals, whereas government has, for all practical purposes, unlimited ability to compel through force of arms & law, and hence the power to cause nearly unlimited harm to society and the individuals within it.
Cheers!
Strat
Re:fairness (Score:3, Insightful)
If 200 people each request the same block from me in a minute, do I really want to have to go through something like 'hi can I talk to you, what port should I use, hey here it comes, do you have it, ok, I'm done talking to you go away',
You NEED to do that for the same reason that you need to wait in line at the check stand when getting groceries. There NEEDS to be flow control, otherwise, with everybody just trying to bum-rush the checkout, nobody will be able to get anything done.
Yes, this might work out okay if one person decides that they are sick of waiting and shove a few ladies out of the way. When pushing and shoving become the norm, it stops.
This is NOT a good idea.
Honestly, pirates, I get it; you're idealistic. Unfortunately, you're not thinking about the long term affects of doing this. Demonstrating that pirates (or people distributing linux ISOs or whatever...the media, and the ISPs see EVERYBODY that uses BT as a pirate) are willing to just shit all over the tubes in order to get what they makes a pretty good case for allowing the ISPs to start putting roadblocks in the way. It brings in legislation, more control, less freedom.
Seriously, guys, short-term win, long-term epic failure if this goes-large scale.
Re:fairness (Score:3, Insightful)
The internet isn't a circuit-switched network - when you buy a 10Mbit/sec connection even assuming it's dedicated (which nobody at home can afford), you don't buy a dedicated 10Mbit/sec circuit to every possible website. You buy 10Mbit/sec to your nearest switching center, and from then on out your packets might traverse all kinds of links, some more congested than others.
The rules of TCP ensure all the computers on the network work together to ensure that if one link bottlenecks they all back off a bit and everybody can still get through at reduced speed, instead of seeing massive packet loss, which just hoses everyone. UDP doesn't have that, and it works OK as long as UDP doesn't make up the bulk of data flows on any given link which has always been the case. The uTorrent change might break this system, and that's what the author is concerned about.
BTW, I'd note that the author of TFA is a contributor to the WiFi and Ethernet specs, so I'd think he knows what he's talking about.
Re:A little extreme there, don't you think? (Score:4, Insightful)
You do, if you've paid for the right to graze 10,000 sheep there. If the land can handle 20,000 sheep, and the land owner has sold these grazing rights thrice, who is at fault?
Re:Everyone wants a piece of the pie... (Score:4, Insightful)
Which is exactly the problem, it is entirely too costly to do. ISPs have been marketing 10Mb service (or 3-5Mb service in my area) with out the ability to actually provide 10Mb as a minimum service level.
By selling based on the upper limit of service and leaving the lower limit undefined, they can prove that they can provide up to the marketed rate (in ideal conditions) but you can not prove that they fail to meet that lower limit.
So people assume that by paying for "(up to) 10Mb Service!" that they should be able to get 10Mb service 99.999999% of the time. When in reality they can get 256Kb service or better 99.999999% of the time.
Once you drop those 30k users down to 256Kb connections, you're only looking at 7,860,000Mbps instead of 300,000,000,000Mbps. Push it up to 10,000,000Mbps and you have the 256Kb minimum with enough head room for people to hit 10Mb upper limit under ideal circumstances. And a single OC-192 will carry it all.
Sure, if they want to provide a true 10Mb connection with near 100% uptime and bandwidth availability, they're going to need a stack of OC-192. But they don't. It's the old "As little as possible, as much as necessary" line. And the Marketing department hasn't kept in line with the Engineering department, so the issue will inevitably wind up in the Legal department.
-Rick
Re:A little extreme there, don't you think? (Score:2, Insightful)
And while we're at it, most thiefs enter houses using doors don't they? We probably should ban doors.
And people who do highway speeding or drug smugling use cars? Probably should ban cars also.
Do you want me to follow that line of thoughts? Because some people use some things illegaly doesn't make it right to ban the thing outright! That's not the same problem!
Re:A little extreme there, don't you think? (Score:2, Insightful)
We, as a society, have made the choice. We would rather risk a guilty person walking free, and possibly harming more people, than risk punishing an innocent person. *That* is society, deal with it.
Re:A little extreme there, don't you think? (Score:3, Insightful)
The Post Office is a good example for the Internet. Right around the holidays, everyone starts to send catalogs, Christmas cards, and other packages. Far more than the Post Office deals with on a normal basis. Which causes delays in delivery. They even warn people: send everything by such-and-such date or it won't arrive in time for Christmas.
That's pretty much the Internet. Everyone expects a certain amount of bandwidth to be used. Occasionally, someone will exceed that, but usually at the same time, someone else isn't using theirs, so it's okay. But with Torrent, it's basically everyone using their bandwidth all at the same time. It's always Christmas. Now, the Post Office could staff for that situation, but obviously, prices will have to go up to accommodate their extra load. Likewise, your ISP can provide all the bandwidth necessary to let everyone use their limit of bandwidth all the time, but they're going to have to raise the prices a lot in order to provide that.
Re:fairness (Score:3, Insightful)
Re:A little extreme there, don't you think? (Score:5, Insightful)
Re:A little extreme there, don't you think? (Score:5, Insightful)
That's equivalent to saying "here is some electricity, but you can only use it to power your stove. If you use it for your air conditioner, you're violating our ToS and we'll cut you off"
It makes absolutely no sense.
Re:fairness (Score:3, Insightful)
Setting and honoring QoS bits won't help IMHO. The biggest problem is that they're not honored on the internet at large, so they'll basically only work for your organization, and won't work at all at keeping your users from clogging the last mile uplinks unless you make every single home router smart enough to set and honor the bits on their own. DSL and Fiber should be ok (although it would likely require upgrade of a LOT of COs), but Cable and Wireless are hosed since they're shared at the last mile.
Also, people seem to think that having Bittorrent work at the packet level is somehow a bad thing, which seems crazy to me since that's how the internet works. It would be a bad idea to plop an 8k UDP packet on the wire (or whatever your BT block size is) and expect it to make it through the network intact (IP fragmentation is going to murder your data transfer if you're congested anywhere, since losing any fragment will cause the stack to drop your whole packet on the floor).
I'm also not sold on implementing your own flow control in BT over UDP (it's not as easy as it looks) just because you don't want to incur the queuing penalty to reorder packets (which on the internet is not typically a problem anyway!). People may not like the 3-way handshake, but it's extremely useful for preventing you from spewing data a host that no longer exists. Frankly, TCP is pretty good at bulk data transfer and that's exactly what BT is doing (granted, the data is chunked up, but you're still sending it in bulk to and from many hosts).
It's such a shame Multicast doesn't work on the internet. This is one area where it could really do some good.
Re:A little extreme there, don't you think? (Score:3, Insightful)
Re:fairness (Score:3, Insightful)
If ISPs started setting the QoS bits to favor voice traffic and send Bittorrent into the lowest priority queue, I guarantee that it won't take long for a BitTorrent client to start disguising itself as voice traffic.
Fair point. But Deep Packet Inspection-enabled devices can identify protocols disguising themselves as other protocols. Stateful analysis of that kind of traffic (10Gbps+) is possible, but the performance hit could be pretty big. Not huge though, and it's definitively something doable if you spend enough money on network devices to scale up the performances. I'm starting to see 10G line rate probes that can detect Layer 7 attacks, I'm sure they can determine as quickly, if not quicker, a forged protocol.
Whatever the technical problem is, somebody at Cisco, Juniper, F5, Foundy, and others already found the solution. It's just a matter of paying for the technology, and ISPs don't want to spend one dime too many, obviously, because they need to maximize the profitability for you know whom.