Symulowanie Powolnego Połączenia Internetowego
Wiem, że to dziwne pytanie. Ponieważ zwykle tworzę aplikacje w oparciu o" założenie", że wszyscy użytkownicy mają wolne połączenie z Internetem. Ale czy ktoś uważa, że istnieje sposób na programową symulację powolnego połączenia internetowego, żebym mógł "zobaczyć" jak aplikacja działa przy różnych "prędkościach połączenia"?
Nie martwię się, który język jest używany. I nie szukam próbek kodu ani nic, po prostu interesuje mnie logika, która za tym stoi.
13 answers
Jeśli używasz systemu windows, fiddler jest świetnym narzędziem. Posiada ustawienie symulujące prędkość modemu, a dla kogoś, kto chce więcej kontroli ma wtyczkę , aby dodać opóźnienie do każdego żądania.
Wolę używać takiego narzędzia do umieszczania kodu opóźnienia w mojej aplikacji, ponieważ jest to znacznie bardziej realistyczna symulacja, a także nie zmuszanie mnie do projektowania lub kodowania rzeczywistych bitów. Najlepszy kod to kod, którego nie muszę pisać.
Dodano : Ten artykuł u Pawła Donczewa blog o technologiach programistycznych pokazuje, jak tworzyć niestandardowe symulowane Prędkości: ograniczanie prędkości połączenia internetowego za pomocą Fiddler .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-18 09:26:34
Zaczynając od Chrome 38 możesz to zrobić bez żadnych wtyczek. Po prostu kliknij inspect element (lub F12 hotkey), a następnie kliknij "toggle device mod" , a zobaczysz coś takiego:
Wśród wielu innych funkcji pozwala na symulację określonego połączenia internetowego (3G, GPRS)
P. S. dla osób, które próbują ograniczyć prędkość wysyłania. Niestety w chwili obecnej nie jest to możliwe.
P. S. 2 Teraz nie musisz włącz wszystko. Panel dławienia jest dostępny bezpośrednio z panelu sieci.
Zauważ, że klikając na Brak dławienia możesz utworzyć własne opcje dławienia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-15 10:38:23
- Network Link Conditioner na OSX
- w Windows
- Dummynet on Linux
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-03 17:55:41
Używałem http://www.netlimiter.com / i działa bardzo dobrze. Nie tylko ograniczenie prędkości dla pojedynczych procesów, ale także pokazuje rzeczywiste szybkości transferu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-26 14:44:53
Na maszynach Linuksowych można używać wondershaper
apt-get install wondershaper
$ sudo wondershaper {interface} {down} {up}
{dół} i {góra} są przepustowością w kpbs
Więc na przykład, jeśli chcesz ograniczyć przepustowość interfejsu eth1 do 256Kbps uplink i 128Kbps downlink,
$ sudo wondershaper eth1 256 128
Aby usunąć limit,
$ sudo wondershaper clear eth1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-24 08:39:40
Istnieją proxy TCP, takie jak iprelay i Sloppy, które kształtują przepustowość, aby symulować powolne połączenia. Możesz również wykonać kształtowanie przepustowości i symulować utratę pakietów za pomocą narzędzi filtrujących IP, takich jak ipfw i iptables.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-21 04:07:41
Możesz wypróbować Dummynet , może symulować kolejki i ograniczenia przepustowości, opóźnienia, straty pakietów i efekty wielościeżkowe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-21 04:05:51
Ponadto, do symulacji powolnego połączenia na niektórych * nixach, możesz spróbować użyć ipfw . Więcej informacji udziela Ben Newman ' s answer on this Quora question
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-18 18:46:55
Użyj serwera proxy do debugowania sieci z funkcjami dławienia, takimi jak Charles lub Fiddler.
Znajdziesz je przydatne tworzenie stron internetowych w ogóle. Główną różnicą jest to, że Charles jest shareware, podczas gdy Fiddler jest wolny.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-26 14:44:38
Użyj narzędzia takiego jak TCPMon . Może udawać powolne połączenie.
Zasadniczo, żądasz dokładnie tego samego żądania i po prostu przekazuje to samo żądanie do prawdziwego serwera, a następnie opóźnia odpowiedź tylko z ustawioną ilością bajtów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-26 14:45:33
[[0]} Mac OSX od 10.10 ma aplikację o nazwie Murus Firewall, która działa jako GUI do pf, zamiennik dla ipfw.
Działa bardzo dobrze dla dławienia całego systemu lub domeny. Byłem w stanie go użyć, aby przesunąć moją prędkość pobierania między 300kbps i 30Mbps, aby przetestować, jak odtwarzacz strumieniowy wideo dostosowuje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-28 22:07:12
Istnieje również inne narzędzie o nazwie WIPFW - http://wipfw.sourceforge.net/
To trochę stara szkoła, ale można go użyć do symulacji wolniejszego połączenia. Jest oparty na systemie Windows, a narzędzie pozwala administratorowi monitorować, ile ruchu Router otrzymuje z określonej maszyny lub ile ruchu WWW przesyła, na przykład.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-20 11:04:02
Możesz użyć NetEm (Emulacja sieci) jako serwera proxy do emulowania wielu cech sieci (prędkość, opóźnienie, utrata pakietów, itp.). Steruje on siecią za pomocą pakietu iproute2 i jest włączony w jądrze większości dystrybucji Linuksa.
Jest kontrolowany przez aplikację tc
wiersza poleceń (z pakietu iproute2 ), ale istnieją również interfejsy graficzne dla NetEm, na przykład PHPnetemGUI2 .
The zaletą jest to, że, jak pisałem, może emulować nie tylko różne prędkości sieci, ale także na przykład utratę pakietów, duplikację i/lub uszkodzenie, losowe lub zdefiniowane opóźnienie itp., dzięki czemu można emulować różne słabo działające sieci.
Dla Twojej aplikacji jest to absolutnie przejrzyste, możesz skonfigurować system operacyjny tak, aby korzystał z serwera proxy NetEm, tak aby wszystkie połączenia z tej maszyny przebiegały przez NetEm. Lub możesz skonfigurować tylko aplikację, aby używała jej jako proxy.
Używałem go do testowania wydajności aplikacji na Androida w różnych emulowanych sieciach o niskiej wydajności.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-05 20:08:32