How do ISP's limit your bandwidth?

Sanders0492

Reputable
Nov 29, 2015
44
0
4,530
People these days are made to think that "bandwidth" is synonymous with "bits per second." But really the bps is just a way we measure bandwidth when speaking in a digital data sense. I saw someone ask this question somewhere else and the result was most everyone confidently suggesting one of two things:

1) the ISP counts every bit you send to ensure that you can't transfer more than you pay for, and that as you go over your limit, they just start tossing the extra packets.

This one suggests that the ISP pays for a lot of overhead of monitoring and controlling you.

2) if a theoretical wire is capable of 10Mbps, and you only pay for 5Mbps, then they use a timer to reduce the speed of your transfer by half.

This one suggests that a ping on this theoretical 5Mbps connection would literally take twice the time.

(Heads up: I'm far from a pro, and magic of networking has always mystified me. I don't claim to know any of this, it's just how I assume it works and I could be 100% wrong)

Without going into too much detail, here's my best assumption:
The term "bandwidth" refers to a range of frequencies. When you buy more bandwidth, it's just the ISP telling that end-of-the-street box to assign you more frequencies to communicate on. The more frequencies you have - the more data you can send at once (thanks to Fourier). That box will listen, process, and send every single bit of data you send it using your assigned frequencies. Basically, they give you resources and you use them. If you use up all your frequencies then your modem just queues up the data you're sending and sends it when it can.

That would mean there's (theoretically) no need to monitor every single bit you transfer and there's definitely no need to slow your packets.

There seems to be an emphasis these days on software-controlled things rather than hardware-controlled things, and that's understandable in a lot of situations. So I could be totally wrong.

I'm always up for learning the truth behind how these magical computers/networks work.

Thanks for any input!
 
Solution
The ISP usually programs your modem to limit your bandwidth. That is how they can give you an upgrade with nothing more than some new firmware or config to the modem. This distributes the policing to 1000s of devices which only have to do a small part of the total job.

Sometimes there are physical limits that may be in the chain -- a 100mbit port on a router or switch for instance.
My understanding of it is (besides throttling certain types of traffic like p2p torrents and such) that the connection speed is just negotiated between your modem and ISP's machines.
They handshake, ISP says, this is the rate you can connect at, take it or leave it.
after that, modem transfers stuff towards ISP at that rate or lower, if the cable quality doesn't allow for maximum rate.

and you can pretty much see said connection rate on modem's settings pages.
 
The ISP usually programs your modem to limit your bandwidth. That is how they can give you an upgrade with nothing more than some new firmware or config to the modem. This distributes the policing to 1000s of devices which only have to do a small part of the total job.

Sometimes there are physical limits that may be in the chain -- a 100mbit port on a router or switch for instance.
 
Solution
Software controlled is mostly done for isp who have different speeds for same network link. There are 2 different ways how to limit bandwidth. One is, like you said, dropping packets, thus your modem/router/pc need request server to send them again, and this reduce speed you get but there will be much overhead. Second option that is used, is sending special packet to server and it basically tells "slow down sending data, i cant handle so much". And this way speed is also reduced, but without much overhead.
 
Hi, I have exactly the same question as yours, for a long time. And I really respect your (our) curiosity.
First I thought about internal hardware transfer method for compare, such as IDE, SATA, PCI(E), USB... They all have a physical maximum speed, just like ethernet, this is easier to understand, because the hardware operate at a fixed frequency(I mean the speed they switch between 0s and 1s), so I ideally, they will transfer at that speed.
But ethernet usually operate at much lower speed than PHY layer speed, the most significant limit is usually at ISP, but other cases also exist, for example you have a very fast ISP link, but a very slow computer, you may still not downloading at max speed, although it's rare.
The similar things actually also happens on internal links, for example, you usually not using your SATA at 6Gbps all the time, because your HDD just can't do that fast. So in the whole transfer lane, there's almost always have some device not working at full speed, because they are waiting for the slowest node, either because of device limitation, or because intentionally limiting(such as the stupid ISP).
So maybe our question is: why some device can be working on less-than-max speed, what controls them to back off when they are too fast?
I'm not a expert, and the following is partly based on my mind, read on your own risk 😉
For internal links, I think most of them are simply rely on interrupts, when there's no data, they go through a idle loop, if a piece of data comes, they process it. When they are not working at full speed, they are actually switch between idle and busy loop rapidly, and the "speed" we see is a average. Also there's something alternative to interrupts, Polling: https://en.wikipedia.org/wiki/Polling_(computer_science)
For ethernet, things is a bit different, since ethernet usually treat packets as a minimum unit, so we are talking about how to slow down packet forwarding. ISP (or any other node such as your router) cannot make bits go slower, as that's fixed as soon as you established a Layer 1 link (PHY layer, 10/100 or 1000Mbps).
I think I cannot give anything better than wikipedia, and I already talked too much, so here's the related information about how to control the speed of a network:
https://en.wikipedia.org/wiki/Flow_control_(data)
https://en.wikipedia.org/wiki/Network_congestion#Congestion_control
In a nutshell, when they want you to begin slowdown, they either send a signal, or delay some of your packets, or drop some packets, yes, that's how ethernet works and why it's never as reliable as your USB, the "drop" action IS a legit way to tell nodes they are talking too fast.
Hope these helps and welcome on further discussing.
 

TRENDING THREADS