ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
  • Firma

Kłopoty z prędkością w sieci LAN

Napisane przez Igor Brzeżek on 20 października 2025
Napisane w: Pomiary w sieciach LAN.

Contents
  1. Bandwidth, Throughput, Goodput – Anatomia Prędkości w Sieciach LAN
  2. Bandwidth – Teoretyczny Potencjał Medium Transmisyjnego
  3. Throughput – Rzeczywista Przepustowość Systemu
  4. Goodput – Ilość Użytecznych Danych Aplikacji
  5. Praktyczne Pomiary Wydajności w Sieci LAN
  6. Narzędzia dla Systemu Linux
  7. Narzędzia w RouterOS
  8. Wpływ Rozmiaru Pakietu na Efektywność Transmisji
  9. TCP vs. UDP – Starcie o Przepustowość
  10. Chaos Jednostek – Bity, Bajty i Potęgi Dwójki
  11. Tabela Porównawcza Przedrostków Dziesiętnych i Binarnych
  12. Podsumowując

Bandwidth, Throughput, Goodput – Anatomia Prędkości w Sieciach LAN

W dyskursie dotyczącym technologii sieciowych, termin „prędkość sieci” jest używany nagminnie, lecz często w sposób nieprecyzyjny i mylący. Dla przeciętnego użytkownika jest to po prostu subiektywne odczucie szybkości ładowania stron internetowych czy pobierania plików. Jednak dla inżynierów sieci, administratorów i diagnostów, precyzyjne rozróżnienie pojęć opisujących wydajność medium transmisyjnego jest absolutnie fundamentalne. W rzeczywistości, za potocznym określeniem „prędkości” kryją się trzy odrębne, choć powiązane ze sobą metryki: Bandwidth (przepustowość teoretyczna), Throughput (przepustowość rzeczywista) oraz Goodput (przepustowość użyteczna). Zrozumienie subtelnych różnic między nimi jest kluczowe nie tylko do prawidłowego projektowania i zakupu infrastruktury sieciowej, ale również do efektywnego diagnozowania problemów z wydajnością, które nieuchronnie pojawiają się w każdej, nawet najlepiej zaprojektowanej sieci lokalnej (LAN).

Celem niniejszego artykułu jest dogłębna analiza i demistyfikacja tych trzech kluczowych pojęć. Posłużymy się w tym celu analogiami, które w obrazowy sposób przedstawią ich naturę, a także przeanalizujemy praktyczne aspekty ich pomiaru przy użyciu standardowych narzędzi diagnostycznych. Zgłębimy czynniki, które powodują nieuniknione różnice między wartością teoretyczną a tym, co realnie jesteśmy w stanie osiągnąć w praktyce. Na koniec zajmiemy się równie istotnym, a często pomijanym problemem chaosu jednostek – rozbieżności między systemem dziesiętnym (SI) używanym do określania prędkości transmisji a systemem binarnym, w którym operują systemy operacyjne przechowujące dane. Ta fundamentalna wiedza stanowi podstawę świadomego zarządzania wydajnością sieci i pozwala przejść od ogólnikowych stwierdzeń o „wolnym internecie” do konkretnej, opartej na danych analizy wąskich gardeł w infrastrukturze.


Bandwidth – Teoretyczny Potencjał Medium Transmisyjnego

Pojęcie Bandwidth, tłumaczone na język polski jako przepustowość teoretyczna lub pasmo przenoszenia, odnosi się do maksymalnej, teoretycznej ilości danych, która może zostać przesłana przez dany kanał komunikacyjny w jednostce czasu. Jest to wartość statyczna, określona na etapie projektowania standardu komunikacyjnego oraz fizycznych właściwości medium transmisyjnego i komponentów sieciowych. Najprostszą i najczęściej stosowaną analogią jest tutaj wielopasmowa autostrada – jej przepustowość to maksymalna liczba pojazdów, jaka mogłaby przez nią przejechać w idealnych warunkach. W kontekście sieci LAN, wartość ta jest zdefiniowana przez standardy takie jak IEEE 802.3ab dla Gigabit Ethernet (1 Gbps) i jest nierozerwalnie związana z możliwościami sprzętowymi: kart sieciowych (NIC), przełączników, routerów oraz jakością okablowania (np. Cat 5e vs Cat 6a).

