Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's actually pretty difficult, technically, to provide you with a minimum guaranteed amount of bandwidth, without simultaneously limiting everyone else.

The problem is that there are many layers in the networking stack which interact in complicated ways. TCP congestion control algorithms and TCP slow start, which happen at the endpoints. Buffering, which happens at pretty much every intermediate hop in the path. And traffic shaping, which can pretty much only drop packets to limit bandwidth used.

If I'm supposed to guarantee you 768kbps, that means that I need to drop any packets from everyone else that exceeds the capacity minus 768kbps. But if I do this for everybody, I'm back to the case where I'm giving everyone a dedicated 768kbps, and they aren't able to share excess bandwidth at all.

Now, you could imagine a scheme in which I don't limit other people's bandwidth until you actually start using some. But then if it's congested when you start your transfer, you won't actually be able to send data at your full 768kbps at first, so TCP congestion control will kick in and limit you to less than that. So when traffic shaping looks at your stream, it sees something less than being used. Should it then limit everyone else such that it guarantees you your full 768kbps? If it does that every time someone uses their connection, then services that trickle just a small amount of data will essentially guarantee that everyone is always being guaranteed their 768kbps by limiting everyone else, and you're back to the "OK, now everyone has a dedicated 768kbps connection that won't go faster".

Or should it limit everyone else based on the bandwidth that you are currently using? Say, when it notices that you are sending 10 kbps, it throttles everyone else down to allow you 15 kbps; then when you increase to sending 15 kbps, it throttles everyone else down to allow you to send 20 kbps, and so on, until you hit your guaranteed bandwidth. Based on the delays it takes for TCP congestion control to ramp up the speed it tries to send while traffic shaping ramps up the amount it's limiting everyone else to give you the bandwidth you need, and the latencies involved (generally tens to low hundreds of milliseconds round trips) it could be a few seconds before you are actually able to get up to your guaranteed bandwidth.

But those first few seconds are generally the most crucial to be delivered quickly. Most people are browsing the web, where there are lots of short page loads. You want those to be able to kick in quickly and then be done with.

Remember, this is an industry where we've only recently come to understand the effects of buffer bloat on performance. Effective quality of service guarantees, other than giving everyone X guaranteed bandwidth by limiting everyone else to the total minus X bandwidth (which, when the network approaches capacity, becomes not much different than giving everyone an X bandwidth dedicated line), is a hard problem.

  My real point is that I do not see why people should be 
  punished for using their connection continuously. Comcast 
  did not offer me "burst service," they offered me "always 
  on" service with "speeds up to X." I feel little sympathy 
  for an ISP that massively oversold service and then claimed 
  that it is abusive for customers to actually use what they 
  are paying for.
Yes. It's always on service (as in, you can be connected and have the service available 100% of the time) and have speeds up to X available. That's what they promised, and that's what they deliver. They also sold this as a "Residential" service. They have other services for commercial and dedicated lines, that they will sell you for greater utilization.

You are not paying for continuous use of X, you are paying for an always available line that gives you speed up to X, for personal residential use.

Restrictions on not using the network abusively or not running commercial services on a home network are not some creepy abusive plot, they are really the best that the networks can do to provide you with affordable, high-speed broadband.

Do I wish that there were more competition? Sure. Do I wish that I got higher speeds for cheaper? Sure. Do I wish that they would be network neutral and not block ports running on my network? Absolutely. But there's absolutely nothing wrong with selling a residential plan that is for residential purposes, and enforcing that, separately from their commercial plan, and separately from their dedicated plan. It's not that difficult; if you want to use it for commercial purposes, use their commercial plan. If you want guaranteed bandwidth, buy a dedicated line.

And remember, the ISPs have not "massively oversold" their services. If you look at the FCC's report (measured in 2011): http://web.archive.org/web/20130511164730/http://transition.... , you'll see several ISPs that actually exceed their advertised bandwidths even during peak hours. Now, some of them are clearly not doing so well by that metric; Century Link is not even hitting 80% off peak, and barely 50% on peak. I would say you have a good case for false advertising there. But if you notice, Comcast and Verizon FiOS manage to exceed their advertised bandwidth, on average, even on peak. This matches pretty well with my experience over the last 5 years or so. I've had both DSL and Cable. DSL routinely underperformed what was sold, which was already paltry. But cable has generally exceeded what was sold, when connecting to servers that could actually handle the load.

So, I'm not sure I'd call that "massively overselling", other than maybe Century Link (and the other DSL providers don't hold up too well either).

Think of it like a buffet. For efficiency and simplicity, it's an all-you-can eat plan; unlike food, people aren't very good at knowing how much they are going to use and so charging based on usage is much more unpopular, making buffet style plans much more populat. So they do "all you can eat". And the rules are, it's all you can eat, and in one sitting; you can't take a bunch with you and then sell it to someone else, nor can you horde food for takeout because "you're going to eat it later". Would you start complaining and railing that the all-you-can eat buffet massively overselling? No. That's all that they're doing with the internet plan; it's just that there are less social conventions and it's easier to accidentally (or deliberately) massively overuse your fair share of bandwidth than it is to massively abuse a buffet, since it all happens automatically.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: