Ograniczanie przepustowości to celowe spowolnienie lub przyspieszenie usługi internetowej przez dostawcę usług internetowych (ISP)[1].
Jest to środek reaktywny stosowany w sieciach komunikacyjnych w celu regulacji ruchu w sieci i minimalizacji przeciążenia pasma. Ograniczanie przepustowości może wystąpić w różnych lokalizacjach w sieci. W sieci lokalnej (LAN), administrator systemu może stosować ograniczanie przepustowości, aby ograniczyć przeciążenie sieci i awarie serwera. Na szerszym poziomie, dostawca usług internetowych może używać ograniczania przepustowości, aby zmniejszyć wykorzystanie przez użytkownika przepustowości dostarczanej do sieci lokalnej.Ograniczanie przepustowości jest również używane jako pomiar szybkości transmisji danych w witrynach internetowych służących do testowania szybkości[2].
Przepustowość może być używana do aktywnego ograniczania szybkości wysyłania i pobierania przez użytkownika w programach, takich jak strumieniowe przesyłanie wideo, protokoły BitTorrent i inne aplikacje do udostępniania plików, a także do wykorzystania całkowitej przepustowości dostarczanej wszystkim użytkownikom w sieci[3]. Ograniczanie przepustowości jest również często używane w aplikacjach internetowych w celu rozłożenia obciążenia na szerszą sieć, aby zmniejszyć zatory w sieci lokalnej lub na wiele serwerów, aby uniknąć przeciążenia poszczególnych serwerów, a tym samym zmniejszyć ryzyko awarii systemu i zyskać dodatkowe przychody poprzez zachęcanie użytkowników do korzystania z droższych warstwowych schematów cenowych, w których przepustowość nie jest ograniczana[4].
Sieć komputerowa zazwyczaj składa się z wielu serwerów, które przechowują dane i świadczą usługi klientom. Dobrym przykładem jest Internet, w którym serwery WWW są używane do hostowania witryn internetowych, dostarczając informacje do potencjalnie bardzo dużej liczby komputerów klienckich. Klienci będą wysyłać żądania do serwerów, które odpowiedzą, wysyłając wymagane dane, które mogą być plikiem piosenki, wideo itd., w zależności od tego, czego zażądał klient. Ponieważ na serwer jest zwykle wielu klientów, zapotrzebowanie na przetwarzanie danych na serwerze będzie na ogół znacznie większe niż na jakimkolwiek indywidualnym kliencie. Dlatego serwery są zwykle wdrażane przy użyciu komputerów o dużej pojemności danych i mocy obliczeniowej. Ruch w takiej sieci będzie się zmieniał w czasie i będą występować okresy, w których żądania klientów będą osiągać szczyt, czasami przekraczając przepustowość części sieci i powodując zatory, zwłaszcza w częściach sieci, które tworzą wąskie gardła. Może to spowodować niepowodzenie żądania danych lub w najgorszych przypadkach awarię serwera.
Aby zapobiec takim zdarzeniom, administrator serwera może wdrożyć ograniczanie przepustowości, aby kontrolować liczbę żądań, na które serwer odpowiada w określonym przedziale czasu. Gdy serwer używający ograniczania przepustowości osiągnie określony limit, odciąży nowe żądania i nie będzie na nie odpowiadać. Czasami można je dodać do kolejki w celu przetworzenia, gdy wykorzystanie przepustowości osiągnie akceptowalny poziom, ale w godzinach szczytu częstotliwość żądań może nawet przekroczyć możliwości takich kolejek i żądania należy wyrzucić.[5]