Podręcznik
Warstwa łącza danych to druga warstwa modelu OSI, odpowiedzialna za niezawodne przesyłanie ramek danych między bezpośrednio połączonymi urządzeniami sieciowymi. Jej główną rolą jest organizacja surowych bitów warstwy fizycznej w logiczne jednostki – ramki – oraz zapewnienie ich poprawnej transmisji przez medium komunikacyjne. Warstwa ta realizuje funkcje takie jak adresowanie fizyczne (MAC), wykrywanie i korekcję błędów, kontrolę przepływu oraz zarządzanie dostępem do wspólnego medium transmisyjnego. W tym celu stosuje różne protokoły dostępu do medium, takie jak CSMA/CD w Ethernet czy HDLC i LCP w PPP. Technologie takie jak Ethernet, PPP i Frame Relay są przykładami różnych sposobów implementacji tej warstwy, przystosowanych do pracy w sieciach lokalnych, punkt-punkt oraz rozległych. Poprawne działanie warstwy łącza danych ma kluczowe znaczenie dla efektywnej pracy całego stosu protokołów sieciowych i minimalizacji strat w transmisji.
2. Warstwa Łącza Danych
2.2. Protokoły dostępu do medium (MAC)
Warstwa łącza danych pełni funkcję pośredniczącą między warstwą fizyczną a warstwą sieciową, odpowiadając za kontrolę transmisji ramek w obrębie lokalnego łącza. Jej integralnym elementem jest podwarstwa MAC, czyli Media Access Control. Zadaniem tej podwarstwy jest zorganizowanie dostępu do wspólnego medium transmisyjnego tak, by uniknąć konfliktów i zapewnić efektywne przesyłanie danych w środowiskach, gdzie wiele urządzeń współdzieli ten sam kanał fizyczny. Protokoły MAC są różnorodne i dostosowane do specyfiki medium – inne stosuje się w Ethernetcie przewodowym, inne w sieciach bezprzewodowych, jeszcze inne w magistralach szeregowych, światłowodach czy systemach przemysłowych.
Pierwotne wersje Ethernetu wykorzystywały podejście znane jako CSMA/CD – Carrier Sense Multiple Access with Collision Detection. W tym modelu każde urządzenie nasłuchuje medium przed rozpoczęciem transmisji. Jeśli medium jest wolne, urządzenie zaczyna nadawanie. Jeśli medium jest zajęte, urządzenie czeka, aż stanie się wolne. Kluczowy problem pojawia się wtedy, gdy dwa urządzenia rozpoczną nadawanie niemal jednocześnie – ze względu na opóźnienie propagacyjne w kablu, każde z nich może uznać medium za wolne i rozpocząć transmisję, nie wiedząc o drugim. To prowadzi do kolizji.
Gdy kolizja zostanie wykryta (poprzez porównanie nadawanego i odbieranego sygnału), urządzenie natychmiast przerywa transmisję i wysyła tzw. jam signal – specjalną sekwencję bitów sygnalizującą innym urządzeniom, że zaszła kolizja. Następnie każde z urządzeń losuje czas oczekiwania przed ponowną próbą nadawania. Ten czas, określany jako backoff, jest wyznaczany według algorytmu wykładniczego: po pierwszej kolizji losuje się czas z przedziału [0, T], po drugiej z [0, 2T], po trzeciej z [0, 4T] itd., aż do ustalonego maksimum. Zmniejsza to prawdopodobieństwo kolejnych kolizji.
CSMA/CD był efektywny przy niskim obciążeniu medium, ale jego skuteczność spadała gwałtownie przy dużym natężeniu ruchu. Obecnie nie jest już stosowany w sieciach Ethernet, ponieważ większość z nich działa w trybie full-duplex, eliminując kolizje. W tym trybie każde urządzenie korzysta z osobnych kanałów transmisji i odbioru, umożliwiając jednoczesne nadawanie i odbieranie.
W sieciach bezprzewodowych stosowanie CSMA/CD nie jest możliwe, ponieważ urządzenie nie może jednocześnie nadawać i odbierać w tym samym paśmie częstotliwości – tym samym nie jest w stanie wykryć kolizji. Dlatego w 802.11 opracowano wariant CSMA/CA – Collision Avoidance. W tej wersji urządzenie również nasłuchuje medium przed transmisją, ale dodatkowo losuje tzw. backoff już przed samym nadawaniem, nawet jeśli medium jest wolne. Ma to na celu zmniejszenie prawdopodobieństwa kolizji w sytuacjach, gdy wiele stacji czeka na zakończenie poprzedniej transmisji.
Dodatkowym mechanizmem jest RTS/CTS (Request to Send / Clear to Send). Przed wysłaniem właściwej ramki dane urządzenie wysyła krótką ramkę RTS, zawierającą informację o długości planowanej transmisji. Odbiorca odpowiada CTS, po czym rozpoczyna się transmisja danych. Wszystkie inne stacje, które odbiorą CTS, wstrzymują swoje nadawanie przez określony czas. Dzięki temu możliwe jest unikanie kolizji wynikających z tzw. problemu ukrytej stacji.
W środowiskach o dużej liczbie urządzeń korzystających z jednego medium, np. w sieciach przemysłowych lub autobusowych, stosuje się protokoły deterministyczne. Przykładem może być Token Ring – każda stacja może nadawać tylko wtedy, gdy posiada specjalną ramkę zwaną tokenem. Token krąży po pierścieniu między stacjami i tylko jedna może go posiadać w danym momencie. Zapobiega to kolizjom, ale wymaga dodatkowych mechanizmów zarządzających przypadkami utraty tokena, przeciążenia lub awarii stacji.
W innych wariantach, np. magistralach CAN, stosuje się arbitraż priorytetowy oparty na identyfikatorach wiadomości. Jeśli dwie stacje jednocześnie zaczynają nadawać, to transmisja zostaje przerwana na podstawie priorytetu zawartego w identyfikatorze. Bity 0 są dominujące (niski identyfikator = wyższy priorytet). Dzięki temu stacja o niższym priorytecie rezygnuje z transmisji bez wpływu na ramkę stacji o wyższym priorytecie.
W sieciach GPON (światłowodowych), gdzie wiele stacji dzieli jedną linię światłowodową, stosuje się planowanie transmisji na podstawie przydziałów czasowych (TDMA – Time Division Multiple Access). Każdy terminal ONT otrzymuje swój przydzielony slot czasowy i tylko w tym czasie może nadawać dane upstream. Planowanie przydziałów odbywa się przez centralną jednostkę OLT, która regularnie wysyła wiadomości grantowe. Takie podejście eliminuje ryzyko kolizji i umożliwia bardzo wydajne wykorzystanie pasma.
W miarę jak systemy komunikacyjne stawały się coraz bardziej złożone, również protokoły warstwy MAC ewoluowały w kierunku zwiększonej inteligencji, elastyczności i możliwości różnicowania ruchu. Przykładem są współczesne implementacje MAC w sieciach bezprzewodowych opartych na standardzie IEEE 802.11ax (Wi‑Fi 6) oraz 802.11be (Wi‑Fi 7), które oprócz tradycyjnego CSMA/CA wprowadzają mechanizmy takie jak OFDMA (Orthogonal Frequency Division Multiple Access), MU‑MIMO oraz deterministyczne sloty czasowe. W OFDMA każdy kanał dzielony jest na podnośne częstotliwości, które są przydzielane niezależnym stacjom klienckim, dzięki czemu wiele urządzeń może nadawać jednocześnie, nie kolidując ze sobą.
Rozszerzeniem tej techniki w środowiskach przemysłowych są mechanizmy deterministyczne znane z Time-Sensitive Networking (TSN). W tym podejściu MAC nie tylko decyduje o dostępie do medium na podstawie stanu kanału, ale uwzględnia także zegar globalny. Ramki są nadawane tylko w wyznaczonych slotach czasowych, a ich transmisja jest rezerwowana wcześniej, często z pomocą protokołów takich jak IEEE 802.1Qbv (Time-Aware Shaper). Pozwala to uzyskać bardzo precyzyjne i przewidywalne czasy transmisji niezbędne np. w sterowaniu ruchem maszyn lub pojazdów autonomicznych.
W środowiskach światłowodowych o architekturze pasywnej, jak GPON lub XGS-PON, mechanizm MAC oparty jest na koncepcji grantów. Centralne urządzenie OLT przydziela ONT (Optical Network Terminal) sloty czasowe, w których mogą one przesyłać dane upstream. W tym modelu MAC działa jako rozproszony scheduler – bierze pod uwagę potrzeby przepustowości, klasę ruchu i inne priorytety. Dzięki temu każda jednostka dostaje precyzyjnie określony czas nadawania, eliminując kolizje i zapewniając wysoki poziom efektywności.
W LTE i 5G warstwa MAC stanowi krytyczny komponent warstwy radiowej (RAN). Odpowiada za segmentację, agregację ramek i planowanie zasobów czasowo-częstotliwościowych. W przeciwieństwie do Ethernetu, gdzie MAC reaguje pasywnie na sytuację w medium, tutaj MAC aktywnie zarządza zasobami kanałowymi. Scheduler w eNB (LTE) lub gNB (5G) przydziela zasoby w jednostkach czasowych zwanych TTI (Transmission Time Interval). Każdy użytkownik otrzymuje odpowiedni fragment pasma (w domenie czasu i częstotliwości) w zależności od zapotrzebowania, priorytetu QoS i jakości kanału.
W sieciach przemysłowych (Industrial Ethernet, Profinet IRT, EtherCAT) protokoły MAC implementują własne harmonogramy transmisji deterministycznej, często wykorzystując prekonfigurowane listy czasowe (schedule tables) oraz priorytety transmisji. Ramki o wyższej krytyczności są przepuszczane jako pierwsze, zaś transmisje niższego priorytetu są opóźniane lub przerywane. W EtherCAT mechanizm MAC jest niemal zupełnie wyeliminowany – pojedyncza ramka przetwarzana jest w czasie przejścia przez kolejne węzły i nadpisywana w locie, co pozwala zredukować opóźnienia do kilku mikrosekund na każdy węzeł.
Nowoczesne przełączniki (switches) wyposażone są w zaawansowane implementacje MAC, które pozwalają na klasyfikację ramek, kolejkowanie ruchu (np. WRR – Weighted Round Robin, PQ – Priority Queuing) oraz obsługę reguł sieciowych. Mechanizm MAC współdziała z komponentami QoS – przykładowo ramki mogą być klasyfikowane na podstawie pola PCP (Priority Code Point) w tagu VLAN 802.1Q i przypisywane do odpowiednich kolejek.
Mechanizmy MAC mogą również uwzględniać dynamiczne zmiany stanu sieci, takie jak przeciążenia, opóźnienia, jitter czy fluktuacje przepustowości. Przełączniki z funkcją Adaptive MAC rewidują polityki dostępu i priorytety transmisji w czasie rzeczywistym. W niektórych implementacjach stosuje się tzw. mechanizmy flow control, w których odbiornik informuje nadawcę o konieczności wstrzymania transmisji przez wysłanie ramki PAUSE. Jest to przydatne, gdy odbiorca nie nadąża z przetwarzaniem ramek i zbliża się do przepełnienia buforów.
W sieciach zautomatyzowanych i chmurowych (np. Google B4, Microsoft Azure SONiC), MAC jest zintegrowany z kontrolerami SDN (Software Defined Networking). W tym modelu reguły dotyczące transmisji nie są lokalne dla przełącznika, lecz definiowane przez centralny kontroler. MAC realizuje więc polityki zgodnie z logiką warstwy sterowania, przydzielając pasmo, priorytety, klasy usług lub nawet zmieniając ścieżki na żywo.
Przykład bardziej nietypowy to MAC w systemach LoRaWAN. Ponieważ urządzenia końcowe działają z bardzo niską mocą i rzadko komunikują się z siecią, MAC pełni tu funkcję pasywną – urządzenie inicjuje transmisję kiedy tylko potrzebuje, a bramka odbiera pakiet i ewentualnie odpowiada z opóźnieniem. LoRaWAN stosuje technikę ALOHA z modyfikacjami (np. duty cycle ograniczony przepisami, kanały kontrolne i okna odbioru).
Istnieją także eksperymentalne rozwiązania, które wprowadzają sztuczną inteligencję do warstwy MAC. Algorytmy uczenia maszynowego przewidują zapotrzebowanie na pasmo, analizują historię kolizji i automatycznie dostosowują backoff, sloty czasowe i harmonogramy transmisji. Rozwiązania takie testowane są w środowiskach sieci IoT (np. Zigbee, Thread), gdzie liczba urządzeń i złożoność topologii utrudniają klasyczne zarządzanie medium.
Protokoły MAC są również nieodzownym komponentem architektur multi-hop, gdzie dane przechodzą przez wiele węzłów pośrednich. W takich sytuacjach MAC musi uwzględniać nie tylko natężenie ruchu lokalnego, ale również przewidywane przeciążenia downstream. Przykładem jest mesh routing w 802.11s, gdzie każde urządzenie pełni jednocześnie rolę klienta i przekaźnika. W takich topologiach MAC współdziała ściśle z warstwą routingu, planując okna nadawcze tak, by nie doszło do zatorów lub opóźnień na trasie.
Wreszcie, istotnym aspektem działania MAC jest bezpieczeństwo. Warstwa MAC może być wykorzystywana do identyfikacji urządzeń, przydzielania dynamicznych reguł ACL (Access Control List) lub stosowania kontroli dostępu 802.1X. Ramki mogą być filtrowane na podstawie adresu MAC, VLAN-u, zawartości nagłówków L2–L4, czy położenia geograficznego (w sieciach LoRa lub satelitarnych).