Współlokator opóźnia połączenie internetowe, oglądając filmy z chińskiej strony internetowej. Czy QoS może rozwiązać problem?
Nie przeczytałem całej twojej historii, ale na podstawie pytania, które zadałeś, odpowiedź na ogół nie jest tak naprawdę . QoS może, w pewnych idealnych okolicznościach, częściowo rozwiązać problem, jeśli korzystasz z niektórych usług o wysokim priorytecie (takich jak Voice over IP), a pakiety są odpowiednio oznakowane, a Twój dostawca usług wstępnych przestrzega QoS. Ale to ci nie pomoże, jeśli priorytet twoich pakietów i pakietów twojego współlokatora jest taki sam.
To, czego chcesz, to jakieś aktywne zarządzanie kolejkami .
Co dzieje się, gdy twój współlokator ogląda wideo? Cóż, współdzielony router / modem odbiera ogromną ilość danych. Aby zapobiec utracie tych danych, które przychodzą tak szybko, jak modem może odbierać, tworzy w modemie coraz większy bufor wewnętrzny, który ustawia w kolejce wszystkie dane pakietu.
Musi to zrobić, ponieważ odbiera pakiety IP poza kolejnością i z wielu miejsc (pobrań, pobrań współlokatora itp.) I musi ponownie złożyć te elementy razem, aby utworzyć całe pakiety TCP. Tworzy więc ten ogromny bufor, aby uniknąć utraty jakichkolwiek pakietów; w przeciwnym razie przy małym buforze niektóre pakiety musiałyby zostać usunięte, co może spowodować konieczność ponownego wysłania danych.
Niestety, gdy bufor przekroczy określony rozmiar, korzyści wynikające z posiadania bufora są przeważone przez jego wady. Główną wadą „rozdętego” bufora jest to, że podczas odbierania pakietu występuje ogromne opóźnienie .
Opóźnienie oznacza, że aplikacja wysyłająca lub odbierająca dane musi czekać wyjątkowo długo, aby potwierdzić, że została poprawnie wysłana lub odebrana. Ponieważ dane w gniazdach TCP są „potwierdzane” przez drugą stronę w celu potwierdzenia „OK, rozumiem!”, Drugi koniec może założyć po pewnym czasie opóźnienia, że pakiet został utracony i podjąć próbę ponownego wysłania tak czy siak. Tak więc celem dużego bufora było zapobieganie ponownemu wysyłaniu, ale w jego dążeniu powoduje to ponowne wysyłanie !!! Każde ponowne wysłanie wymaga więcej zużytej / zmarnowanej przepustowości i dłuższych opóźnień.
Koncepcyjne aktywne zarządzanie kolejkami jest rodzajem rozwiązania, które próbuje inteligentnie ograniczyć wielkość buforów. Utrzymując bufory tak małe, jak to możliwe, a jednocześnie wystarczająco duże, aby zapobiec utracie większości danych z powodu oczekiwania na pakiety poza kolejnością, możesz zapobiec wzdęciom bufora .
To, co naukowcy starają się robić od lat (a osiągnęliśmy tylko częściowy sukces dopiero w maju 2012 r.), To zaprojektować algorytm, który implementuje prawidłowe zarządzanie aktywną kolejką (AQM) bez jakiejkolwiek ręcznej konfiguracji lub regulacji użytkownika (ponieważ to byłoby czasochłonne i denerwujące). Po prostu rodzaj „magicznej kuli”, która odpowiednio równoważy rozmiary kolejek, aby zminimalizować utratę pakietów i jednocześnie zminimalizować opóźnienia.
Jak dotąd jedyną rzeczą, która okazała się ogromnym sukcesem na domowych routerach, jest aktywne zarządzanie kolejkami w kontrolowanym opóźnieniu (CoDel), które jest ostatnim dodatkiem do jądra Linux.
CODEL jest bardzo przydatny, ponieważ steruje się opóźnień (opóźnienia) pakietów. Jak to robi, jest to zbyt techniczne dla tego pytania.
Kilka linków na CoDel, abyś mógł o nim przeczytać:
CoDel na bufferbloat.net
CeroWRT
Artykuły Jima Gettysa na temat kodu
Edycja : QoS to tylko połowa rozwiązania. QoS oparte na portach (np. Nadawanie pakietom wyższego priorytetu) zabierze Cię tylko do tej pory; to wcale nie zmniejszy wzdęcia bufora, a twoje opóźnienia będą nadal wysokie. Ale utrata pakietów może nieznacznie spaść.
CoDel w połączeniu z QoS, a la CeroWRT na routerze, jest naprawdę najlepszym podejściem.