Warstwa łącza danych - Data link layer
Model OSI według warstwy |
---|
Warstwa łącza danych , lub warstwa 2 , to druga warstwa siedmiu warstw modelu OSI w sieciach komputerowych . Ta warstwa jest warstwą protokołu, która przesyła dane między węzłami w segmencie sieci przez warstwę fizyczną . Warstwa łącza danych zapewnia funkcjonalne i proceduralne środki do przesyłania danych między jednostkami sieci, a także może zapewniać środki do wykrywania i ewentualnie korygowania błędów, które mogą wystąpić w warstwie fizycznej.
Warstwa łącza danych dotyczy lokalnego dostarczania ramek między węzłami na tym samym poziomie sieci. Ramki łącza danych, jak nazywa się te jednostki danych protokołu , nie przekraczają granic sieci lokalnej. Routing międzysieciowy i adresowanie globalne to funkcje wyższej warstwy, umożliwiające protokołom łącza danych skupienie się na dostarczaniu lokalnym, adresowaniu i arbitrażu mediów. W ten sposób warstwa łącza danych jest analogiczna do sąsiedniego policjanta ruchu drogowego; stara się rozstrzygać między stronami walczącymi o dostęp do medium, bez troski o ich ostateczne przeznaczenie. Gdy urządzenia próbują jednocześnie korzystać z nośnika, dochodzi do kolizji ramek. Protokoły łącza danych określają, w jaki sposób urządzenia wykrywają i naprawiają takie kolizje, i mogą zapewniać mechanizmy ich ograniczania lub zapobiegania.
Przykładami protokołów łącza danych są Ethernet , protokół Point-to-Point (PPP), HDLC i ADCCP . W pakiecie Internet Protocol Suite (TCP/IP) funkcjonalność warstwy łącza danych jest zawarta w warstwie łącza , najniższej warstwie modelu opisowego, która z założenia jest niezależna od infrastruktury fizycznej.
Funkcjonować
Łącze danych zapewnia przesyłanie ramek danych między hostami podłączonymi do łącza fizycznego. W ramach semantyki architektury sieci OSI protokoły warstwy łącza danych odpowiadają na żądania usług z warstwy sieci i wykonują swoją funkcję, wysyłając żądania usług do warstwy fizycznej . Taki transfer może być wiarygodny lub niewiarygodny ; wiele protokołów łącza danych nie ma potwierdzeń pomyślnego odbioru i akceptacji ramek, a niektóre protokoły łącza danych mogą nawet nie przeprowadzać żadnych kontroli błędów transmisji. W takich przypadkach protokoły wyższego poziomu muszą zapewniać kontrolę przepływu , sprawdzanie błędów, potwierdzenia i retransmisję.
Nagłówek ramki zawiera adres źródłowy i docelowy, które wskazują, które urządzenie wysłało ramkę i które urządzenie ma ją odebrać i przetworzyć. W przeciwieństwie do hierarchicznych i rutowalnych adresów warstwy sieciowej, adresy warstwy 2 są płaskie, co oznacza, że żadna część adresu nie może być użyta do identyfikacji logicznej lub fizycznej grupy, do której należy adres.
W niektórych sieciach, takich jak sieci lokalne IEEE 802 , warstwa łącza danych jest opisana bardziej szczegółowo z podwarstwami kontroli dostępu do mediów (MAC) i kontroli łącza logicznego (LLC); oznacza to, że protokół IEEE 802.2 LLC może być używany ze wszystkimi warstwami MAC IEEE 802, takimi jak Ethernet, Token Ring , IEEE 802.11 itp., a także z niektórymi warstwami MAC innymi niż 802, takimi jak FDDI . Inne protokoły warstwy łącza danych, takie jak HDLC , uwzględniają obie podwarstwy, chociaż niektóre inne protokoły, takie jak Cisco HDLC , wykorzystują niskopoziomowe ramkowanie HDLC jako warstwę MAC w połączeniu z inną warstwą LLC. W standardzie ITU-T G.hn , który umożliwia tworzenie szybkiej (do 1 Gigabit/s) sieci lokalnej z wykorzystaniem istniejącego okablowania domowego ( linie energetyczne , telefoniczne i kable koncentryczne ), warstwa łącza danych jest podzielony na trzy podwarstwy (konwergencja protokołów aplikacji, kontrola łączy logicznych i kontrola dostępu do mediów).
Podwarstwy
Warstwa łącza danych jest często podzielona na dwie podwarstwy: kontrolę łącza logicznego (LLC) i kontrolę dostępu do nośnika (MAC).
Podwarstwa kontroli łącza logicznego
Najwyższa podwarstwa, LLC, multipleksuje protokoły działające na górze warstwy łącza danych i opcjonalnie zapewnia kontrolę przepływu, potwierdzanie i powiadamianie o błędach. LLC zapewnia adresowanie i kontrolę łącza danych. Określa, jakie mechanizmy mają być wykorzystane do adresowania stacji przez medium transmisyjne oraz do sterowania danymi wymienianymi między maszynami nadawcy i odbiorcy.
Podwarstwa kontroli dostępu do mediów
MAC może odnosić się do podwarstwy, która określa, kto ma dostęp do mediów w dowolnym momencie (np. CSMA/CD ). Innym razem odnosi się do struktury ramki dostarczanej w oparciu o znajdujące się wewnątrz adresy MAC .
Generalnie istnieją dwie formy kontroli dostępu do mediów: rozproszona i scentralizowana. Obie te rzeczy można porównać do komunikacji między ludźmi. W sieci składającej się z ludzi mówiących, tj. konwersacji, każdy z nich przerwie losową ilość czasu, a następnie spróbuje mówić ponownie, skutecznie ustanawiając długą i skomplikowaną grę polegającą na mówieniu „nie, ty pierwszy”.
Podwarstwa Media Access Control wykonuje również synchronizację ramek , która określa początek i koniec każdej ramki danych w strumieniu transmisji . Pociąga to za sobą jedną z kilku metod: wykrywanie oparte na czasie, liczenie znaków, wypychanie bajtów i wypychanie bitów.
- Podejście oparte na czasie przewiduje określoną ilość czasu między klatkami.
- Liczenie znaków śledzi liczbę pozostałych znaków w nagłówku ramki. Ta metoda jest jednak łatwo zakłócona, jeśli to pole jest uszkodzone.
- Wypełnianie bajtów poprzedza ramkę specjalną sekwencją bajtów, taką jak DLE STX i następuje po niej przez DLE ETX . Wyglądy DLE (wartość bajtu 0x10) muszą być zmienione za pomocą innego DLE. Znaki początku i końca są wykrywane w odbiorniku i usuwane, podobnie jak wstawione znaki DLE.
- Podobnie, wypychanie bitów zastępuje te znaczniki początku i końca flagami składającymi się ze specjalnego wzorca bitowego (np. 0, sześć bitów 1 i 0). Wystąpienia tego wzorca bitowego w przesyłanych danych unika się przez wstawienie bitu. Aby użyć przykładu, w którym flaga to 01111110, 0 jest wstawiane po 5 kolejnych jedynkach w strumieniu danych. Flagi i wstawione zera są usuwane po stronie odbiorczej. Pozwala to na dowolne długie ramki i łatwą synchronizację dla odbiorcy. Wypełniony bit jest dodawany nawet wtedy, gdy następny bit danych ma wartość 0, co nie może być pomylone z sekwencją synchronizacji , dzięki czemu odbiornik może jednoznacznie odróżnić wypchane bity od normalnych bitów.
Usługi
Usługi świadczone przez warstwę łącza danych to:
- Enkapsulacja pakietów danych warstwy sieciowej w ramki
- Synchronizacja ramek
- W podwarstwie kontroli łącza logicznego (LLC):
- Kontrola błędów ( automatyczne żądanie powtórzenia , ARQ), oprócz ARQ zapewnianego przez niektóre protokoły warstwy transportowej , do przekazywania technik korekcji błędów (FEC) zapewnionych w warstwie fizycznej oraz do wykrywania błędów i anulowania pakietów zapewnianych we wszystkich warstwach, w tym warstwy sieciowej . Kontrola błędów w warstwie łącza danych (tj. retransmisja błędnych pakietów) jest zapewniona w sieciach bezprzewodowych i modemach sieci telefonicznych V.42 , ale nie w protokołach LAN, takich jak Ethernet , ponieważ błędy bitowe są tak rzadkie w krótkich przewodach. W takim przypadku zapewnione jest tylko wykrywanie błędów i anulowanie błędnych pakietów.
- Sterowanie przepływem , oprócz tego, które zapewnia warstwa transportowa . Sterowanie przepływem w warstwie łącza danych nie jest używane w protokołach LAN, takich jak Ethernet, ale w modemach i sieciach bezprzewodowych.
- W podwarstwie kontroli dostępu do medium (MAC):
- Wiele metod dostępu do kontroli dostępu do kanału, na przykład protokoły CSMA/CD do wykrywania kolizji i retransmisji w sieciach magistrali
- Adresowanie fizyczne ( adresowanie MAC )
- Przełączanie LAN ( przełączanie pakietów ), w tym filtrowanie MAC , Spanning Tree Protocol (STP) i Shortest Path Bridging (SPB)
- Kolejkowanie lub planowanie pakietów danych
- Przełączanie typu „ store-and-forward” lub „ cut-through”
- Kontrola jakości usług (QoS)
- Wirtualne sieci LAN (VLAN)
Wykrywanie i korekcja błędów
Oprócz ramkowania warstwa łącza danych może również wykrywać i naprawiać błędy transmisji. Aby odbiorca wykrył błędy transmisji, nadawca musi dodać nadmiarowe informacje jako kod wykrywania błędów do wysyłanej ramki. Gdy odbiornik otrzymuje ramkę, sprawdza, czy odebrany kod wykrywania błędu pasuje do przeliczonego kodu wykrywania błędu.
Kod wykrywania błędów można zdefiniować jako funkcję obliczającą r (ilość nadmiarowych bitów) odpowiadającą każdemu ciągowi o całkowitej liczbie N bitów. Najprostszym kodem wykrywania błędów jest bit parzystości , który umożliwia odbiornikowi wykrycie błędów transmisji, które wpłynęły na pojedynczy bit wśród transmitowanych N + r bitów. Jeśli istnieje wiele odwróconych bitów, metoda sprawdzania może nie być w stanie wykryć tego po stronie odbiornika. Istnieją bardziej zaawansowane metody niż wykrywanie błędów parzystości, zapewniające wyższą jakość i funkcje.
h | mi | L | L | O |
---|---|---|---|---|
8 | 5 | 12 | 12 | 15 |
Prostym przykładem tego, jak to działa przy użyciu metadanych, jest przesłanie słowa „HELLO” poprzez zakodowanie każdej litery jako jej pozycji w alfabecie. Tak więc litera A jest zakodowana jako 1, B jako 2 i tak dalej, jak pokazano w tabeli po prawej stronie. Zsumowanie otrzymanych liczb daje 8 + 5 + 12 + 12 + 15 = 52, a 5 + 2 = 7 oblicza metadane. Na koniec przesyłana jest sekwencja numerów „8 5 12 12 15 7”, którą odbiorca zobaczy na swoim końcu, jeśli nie ma błędów transmisji. Odbiorca wie, że ostatnia otrzymana liczba to metadane wykrywające błędy i że wszystkie dane przed nią to komunikat, więc odbiorca może ponownie obliczyć powyższą matematykę i jeśli metadane są zgodne, można stwierdzić, że dane zostały odebrane bez błędów. Jeśli jednak odbiorca zobaczy coś w rodzaju „7 5 12 12 15 7” (pierwszy element zmieniony przez jakiś błąd), może przeprowadzić sprawdzenie, obliczając 7 + 5 + 12 + 12 + 15 = 51 i 5 + 1 = 6 i odrzuć odebrane dane jako wadliwe, ponieważ 6 nie jest równe 7.
Bardziej wyrafinowane algorytmy wykrywania i korekcji błędów mają na celu zmniejszenie ryzyka, że wiele błędów transmisji danych zniesie się nawzajem i pozostaną niewykryte. Algorytmem, który może nawet wykryć, czy odebrane zostały prawidłowe bajty, ale nie są one w porządku, jest cykliczna kontrola nadmiarowa lub CRC. Algorytm ten jest często używany w warstwie łącza danych.
Przykłady protokołów
- ARCnet
- bankomat
- Protokół Cisco Discovery (CDP)
- Sieć kontrolera (CAN)
- Econet
- Ethernet
- Automatyczne przełączanie zabezpieczeń Ethernet (EAPS)
- Światłowodowy interfejs danych rozproszonych (FDDI)
- Przekaźnik ramowy
- Kontrola łącza danych wysokiego poziomu (HDLC)
- IEEE 802.2 (zapewnia funkcje LLC warstwom MAC IEEE 802)
- Bezprzewodowa sieć LAN IEEE 802.11
- I²C
- LattisNet
- Protokół wykrywania warstwy łącza (LLDP)
- Lokalna rozmowa
- MIL-STD-1553
- Przełączanie etykiet wieloprotokołowych (MPLS)
- Protokół wykrywania Nortel (NDP)
- Protokół punkt-punkt (PPP)
- Profibus
- SpaceWire
- Protokół internetowy ( SLIP ) (przestarzały)
- Dzielone łącza trunkingowe (SMLT)
- IEEE 802.1aq — mostkowanie najkrótszej ścieżki
- Protokół drzewa opinającego
- StarLan
- Pierścień żetonowy
- Wykrywanie łączy jednokierunkowych (UDLD)
- UNI/O
- 1-przewodowy
- oraz większość form komunikacji szeregowej np. USB , PCI Express .
Związek z modelem TCP/IP
Pakiet protokołów internetowych |
---|
Warstwa aplikacji |
Warstwa transportowa |
Warstwa internetowa |
Warstwa łącza |
W pakiecie Internet Protocol Suite (TCP/IP) funkcjonalność warstwy łącza danych OSI jest zawarta w jego najniższej warstwie, warstwie łącza . Warstwa łącza TCP/IP obejmuje zakres operacyjny łącza, do którego podłączony jest host, i zajmuje się tylko kwestiami sprzętowymi aż do uzyskania adresów sprzętowych (MAC) do lokalizowania hostów w łączu i przesyłania ramek danych do łącza. Funkcjonalność warstwy łącza została opisana w dokumencie RFC 1122 i jest zdefiniowana inaczej niż warstwa łącza danych w OSI i obejmuje wszystkie metody, które wpływają na łącze lokalne.
Model TCP/IP nie jest odgórnym, kompleksowym odniesieniem do projektowania sieci. Został on sformułowany w celu zilustrowania grup logicznych i zakresów funkcji potrzebnych do projektowania zestawu protokołów intersieciowych TCP/IP, potrzebnych do działania Internetu. Ogólnie rzecz biorąc, należy unikać bezpośrednich lub ścisłych porównań modeli OSI i TCP/IP, ponieważ tworzenie warstw w TCP/IP nie jest głównym kryterium projektowym i ogólnie jest uważane za „szkodliwe” (RFC 3439). W szczególności protokół TCP/IP nie narzuca ścisłej hierarchicznej sekwencji wymagań dotyczących enkapsulacji, co przypisuje się protokołom OSI.
Zobacz też
- ALOHAnet § Protokół ALOHA
- ODI
- NDIS
- SANA-II – Standardowa Amiga Networking Architecture, wersja 2
Bibliografia
- S. Tanenbaum, Andrzej (2005). Sieci komputerowe (wyd. 4). 482, FIE, Patparganj , Delhi 110 092: Dorling Kindersley (Indie) Pvt. Ltd., licencje Pearson Education w Azji Południowej. Numer ISBN 81-7758-165-1.CS1 maint: lokalizacja ( link )
- Odom, Wendel (2013). CCENT/CCNA ICND1 100-101, CCENT Oficjalny przewodnik po certyfikacie . Paul Boger, prasa cisco. Numer ISBN 978-1-58714-385-4.