Model OSI

Co to jest model OSI? Niedługo po pojawieniu się pierwszych sieci komputerowych, na rynku pojawiły się firmy oferujące własne technologie sieciowe. Aby zapewnić możliwość bezproblemowej komunikacji pomiędzy urządzeniami różnych producentów konieczne było stworzenie pewnych standardów. Standard taki powstał pod kontrolą Międzynarodowej Organizacji Normalizacyjnej (International Organization for Standarization) i nosi nazwę modelu OSI (Open System Interconnection).

Model OSI

Model OSI opisuje teoretyczny model komunikacji sieciowej w sposób niezależny od zastosowanego sprzętu i oprogramowania. Składa się z siedmiu warstw, każdej z nich odpowiadają określone elementy sprzetowe i programowe biorące udział w przekazywaniu danych w sieciach komputerowych. Model OSI nie określa fizycznej implementacji warstw, opisuje tylko sposoby ich współpracy. Takie rozwiązanie problemu standaryzacji umożliwia dowolną, sprzętową implementacje warstw sieciowych przez producentów sprzętu przy zagwarantowaniu bezproblemowej wpółpracy urządzeń. Poszczególne warstwy modelu OSI są odrębnymi częściami z punktu widzenia programistycznego, mimo że nie potrafią wykonywać żadnych zadań w odosobnieniu od innych warstw.

Model OSI – warstwy

Model OSI
Warstwy modelu OSI

Model OSI składa się z siedmiu logizcnie ułożonych i ze sobą powiązanych warstw potrzebnych do nawiązania i utrzymania połączenia pomiędzy dwoma urządzeniami sieciowymi. Warstwy te to:

1. Warstwa fizyczna – najniższa warstwa modelu odpowiedzialna za przesyłanie bitów.
2. Warstwa łącza danych – odpowiada za poprawność przesyłanych danych w sieci.
3. Warstwa sieciowa – odpowiada za adresowanie i trasowanie w sieci.
4. Warstwa transportowa – kolejna warstwa, której głównym zadaniem jest pełnienie funkcji kontrolnej.
5. Warstwa sesji – umożliwia łączność pomiędzy aplikacjami na dwóch różnych urządzeniach.
6. Warstwa prezentacji – odpowiedzialna za sposób kodowania danych.
7. Warstwa aplikacji – odpowiada za interakcje z aplikacjami użytkownika.

Najniższą warstwą modelu jest warstwa fizyczna. Określa ona wszystkie składniki sieci niezbędne do obsługi elektrycznej, optycznej i radiowej komunikacji. Jej zadaniem jest przede wszystkim umieszczanie i odbieranie surowych danych w sieci reprezentowanych w formacie dwójkowym. Nie jest wyposażona w żadne mechanizmy priorytetowania ruchu. Warstwa fizyczna nawiązuje i utrzymuje połączenie pomiędzy dwoma urządzeniami oraz przekazuje dane w formie odpowiednich sygałów. Rodzaj sygnału zależy od medium transmisyjnego (np. impulsy elektryczne czy fale radiowe). Ciągłość transmisji nie jest zabezpieczona – jeśli medium zostanie zablokowane lub uszkodzone, komunikacja zostanie przerwana.

Drugą warstwą modelu OSI jest warstwa łącza danych odpowiadająca za integralność danych przesyłanych w sieci. Zajmuje się pakowaniem danych w ramki i przesyłaniem ich do warstwy fizycznej. Oprócz tego jej zadaniem jest odbieranie strumieni danych binarnych z warstwy fizycznej i tworzenie z nich ramek. Warstwa łącza danych jest podzielona na dwie podwarstwy: kontroli lacza logicznego (LLC – Logical Link Control) i kontroli dostepu do nosnika (MAC — Media Access Control). Warstwa łącza danych dodaje do przesyłanego pakietu stopkę, w której znajduje się suma kontrolna CRC. Odbiorca pakietu, na podstawie sumy kontrolnej jest w stanie sprawdzić poprawność przesłanych danych i zadecydować czy dane zostaną przesłane do wyższych warstw sieciowych. Jeżeli suma kontrolna obliczona po odebraniu pakietu nie jest zgodna z sumą kontrolną zapisaną w stopce – pakiet jest odrzucany. Podwarstwa kontroli dostępu do nośnika (MAC) umieszcza adresy fizyczne nadawcy i odbiorcy pakietu w nagłówku. Adres MAC jest 48 bitowym, szesnastkowym, niepowtarzalnym adresem sprzętowym urządzenia sieciowego. W tej warstwie działa np. most i przełącznik.

