Czy istnieje sposób na ograniczenie przepustowości karty sieciowej w systemie Linux? Chciałbym móc symulować dowolnie wolne połączenie.
linux
networking
bandwidth
Mark Borgerding
źródło
źródło
Odpowiedzi:
Netem moduł jądra, kontrolowane przez iproute.
Musisz skompilować Netem z jądrem:
Po załadowaniu modułu netem, tc iproute pozwala na takie rzeczy jak:
(50% utrata pakietów, dodatkowe opóźnienie 50 ms)
źródło
sch_netem
. Zasadniczo nie ma potrzeby ładowania go ręcznie, w razie potrzeby będzie on ładowany automatycznie.rate
opcji:tc qdisc add dev lo root handle 1:0 netem delay 10ms rate 1mbit limit 1000
. Należy pamiętać, że w przypadku niektórych urządzeń, takich jaklo
(dostępu localhost), trzeba ustawić długość kolejki, a także:ifconfig lo txqueuelen 1000
. Zobacz serverfault.com/a/394949/76090Po stronie klienta, prawda?
strużka powinna robić, co chcesz. Jeśli używasz Ubuntu (lub Debiana, myślę), możesz go zainstalować za pomocą
sudo apt-get install trickle
, a następnie uruchomić.trickle -s -d 10 -u 10 firefox
(a przynajmniej nie używałem go od jakiegoś czasu) uruchamiałoby firefoxa, ograniczając jego prędkość pobierania i wysyłania do 10 kilobajtów na sekundę.źródło
Znalazłem sposób na uniknięcie zjedzenia przez moją skrzynkę całej przepustowości dostępnej w sieci za pomocą narzędzia o nazwie „wondershaper” w Ubuntu. Mam nadzieję, że istnieje on również w innych systemach Linux. Mogę ograniczyć przepustowość, którą może zużywać mój domowy komputer z systemem Linux, używając następującego polecenia.
Ogranicza to limit pobierania do 1000 kilobitów i uplaod do 200 kilobitów. Więcej informacji / opcji można znaleźć na stronach podręcznika Wondershaper.
źródło
wondershaper
w Debianie.sudo wondershaper clear eth0
NIST tworzy symulator sieci o nazwie NistNet.
http://snad.ncsl.nist.gov/nistnet/ (link wydaje się martwy)
http://cs.ecs.baylor.edu/~donahoo/tools/nistnet/
NistNet pozwala ci stworzyć router, który będzie emulował wybrany przez ciebie link komunikacyjny.
Dla najprostszej operacji masz go na pudełku z dwoma kartami sieciowymi pomiędzy dwiema sieciami.
Na przykład miałem aplikację, która musiała działać przez łącze satelitarne.
Dane mogą przechodzić przez łącze 2 Mb / s z dużym opóźnieniem. Kontrola musiała przejść przez łącze 128 kb / s, z tym samym opóźnieniem.
NistNet pomógł sprawić, by wszystko działało na 128kbps.
Korzystając z NistNet mogłem symulować nie tylko przepustowość, ale także opóźnienie, a także upuszcza pakiety dla ciebie, symulując zajęte lub zawodne łącze.
Jeśli chcesz zasymulować połączenie abitracyjne, nie ograniczaj tylko przepustowości, zwiększ także opóźnienie.
Nie zapomnij też rozdrobnić pakietów. Możesz ustawić ładne małe MTU na fałszywym łączu.
Dodanie jittera IIRC pozwoli ci dowiedzieć się, czy możesz poradzić sobie z pakietami poza kolejnością.
źródło
W przeszłości osobiście korzystałem z Wondershaper , choć napisano to dla odwrotnego przypadku - w pełni wykorzystując połączenie ADSL.
Będę jednak musiał spróbować innych wymienionych tutaj.
źródło
Możesz użyć lokalnie zainstalowanego serwera proxy kałamarnicy, aby ograniczyć przepustowość, na przykład w celu przetestowania strony internetowej na wolnym łączu:
Zainstaluj squid proxy z twojej dystrybucji - na mojej Fedorze było to tak proste, jak
yum install squid
.Dodaj następujące elementy do
/etc/squid/squid.conf
:delay_pools 1
delay_class 1 1
delay_access 1 allow all
delay_parameters 1 16000/16000
Ograniczy to przepustowość do około 128 kb / s (16000 B / s).
Zacznij kalmary :
/etc/init.d/squid start
Skonfiguruj przeglądarkę, aby korzystała z
localhost
portu serwera proxy3128
.źródło
Nikt jeszcze nie wspomniał o ip_relay , o nazwie „iprelay” w repozytoriach Debiana. Działa jako proxy TCP, zamiast przechwytywać połączenia tak, jak działa trickle i będzie działać z dowolną aplikacją, która może korzystać z proxy (np. Przeglądarki internetowej) lub zaakceptować port docelowy zdefiniowany przez użytkownika (telnet, ssh, ftp, curl, i tak dalej ).
Jest nieco trudniejszy do skonfigurowania, ale często działa w sytuacjach, w których nie jest to możliwe.
źródło