Symulacja utraty pakietów na Windows
Utrata pakietów to ta usterka, którą użytkownicy opisują jako "wisi". Ustawiasz procent, narzędzie wyrzuca tyle pakietów, a Twoja aplikacja musi się z tym uporać.
W oknie programu
- Wypełnij Proces, żeby zaburzenie dotknęło tylko Twojej aplikacji, a nie całego komputera.
- Ustaw Utrata na procent od 0 do 100. Zacznij od 5.
- Wciśnij START i korzystaj z aplikacji.
Pasek na górze okna streszcza, co jest włączone, a zakładka Statystyki liczy odrzucone pakiety.
Z linii komend
Ten sam plik wykonywalny działa bez okna. Pięć procent straty na jednej przeglądarce, na dwie minuty, potem wszystko samo wraca do normy:
BeanNetworkTester.exe --loss 5 --target chrome.exe --duration 120
Dodaj --simulate, żeby przećwiczyć komendę bez ruszania prawdziwego ruchu.
Jaki procent wybrać
| Utrata | Jak to wygląda |
|---|---|
| 1 procent | Dobre łącze w słabszej minucie. Większość aplikacji to ukryje. |
| 5 procent | Słabe wifi. Strony wczytują się wolniej, wideo traci jakość. |
| 20 procent | Zatłoczony hotspot w kawiarni albo tunel w pociągu. Pojawiają się timeouty. |
| 60 procent i więcej | Prawie nieużywalne. Dobre do znalezienia komunikatu błędu, którego nikt nigdy nie przetestował. |
Gotowe profile ustawiają to za Ciebie. "Słabe WiFi", "Kawiarnia (zatłoczone WiFi)" i "Sieć 3G" mają wpisaną stratę razem z opóźnieniem i limitem prędkości.
Dwie rzeczy, które zaskakują
Na TCP możesz nie zobaczyć niczego. TCP retransmituje to, co zgubi, więc pobieranie po HTTPS po prostu zwalnia, zamiast paść. Jeśli chcesz zobaczyć stratę jako stratę, testuj coś, co idzie po UDP: rozmowę głosową, grę, strumień wideo albo DNS.
Strata jest losowa, więc dwa przebiegi się różnią. Ustaw ziarno, a ten sam przebieg powtórzy się dokładnie - i to zamienia "raz się zepsuło" w zgłoszenie, które ktoś inny odtworzy:
BeanNetworkTester.exe --loss 20 --target myapp.exe --seed 42 --duration 60
Dalej
Sama strata jest rzadka. Prawdziwe słabe łącza gubią pakiety i dokładają opóźnienie i nie mają prędkości - i właśnie to odtwarzają profile.