Network neutrality effectively governs how providers can handle traffic. It's a broad concept in theory, with potential upsides and downsides in practice. Consensus seems to be the downsides might be fairly harmful to consumers and startups.
In the absence of net neutrality, internet service providers and the big businesses with the budget to support them would win – with consumers and internet startups losing. In theory, abolishing net neutrality would allow ISPs like Verizon to decide for themselves whether or not they want to provide VoIP traffic, or any other traffic type, to traverse their networks. Other Tier 1 providers would be free to do the same.
To be fair, internet in the US isn't currently operated under perfect net neutrality rules. Information freedom is increasingly eroding around the edges of the law, with an egregious, perhaps extortive agreement taking place earlier this year between Netflix and Comcast. Comcast makes up a significant portion of Netflix’s customer base; the video streaming service was all but forced to pay up. This eventually caused Netflix to raise its prices (however slightly), thus, altering their business model and harming consumers. If net neutrality is to fail completely, then expect more deals like this.
As for your question:
Where is the throttling occurring? Am I missing a crucial step? Is the
'traffic' being throttled 'on the way' to the client/server somewhat
like a tollbooth at the ISP level?
When you think of throttling, think of quality of service. Most points of the internet work on the principle of oversubscription, which makes more effective use of infrastructure. So even if you have a 1Gb/s internet connection, you probably won't be getting 1Gb/s service. That's because Tier 1 internet providers' backbones aren’t capable of sustaining 1Gb/s for millions of customers.
I fail to see how any server can pay to have their content 'reach the
user faster' if it is the client who generally is the speed
limitation. From a technical perspective, how would this work?
A provider has the ability to service packets as they see fit. At micro-scale, imagine you have 2 users connected via a 100Mb connection to separate providers with each provider peering through a 100Mb connection to one another. If either provider decides those users are less important than any other customer they have, they can shape that traffic to be lower priority than anything else, meaning they have the capability of being dropped first if there isn’t enough bandwidth to support them.
It's also important to point out that those packets may not make it to the consumer at all. It is entirely possible to drop packets altogether if they fall outside the threshold those providers provisioned.
I solve the problem with dscp packet marking.here is the configuration for Downloading stream.
the class map as before:
class-map match-all UBUNTU_DW match access-group name UBUNTU_DW
and the new policy with the help of dscp is:
Policy-Map DW
Class UBUNTU_DW
police cir 32000 bc 1500 pir 64000 be 2000
conform-action set-dscp-transmit af21
exceed-action set-dscp-transmit default
violate-action drop
then I apply the policy to int fa 0/0
service-policy output DW
and it works :)
R1#sh policy-map interface fa 0/0 output
FastEthernet0/0
Service-policy output: DW
Class-map: UBUNTU_DW (match-all)
1699 packets, 2075517 bytes
5 minute offered rate 20000 bps, drop rate 8000 bps
Match: access-group name UBUNTU_DW
police:
cir 32000 bps, bc 1500 bytes
pir 64000 bps, be 2000 bytes
conformed 964 packets, 1063157 bytes; actions:
set-dscp-transmit af21
exceeded 336 packets, 440593 bytes; actions:
set-dscp-transmit default
violated 399 packets, 571767 bytes; actions:
drop
conformed 10000 bps, exceed 3000 bps, violate 8000 bps
Class-map: class-default (match-any)
77 packets, 7490 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
Best Answer
This really has nothing to do with TCP, or any other layer-4 protocol.
For the most part, this is done simply through policing (dropping) any inbound packets that would exceed the bandwidth limit. Outbound packets could be policed or shaped to a specific bandwidth. Shaping does use queues, but queues are finite and fairly small, not like the buffering you see for watching a video, and when a queue gets full, the traffic to be queued gets dropped. There are multiple shaping strategies. ISPs tend to want things simple, and most probably just use policing.
The whole QoS concept is far too large to explain in this site. There are entire books on QoS that have chapters on policing and shaping. You could do some further research on those concepts.
How each ISP does this type of thing may vary from ISP to ISP, and networks not under your control are off-topic here, so we can't tell you what any particular ISP does for this.