Co może powodować duże opóźnienia, gdy przepustowość jest nasycona?

0

Od jakiegoś czasu mam problemy z siecią i staram się wyśledzić źródło problemu.

Wczoraj przesyłałem plik z laptopa na komputer stacjonarny za pomocą SCP przez połączenie Wi-Fi. Kiedy zacząłem pobieranie, oba komputery miały niski ping do lokalnego routera (192.168.1.1, oba miały około 10–50 ms), a pobieranie przebiegało z prędkością 2-3 MB / s.

Po około minucie okazało się, że opóźnienie mojego pulpitu do 192.168.1.1 gwałtownie wzrosło (> 1000 ms), a transfer zwolnił do indeksowania (~ 200 KB / s). Opóźnienie laptopa do 192.168.1.1 pozostało jednak takie samo (10-50ms). Po zakończeniu przesyłania opóźnienie pulpitu spadło z powrotem do normalnego zakresu.

Oczywiście coś idzie nie tak, gdy połączenie jest nasycone. Co to mogło być? Czy to sugeruje problem z routerem lub problem z moim komputerem? Gdzie byłoby właściwe miejsce, aby zacząć szukać?

Patrick Collins
źródło
Ummm ... jeśli połączenie jest nasycone, to działa z maksymalną wydajnością. Z definicji dodawanie dalszego ruchu spowoduje kolejkowanie pakietów i opóźnienie.
cpt_fink
@cpt_fink Szybkość transferu spada do 200 KB / s i pozostaje tam, co zdecydowanie nie wystarcza do zabicia routera. Dotyczy to również Wi-Fi w całej mojej sieci lokalnej - miałbym nadzieję, że mogę uzyskać maks. Prędkość co najmniej 54 Mb / s. Opóźnienia pozostały na niskim poziomie na jednym komputerze, ale na drugim --- czy to, co opisujesz, nie spowodowałoby spowolnienia w całej sieci?
Patrick Collins,

Odpowiedzi:

2

Google dla „wzdęcia bufora”.

Ponieważ pamięć RAM stała się tania, sprzęt sieciowy dodał bufory ramek, aby nigdy nie musiały upuszczać ramki.

Niestety spadki ramek spowodowały, że TCP zauważył przeciążenie i wiedział, kiedy się wycofać. Bez upuszczanych ramek tradycyjne implementacje TCP nigdy nie zauważają przeciążenia i nigdy się nie wycofują, więc po prostu wysyłają z dużą prędkością i jeszcze gorzej.

Jeśli cały sprzęt sieciowy buforuje coraz więcej ramek podczas przeciążenia i pozwala na zwiększenie długości kolejki bez ograniczeń, opóźnienie rośnie i rośnie, ponieważ opróżnianie kolejek trwa coraz dłużej.

Techniki i mechanizmy aktywnego zarządzania kolejkami (AQM), takie jak jawne powiadamianie o przeciążeniu (ECN), mogą to złagodzić, ale ponieważ problem nie jest bardzo dobrze nagłośniony, trudno jest stwierdzić, które produkty unikają wzdęcia bufora, a które nie. To nie tak, że możesz poszukać „No Bloat Buffer!” logo z boku pudełka i wiedz, że dostajesz dobry sprzęt.

Istnieją jednak rynkowe dystrybucje oprogramowania układowego routera Wi-Fi, które specjalizują się w unikaniu rozdęcia buforów. Przynajmniej jedna dystrybucja została specjalnie opracowana przez badaczy TCP, którzy jako pierwsi rozpoznali problem, i została wykorzystana jako platforma badawczo-rozwojowa, gdy szukali rozwiązań.

Spiff
źródło
Jeśli to problem z zatorami, dlaczego opóźnienia na moim laptopie pozostają niskie? Czy dla każdego połączenia są oddzielne bufory? W tym przypadku nie mam bezpośredniej kontroli nad routerem (mój właściciel zarządza siecią), ale uważam, że jest to jakiś produkt zapasowy Comcast.
Patrick Collins,
1

Duże opóźnienia występują, gdy pakiety trafiają do kolejki, która ma zostać przesłana przez bardzo zajęte łącze. Wszystkie pakiety znajdujące się przed nim w kolejce muszą zostać wysłane jako pierwsze. Gdy zapotrzebowanie na łącze jest duże, a bufory kolejek są duże, prowadzi to do wysokich czasów podróży w obie strony.

Nevin Williams
źródło
Czy to oznacza problem ze strony routera lub problem ze sterownikami bezprzewodowymi?
Patrick Collins,
Wysokie czasy podróży w obie strony są cechą, a nie błędem. W warunkach nasycenia albo pakiet trafia do kolejki, by ostatecznie zostać wysłany, albo zostaje upuszczony. Ponieważ pakiet ping jest około 27 razy mniejszy niż w pełni obciążony pakiet danych, ma większą szansę na dostanie się do kolejki, która mogła nie mieć miejsca na pakiet z pełną klatką. W nasyconych warunkach długi czas podróży w obie strony jest prawdopodobnie lepszy niż brak podróży w obie strony. Domyślne użycie małych pakietów przez Pinga prawdopodobnie wprowadza w błąd co do ilości faktycznie utraconych pakietów.
Nevin Williams
W porządku. Jeśli więc kolejka routera jest pełna, dlaczego komputer wysyłający dane (mój laptop) nadal ma małe opóźnienia? Gdyby to była przyczyna, czy nie zabiłoby wszystkiego podłączonego do sieci?
Patrick Collins,
„jedna lub więcej kolejek” Podejrzewam, że ICMP ma swoją własną kolejkę o niskim priorytecie na większości routerów konsumenckich, która pozwala na przesyłanie rzeczywistych danych przed ruchem diagnostycznym bez zawartości. Indziej, wasze pingi by nie ingerować transferu, a chcesz mieć prawdziwy problem, a nie tylko chwilowo wysokim momencie ping.
Nevin Williams
To nadal nie ma sensu --- jeśli ICMP otrzyma osobną kolejkę, oba pingi pozostaną na niskim poziomie.
Patrick Collins,