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ć?


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ń.


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.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.