Ograniczenie szybkości — Rate limiting
W sieciach komputerowych , ograniczającym szybkość jest używany do kontrolowania szybkości żądań wysyłanych lub odbieranych przez kontroler interfejsu sieciowego . Może być używany do zapobiegania atakom DoS i ograniczania web scrapingu .
Urządzenia sprzętowe
Urządzenia sprzętowe mogą ograniczać liczbę żądań w warstwie 4 lub 5 modelu OSI .
Ograniczenie szybkości może być wywołane przez stos protokołów sieciowych nadawcy w związku z odebranym pakietem oznaczonym ECN, a także przez program planujący sieci dowolnego routera po drodze.
Chociaż urządzenie sprzęt może ograniczyć prędkość dla danego zakresu adresów IP na warstwie 4, ryzykuje blokowanie sieci z wieloma użytkownikami, które są maskowane przez NAT z jednego adresu IP wystąpienia ISP .
Głęboka inspekcja pakietów może być użyta do filtrowania w warstwie sesji, ale skutecznie rozbroi protokoły szyfrowania, takie jak TLS i SSL między urządzeniem a serwerem protokołu (tj. serwerem WWW).
Serwery protokołów
Serwery protokołów korzystające z modelu żądania/odpowiedzi, takie jak serwery FTP lub zazwyczaj serwery sieci Web, mogą używać centralnej bazy danych klucz-wartość w pamięci , takiej jak Redis lub Aerospike , do zarządzania sesjami. Algorytm ograniczania szybkości służy do sprawdzania, czy sesja użytkownika (lub adres IP) musi zostać ograniczona na podstawie informacji w pamięci podręcznej sesji.
W przypadku, gdy klient wysłał zbyt wiele żądań w określonym przedziale czasu, serwery HTTP mogą odpowiedzieć kodem stanu 429: Too Many Requests .
Jednak w niektórych przypadkach (np. serwery WWW) algorytm zarządzania sesją i ograniczania szybkości powinien być wbudowany w aplikację (używaną do dynamicznej zawartości) uruchomioną na serwerze WWW, a nie w samym serwerze WWW.
Gdy serwer protokołu lub urządzenie sieciowe zauważy, że osiągnięto skonfigurowany limit żądań, odciąży nowe żądania i nie będzie na nie odpowiadać. Czasami mogą być dodawane do kolejki w celu przetworzenia, gdy wskaźnik wejściowy osiągnie akceptowalny poziom, ale w godzinach szczytu wskaźnik żądań może nawet przekroczyć pojemność takich kolejek i żądania muszą zostać odrzucone.
Centra danych
Centra danych powszechnie stosują ograniczanie szybkości w celu kontrolowania udziału zasobów przyznawanych różnym dzierżawcom i aplikacjom zgodnie z ich umową dotyczącą poziomu usług. W centrach danych wykorzystujących oprogramowanie i sprzęt stosuje się różne techniki ograniczania szybkości. Zwirtualizowane centra danych mogą również stosować ograniczenie szybkości w warstwie hiperwizora. Dwie ważne metryki wydajności ograniczników szybkości w centrach danych to ślad zasobów (wykorzystanie pamięci i procesora), który określa skalowalność i precyzję. Zwykle istnieje kompromis, tzn. większą precyzję można osiągnąć, przeznaczając więcej zasobów na ograniczniki szybkości. Znaczna część badań skupiających się na poprawie wydajności ograniczania szybkości w centrach danych.
Zobacz też
- Algorytmy
- Zasobnik na tokeny
- Przeciekające wiadro
- Naprawiono licznik okien
- Dziennik przesuwnego okna
- Licznik okien przesuwnych
- Biblioteki
- Ogranicznik szybkości ASP.NET Web API
- Oprogramowanie pośredniczące ograniczające szybkość ASP.NET Core
- Ograniczanie szybkości dla platformy .NET (biblioteka PCL)
- Ograniczenie szybkości dla Node.JS
Bibliografia
- ^ Richard A. Deal (22 września 2004). „Zabezpieczenia zapory routera Cisco: ochrona przed atakami DoS” . Źródło 16 kwietnia 2017 .
- ^ Greenberg, Andy. „Absurdalnie podstawowy błąd, który pozwala każdemu pobrać wszystkie dane Parlera” . Przewodowy (12 stycznia 2021) . Źródło 12 stycznia 2021 .
- ^ B M. Noormohammadpour CS Raghavendra, „centrum danych sterowania ruchem: zrozumienie techniki i Kompromisy,” IEEE badania łączności i Ćwiczenia, tom. PP, nie. 99, s. 1-1.
- ^ B c d Nikrad Mahdi (12 kwietnia 2017). „Alternatywne podejście do ograniczania szybkości” . Źródło 16 kwietnia 2017 .