Jak symulować środowisko o niskiej przepustowości i dużym opóźnieniu?
201
Muszę zasymulować połączenie z serwerem o niskiej przepustowości i dużym opóźnieniu, aby emulować warunki VPN na zdalnej stronie. Przepustowość i opóźnienie powinny być dostrajane, aby znaleźć najlepszą kombinację, aby uruchomić nasz pakiet oprogramowania.
W systemie macOS dostępny jest Network Link Conditioner, który symuluje konfigurowalną przepustowość, opóźnienie i utratę pakietów. Jest on zawarty w pakiecie Dodatkowe narzędzia dla Xcode .
W kroku 5 powyższych instrukcji włączasz zaporę. Aby tylko symulować inne połączenie IP, możesz (na przykład) wykonać następujące czynności:
Utwórz plik, /etc/rc.firewall.56kktóry zawiera następujące elementy:
ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in
ipfw pipe 1 config bw 56Kbit/s
ipfw pipe 2 config bw 56Kbit/s
I zmień /etc/rc.conf... zastąp linię
firewall_type="open"
z
firewall_type="/etc/rc.firewall.56k"
zrestartuj komputer, a uzyskasz most 56 KB!
Jeśli akurat pracujesz na komputerze Macintosh, ten system operacyjny ma domyślnie wbudowany ipfw. Zrobiłem to samo, kierując ruch sieciowy przez lotnisko i sieć Ethernet, ustawiając go tak, aby wszystko, co nadchodziło na lotnisko, miało takie same cechy, jak wszystko, co próbuję naśladować. Możesz wywoływać polecenia ipfw bezpośrednio z terminala i uzyskać te same efekty.
W przeszłości korzystałem z mostu przy użyciu funkcji Linux Netem (emulacji sieci). Jest wysoce konfigurowalny - pozwala wprowadzić opóźnienia (pierwszy przykład dotyczy sieci WAN), utratę pakietów, uszkodzenie itp.
EDYCJA: Istnieje również interfejs internetowy MasterShaper do sterowania ustawieniami.
Zauważam, że Netem działał bardzo dobrze w moich aplikacjach, ale kilkakrotnie skończyłem również z WANem . Dostarczony rozruchowy obraz ISO (i obrazy urządzeń wirtualnych) sprawił, że był całkiem przydatny.
Natknąłem się na Charles, internetową aplikację proxy do debugowania i odniosłem wielki sukces w emulacji opóźnień w sieci. Działa w systemach Windows, Mac i Linux.
Charlesa można użyć do dostosowania przepustowości i opóźnienia połączenia internetowego. Umożliwia to symulowanie warunków modemu za pomocą szybkiego połączenia.
Przepustowość może być dławiona do dowolnego dowolnego bajtu na sekundę. Umożliwia to symulację dowolnej prędkości połączenia.
Opóźnienie można również ustawić na dowolną liczbę milisekund. Opóźnienie opóźnienia symuluje opóźnienie występujące przy wolniejszych połączeniach, to znaczy opóźnienie między złożeniem żądania a otrzymaniem żądania na drugim końcu.
Charles jest serwerem proxy HTTP i dlatego nadaje się tylko do testowania aplikacji HTTP. Dla każdego z nich, ale moim zdaniem jest to prawdopodobnie najgorsze oprogramowanie, z jakiego kiedykolwiek korzystałem. Użyłem go tylko przez krótki czas, gdy musiałem pracować na komputerze Mac. Użytkownikom Windows polecam Fiddler, jeśli potrzebujesz serwera proxy do debugowania HTTP. Niestety nie znalazłem nic innego jak Charles dla OSX.
Znalazłem ten mały schludny program dla systemu Windows o nazwie niezdarny . Ma trochę status alfa, ale wydaje mi się, że działa dobrze i jest open source.
Edycja: Inni zauważyli, że nie można ograniczyć przepustowości niezdarnym i to prawda. Możesz dodać tylko Opóźnienie i kilka innych błędów związanych z siecią. To zdyskwalifikuje tę odpowiedź jako prawidłową odpowiedź na pytanie, ale ponieważ miałem dobry użytek, gdy chciałem zasymulować złą sieć, więc zostawiam ją tutaj, o ile ma ona> 0 głosów lub podobnie.
Kiedy większość ludzi mówi „ogranicz przepustowość”, prawdopodobnie jest więcej niż zadowolona z dodania ogromnych opóźnień i utraty pakietów, ponieważ skutecznie ograniczają przepustowość. Również ten program jest niezwykle prosty w użyciu, bije wszystko, co wypróbowałem na Windowsie.
WANem to emulator sieci rozległej, który ma zapewnić rzeczywiste wrażenia z korzystania z sieci rozległej / Internetu podczas opracowywania / testowania aplikacji w środowisku LAN.
Próbowałem tego i nie mogę tego zrobić. Z jakiegoś powodu nie otrzyma adresu IP z naszej sieci, podczas gdy żaden inny komputer nie ma z nim problemów.
Spróbowałbym użyć Netem na Linuksie. Za jego pomocą możesz symulować dodatkowe opóźnienia, uszkodzenia, utratę pakietów i duplikację. Działa nawet na urządzeniu z pętlą zwrotną.
Plany beta dla v3 wymieniały symulację opóźnienia jako planowaną funkcję. Został niedawno wydany i jeszcze go nie użyłem, aby sprawdzić, czy ta funkcja się sprawdziła.
Aktualizacje w dniu 2017-10-07 : Ostatnia darmowa wersja NetBalancer to 9.2.7. Program ma określoną datę ważności. Przed uruchomieniem usługi NetBalancer należy cofnąć zegar systemowy przed 18.10.2016. Szczegółowe informacje można znaleźć w tym artykule .
Aby zasymulować połączenie o niskiej przepustowości do testowania stron internetowych przy użyciu Google Chrome, możesz przejść do karty Sieć w Narzędziach F12 i wybrać poziom przepustowości do symulacji lub utworzyć niestandardową przepustowość do symulacji.
Dzięki! Jeśli nie możesz go znaleźć, znajduje się w konsoli Chrome na karcie Sieć po prawej stronie przycisku „Wyłącz pamięć podręczną”. Jego wartość domyślna to „Bez ograniczania”.
Istnieje produkt z http://www.shunra.com o nazwie VE Desktop, którego można użyć do symulacji różnych warunków sieciowych. Pozwala na dostosowanie opóźnień, przepustowości i utraty pakietów za pomocą prostego interfejsu użytkownika. Jedynym zastrzeżeniem jest to, że nie jest bezpłatne. Mam nadzieję że to pomoże.
Od jakiegoś czasu szukam łatwego w użyciu narzędzia do tego typu testów. Właśnie tego dnia spotkałem: Network Delay Simulator
Jeśli korzystasz z systemu Windows, powinieneś to sprawdzić. To było bardzo łatwe do skonfigurowania i uruchomienia i wydaje się, że działa naprawdę dobrze. Pozwala zdefiniować przepustowość, opóźnienie i utratę pakietów w każdym kierunku. Inną naprawdę miłą rzeczą jest to, że możesz zdefiniować „Warunki dopasowania przepływu”, tak aby wpływało to tylko na ruch, który chcesz. O tak, i to za darmo.
Spójrz na emulator sieci NE-ONE, który pozwala skonfigurować przepustowość, opóźnienie, utratę pakietów, zmianę kolejności pakietów, duplikację pakietów, fragmentację pakietów, przeciążenie sieci i wiele innych ograniczeń, abyś mógł stworzyć rzeczywiste warunki sieciowe w laboratorium . Różne upośledzenia mogą być skonfigurowane dla łącza w górę i w dół, dzięki czemu możesz mieć naprawdę dobre łącze w górę, ale naprawdę złe doświadczenie w łączu w dół, świetne do zobaczenia, jak aplikacja obsługuje kolejkowanie TCP, ponieważ wady nie wracają w odpowiednim czasie i ogólne opóźnienie dlatego wzrasta!
Tutaj znajduje się film poglądowy http://www.youtube.com/watch?v=DwtqlE7LcrQ specjalnie przeznaczony dla twórców gier, ale pokazuje, o co chodzi. NE-ONE jest konfigurowane za pomocą przeglądarki internetowej, więc instalacja i konfiguracja jest naprawdę łatwa - nie musisz być guru sieci :-)
Dostępna jest wersja sprzętowa - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - lub można pobrać wersję Virtual Appliance (oprogramowania) działającą na serwerze VMware ESXi Server. Urządzenie wirtualne można pobrać z Exchange Solution firmy VMware - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator
LANforge ICE to emulator sieci z naciskiem na wirtualny routing, fluktuacje, uszkodzenia i opóźnienia. Projekty wykorzystały go do emulacji łącza satelitarnego, połączeń kablowych i modemowych oraz emulacji wysokiej prędkości (10 Gb / s). Za pomocą graficznego interfejsu użytkownika Java można budować sieci wirtualne i generować bardzo szczegółowe raporty o ruchu. Produkty LANforge zapewniają także funkcje generowania ruchu: ramkę, ethernet, warstwę-3 i ruch stanowy (NFS, http). Najnowsze edycje LANforge mają również zaawansowane funkcje testowania WiFi.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.