Ramka warstwy łącza danych i komunikacja

Artykuł  | Damian Stelmach

Istnieje wiele rozwiązań i wiele standardów sieciowych realizujących funkcje warstwy drugiej. Mamy standard Ethernet, mamy sieci bezprzewodowe, mamy w końcu wiele protokołów sieciowych działających w sieciach WAN, takich jak, chociażby protokół Frame Relay. Dlatego też nie istnieje coś takiego jak uniwersalna ramka. Każdy standard sieciowy dysponuje swoją ramką, która specyficzna jest dla jednego, konkretnego rozwiązania. Uogólniając temat, możemy przyjąć, że typowa ramka warstwy drugiej składa się z 3 głównych części:

Prześledźmy teraz proces komunikacji pomiędzy urządzeniami, skupiając się na funkcjach warstwy łącza danych. Przyjmijmy, że nasz komputer, wysyła zapytanie do serwera WWW znajdującego się w odległej sieci.

Dane wysyłające takie zapytanie, wcześniej zostały już w procesie enkapsulacji, wyposażone w numery portów aplikacji, a także w adresy logiczne, czyli adresy IP komputera oraz serwera, no i stały się pakietem.

Zanim pakiet trafi do medium transmisyjnego, warstwa łącza danych musi utworzyć ramkę z odpowiednimi adresami MAC nadawcy i odbiorcy ramki. W przypadku adresu MAC nadawcy sprawa jest oczywista, będzie to po prostu adres MAC komputera, ale co z adresem hosta docelowego? Komputer, jeśli nie jest w tej samej sieci, co serwer WWW nie jest w stanie dowiedzieć się jaki adres MAC ma jego karta sieciowa, nie ma takiej możliwości, jest to technicznie niewykonalne. Dlaczego? Ponieważ adresy MAC służą do komunikacji tylko w obrębie jednej, danej sieci i nie wychodzą poza jej obszar. W związku w polu ramki zawierającej docelowy adres MAC zapisany zostanie adres MAC interfejsu rutera, do którego podłączony jest nasz komputer.

Ramka zostaje wysłana poprzez medium transmisyjne właśnie do pierwszego rutera. Ten następnie, po otrzymaniu ramki dokona jej dekapsulacji, po to, aby móc odczytać adres IP urządzenia, do którego ma trafić pakiet. Adresu IP nie może odczytać bezpośrednio z ramki warstwy drugiej, stąd ta dekapsulacja. Po odczytaniu adresu IP z pakietu (po dekapsulacji ramki, dane znowu stają się pakietem), porówna go ze swoimi wpisami w tablicy rutingu i odnajdzie wpis informujący, że do sieci, w której pracuje serwer, prowadzi trasa, przez ten drugi ruter.

Wówczas utworzy nową ramkę, w której adresem źródłowym będzie już adres MAC jego interfejsu, poprzez który łączy się z drugim ruterem, a docelowym, adres MAC tego właśnie rutera.

Ramka następnie trafia poprzez medium do drugiego rutera, który ponowienie dokonuje dekapsulacji ramki, aby odczytać adres IP z pakietu. Stwierdza, że adresatem danych, jest urządzenie, które pracuje w sieci, bezpośrednio do niego podłączonej, tak więc ponownie następuje proces enkapsulacji, realizowany przez drugi ruter, tym razem w polach adresów MAC umieszcza on adres MAC swojego drugiego interfejsu jako adres źródłowy, oraz adres MAC serwera jako adres docelowy.

Ramka w ten sposób przygotowana przesyłana jest do serwera, który również dokonuje jej dekapsulacji. Tym razem jednak jest to urządzenie, do którego są kierowane dane, tak więc dokonuje pełnej ich dekapsulacji, czyli odczytuje dodatkowo numery portów aplikacji, tak aby wysłać danej do właściwej, konkretnej aplikacji, w tym przypadku do usługi WWW.

Usługa WWW przygotowuje następnie dane odpowiedzi. Dane trafiają najpierw do warstwy transportowej, gdzie nadawane są numery portów aplikacji, następnie do warstwy sieciowej, gdzie tworzone są pakiety z odpowiednimi adresami IP, a na koniec do warstwy łącza danych, która przygotowuje z pakietów ramki, oznaczone adresami MAC serwera i rutera, do którego serwer jest podłączony.

Odpowiedź następnie przekazywana jest do nośnika i następuje proces przesyłania jej do klienta. Po drodze, przechodzi przez dwa rutery, które wykonują procesy dekapsulacji i ponownej enkapsulacji, no bo muszą odczytywać adresy IP, dzięki, którym mogą przesyłać odpowiedź dalej. Na koniec odpowiedź trafia do klienta. Ten dokonuje dekapsulacji danych, co w konsekwencji pozwala za pomocą przeglądarki wyświetlić stronę WWW.

Komentarze

Czy macie jakieś uwagi, pytania, sugestie? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać w komentarzach. Dziękujemy Wam za poświęcony czas!