Otwarty model połączeń OSI (Open Systems Interconnection) to koncepcja stworzona przez Międzynarodową Organizację Normalizacyjną (ISO), która opisuje sposób, w jaki różne systemy komputerowe mogą komunikować się ze sobą w sieci. Model OSI jest stosowany do zrozumienia i standaryzacji procesu komunikacji w sieciach komputerowych i składa się z siedmiu warstw, z których każda pełni określoną funkcję w procesie wymiany danych.
Warstwa 1: Warstwa fizyczna odpowiedzialna jest za fizyczne połączenie urządzeń w sieci. Zajmuje się przesyłaniem danych w postaci bitów przez medium transmisyjne, takie jak kable, światłowody czy fale radiowe. W tej warstwie określane są specyfikacje dotyczące sprzętu, jak na przykład złącza, napięcia, prędkości transmisji czy typy kabli.
Warstwa 2: Warstwa łącza danych zapewnia niezawodne połączenie między dwoma urządzeniami, odpowiedzialna za detekcję i korekcję błędów na poziomie ramki danych. Ta warstwa organizuje dane w ramki, dodaje kontrolę błędów i zapewnia kontrolę dostępu do medium transmisyjnego, co pozwala na skuteczną komunikację pomiędzy urządzeniami w sieci lokalnej (LAN).
Warstwa 3: Warstwa sieciowa odpowiada za trasowanie danych w sieci, czyli wyznaczanie najefektywniejszej drogi dla pakietów danych z punktu A do punktu B, uwzględniając różne węzły i urządzenia sieciowe, takie jak routery. Jest odpowiedzialna za adresowanie logiczne (np. adresy IP) oraz rozwiązywanie problemów związanych z fragmentacją i ponownym składaniem pakietów.
Warstwa 4: Warstwa transportowa zapewnia niezawodność połączenia pomiędzy aplikacjami działającymi na różnych komputerach. Odpowiada za podział danych na segmenty, ich prawidłowe przesyłanie oraz kontrolowanie błędów i przepływu. Protokóły takie jak TCP (Transmission Control Protocol) działają na tej warstwie, zapewniając komunikację bez błędów i gwarantując, że dane dotrą w odpowiedniej kolejności.
Warstwa 5: Warstwa sesji zarządza sesjami komunikacyjnymi, które zapewniają otwieranie, zarządzanie i zamykanie połączeń między aplikacjami. Ta warstwa odpowiada za synchronizowanie komunikacji oraz kontrolowanie dialogów, zapewniając, że aplikacje mogą wymieniać dane w sposób uporządkowany i bezpieczny, np. w trakcie rozmowy wideo czy przesyłania plików.
Warstwa 6: Warstwa prezentacji jest odpowiedzialna za prezentowanie danych w formacie, który jest zrozumiały dla aplikacji. Może obejmować kompresję danych, szyfrowanie lub konwersję formatów, co pozwala na wymianę informacji pomiędzy systemami, które mogą używać różnych kodowań czy standardów.
Warstwa 7: Warstwa aplikacji to warstwa, która bezpośrednio kontaktuje się z użytkownikiem i aplikacjami. Obejmuje protokoły aplikacyjne takie jak HTTP, FTP, SMTP, POP3, które pozwalają na korzystanie z usług sieciowych, takich jak przeglądanie stron internetowych, wysyłanie poczty elektronicznej czy przesyłanie plików. Warstwa ta zapewnia interakcję użytkownika z systemem komputerowym w kontekście sieciowym.
Otwarty model połączeń OSI jest teoretycznym modelem, który służy do nauki i zrozumienia struktury sieci komputerowych. Choć w praktyce nie wszystkie protokoły i technologie sieciowe ścisłe odpowiadają każdej warstwie modelu OSI, model ten stanowi ważne narzędzie do opisu i analizy procesów komunikacyjnych w sieci. Pozwala na podział funkcji na różne poziomy, co ułatwia projektowanie, diagnozowanie oraz rozwój sieci komputerowych.
Głównym problemem w konstruowaniu urządzeń elektronicznych jest zapewnienie współdziałania sprzętu i oprogramowania. Inne problemy mogą pojawić się podczas łączenia sprzętu elektronicznego wyprodukowanego w jednej części świata z wyprodukowanym gdzie indziej. Z tych powodów Międzynarodowa Organizacja Normalizacyjna ISO (International Standards Organization), opracowała model, znany jako OSI (Open System Interconnection), który ma za zadanie:
- Umożliwić wytwórcom różnych systemów łączenie sprzętu za pomocą standardowych interfejsów.
- Pozwolić, aby oprogramowanie i sprzęt współdziałały prawidłowo i mogły być przenoszone do różnych systemów.
- Stworzyć model, który byłby stosowany na całym świecie.
Dane przemieszczają się od najwyższej warstwy nadawcy do najniższej i następnie od najniższej do najwyższej warstwy odbiorcy. Każda warstwa urządzenia nadawczego komunikuje się bezpośrednio z odpowiednią warstwą urządzenia odbiorczego. To odpowiada wirtualnemu przepływowi danych między warstwami.
Najwyższa warstwa (warstwa aplikacji) pozyskuje dane z aplikacji i uzupełnienia je o dane, które warstwa aplikacji odbiorcy powinna otrzymać. Te dane są przesuwane do następnej warstwy (warstwa prezentacji). Podobnie dodaje ona swoje własne dane i tak dalej w dół, aż do warstwy fizycznej. Przesyłane dane mogą być określone jako pakiety lub ramki danych.
Poszczególne warstwy mają następujące funkcje:
- Fizyczna. Definiuje elektryczne charakterystyki kanału komunikacyjnego i parametry transmitowanego sygnału, takie jak poziomy napięcia, typy złączy, okablowanie itd.
- Łącza danych. Powoduje że transmitowane bity są odbierane w sposób niezawodny dzięki dodawanym bitom określającym początek i koniec każdej ramki. Dodawany jest również dodatkowy bit detekcji / korekcji błędu. Zapewnia, że inne terminale (węzły) nie uzyskują dostępu do wspólnego kanału komunikacyjnego w tym samym czasie.
- Sieciowa. Wyznacza marszrutę danych poprzez sieć. Jeżeli dane mają być przesłane poza sieć nadawcy, wtedy warstwa sieci wyznacza trasę połączenia. Zadanie może wymagać na przykład podziału danych do transmisji i scaleniu ich po odbiorze.
- Transportowa. Umożliwia komunikację z innymi systemami. Realizuje połączenie, utrzymuje i zamyka sesje. Kanał komunikacyjny i przepływ danych powinny być przeźroczyste dla warstwy wyższej, sesyjnej.
- Sesji. Warstwa zarządza sesjami (połączeniami). Odpowiada za ogólnie rozumianą synchronizację przesyłania danych pomiędzy współpracującymi aplikacjami.
- Prezentacji. Stosuje wiele konwersji, które umożliwiają właściwą interpretację danych. Może to być translacja pomiędzy dwoma systemami, gdy stosowano różne standardy prezentacji, takie jak kroje czcionek lub kody znaków. Warstwa prezentacji może również wykonywać funkcje szyfrowania w celu ochrony danych.
- Aplikacji. Dostarcza usługi sieciowe dla programów aplikacyjnych, takich jak przesyłanie plików i poczty elektronicznej.