The Wonder Shaper

Screenshot Software:
The Wonder Shaper
Szczegóły programowe:
Wersja: 1.1a
Filmu: 2 Jun 15
Wywoływacz: Bert Hubert
Licencja: Wolny
Popularność: 32

Rating: nan/5 (Total Votes: 0)

Wonder Shaper jest bardzo specjalny skrypt shaper sieci z wieloma funkcjami. Działa na Linuksie 2.4 i wyższej.
Cele
Starałem się stworzyć Święty Graal:
* Utrzymania niskiego opóźnienia dla ruchu interfactive w każdym czasie.
Oznacza to, że pobieranie i wysyłanie plików nie powinno przeszkadzać SSH lub nawet telnet. To są najważniejsze rzeczy, nawet opóźnienia rzędu 200ms to do pracy nad.
* Zgoda na "surfowanie" w rozsądnych prędkościach mimo ściągania
Mimo, że jest ruch http "luzem", inny ruch nie powinien go zalewać zbyt wiele.
* Upewnij się, że wrzucanie danych nie przeszkadza pobieranie, i na odwrót
Jest to zjawisko o wiele zaobserwować, gdzie ruch w górę po prostu niszczy prędkość pobierania. Okazuje się, że to wszystko jest możliwe, kosztem odrobinę przepustowości. Dlatego, że przesłane, pliki do pobrania i ssh boli siebie nawzajem jest obecność długich kolejek w urządzeniach dostępowych, takich jak modemy kablowe czy DSL.
Dlaczego to nie działa dobrze domyślnie
ISP wiedzieć, że są one na podstawie porównania wyłącznie na jak szybko ludzie mogą pobrać. Oprócz dostępnego pasma, prędkość ściągania zależy w dużym stopniu od utraty pakietów, które poważnie odbija się na wydajności TCP / IP. Duże kolejki może zapobiec packetloss i przyspieszyć pobieranie. Tak duże kolejki skonfigurować dostawców usług internetowych.
Te duże kolejki jednak uszkodzić interaktywność. Przyciśnięciu klawisza musi upstream kolejkę, która może być sekundy (!) I trafić do zdalnego hosta. Wyświetlane jest to, co prowadzi do powrót pakietu, który musi przechodzić przez kolejkę odbierającą zlokalizowaną u dostawcy, zanim pojawią się na ekranie.
Ten dokument wyjaśnia jak manipulować procesem kolejkowania na wiele sposobów, ale niestety, nie wszystkie kolejki są dla nas dostępne. Kolejki w urządzeniach dostawców są poza granice, ale kolejka wysyłająca prawdopodobnie żyje wewnątrz modemu kablowego lub DSL urządzenia. Może lub nie może być w stanie go skonfigurować. Prawdopodobnie nie.
Więc, co dalej? Ponieważ nie możemy kontrolować żadnej z tych kolejek, muszą zostać wyeliminowane, i przeniósł się do routera Linux. Na szczęście to możliwe.
Ograniczenie prędkości wysyłania nieco
Poprzez ograniczenie prędkości wysyłania do naszego nieco mniej niż faktyczna dostępna przepustowość kolejek budowane są w naszym modemie. Kolejka jest teraz przeniósł się do Linuksa.
Ograniczenie prędkości do pobrania
Jest to nieco trudniejsze, ponieważ tak naprawdę nie możemy wpłynąć, jak szybko internautów nas statki danych. Ale możemy odrzucać pakiety przychodzące za szybko, co powoduje, że protokół TCP / IP, aby zwolni do częstotliwości, którą jesteśmy. Ponieważ nie chcemy, aby upuścić niepotrzebnie, skonfigurować rozmiar `serii 'możemy pozwolić na większą prędkością.
Teraz, kiedy już to zrobisz, wyeliminowaliśmy zupełnie kolejkę przychodzącą (poza krótkimi seriami) i uzyskaliśmy możliwość zarządzania kolejką wychodzącą z całą mocą oferuje Linux.
Niech ruch interaktywny pominąć kolejkę
Co pozostaje do zrobienia jest, aby upewnić się, że ruch interaktywny skacze do przodu kolejki upstream. Aby upewnić się, że dodane nie boli pliki do pobrania, możemy również poruszać pakiety ACK do przodu kolejki. To jest to, co zazwyczaj powoduje ogromne spowolnienie obserwowane podczas generowania ruchu masowego w obie strony. W PODZIĘKOWANIA dla ruchu downstream muszą konkurować z ruchem upstream i opóźniania procesu.
Mamy również inne małe pakiety przesunąć do przodu kolejki - to pomaga systemów operacyjnych, które nie są ustawione bity ToS, jak wszystko od firmy Microsoft.
Pozwalają użytkownikowi na określenie niski priorytet (nowy ruch w 1.1!)
Czasami można zauważyć, niski priorytet ruchu wychodzącego spowolnienie ważną ruchu. W takim przypadku, następujące opcje mogą pomóc:
NOPRIOHOSTSRC
Ustaw to na hostach lub masek sieciowych w sieci, który powinien mieć niski priorytet
NOPRIOHOSTDST
Ustaw to na hostach lub masek sieciowych w internecie, które powinny mieć niski priorytet
NOPRIOPORTSRC
Ustaw to do portów źródłowych, które powinny mieć niski priorytet. Jeśli masz nieistotne serwer WWW na ruchu, ustawić na 80
NOPRIOPORTDST
Ustaw to do portów docelowych, które powinny mieć niski priorytet.
Zobacz początek wshaper i wshaper.htb
Wyniki
Jeśli robimy to wszystko otrzymujemy następujące pomiary przy użyciu doskonałe połączenie ADSL z XS4ALL w Holandii:
Baseline opóźnienia:
round-trip min / avg / max = 14,4 / 17,1 / 21,7 ms
Bez odżywka ruchu, podczas pobierania:
round-trip min / avg / max = 560,9 / 573,6 / 586,4 ms
Bez odżywka ruchu, w czasie przesyłania:
round-trip min / avg / max = 2041,4 / 2332,1 / 2427,6 ms
Z odżywką, podczas 220kbit / s wysyłania:
round-trip min / avg / max = 15,7 / 51,8 / 79,9 ms
Z odżywką, podczas 850kbit / s do pobrania:
round-trip min / avg / max = 20,4 / 46,9 / 74,0 ms
Podczas przesyłania, pliki do pobrania przebiega w ~ 80% dostępnej prędkości. Dodane w około 90%. Opóźnienie to skacze do 850 ms, wciąż na zastanawianie się, dlaczego.
Czego można oczekiwać od tego scenariusza zależy wiele na swojej aktualnej prędkości uplink. Gdy wysyła z pełną prędkością, zawsze znajdzie się jeden pakiet wyprzedzić naciśnięciem klawisza. To jest dolna granica do opóźnienia można osiągnąć - podzielić MTU przez upstream prędkości do wyliczenia. Typowe wartości będą nieco wyższe niż. Obniżyć MTU dla lepszych efektów!
Mała tabela:
Speed ​​Uplink | Oczekiwany opóźnienia z powodu przesłać
--------------------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
Więc do obliczenia efektywnej opóźnienia, wziąć pomiaru bazowego (ping na nieobciążonym link) i spojrzeć na liczby w tabeli i dodać go. To o co możesz się spodziewać. Liczba ta wynika z obliczeń, że zakłada się, że będzie miał przed klawiszy co najwyżej połowie pełny pakiet wielkości przed nim.
To sprowadza się do:
   mtu * 0,5 * 10
   -------------- + Baseline_latency
       kbit
Współczynnik 10 nie jest do końca poprawne, ale działa dobrze w praktyce.
Jądro
Jeśli prowadzisz nowszych dystrybucji, wszystko powinno być w porządku. Musisz 2.4 z opcji QoS włączony.
Jeśli skompilować własne jądro, musi mieć włączone pewne opcje. Przede wszystkim, w menu Opcje sieciowe, QoS i / lub sprawiedliwego kolejkowania, włączyć co najmniej CBQ, PRIO, SFQ, Ingress, Traffic Policing, wsparcie QoS, Kursy Estymator, QoS klasyfikatora, U32 klasyfikator, fwmark klasyfikatora.
W praktyce, ja (i większość dystrybucji) po prostu włączyć wszystkiego.
Skrypty
Skrypt jest w dwóch wersjach, które działa na standardowych jądrach i jest realizowany przy użyciu CBQ. Drugi wykorzystuje doskonałą HTB kolejki dla ruchu, który nie jest w jądrze domyślnej. Wersja testowana CBQ jest więcej niż HTB jednym!
Patrz "wshaper" i "wshaper.htb".
Strojenie
Skrypty te muszą wiedzieć, "prawdziwego" szybkość połączenia ISP. To jest trudne do określenia z góry, jak różne ISP używać różnych rodzajów bitów się pojawia. Ludzie zgłosić sukces stosując następującą metodę:
Szacujemy, zarówno przed i za swoich na pół stopy twój ISP określa,. Teraz sprawdź, czy skrypt działa - sprawdzić interaktywność podczas przesyłania i podczas pobierania. To powinno dostarczyć opóźnienia jak obliczono powyżej. Jeśli nie, sprawdź, czy skrypt wykonywany bez błędów.
Teraz powoli zwiększać liczby upstream i downstream w skrypcie, aż opóźnienie wraca. W ten sposób można znaleźć optymalne wartości dla połączenia. Jeśli jesteś zadowolony, proszę zgłosić się do mnie, więc mogę zrobić listę numerów, które dobrze. Proszę dać mi znać, która z ISP używasz i nazwę subskrypcji, a jej renomowanych specyfikacji, więc mogę cię tu i listy ratowania innych kłopotów.
Instalacja
Jeśli wybrać się można skopiować skrypt do /etc/ppp/ip-up.d i będzie działać na każdym connect.
Jeśli chcesz usunąć shaper z interfejsu, uruchomić "wshaper stop". Aby wyświetlić informacje o stanie, uruchom "wshaper statusu".
Znane problemy
Jeśli pojawiają się błędy, dodać -x do pierwszej linii, w następujący sposób:
#! / Bin / bash -x
I spróbuj ponownie. Będzie to pokazać, która linia daje błąd. Przed skontaktowaniem się do mnie, upewnij się, że używasz najnowszej wersji iproute!
Najnowsze wersje można znaleźć na stronie dystrybutora Linuksa, lub jeśli wolisz kompilacji, tutaj:
 ftp://ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz

Inne programy z deweloperem Bert Hubert

Komentarze do The Wonder Shaper

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!