Maszyny, podobnie jak ludzie, potrzebują pewnych zasad do skutecznej komunikacji. My przestrzegamy zasad gramatyki oraz używamy słownictwa zrozumiałego dla odbiorcy, a urządzenia korzystają ze standardów i protokołów. Podobieństwa między nimi nie kończą się tutaj.
Nawet nieoficjalna rozmowa z kolegą przebiega w określony sposób, który można podzielić na etapy z konkretnymi zadaniami. Najpierw należy – w zależności od sytuacji – przedstawić się bądź przywitać, następnie można przejść do tematu, a na końcu należy się pożegnać. Komunikacja przez sieć również jest określona jako pewien schemat, zwany modelem referencyjnym, zbudowany z warstw odpowiadających poszczególnym etapom komunikacji.
Model referencyjny ISO/OSI
Model referencyjny ISO/OSI powstał pod koniec lat 70. XX wieku, a pierwsza oficjalna wersja została zaprezentowana w 1980 roku. Model ISO/OSI zakłada podział na 7 warstw, przy czym każda z nich musi spełniać określoną rolę oraz może komunikować się jedynie z warstwą wyższą lub niższą.
Warto zaznaczyć, że oprócz modelu referencyjnego ISO, stworzyło również swój własny zbiór protokołów. Niestety, przegrały one ze swoim konkurentem TCP/IP, który jest obecnie najpopularniejszym zestawem protokołów. Mimo porażki, model referencyjny ISO/OSI nadal jest powszechnie stosowany jako punkt odniesienia w projektowaniu oraz analizie działania sieci komputerowych.
Proces przetwarzania danych może odbywać się od najwyższej warstwy w dół stosu, co nazywane jest procesem enkapsulacji, gdzie każda kolejna warstwa opakowuje otrzymane dane w dodatkowe informacje w swoim nagłówku i stopce. Procesem odwrotnym jest dekapsulacja, kiedy dane są przekazywane od najniższej warstwy w górę stosu. W każdej warstwie jeden z protokołów odczytuje informacje z nagłówka i stopki, po czym je odrzuca i przekazuje dane do kolejnej warstwy.
Warstwa 7 – aplikacji
To najwyższa i najbardziej dostępna dla użytkownika warstwa w modelu ISO/OSI. Jej głównym celem jest umożliwienie aplikacjom korzystania z sieci. Funkcje warstwy aplikacji obejmują obsługę komunikacji klient-serwer w programach umożliwiających udostępnianie plików, przeglądanie stron internetowych, dostęp do baz danych oraz w komunikatorach internetowych.
Protokoły warstwy aplikacji: HTTP, FTP, SMB, SMTP.
Warstwa 6 – prezentacji
Warstwa prezentacji odpowiada za formatowanie, szyfrowanie danych, kompresję oraz przetwarzanie ich w sposób zrozumiały dla warstwy aplikacyjnej. Warstwa prezentacji jest czasem określana jako warstwa składni.
Protokoły warstwy prezentacji: MIME, SSL, XML, TLS.
Warstwa 5 – sesji
Warstwa sesji odpowiada za tworzenie, utrzymanie oraz zakończenie połączenia pomiędzy co najmniej dwoma urządzeniami. Zarządza również połączeniem pomiędzy lokalną aplikacją a zdalną. Do funkcji tej warstwy należy ponadto obsługa logowania i wylogowania użytkownika oraz wyszukiwanie nazw.
Protokoły warstwy sesji: DNS, NETBIOS.
Warstwa 4 – transportowa
Warstwa transportowa zapewnia metody przesyłania sekwencji danych z hosta źródłowego do docelowego lub z jednej aplikacji do drugiej. Protokoły transportowe mogą być połączeniowe (TCP) lub bezpołączeniowe (UDP).
W tej warstwie następuje podział danych na mniejsze elementy, zwane segmentami. Muszą one być wystarczająco małe, aby zmieściły się w maksymalnym rozmiarze (ang. MTU – Maximum Transmission Unit) określonym przez warstwę poniżej. Na przykład, segment przesyłany przez sieć IP i Ethernet nie może przekroczyć 1460 bajtów (1500 – 20 bajtów nagłówka IP i 20 bajtów nagłówka TCP).
TCP dzieli dane na segmenty i łączy je ponownie po stronie odbiorcy. Natomiast protokoły bezpołączeniowe, takie jak UDP, zazwyczaj tego nie robią.
Protokoły warstwy transportowej to: TCP, UDP, QUIC.
Warstwa 3 – sieciowa
Warstwa sieciowa zapewnia mechanizmy do przekazywania pakietów między urządzeniami w różnych sieciach. Każda sieć może zawierać wiele hostów, które posiadają własny adres i mogą przekazywać dane do innych hostów. Mechanizmy przekazywania informacji o dostępnych sieciach i wyszukiwania najlepszych tras do nich nazywamy routingu.
Protokoły warstwy sieciowej to: IPv4, IPv6, ICMP.
Warstwa 2 – łącza danych
Warstwa łącza danych zapewnia komunikację pomiędzy bezpośrednio połączonymi hostami, czyli dane nie muszą opuszczać logicznej sieci utworzonej w warstwie trzeciej. Ponadto odpowiada za utrzymanie i zakończenie transmisji pomiędzy tak połączonymi hostami. W tej warstwie wykrywane są błędy oraz – jeśli to możliwe – korygowane, pochodzące z warstwy fizycznej.
Protokoły warstwy łącza danych: Ethernet, PPP, MACSec.
Warstwa 1 – fizyczna
Warstwa fizyczna odpowiada za przesyłanie surowych danych między urządzeniami i konwertuje zera i jedynki na odpowiednie sygnały dla danego medium fizycznego.
Określa parametry takie jak prędkość transmisji danych, maksymalną odległość, metody modulacji i dostęp do medium. Ponadto warstwa fizyczna ustala sposób kodowania danych, na przykład za pomocą impulsów elektrycznych lub świetlnych. Na przykład, wartość bitu 1 może być reprezentowana przez zmianę napięcia z 0 V na 5 V, podczas gdy wartość 0 przez zmianę z 5 V na 0 V.
Podsumowanie
Model referencyjny opisuje standardy i metody komunikacji w systemach komputerowych, nie narzucając konkretnego sprzętu ani protokołów.
Model ISO/OSI wprowadza 7 abstrakcyjnych warstw, które opisują przepływ danych od fizycznego medium transmisyjnego do prezentacji danych użytkownikowi poprzez aplikacje.