====== Linux: TC - ograniczanie pasma, indukowanie błędów w transmisji i opóżnienia ====== programy wykorzystane do zrobienia pomiarów: * https://man7.org/linux/man-pages/man8/tc.8.html * https://github.com/tum-lkn/tcgui ===== Schemat Połączeniowy ===== {{:projekty:pasted:20250512-180657.png}}\\ Schemat wygenerowany za pomocą [[narzedzia:hyper-v_graph|mojego skryptu]] ^ Nazwa maszyny ^ Karta sieciowa ^ Adres ip ^ brama ^ Switch wirtualny ^ | ubuntu-tc | eth0 | 192.168.1.1/24 | X | NET-A | | ::: | eth1 | 192.168.2.1/24 | X | NET-B | | ubuntu-tc-A | eth0 | 192.168.1.10/24 | 192.168.1.1/24 | NET-A | | ubuntu-tc-B | eth0 | 192.168.2.10/24 | 192.168.2.1/24 | NET-B | ===== Ustawienia na maszynie "Ubuntu-tc" ===== * włączenie forwardingu dla ipv4 echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf * zrestartuj interfejsy sieciowe * skopiowanie tc-gui na maszynę oraz uruchomienie sudo apt install git git clone https://github.com/tum-lkn/tcgui cd tcgui sudo python3 main.py --ip 127.0.0.1 * Otwieramy w przeglądarce firefox adres ''127.0.0.1:5000'' {{:projekty:pasted:20250512-192027.png?800}} ===== Ustawienia na reszcie maszyn ===== sudo apt-get update sudo apt-get install iperf3 Musimy je jeszcze zaadresować statycznie za pomocą GUI albo za pomocą netplan ======= Tabela wyników testów ======= ^ Opis Testu ^ protokół ^ straty ^ pasmo ^ opóznienie [ms] ^ ^ Testy opóznień ^^^^^ | Test bez dodanego opóźnienia | icmp | 0% | --- | 1,131 | | Test z dodanym opóźnieniem 10ms wynik z 100 pomiarów | icmp | 0% | --- | 11,020 | | test z dodanym opóźnieniem 100ms wynik z 100 pomiarów | icmp | 0% | --- | 101,071 | | test z dodanym opóźnieniem 1000ms wynik z 100 pomiarów | icmp | 0% | --- | 1000,911 | ^ Testy pasma UDP ^ protokół ^ Utracone/Wysłane ^ pasmo ^ opóznienie [ms] ^ | Test bez ograniczenia 30s (UDP 1Gbps iperf) | UDP | --- | 998 Mbps | --- | | Ograniczenie pasma do 300Mbps 30s (UDP iperf) | UDP | 72% | 282 Mbps | --- | | Ograniczenie pasma do 100Mbps 30s (UDP iperf) | UDP | 91% | 94,3 Mbps | --- | | Ograniczenie pasma do 10Mbps 30s (UDP iperf) | UDP | 99% | 9,72 Mbps | --- | | Ograniczenie pasma do 1Mbps 30s (UDP iperf) | UDP | 1e+02% | 972 kbps | --- | ^ Testy pasma TCP ^ protokół ^ retransmisje ^ pasmo ^ opóznienie [ms] ^ | Test bez ograniczenia 30s (TCP iperf) | TCP | 2 | 10,3 Gbps | --- | | Ograniczenie pasma do 300Mbps 30s (TCP iperf) | TCP | 0 | 282 Mbps | --- | | Ograniczenie pasma do 100Mbps 30s (TCP iperf) | TCP | 0 | 94,3 Mbps | --- | | Ograniczenie pasma do 10Mbps 30s (TCP iperf) | TCP | 152 | 9,72 Mbps | --- | | Ograniczenie pasma do 1Mbps 30s (TCP iperf) | TCP | 0 | 972 kbps | --- | ^ Inne Testy ||||| | Test łącza w obie strony 10Mbps, opóźnienie 2000ms, urata 3%, uszkodzone 10% (ping 100 pomiarów) | ICMP | 24% | --- | 4001,69 | | Test łącza w obie strony 10Mbps, opóźnienie 600ms, utrata 3%, uszkodzone 10% (TCP iperf) | TCP | 23 | 82 kbps | --- | | Test łącza w obie strony 10Mbps, opóźnienie 600ms, utrata 3%, uszkodzone 10% (UDP iperf) | UDP | 99% | 7,79 kbps | --- | | Test łącza w obie strony 60Mbps, opóźnienie 600ms, utrata 5% (UDP iperf) | UDP | 98% | 14,7 Mbps | --- | ====== Testy opóźnień ====== ===== Test bez dodanego opóźnienia ===== {{:projekty:pasted:20250512-191748.png}} ===== Test z dodanym opóźnieniem 10ms wynik z 100 pomiarów ===== {{:projekty:pasted:20250512-192614.png}} ===== test z dodanym opóźnieniem 100ms wynik z 100 pomiarów ===== {{:projekty:pasted:20250512-192846.png}} ===== test z dodanym opóźnieniem 1000ms wynik z 100 pomiarów ===== {{:projekty:pasted:20250512-193123.png}} ===== test z dodanym opóźnieniem 5000ms wynik z 100 pomiarów ===== ====== Test ograniczeń pasma ====== ===== Test bez ograniczenia 30s (UDP 1Gbps iperf)===== {{:projekty:pasted:20250512-193901.png}} ===== Ograniczenie pasma do 300Mbps 30s (UDP iperf)===== {{:projekty:pasted:20250512-194303.png}} ===== Ograniczenie pasma do 100Mbps 30s (UDP iperf)===== {{:projekty:pasted:20250512-194446.png}} ===== Ograniczenie pasma do 10Mbps 30s (UDP iperf)===== {{:projekty:pasted:20250512-194638.png}} ===== Ograniczenie pasma do 1Mbps 30s (UDP iperf)===== {{:projekty:pasted:20250512-194817.png}} ===== Test bez ograniczenia 30s (TCP iperf) ===== {{:projekty:pasted:20250512-195147.png}} ===== Ograniczenie pasma do 300Mbps 30s (TCP iperf)===== {{:projekty:pasted:20250512-195304.png}} ===== Ograniczenie pasma do 100Mbps 30s (TCP iperf)===== {{:projekty:pasted:20250512-195357.png}} ===== Ograniczenie pasma do 10Mbps 30s (TCP iperf)===== {{:projekty:pasted:20250512-195451.png}} ===== Ograniczenie pasma do 1Mbps 30s (TCP iperf)===== {{:projekty:pasted:20250512-195622.png}} ====== Test łącza w obie strony 10Mbps, opóźnienie 2000ms, urata 3%, uszkodzone 10% (ping 100 pomiarów) ====== {{:projekty:pasted:20250512-200427.png}} ====== Test łącza w obie strony 10Mbps, opóźnienie 600ms, utrata 3%, uszkodzone 10% (TCP iperf) ====== {{:projekty:pasted:20250512-200706.png}} ====== Test łącza w obie strony 10Mbps, opóźnienie 600ms, utrata 3%, uszkodzone 10% (UDP iperf) ====== {{:projekty:pasted:20250512-200817.png}} ====== Test łącza w obie strony 60Mbps, opóźnienie 600ms, utrata 5% (UDP iperf) ====== {{:projekty:pasted:20250512-201405.png}}