Odpowiedzi

  • Użytkownik Zadane
2010-03-19T19:37:23+01:00
Warstwa łącza – druga warstwa w modelu OSI/ISO i w modelu TCP/IP (=modelu DoD). Protokoły tej warstwy służą do przemieszczania datagramu pojedynczym łączem. Protokół warstwy łącza danych definiuje format pakietów wymienianych między węzłami znajdującymi się na końcach łączy, a także działania podejmowane przez te węzły w momencie wysyłania i odbierania pakietów. Jednostki danych przesyłane przez protokół warstwy łącza danych są nazywane ramkami, każda taka ramka zwykle kapsułkuje jeden datagram warstwy sieci. Operacje wykonywane przez protokół warstwy łącza danych w chwili wysyłania i odbierania ramek uwzględniają detekcję błędów, retransmisje, kontrolę przepływu i losowy dostęp. Przykładami protokołów warstwy łącza danych są takie protokoły jak Ethernet 802.11 (stosowany w bezprzewodowych sieciach lokalnych; określany również terminem WiFi), token ring i PPP. W wielu sytuacjach ATM też może być uważany za protokół warstwy łącza danych.
Zadaniem protokołu warstwy sieci jest przemieszczanie segmentów warstwy transportowej między węzłem źródłowym i docelowym. Z kolei rolą protokołu warstwy łącza danych jest transferowanie pojedynczym łączem ścieżki datagramów warstwy sieci od węzła źródłowego do węzła docelowego. Istotną cechą warstwy łącza danych jest to, że datagram może być przetwarzany przez odmienne protokoły używane przez różne łącza ścieżki. Przykładowo, w przypadku pierwszego łącza datagram może być obsługiwany przez protokół Ethernet, przy ostatnim łączu przez protokół PPP, natomiast w przypadku łączy pośredniczących przez protokół sieci rozległej. Godne uwagi jest to, że usługi świadczone przez protokoły warstwy łącza danych mogą się różnić. Przykładowo, protokół warstwy łącza danych może, lub nie, zapewniać usługę niezawodnego dostarczania. A zatem warstwa sieci musi być w stanie zrealizować postawione przed nią zadanie, gdy ma do czynienia z heterogenicznym zestawem usług warstwy łącza danych. Aby bliżej zapoznać się z warstwą łącza danych i tym, w jaki sposób jest powiązana z warstwą sieci, posłużmy się analogią związaną z transportem publicznym. Firma turystyczna planująca podróż turyście przemieszczającemu się z Princeton w stanie New Jersey do Lozanny w Szwajcarii zdecydowała, że najwygodniejszym rozwiązaniem będzie wynajęcie limuzyny z Princeton na lotnisko JFK, a następnie lot samolotem do Genewy i później podróż pociągiem z genewskiego lotniska do Lozanny. Po dokonaniu przez agenta trzech rezerwacji firma z Princeton wypożyczająca limuzyny będzie odpowiedzialna za dowiezienie turysty na lotnisko JFK. Z kolei przewoźnik lotniczy musi zadbać o to, aby turysta dotarł z lotniska JFK do Genewy. Szwajcarskie koleje będą odpowiadały za przetransportowanie turysty z Genewy do Lozanny. Każdy z tych trzech etapów podróży przebiega bezpośrednio między dwoma „sąsiadującymi" lokalizacjami. Warto zauważyć, że trzy fazy transportu są zarządzane przez różne firmy, które wykorzystują zupełnie inne środki transportu (limuzyna, samolot i pociąg). Choć środki transportu się różnią, każdy zapewnia podstawową usługę polegającą na przemieszczaniu ludzi z jednego miejsca w drugie. W przypadku przytoczonej analogii turystę można porównać z datagramem, każdego z przewoźników z łączem komunikacyjnym, środek transportu z protokołem warstwy łącza danych, natomiast firmę turystyczną z protokołem trasowania. Choć podstawowa usługa dowolnej warstwy łącza danych polega na przemieszczaniu pojedynczym łączem komunikacyjnym datagramu od jednego węzła do drugiego sąsiedniego, szczegóły usługi mogą się różnić w przypadku poszczególnych protokołów warstwy łącza danych. Do usług, które mogą być oferowane przez protokół warstwy łącza danych, należy zaliczyć następujące:
• Ramkowanie. Prawie wszystkie protokoły warstwy łącza danych przed umieszczeniem w łączu każdy datagram warstwy sieci kapsułkują w ramce warstwy łącza danych. Ramka zawiera pole danych, w którym jest umieszczany datagram warstwy sieci, a ponadto posiada kilka pól nagłówkowych (ramka może też uwzględniać pola końca ramki; jednak zarówno te pola, jak i pola nagłówka traktujemy jak pola nagłówkowe). Struktura ramki jest określana przez protokół warstwy łącza danych.
• Dostęp do łącza. Protokół kontroli dostępu do nośnika MAC (Medium Access Control) określa zasady, według których ramka będzie transmitowana łączem. W przypadku łączy punkt-punkt, które z jednej strony mają pojedynczego nadawcę, natomiast z drugiej jednego odbiorcę, protokół MAC jest prosty lub się go nie stosuje. Nadawca może wysyłać ramkę każdorazowo, gdy łącze znajduje się w stanie bezczynności. Bardziej interesująca jest sytuacja, w której wiele węzłów współużytkuje pojedyncze łącze rozgłaszania. Jest to tak zwany problem wielodostępności. W tym przypadku protokół MAC zajmuje się koordynowaniem transmitowania ramek przez wiele węzłów.
• Niezawodne dostarczanie. Gdy protokół warstwy łącza danych oferuje usługę niezawodnego dostarczania, gwarantuje bezbłędne przesłanie łączem każdego datagramu warstwy sieci. Określone protokoły warstwy transportowej, takie jak TCP, też świadczą usługę niezawodnego dostarczania danych. Podobnie jak w przypadku warstwy transportowej usługa niezawodnego dostarczania danych warstwy łącza danych jest realizowana za pomocą potwierdzeń i retransmisji. Usługa ta jest często używana w przypadku łączy, które są podatne na duże ilości błędów, tak jak łącza bezprzewodowe. Zamiast wymuszania przeprowadzenia przez protokół warstwy transportowej lub warstwy aplikacji ponownej transmisji danych między węzłami, usługa ma za zadanie usuwać błędy lokalnie, czyli w łączu, w którym wystąpiły. Jednak w przypadku łączy o niewielkiej liczbie błędów (światłowód, kabel koncentryczny i wiele miedzianych skrętek) usługa niezawodnego dostarczania warstwy łącza danych może być uznana za powodującą niepotrzebne obciążenie. Z tego powodu wiele protokołów warstwy łącza danych używanych w tradycyjnych sieciach nie oferuje usługi niezawodnego dostarczania.
• Kontrola przepływu. Węzły z obu stron łącza posiadają ograniczone możliwości buforowania ramek. Stanowi to potencjalny problem, gdy węzeł odbiorczy może otrzymywać ramki z szybkością przekraczającą szybkość ich przetwarzania. Bez kontroli przepływu bufor węzła odbiorczego może się przepełnić i ramki mogą zostać utracone. Podobnie jak w przypadku warstwy transportowej protokół warstwy łącza danych może oferować kontrolę przepływu, aby uniemożliwić węzłowi nadawczemu znajdującemu się z jednej strony łącza przeciążenie węzła odbiorczego zlokalizowanego po drugiej stronie łącza.
• Detekcja błędów. Węzeł odbiorczy może nieprawidłowo stwierdzić, że bit ramki jest zerem, gdy przesłano go jako jedynkę, i odwrotnie. Tego typu błędy bitowe są spowodowane tłumieniem sygnału i zakłóceniami elektromagnetycznymi. Ponieważ nie ma potrzeby przekazywania datagramu posiadającego błąd, wiele protokołów warstwy łącza danych oferuje mechanizm wykrywający obecność jednego lub większej liczby błędów. Polega to na nakazaniu węzłowi nadawczemu ustawienia w ramce bitów detekcji błędów, natomiast węzłowi odbiorczemu przeprowadzenia kontroli błędów. W przypadku protokołów warstwy łącza danych detekcja błędów jest bardzo często spotykaną usługą. Internetowe warstwy transportowa i sieci również w ograniczonym zakresie zapewniają wykrywanie błędów. Detekcja błędów warstwy łącza danych jest zwykle bardziej złożona i implementowana na poziomie sprzętowym.
• Usuwanie błędów. Usuwanie błędów przypomina detekcję błędów, z tym, że węzeł odbiorczy nie tylko wykrywa błędy pojawiające się w ramce, ale też dokładnie stwierdza, w którym miejscu ramki wystąpiły i eliminuje je. Niektóre protokoły, takie jak ATM, zapewniają usługę usuwania błędów warstwy łącza danych, która zamiast dla całego pakietu obowiązuje tylko dla jego nagłówka.
• Półdupleks i pełny dupleks. W przypadku transmisji w trybie pełnego dupleksu węzły po obu końcach łącza mogą jednocześnie przesyłać pakiety. W przypadku transmisji w trybie półdupleksu węzeł nie może w tym samym czasie wysyłać i odbierać danych.
Jak wyżej wspomniano, wiele usług zapewnianych przez warstwę łącza danych jest bardzo podobnych do usług świadczonych przez warstwę transportową. Przykładowo, obie warstwy mogą oferować usługę niezawodnego dostarczania. Choć mechanizmy używane przez te dwie warstwy w celu świadczenia usługi niezawodnego dostarczania są do siebie podobne, usługi w przypadku obu warstw nie są identyczne. Protokół warstwy transportowej zapewnia niezawodne dostarczanie między dwoma procesami poszczególnych par węzłów końcowych. Z kolei protokół warstwy łącza danych udostępnia taką usługę między dwoma węzłami połączonymi pojedynczym łączem. Zarówno protokół warstwy łącza danych, jak i warstwy transportowej może oferować kontrolę przepływu i wykrywanie błędów. Kontrola przepływu protokołu warstwy transportowej jest zapewniana dla poszczególnych par węzłów końcowych, natomiast w przypadku protokołu warstwy łącza danych dla pary sąsiednich węzłów.