Wydawać by się mogło, że korzystanie z usług oferowanych przez nowoczesne sieci komputerowe jest proste. Wystarczy uruchomić aplikację w telefonie lub odpowiedni program na komputerze czy laptopie podłączonym do internetu i już możemy cieszyć się z możliwości tych usług. Jednak jest to zdecydowanie bardziej skomplikowany proces.

Wiemy już, że komunikacja sieciowa oparta jest na modelu OSI, który składa się z siedmiu warstw:

R1AEPwUJhYyHL
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Pierwsze trzy warstwy, zwane warstwami górnymi, odpowiadają za właściwe przygotowanie danych z aplikacji sieciowej (przeglądarki internetowej, komunikatora itp.), które na dalszych etapach są enkapsulowane (kapsułkowane) i przesłane przez sieć.

Przyjrzyjmy się dokładniej, jak to przygotowanie przebiega i jakie konkretnie funkcje spełniają te trzy warstwy.

Warstwa aplikacji

W języku informatycznym można powiedzieć, że warstwa aplikacja udostępnia interfejs komunikacyjnyinterfejs komunikacyjnyinterfejs komunikacyjny (nie mylić z interfejsem sieciowym!) wykorzystywany przez aplikacje komputerowe do tego, aby dane tych aplikacji mogły zostać przesłane przez sieć. To teoria, a praktyka?

W praktyce możemy stwierdzić, że implementacją warstwy aplikacji będzie program komputerowy lub aplikacja, wykorzystujące komunikację sieciową. Najprostszym przykładem takiego programu jest przeglądarka internetowa.

Ważne!

Programy komputerowe, stanowiące implementację warstwy aplikacji modelu OSI, są pośrednikami pomiędzy użytkownikiem a siecią komputerową.

RQ3Vhf6gCzBHa
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Programiści tworząc aplikację sieciową, mogą wykorzystać w niej gotowe i zdefiniowane reguły pozwalające na komunikację sieciową — są to tzw. protokoły komunikacyjne.

Dla każdej usługi sieciowej zdefiniowany został inny protokół komunikacyjny. Przykładowo, przeglądarki internetowe wykorzystują protokoły HTTPHTTPS do przesyłania stron WWW, programy pocztowe stosują protokoły POP3, IMAPSMTP, a programy pozwalające przesłać pliki na serwer, używają protokołów FTP lub FTPS.

To są oczywiście tylko typowe przykłady protokołów dla typowych usług. Są to protokoły otwarte, co znaczy, że nie są one własnością żadnej firmy czy organizacji i każdy programista tworzący aplikację może w swoim oprogramowaniu z nich korzystać.

Istnieją również protokoły zamknięte, czyli takie, które są własnością danej firmy czy korporacji, która je stworzyła. Wszystkie popularne obecnie komunikatory, takie jak Messenger, Signal lub Whatsapp korzystają właśnie z takich protokołów.

Każdy z protokołów komunikacyjnych posiada identyfikator (numer portu) pozwalający jednoznacznie zidentyfikować aplikację na urządzeniach, które się ze sobą komunikują. Gdyby protokoły nie posiadały takich identyfikatorów, mogłoby dojść do sytuacji w której dane z poczty elektronicznej trafiłyby do aplikacji obsługującej serwer WWW i odwrotnie.

Rxb3ahce0O2kl
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Warstwa prezentacji

W świecie informatyki istnieje wiele architektur sprzętowych (komputery, smartfony, konsole do gier), a także wiele różnego rodzaju oprogramowania, w tym różne systemy operacyjne (Windows, Linux, Mac OS itp.).

Zasadniczym zadaniem warstwy prezentacji jest tak przygotować dane, które odebrano z warstwy aplikacji, aby urządzenia do których są adresowane, były w stanie je odczytać. Chodzi o to, aby dane zostały zapisane w sposób zrozumiały zarówno dla nadawcy, jak i dla odbiorcy danych, bez względu na sprzęt i oprogramowanie z jakiego korzystają obie strony komunikacji.

Przykład 1

Zadanie warstwy prezentacji można porównać do sytuacji, w której spotyka się kilku obcokrajowców, każdy potrafi mówić tylko w swoim ojczystym języku i np. w języku angielskim. Rozmowa jest wówczas prowadzona w tym właśnie języku, ponieważ jest on zrozumiały dla wszystkich uczestników konwersacji.

Dodatkowo warstwa prezentacji odpowiedzialna jest za szyfrowanie danych u nadawcy oraz deszyfrowanie u odbiorcy, a także kompresjędekompresję, ale oczywiście tylko w sytuacji, jeżeli wymaga tego protokół warstwy aplikacji.

Warstwa prezentacji obsługuje popularne formaty graficzne stosowane w internecie, takie jak JPEG czy GIF.

Jednym z najczęściej stosowanych protokołów tej warstwy jest protokół TLS (ang. Transport Layer Security), który – wykorzystywany razem z protokołem HTTP – tworzy bezpieczny (szyfrowany) kanał komunikacyjny do przesłania stron WWW pomiędzy klientem a serwem WWW.

RzqDihZSZq6T71
Dzięki warstwie prezentacji przykładowa strona internetowa wygląda podobnie na każdym systemie operacyjnym i w każdej przeglądarce.

Warstwa sesji

Kiedy korzystamy z urządzenia podłączonego do sieci, mogą na nim jednocześnie pracować dziesiątki aplikacji, a każda z nich korzysta z zasobów internetu. Przeglądamy strony internetowe z uruchomionym w tle dyskiem sieciowych synchronizującym pliki, a także — w tym samym czasie — włączona jest aplikacja do streamowania muzyki. Oprogramowanie urządzenia, na którym wykonujemy wszystkie te czynności, musi dokonywać synchronizacji danych, które do niego docierają, aby zapewnić poprawność komunikacji, sprawdzić czy przebiega ona pomyślnie, a także wznowić ją w przypadku wystąpienia jakiegoś błędu. To oprogramowanie musi również zadbać o to, by dane do niego docierające, trafiały do właściwych, konkretnych aplikacji. To są właśnie główne funkcje warstwy sesji. Warto zauważyć, że w przypadku większości nowoczesnych usług sieciowych funkcje te implementowane są również w niższej warstwie modelu OSI, czyli w warstwie transportowej, a warstwa sesji pełni w takim wypadku tylko funkcje pomocnicze.

Słownik

interfejs komunikacyjny
interfejs komunikacyjny

zbiór rozwiązań stosowanych w programach komputerowych i aplikacjach, umożliwiający im komunikację sieciową