Wprowadzenie do podwarstwy LLC
W świecie sieci komputerowych Warstwa Łącza Danych (Warstwa 2) obejmuje funkcje wspólne dla pojedynczego łącza. Jej dolną część stanowi . Zajmuje się ona adresowaniem MAC i dostępem do medium w technologii takiej jak Ethernet lub Wi-Fi. Za kodowanie i przesyłanie sygnałów odpowiada warstwa fizyczna. Powyżej znajduje się , która używa adresów logicznych i wybiera trasę pakietów między sieciami.
Podwarstwa Logical Link Control (LLC) znajduje się między podwarstwą MAC i Warstwą Sieci. Zdefiniowana przez standard IEEE 802.2, udostępnia jednolity interfejs oraz usługi niezależne od szczegółów bazowej technologii. Niezależnie od tego, czy dane są przenoszone przez Ethernet, Wi-Fi czy Token Ring, Warstwa Sieci może korzystać z tego samego modelu usług LLC. Taka abstrakcja była szczególnie przydatna w latach 80. i 90., gdy współistniało wiele technologii LAN. Standard opisuje interfejs LLC, format jednostek danych oraz trzy typy usług: bezpotwierdzeniową, połączeniową i potwierdzaną bezpołączeniową.
Funkcje LLC
LLC udostępnia zestaw usług logicznego łącza między urządzeniami, niezależnych od rodzaju medium. Zakres usługi zależy od wybranego trybu pracy. Nie wszystkie tryby oferują kontrolę przepływu i odzyskiwanie po błędach.
- Multipleksowanie Protokołów Sieciowych:
LLC umożliwia współistnienie wielu protokołów Warstwy Sieci, takich jak IPv4, IPv6 oraz starszy IPX firmy Novell, w tej samej sieci fizycznej. Identyfikatory punktów dostępu do usług wskazują stos protokołu, do którego należy przekazać odebraną jednostkę danych. Wartości DSAP i SSAP oraz opcjonalne rozszerzenie SNAP umożliwiają rozpoznanie protokołu, gdy wymaga tego format ramki.
- Kontrola Przepływu (Opcjonalnie):
W trybach obsługujących tę funkcję LLC może zarządzać szybkością transmisji między urządzeniami, aby ograniczyć przeciążenie wolniejszego odbiorcy. Może zasygnalizować nadawcy wstrzymanie transmisji. Mechanizm ten nie występuje w każdym trybie i nie zastępuje kontroli przeciążenia w warstwach wyższych.
- Kontrola Błędów (Opcjonalnie):
Wybrane tryby LLC używają numerów sekwencyjnych i potwierdzeń. Pozwala to kontrolować kolejność oraz wykrywać brakujące lub uszkodzone ramki i żądać ich retransmisji. Numery sekwencyjne i okno przesuwne należą do usług połączeniowych.
- Niezależność od Medium:
Interfejs usług LLC pozostaje wspólny dla Ethernetu, Wi-Fi (802.11) i Token Ringu (802.5). Warstwa Sieci komunikuje się z LLC, a LLC przekazuje dane do podwarstwy MAC właściwej dla danej technologii. Szczegóły formatowania ramki i dostęp do medium pozostają po stronie MAC.
Nagłówek LLC (IEEE 802.2)
Gdy ramka Ethernet lub Wi-Fi używa LLC, nagłówek LLC znajduje się między nagłówkiem MAC a danymi Warstwy Sieci. Zawiera pola potrzebne do wyboru usługi i obsługi danego trybu LLC. W klasycznym nagłówku DSAP i SSAP mają po jednym bajcie, a pole Sterowanie ma jeden lub dwa bajty.
Standardowy nagłówek LLC składa się z trzech pól:
DSAP (1 bajt)
Docelowy Punkt Dostępu do Usługi identyfikuje usługę po stronie odbiorczej. Informuje podwarstwę LLC, któremu protokołowi Warstwy Sieci lub usłudze należy przekazać dane. Historycznie używane przykłady to DSAP 0x06 dla IP, 0xE0 dla starszego protokołu Novell NetWare (IPX) oraz 0x42 dla Spanning Tree (STP). W transmisji IP przez sieci IEEE 802 często używa się LLC/SNAP: DSAP i SSAP mają wtedy wartość 0xAA, pole sterowania ma wartość 0x03, a dalsze pola zawierają kod organizacji i EtherType identyfikujący protokół.
SSAP (1 bajt)
Źródłowy Punkt Dostępu do Usługi identyfikuje usługę, z której pochodzi ramka po stronie nadawcy. W przypadku żądań i odpowiedzi wartości SSAP i DSAP są zwykle zamieniane w ramce zwrotnej.
Sterowanie (1 lub 2 bajty)
To pole określa typ usługi, a w wybranych trybach przenosi numery sekwencyjne i potwierdzenia. Jego struktura jest oparta na polu sterującym HDLC i wskazuje, czy ramka jest Informacyjna (I-frame), Nadzorcza (S-frame) czy Nienumerowana (U-frame). Tryb Type 1 korzysta z nienumerowanej informacji, natomiast tryby potwierdzane używają dodatkowych pól sterowania.
Trzy typy usług LLC
Standard LLC definiuje trzy tryby działania. Aplikacja lub protokół wybiera usługę odpowiednią dla swoich wymagań, korzystając z wartości pola Sterowanie ramki LLC.
- Typ 1: Bezpotwierdzeniowa Usługa Bezpołączeniowa
Jest to podstawowa, lekka usługa datagramowa bez potwierdzeń.
- Jak to działa: Ramki są wysyłane do celu bez uprzedniego ustanawiania połączenia i bez oczekiwania na potwierdzenie odbioru.
- Brak niezawodności: Nie ma kontroli przepływu, obsługi retransmisji ani potwierdzania utraconych lub uszkodzonych ramek. LLC przekazuje ramkę do podwarstwy MAC, a wykrycie i naprawa problemu pozostaje po stronie protokołów wyższych warstw, takich jak TCP. Typ 1 nie zawiera procedury odzyskiwania po błędzie na poziomie LLC.
- Zastosowanie: W transmisji TCP/IP korzystającej z LLC jest to typowy tryb dla ruchu w sieci LAN. Ustanawianie połączenia w Warstwie 2 byłoby zbędne, gdy TCP zapewnia połączeniową usługę w Warstwie 4. Tryb ten stosuje się także dla ruchu rozgłoszeniowego i grupowego, dla którego potwierdzenia byłyby niepraktyczne. RFC 1042 opisuje użycie Type 1 z LLC/SNAP dla datagramów IP w sieciach IEEE 802.
- Typ 2: Usługa Połączeniowa
Jest to usługa połączeniowa z numerowaniem, potwierdzeniami i retransmisją, podobna pod tym względem do mechanizmów znanych z HDLC lub TCP na poziomie łącza.
- Jak to działa: Przed wymianą danych ustanawiane jest połączenie logiczne między źródłowym i docelowym SAP. Wszystkie ramki są sekwencyjnie numerowane. Odbiorca wysyła potwierdzenia dla poprawnie odebranych ramek. Przepływ jest kontrolowany za pomocą mechanizmu przesuwnego okna. Uszkodzone lub utracone ramki są automatycznie retransmitowane przez LLC.
- Wysoka niezawodność: W ramach aktywnego połączenia zapewnia potwierdzanie i uporządkowane dostarczanie ramek, z retransmisją po wykryciu utraty. Usługa dotyczy LLC i wymaga aktywnego udziału obu stron łącza. Potwierdzanie dostarczenia na tym poziomie nie zastępuje semantyki end-to-end protokołów transportowych.
- Zastosowanie: Ten tryb ma większy narzut i rzadziej występuje w sieciach IP. Był istotny w starszych architekturach, takich jak SNA firmy IBM, w których niezawodność na poziomie łącza była wymagana.
- Typ 3: Potwierdzana Usługa Bezpołączeniowa
Usługa ta łączy brak ustanawiania połączenia z potwierdzaniem pojedynczych ramek.
- Jak to działa: Nie jest ustanawiane formalne połączenie. Każda pojedyncza ramka danych jest wysyłana i musi być indywidualnie potwierdzona przez odbiorcę. Jeśli potwierdzenie nie zostanie odebrane w określonym czasie, nadawca retransmituje ramkę.
- Umiarkowana niezawodność: Potwierdza dostarczenie każdej ramki, lecz nie gwarantuje kolejności ich nadejścia. Potwierdzenie odnosi się do konkretnej ramki, więc nadawca może ponowić jej wysłanie.
- Zastosowanie: Może odpowiadać wybranym systemom sterowania lub automatyki, w których wymagane jest potwierdzenie pojedynczego polecenia bez narzutu pełnego połączenia. Ostateczny wybór zależy od wymagań konkretnego protokołu.
LLC i format Ethernet II
Standardy Ethernet opisują więcej niż jeden format ramki. W formacie IEEE 802.3 z LLC pole po adresach MAC ma znaczenie długości, natomiast Ethernet II (ramka DIX) używa w tym miejscu pola EtherType.
W transmisji IP Warstwa Łącza Danych musi wskazać protokół przenoszonego ładunku. LLC używa do tego pól SAP, a Ethernet II używa pola EtherType. Oba formaty pełnią tę funkcję w odmienny sposób.
- Ramka IEEE 802.3 z LLC: Dwa bajty następujące po źródłowym adresie MAC reprezentują Długość pola danych. Po nich następuje nagłówek LLC, zawierający pola DSAP i SSAP, które identyfikują protokół Warstwy Sieci.
- Ramka Ethernet II: Dwa bajty następujące po źródłowym adresie MAC reprezentują Typ (EtherType). To jedno pole bezpośrednio identyfikuje protokół Warstwy Sieci. Na przykład, wartość EtherType
0x0800wskazuje pakiet IPv4, podczas gdy0x86DDwskazuje pakiet IPv6.
Urządzenia rozróżniają te formaty, badając wartość w dwubajtowym polu po adresach MAC. Wartości od 1501 do 1535 nie są standardową interpretacją pola Długość ani EtherType. Dobór formatu zależy od używanego standardu i protokołu wyższej warstwy. Pole długości nie identyfikuje protokołu sieciowego, dlatego w tym wariancie potrzebny jest nagłówek LLC:
- Jeśli wartość wynosi (hex ), jest interpretowana jako pole Długość, a urządzenie oczekuje ramki IEEE 802.3 z nagłówkiem LLC.
- Jeśli wartość wynosi (hex ), jest interpretowana jako pole EtherType, a urządzenie przetwarza ramkę Ethernet II.
Ethernet II jest obecnie często wybierany dla danych użytkownika, lecz LLC pozostaje istotnym standardem opisu usług Warstwy Łącza Danych. Rzeczywisty udział ruchu IP zależy od środowiska, dlatego nie należy przyjmować stałej wartości 99% dla każdej sieci LAN. LLC jest także używane przez niektóre protokoły kontrolne Warstwy 2, takie jak Protokół Drzewa Rozpinającego (STP), który wymienia informacje między przełącznikami w celu zapobiegania pętlom sieciowym.