Trzecią z kolei warstwą modelu OSI jest warstwa sieciowa. Warstwa ta jest odpowiedzialna za adresowanie i trasowanie w sieci. Zajmuje się kontrolą przepływu danych w sieciach – zapewnia odpowienie skierowanie transmisji pakietów do urządzeń które nie są ze sobą bezpośrednio połączone. Warstwa ta nie posiada żadnych mechanizmów kontroli poprawności przesyłanych danych. Do adresowania pakietów w warstwie sieciowej służy protokół IP ( Internet Protocol), który w nagłówku przesyłanego pakietu umieszcza adresy IP (32 bitowy adres unikalny dla danej podsieci) nadawcy i odbiorcy. Ponadto protokół IP dla zbyt dużych danych dokonuje fragmentacji i przesyła dane w kilku mniejszych paczkach. W tej warstwie działają również protokoły trasowania (ang. routingu), takie jak RIP (Routing Information Protocol), OSPF (Open Shortest Path First), BGP (Border Gateway Protocol), EIGRP (Enhanced Interior Gateway Routing Protocol) oraz inne. Ich zadaniem jest wyznaczenie następnego urządzenia do którego ma zostać przekazany pakiet, tak aby trafił do odbiorcy. W warstwie sieciowej działają routery.

Kolejną warstwą jest warstwa transportowa. Protokoły działające w warstwie transportowej zapewniają logiczną komunikację między aplikacjami pracującymi na różnych urządzeniach. Protokoły warstwy transportowej stosowane są w przypadku urządzeń końcowych, nie mają natomiast zastosowania w urządzeniach infrastruktury sieciowej. Warstwa transportowa zajmuje się również kontrolą poprawności i integralności danych. To tutaj są zdefiniowane mechanizmy, które odpowiadają za ponowienie tranmisji danych w przypadku gdy dane nie mogły zostać dostarczone do odbiorcy. Warstwa transportowa rejestruje informacje o utraceniu połączenia pomiędzy urządzeniami i pozwala na bezpieczne zakończenie transmisji. Dane zbyt duże do przesłania za jednym razem są dzielone na tzw. segmenty, które są kolejkowane i wysyłane wg nadanych im priorytetów. W tej warstwie działają protokoły takie jak TCP i UDP.

Warstwa sesji odpowiada za kontrolę łączności pomiędzy aplikacjami na dwóch różnych urządzeniach. W tym celu tworzone jest wirtualne połączenie na podstawie nazwy użytkownika i nazwy komputera. Podczas przesyłania danych, warstwa sesji ustawia punkty kontrolne informujące które dane zostały przesłane i odebrane. Dzięki temu, w przypadku utraty połączenia dane mogą być przesyłane od ostatniego punktu kontrolnego co wpływa na lepsze wykorzystanie dostępnej przepustowości sieci.

Szóstą z kolei warstwą jest warstwa prezentacji która jest odpowiedzialna za zarządzanie sposobem kodowania danych. Zajmuje się translacją sposobu prezentacji danych na zrozumiały dla danego systemu operacyjnego i urządzenia, ponieważ nie każde urządzenie jest zbudowane w ten sam sposób i różne dane mogą być różnie interpretowane. Warstwa prezentacji ma za zadanie zapobiec wszelkim różnicom w interpretacji tych samych danych na różnych systemach. Oprócz tego warstwa ta umożliwia szyfrowanie i kompresję danych.

Najwyższą warstwą modelu OSI jest warstwa aplikacji. Pełni ona rolę interfejsu pomiędzy aplikacjami użytkownika a usługami sieci. Warstwa ta przyjmuje dane od programu i wykonuje odpowiednią usługę sieciową.