Wartość bandwidth nie jest mierzona w czasie rzeczywistym podczas pracy sieci, lecz wynika bezpośrednio z jej architektury fizycznej i logicznej. O jej wysokości decydują takie czynniki jak częstotliwość sygnału oraz zaawansowane schematy kodowania sygnału (np. PAM-5 w Gigabit Ethernet). Jest to wartość laboratoryjna, osiągalna jedynie w warunkach idealnych. Mimo to, pojęcie bandwidth ma fundamentalne znaczenie, ponieważ ustanawia absolutny, nieprzekraczalny limit dla wszelkich innych metryk wydajności. Niezależnie od tego, jak bardzo zoptymalizujemy oprogramowanie i protokoły, nigdy nie osiągniemy transferu danych szybszego niż pozwala na to fizyczna przepustowość najwolniejszego elementu na całej ścieżce komunikacyjnej.


Throughput – Rzeczywista Przepustowość Systemu

O ile bandwidth jest teoretycznym maksimum, o tyle Throughput, czyli przepustowość rzeczywista, to metryka opisująca faktyczną ilość danych, która została pomyślnie przesłana przez sieć w danym okresie. Wracając do naszej analogii autostrady, throughput to realna liczba samochodów, która minęła określony punkt pomiarowy w ciągu godziny. Ta wartość jest z natury dynamiczna i niemal zawsze niższa od teoretycznej przepustowości. Przyczyną tej różnicy jest nieunikniony narzut protokołów komunikacyjnych (protocol overhead), opóźnienia (latency), kolizje pakietów, retransmisje oraz ograniczenia wydajnościowe samych urządzeń końcowych. Każdy pakiet danych, zanim zostanie wysłany, musi zostać „opakowany” w dodatkowe informacje – nagłówki warstw modelu OSI/ISO, które same w sobie zużywają część dostępnego pasma. To nie tylko poniżej pokazane protokoły UDP czy TCP ale masa innych.


Goodput – Ilość Użytecznych Danych Aplikacji

Idąc o krok dalej w precyzji pomiaru, dochodzimy do pojęcia Goodput, które można przetłumaczyć jako przepustowość użyteczną lub efektywną. Jest to najbardziej restrykcyjna i jednocześnie najbardziej miarodajna z perspektywy użytkownika końcowego metryka, ponieważ mierzy ona wyłącznie objętość danych aplikacji, które zostały pomyślnie dostarczone do docelowego odbiorcy. Goodput jest podzbiorem throughput. Oznacza to, że z wartości przepustowości rzeczywistej odejmujemy wszystko, co nie jest bezpośrednio „ładunkiem” (payload) interesującym dla aplikacji. W praktyce są to wszystkie pakiety kontrolne protokołu TCP (np. potwierdzenia ACK) oraz, co najważniejsze, wszystkie pakiety, które musiały zostać retransmitowane. W naszej analogii autostrady, goodput byłby liczbą pasażerów i towarów, które dotarły do celu, a nie liczbą pojazdów, które minęły punkt kontrolny. Odliczając narzut technologii oraz narzut protokołów zostaje nam jeszcze mniej.

Jednak na realną uzyskaną prędkość wpływ ma jeszcze wiele innych czynników: rodzaj połączenia (LAN/WiFi/GSM/SAT inne), w jaki sposób korzystamy ze źródła, jak obciążone jest źródło itp. Poniżej przykład pomiaru prędkości łącza od dostawcy po światłowodzie. Wykupiony abonament to 450/50 Mbps a wynik pomiaru mamy taki:

Pomiar prędkości łącza


