Co znajdziesz w tym artykule?
Czym jest model ISO/OSI i dlaczego musisz go znać?
Model referencyjny czy też wzorcowy ISO/OSI ma na celu ustandaryzowanie sposobów komunikacji sieciowej pomiędzy różnymi urządzeniami. Grupuje wykorzystywane protokoły i mechanizmy komunikacji w ramach 7 warstw abstrakcji funkcjonowania komunikacji sieciowej. Znajomość warstw oraz tego za co są odpowiedzialne pomoże Ci w diagnozowaniu problemów związanych z działaniem aplikacji, sieci lub usług.
Wprowadzenie do modelu ISO/OSI
Kiedy topologia sieci opisuje fizyczny lub logiczny rozkład komunikujących się ze sobą węzłów, zupełnie osobną kwestią jest sam sposób wymiany informacji pomiędzy tymi węzłami. Może być realizowane to wielorako i przy użyciu różnych technologii oraz mechanizmów. Metodologie te grupowane są w ramach tzw. protokołów komunikacyjnych. Protokoły te opisują między innymi takie aspekty przesyłania informacji jak format reprezentacji danych, sygnalizacja, uwierzytelnianie czy wykrywanie i korekcja błędów transmisji.
W celu ustandaryzowania sposobów komunikacji sieciowej pomiędzy różnymi urządzeniami, organizacja ISO (International Organization for Standardization) zaproponowała referencyjny model opisu komunikacji oraz specyfikowania protokołów komunikacyjnych dla sieci komputerowych. Efektem powstał standard Open Systems Interconnection (w skrócie OSI). Standard ten grupuje wykorzystywane protokoły i mechanizmy komunikacji w ramach 7 warstw odpowiadających poszczególnym poziomom abstrakcji funkcjonowania komunikacji sieciowej. Stanowią one model odniesienia dla projektowania wszystkich urządzeń wymieniających dane w sieci i wykorzystywanych przez nie protokołów.
Poniższy schemat ilustruje hierarchiczne warstwy modelu ISO/OSI od najmniej (warstwa fizyczna) do najbardziej abstrakcyjnej (warstwa aplikacji):
Poszczególne warstwy odpowiadają za następujące poziomy funkcjonalności:
Warstwa pierwsza – Fizyczna
Warstwa fizyczna (Physical layer) – Najniższa warstwa modelu odpowiadająca za fizyczny aspekt komunikacji.
Dokładniej za techniczne przesyłanie przez medium komunikacyjne sygnału będącego nośnikiem informacji. Standardy w ramach tej warstwy dotyczą między innymi takich kwestii jak:
- rodzaje i parametry mediów komunikacyjnych (kable, fale radiowe, światłowody) i nośnika informacji;
- techniczne specyfikacje urządzeń transmisji sygnału;
- poziomy napięć sygnałów, czasy ich trwania;
Notatka Osobista: Jeśli nie zdiagnozowałeś problemu na wyższych warstwach sprawdź czy nie masz uszkodzonego medium transmisyjnego np. kabla. Często warto to sprawdzić na samym początku jeśli masz takie podejrzenia.
Warstwa druga – Łącza danych
Warstwa łącza danych (Data link layer) – Warstwa odpowiedzialna jest za sterowanie dostępem do medium komunikacyjnego oraz sprawną transmisję strumieni bajtów za pomocą warstwy fizycznej.
Na jej poziomie pojawia się pojęcie ramek, które są przesyłane od nadawcy do odbiorcy. Dostarcza ona również mechanizmy kontroli i korygowania błędów mogących wystąpić w trakcie transmisji fizycznej, ogólnie zapewniając skuteczne przekazywanie ciągów bitów.
Notatka Osobista: Na tej warstwie pracują głównie switche.
Warstwa trzecia – Sieciowa
Warstwa sieciowa (Network layer) – Warstwa ta dotyczy przesyłania pakietów danych w obrębie sieci jako tworu logicznego.
Do zadań warstwy sieciowej należy głównie znajdowanie odpowiednich dróg połączeń między węzłami sieci (tzw. routing). Warstwa ta operuje adresami logicznymi węzłów sieci które przydzielane są niezależnie od rzeczywistej adresacji fizycznej poszczególnych urządzeń.
Pakiety mogą być przesyłane w jednym z dwóch modeli komunikacji:
- połączeniowym – najpierw ustanawiane jest logiczne połączenie sieciowe tzw. kanał wirtualny, którym przesyłane są dalej odpowiednio oznakowane i okrojone z niepotrzebnych już dodatkowych informacji sterujących pakiety.
- bezpołączeniowym – każdy pakiet posiada niezbędną informacje potrzebną do prawidłowego dotarcia do adresata i jest przesyłany przez sieć niezależnie (pakiety w trybie bezpołączeniowym mogą więc docierać do odbiorcy w innej kolejności niż zostały wysłane).
Notatka Osobista: W warstwie sieciowej pracują routery, które przekazują dane po wyznaczonej trasie w ramach sieci aż do ich dotarcia do docelowego hosta. Jeżeli występują problemy z dostępnością sieci nielokalnej problem może znajdować się na poziomie tej warstwy.
WAŻNA UWAGA!
Mechanizmy działające w ramach wszystkich warstw powyżej warstwy sieciowej pracują wyłącznie w obrębie końcowych komunikujących się ze sobą urządzeń. W urządzeniach sieciowych biernie pośredniczących w komunikacji warstwy te nie są używane.
Warstwa czwarta – Transportowa
Warstwa transportowa (Transport layer) – Pierwsza z wyższych warstw modelu OSI. Ma za zadanie zapewnienie przeźroczystego transferu danych pomiędzy dwoma użytkownikami i dostarczenie usług wiarygodnego przesyłania danych dla warstw wyższych.
Odpowiedzialna jest za dzielenie przesyłanych danych na pakiety, scalanie odebranych pakietów, oraz transport informacji jako całości między systemami końcowymi. Transport ten, w przeciwieństwie do zadań warstwy sieciowej, gwarantuje integralność komunikacji. Występuje tu mechanizm kontroli sytuacji takich jak zagubione czy powielane pakiety. W razie potrzeby dokonuje ich retransmisji. Zapewnia również mechanizmy nadzorujące ich właściwą kolejność oraz priorytety
Notatka Osobista: Na poziomie tej warstwy dochodzi do decyzji czy pakiety będą przesyłane protokołem TCP (połączeniowy, Transmission Control Protocol) czy UDP (bezpołączeniowy, User Datagram Protocol).
Warstwa piąta – Sesji
Warstwa sesji (Session layer) – Warstwa ta odpowiada za nawiązywanie, utrzymywanie oraz zakańczanie sesji komunikacyjnej podczas której wymieniane są dane.
Posiada mechanizmy umożliwiające sterowanie sesją miedzy aplikacjami w systemach końcowych, określa tryb sesji (przekazywanie danych: dwukierunkowe jednoczesne, naprzemienne, jednokierunkowe), realizuje funkcje odpowiedzialne za synchronizujące dostępu do wspólnych zasobów oraz porządkuje proces wymiany danych. Warstwa sesji „wie”, która aplikacja łączy się z którą, dzięki czemu może zapewnić właściwy kierunek przepływu danych. Wznawia je po przerwaniu.
Warstwa szósta – Prezentacji
Warstwa prezentacji (Presentation layer) – Odpowiada za konwersję typów danych przesyłanych między komunikującymi się systemami oraz dostarcza mechanizmów kompresji i szyfrowania.
Podczas ruchu w dół zadaniem warstwy prezentacji jest przetworzenie danych od aplikacji do postaci kanonicznej zgodnej ze specyfikacją modelu OSI. Dzięki temu procesowi niższe warstwy zawsze otrzymują dane w tym samym formacie. Kiedy informacje płyną w górę, warstwa prezentacji tłumaczy format otrzymywanych danych na zgodny z wewnętrzną reprezentacją systemu docelowego. Wynika to ze zróżnicowania systemów komputerowych, które mogą w różny sposób interpretować te same dane.
Warstwa siódma – Aplikacji
Warstwa aplikacji (Application layer) – Ostatnia warstwa jest odpowiedzialna za umożliwienie aplikacjom dostępu do komunikacji w ramach modelu ISO/OSI.
Jest to warstwa najwyższa zajmująca się specyfikacją interfejsu, który wykorzystują aplikacje do przesyłania danych do sieci (poprzez kolejne warstwy modelu ISO/OSI).
Jeżeli użytkownik posługuje się oprogramowaniem działającym w architekturze klient-serwer, zwykle po jego stronie znajduje się klient, a serwer działa na maszynie podłączonej do sieci świadczącej usługi równocześnie wielu klientom. Zarówno serwer, jak i klient znajdują się w warstwie aplikacji. Komunikacja nigdy nie odbywa się bezpośrednio między tymi programami. Kiedy klient chce przesłać żądanie do serwera to przekazuje komunikat w dół do warstw niższych. Przez ten proces następuje fizyczne przesyłanie go do odpowiedniej maszyny, gdzie informacje ponownie wędrują w górę i są ostatecznie odbierane przez serwer. Jednocześnie zapewnia interfejs między aplikacjami a siecią.
Czy to wszystko musi być takie skomplikowane?
W przypadku większości zastosowań model OSI uważany jest za zbyt złożony i większość współczesnych sieci komputerowych tworzona jest w oparciu o uproszczony model składający się z jedynie 4 warstw. Model ten nazywany jest również modelem TCP/IP (ang. Transmission Control Protocol/Internet Protocol).
Model TCP/IP to teoretyczny model warstwowej struktury protokołów komunikacyjnych. W modelu tym zarówno usługi warstwy sesji jak i prezentacji włączone zostały do warstwy aplikacji oraz warstwa fizyczna i łącza danych zostały scalone w jedno. Tak to wygląda w porównaniu do modelu ISO/OSI:
Poszczególne warstwy, wraz z głównymi stosowanymi w obrębie każdej warstwy w ramach modelu TCP/IP protokołami i standardami wyglądają następująco:
Podsumowanie
W modelu warstwowym niższa warstwa dostarcza usługi dla wyższej warstwy. Tak więc warstwa fizyczna dostarcza medium komunikacyjnego i fizycznego nośnika za pośrednictwem którego warstwa łącza danych przesyła otrzymywane od warstwy sieciowej ciągi bitów. Warstwa sieciowa z kolei odbiera od warstwy transportowej odpowiednio przygotowany pakiet, wyznacza jego trasę, obudowuje we własne informacje sterujące i przekazuje jako ciąg danych do przesłania przez usługi udostępniane przez warstwę łącza danych itp.
BONUS
Dziękuję Ci za dotarcie do końca artykułu. W ramach podziękowania TUTAJ możesz pobrać przygotowaną przeze mnie ikonografikę. Wspomoże Cię ona w opanowaniu opisanych w tym artykule informacji.