Praktyczne Pomiary Wydajności w Sieci LAN

Teoretyczne rozważania nabierają sensu dopiero w konfrontacji z rzeczywistością. Zarówno w środowisku Linux, jak i RouterOS, dysponujemy szeregiem narzędzi pozwalających na precyzyjne zmierzenie i monitorowanie wydajności sieci, co jest podstawą skutecznej diagnostyki.

Narzędzia dla Systemu Linux

1. iperf3 – To absolutny standard w branży do pomiaru maksymalnego throughput między dwoma punktami. Testuje wydajność, generując ruch w pamięci RAM, minimalizując w ten sposób wpływ wydajności dysków twardych. Jest niezastąpiony przy weryfikacji jakości połączeń fizycznych i wydajności urządzeń sieciowych. Oprócz niego istnieje także nakładka graficzna Jperf, która ułatwia wizualizację wyników i konfigurację testów.

# Na maszynie serwera (np. 192.168.1.10) uruchamiamy iperf3 w trybie serwera
iperf3 -s

# Na maszynie klienta uruchamiamy test w kierunku serwera
iperf3 -c 192.168.1.10 -t 30 # Test TCP przez 30 sekund

# Wynik ~941 Mbits/sec dla sieci 1Gbps jest typowy.

Efekt działania pomiaru prędkości za pomocą iperf:

Podsumowanie pomiaru prędkości za pomocą iperf

Nakładka jperf w elegancki i czytelny sposób pokazuje graficzną reprezentacje naszych pomiarów.

Nakładka jperf na iperf (Linux)

2. iptraf-ng – To interaktywne narzędzie działające w konsoli, które pozwala na monitorowanie ruchu sieciowego w czasie rzeczywistym. Nie jest to narzędzie do benchmarków jak iperf, ale do obserwacji żywego ruchu. Pozwala zobaczyć natychmiastowy throughput dla poszczególnych połączeń, co jest bezcenne przy diagnozowaniu, która aplikacja lub usługa generuje w danym momencie największe obciążenie sieci. Umożliwia filtrowanie i analizę statystyczną ruchu według interfejsów, protokołów czy portów.

# Instalacja (Debian/Ubuntu)
sudo apt-get install iptraf-ng

# Uruchomienie z uprawnieniami roota
sudo iptraf-ng

# W menu wybieramy "Statistical breakdown by interface" -> "eth0"
# Obserwujemy kolumnę "Total Rate" aby zobaczyć aktualny throughput

Narzędzia w RouterOS

1. Bandwidth Test – To wbudowane w RouterOS narzędzie jest jego bezpośrednim odpowiednikiem iperf. Pozwala na precyzyjny pomiar throughput między dwoma urządzeniami Mikrotik lub między urządzeniem Mikrotik a komputerem z zainstalowanym oprogramowaniem Bandwidth Test. Jest to podstawowe narzędzie do weryfikacji wydajności mostów bezprzewodowych, tuneli VPN czy połączeń światłowodowych zarządzanych przez RouterOS.

MiktoTik bandwidth test

# Uruchomienie serwera testu na jednym urządzeniu RouterOS
/tool bandwidth-server

# Uruchomienie testu z drugiego urządzenia (klienta) w kierunku serwera (192.168.1.10)
/tool bandwidth-test address=192.168.1.10 user=admin protocol=tcp direction=both

2. Traffic Generator – To zaawansowane narzędzie służące do generowania bardzo specyficznych strumieni pakietów. W przeciwieństwie do Bandwidth Test, który ma na celu maksymalizację przepustowości, Traffic Generator pozwala na precyzyjne „wstrzykiwanie” do sieci ramek o określonej wielkości, z zadaną prędkością. Używa się go do testów warstwy drugiej (L2), sprawdzania wydajności przełączników pod obciążeniem (stress-testing) oraz weryfikacji, jak urządzenie radzi sobie z nietypowymi lub bardzo małymi pakietami, co jest kluczowe w diagnostyce wydajności VoIP.

# Wstrzyknięcie 1000 pakietów o rozmiarze 64 bajtów do interfejsu ether1
/tool traffic-generator inject interface=ether1 number-of-packets=1000 packet-size=64

Wpływ Rozmiaru Pakietu na Efektywność Transmisji

Jednym z najważniejszych, a często niedocenianych czynników wpływających na goodput, jest średni rozmiar pakietów w sieci. Każda porcja danych przesyłana przez sieć Ethernet musi zostać opakowana w strukturę zwaną ramką (frame). Ramka, oprócz właściwych danych (payload), zawiera szereg pól nagłówkowych koniecznych do jej zaadresowania i dostarczenia. Suma tych pól stanowi stały narzut, niezależny od ilości przesyłanych danych. Można to porównać do wysyłania paczek: niezależnie od tego, czy wysyłamy mały list, czy dużą paczkę, musimy użyć koperty i znaczka (narzut), które mają swoją wagę i koszt. Przesłanie 1 kg towaru w dziesięciu paczkach po 100g będzie znacznie mniej efektywne niż wysłanie go w jednej paczce 1 kg, ponieważ w pierwszym przypadku dziesięciokrotnie poniesiemy koszt „opakowania”. W sieci jest identycznie – transmisja dużej ilości małych pakietów (np. w telefonii VoIP) generuje procentowo znacznie większy narzut niż transfer dużych plików, co prowadzi do niższego goodputu, mimo że throughput może pozostać wysoki.

Ramka Ethernet

Standardowa ramka Ethernet II posiada narzut o łącznej wielkości 18 bajtów (adresy MAC, EtherType, suma kontrolna) plus 8 bajtów na preambułę i ogranicznik początku ramki (SFD), co daje łącznie 26 bajtów narzutu na poziomie fizycznym dla każdej przesyłanej ramki. Minimalna wielkość pola danych (payload) to 46 bajtów. W takim skrajnym przypadku, efektywność transmisji wynosi zaledwie 46 / (46 + 26) = 63.8%. Oznacza to, że ponad 36% pasma jest marnowane na same nagłówki! Z kolei dla maksymalnej standardowej wielkości pola danych, czyli 1500 bajtów (wartość znana jako MTU – Maximum Transmission Unit), efektywność rośnie do 1500 / (1500 + 26) = 98.3%. Ta prosta kalkulacja dobitnie pokazuje, dlaczego dla uzyskania wysokiej przepustowości użytecznej (goodput) kluczowe jest wykorzystywanie jak największych pakietów. Dlatego też technologie takie jak Jumbo Frames (ramki o MTU do 9000 bajtów) są powszechnie stosowane w sieciach SAN (Storage Area Network) i w klastrach obliczeniowych, gdzie liczy się każda cząstka wydajności.


TCP vs. UDP – Starcie o Przepustowość

Na ostateczną wartość throughput i goodput fundamentalny wpływ ma również wybór protokołu w warstwie transportowej modelu OSI – najczęściej jest to TCP (Transmission Control Protocol) lub UDP (User Datagram Protocol). TCP jest protokołem połączeniowym, zorientowanym na niezawodność. Zanim wyśle jakiekolwiek dane, nawiązuje sesję (proces tzw. three-way handshake), a następnie numeruje każdy pakiet i oczekuje od odbiorcy potwierdzenia jego otrzymania (ACK). W przypadku braku potwierdzenia, dane są retransmitowane. Cały ten mechanizm gwarantuje, że dane dotrą do celu w całości i w odpowiedniej kolejności, ale jego koszt jest ogromny: generuje dodatkowy ruch (pakiety ACK zużywają pasmo), wprowadza opóźnienia i wymaga mocy obliczeniowej do zarządzania stanem sesji. Z kolei UDP to jego całkowite przeciwieństwo – protokół bezpołączeniowy i zawodny. Działa na zasadzie „wyślij i zapomnij”. Nie nawiązuje sesji, nie numeruje pakietów, nie czeka na potwierdzenia. Jego nagłówek jest minimalistyczny. Dzięki temu UDP jest ekstremalnie szybki i cechuje się bardzo małym narzutem. Dlatego testy wydajności przeprowadzone za pomocą iperf3 w trybie UDP (iperf3 -c adres -u) niemal zawsze pokażą wyniki bliższe teoretycznemu bandwidth niż testy oparte na TCP. W praktyce UDP stosuje się tam, gdzie szybkość jest ważniejsza od 100% niezawodności, np. w streamingu wideo, grach online czy telefonii VoIP, gdzie okazjonalna utrata pojedynczego pakietu jest akceptowalna.


Chaos Jednostek – Bity, Bajty i Potęgi Dwójki

Precyzyjne omówienie metryk wydajności sieciowej byłoby niekompletne bez poruszenia fundamentalnego problemu, który od lat jest źródłem nieporozumień – niejednoznaczności w stosowaniu jednostek. W telekomunikacji prędkości transmisji podaje się z użyciem przedrostków dziesiętnych (SI), gdzie kilo (k) oznacza 1000, mega (M) to 1 000 000, a jednostką podstawową jest bit (b). Zatem 1 Gbps to jeden miliard bitów na sekundę. Tymczasem systemy operacyjne operują na przedrostkach binarnych, gdzie kilo oznaczało 1024, a podstawową jednostką jest Bajt (B). Aby rozwiązać ten chaos, wprowadzono standardy IEC/ISO, które definiują kibibajt (KiB), mebibajt (MiB) itd. Ta rozbieżność, sięgająca prawie 7.4% na poziomie giga, jest kluczowa przy interpretacji pomiarów i tłumaczeniu „dlaczego mój transfer 120 MB/s nie jest równy łączu 1 Gbps”.

Tabela Porównawcza Przedrostków Dziesiętnych i Binarnych

Przedrostek Dziesiętny (SI) Symbol Wartość (w Bajtach) Przedrostek Binarny (IEC) Symbol Wartość (w Bajtach) Różnica
kilobajt kB 103 = 1 000 kibibajt KiB 210 = 1 024 2.40%
megabajt MB 106 = 1 000 000 mebibajt MiB 220 = 1 048 576 4.86%
gigabajt GB 109 = 1 000 000 000 gibibajt GiB 230 = 1 073 741 824 7.37%
terabajt TB 1012 = 1 000 000 000 000 tebibajt TiB 240 = 1 099 511 627 776 9.95%

Podsumowując

Wyniki pomiaru prędkości łącza sieci zależą od wielu czynników. Omówiliśmy wybrane zagadnienia dotyczące prędkości w sieciach LAN takie jak właściwości fizyczne (bandwidth), kwestię narzutu protokołów i programów (throughput) oraz to, co nam zostaje (goodput). Kwestia samych pomiarów oraz ich sposobów zajmiemy się w innym wpisie.

Nawigacja

← Elementy bezpieczeństwa IT – Triada CIA
PacketTracer – komunikacja Multi User →
  • Szukaj

  • Kategorie

    • IT ogólnie (76)
      • Bezpieczeństwo (11)
      • CCTV (3)
      • Hardware (1)
      • Sieci (11)
        • MikroTik (7)
        • Pomiary w sieciach LAN (1)
        • Symulator sieci GNS3 (1)
      • Software (40)
        • Programowanie (2)
        • Systemy operacyjne (15)
          • Linux Debian (14)
        • Windows (7)
      • WiFi (2)
      • Wirtualizacja (26)
    • Różne (1)
  • Ostatnie wpisy

    • GNS3 – Rewelacyjny symulator sieci
    • PacketTracer – komunikacja Multi User
    • Kłopoty z prędkością w sieci LAN
    • Elementy bezpieczeństwa IT – Triada CIA
    • Model AAA – wprowadzenie
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y