Baza wiedzy Informatyka News

Modele warstwowe ISO/OSI oraz TCP/IP, proces komunikacji w sieciach komputerowych

Wzajemna komunikacja urządzeń w sieci komputerowej składa się z kilku etapów, z kilku elementów. Każdy z nich jest tak samo ważny, ponieważ na każdym z nich realizowane są zadania niezbędne do poprawnej komunikacji. Etapy te określone są przez tak zwane modele warstwowe. Każdy z Was, kto spotkał się już z modelami warstwowymi wie, że zrozumienie tego tematu stanowi podwaliny do zdobywania dalszej wiedzy i umiejętności w zakresie sieci komputerowych.

Istnieją dwa warstwowe modele, są nimi model protokołów TCP/IP oraz model odniesienia ISO/OSI. Z jednej strony są do siebie podobne, z drugiej jednak każdy z modeli charakteryzuje się nico innym podejściem do sposobu komunikacji. Zanim jednak omówimy oba te modele i wyjaśnimy różnice pomiędzy nimi, opowiemy sobie po co i dlaczego w ogóle są one stosowane, jaka jest ich rola oraz jakie korzyści wynikają z ich zastosowania.

Podział procesu komunikacji sieciowej na poszczególne warstwy niesie za sobą wiele korzyści, najważniejsze z nich to:

  • łatwiejsze określenie reguł i zasad komunikacji (te reguły i zasady to protokoły komunikacyjne),
  • możliwość współdziałania ze sobą urządzeń sieciowych i oprogramowania różnych producentów,
  • możliwość łatwiejszego zrozumienie całego procesu komunikacji,
  • możliwość zarządzania procesem komunikacji.

Zanim dane z urządzenia źródłowego zostaną przesłane do urządzenia końcowego muszą przejść długą drogę, podczas której najpierw są odpowiednio oznaczane, tagowane, opisywane określonymi informacjami pozwalającymi na ich identyfikację, potem przesyłane są pomiędzy wieloma urządzeniami pośredniczącymi, aż trafią do odbiorcy, który dane to potem musi zinterpretować.

Gdyby nie istniał taki model, który dzieli komunikację na mniejsze, łatwiejsze do zrozumienia i zarządzania etapy oraz określa zadania, jakie muszą być realizowane w poszczególnych warstwach trudno byłoby we właściwy sposób zarządzać komunikacją sieciową ponieważ mnogość rozwiązań i technologii powodowałaby olbrzymi chaos, trudny do opanowania. Wyobraźmy sobie sytuacje, gdzie taki podział na warstwy nie istnieje, nie ma reguł opisujących komunikację, a każdy producent sprzętu i oprogramowania tworzy własny, niezależny system.

Oczywiście w obrębie rozwiązań jednej firmy komunikacja odbywała by się bardzo sprawnie i szybko, ale już rozwiązania dwóch niezależnych firm mogłyby być ze sobą niekompatybilne. W rzeczywistości, w praktyce korzystamy przecież ze sprzętu sieciowego i oprogramowania różnych firm, a jest to możliwe właśnie dzięki podziałowi na poszczególne warstwy, w których to zawarte są reguły i zadania opisujące ich działanie. Reguły te i zadania są takie same dla wszystkich, ale każda firma, każdy producent, zarówno sprzętu i oprogramowania może realizować je na swój sposób.

Najlepszym przykładem na zobrazowanie tego są systemy operacyjne. Część użytkowników korzysta z systemu Windows, część z jednej z dystrybucji Linuxa, a jeszcze inni z MacOS. Każdy z tych systemów jest inny, każdy w inny sposób realizuje zadania sieciowe, ale w efekcie końcowym na każdym z tych systemów strona WWW czy tez e-mail będą wyglądały tak samo, a przynajmniej podobnie. Tak więc do najważniejszych korzyści wynikających z zastosowania modeli warstwowych zaliczymy:

  • zarządzanie procesem komunikacji w sieci,
  • określanie jej reguł i zadań,
  • możliwość współdziałania na poziomie sprzętowym i programowym produktów sieciowych różnych producentów,
  • oraz kontrola poprawności komunikacji.

 

Model TCP/IP oraz ISO/OSI

Skoro już wiemy w jakim celu stosuje się modele warstwowe przejdźmy teraz do omówienia najważniejszych cech każdego z nich. Obydwa modele stworzone zostały w latach siedemdziesiątych, czyli już spory kawał czasu temu, ale wciąż są aktualne i stosowane. Pierwszy z nich, model TCP/IP określany jest jako model protokołów. Każda z jego warstw wykonuje konkretne zadania, do realizacji który wykorzystywane są konkretne protokoły. Model ISO/OSI natomiast zwany modelem odniesienia, stosowany jest raczej do analizy, która pozwala lepiej zrozumieć procesy komunikacyjne zachodzące w sieci oraz stanowi wzór do projektowania rozwiązań sieciowych zarówno sprzętowych jak i programowych.

W przypadku modelu TCP/IP wyróżnić możemy 4 warstwy, są nimi warstwa: aplikacji, transportu, internetowa oraz dostępu do sieci.

Warstwa aplikacji udostępnia użytkownikom możliwość korzystania z usług sieciowych, takich jak WWW, poczta elektroniczna, wymiana plików, połączenia terminalowe czy komunikatory. Swoim uczniom mówię zawsze, że jest to warstwa najbliższa użytkownikowi, ponieważ to właśnie ona pozwala nam w pełni korzystać z dobrodziejstw współczesnych usług sieciowych. Kiedy siadamy przed komputerem i uruchamiamy np. przeglądarkę internetową to korzystamy z sieci właśnie na poziomie warstwy aplikacji.

Niżej mamy warstwę transportu, której głównym zadaniem jest sprawna obsługa komunikacji pomiędzy urządzeniami. W warstwie tej dane dzielone są na mniejsze części, następnie opatrywane są dodatkowymi informacjami pozwalającymi zarówno przydzielić je do właściwej aplikacji na urządzeniu docelowym, jak i pozwalającymi złożyć je na urządzeniu docelowym w odpowiedniej kolejności.

Czytaj  Model ISO/OSI w Sieciach komputerowych

Dalej jest warstwa internetowa, której głównym zadaniem jest odnalezienie najkrótszej i najszybszej drogi do urządzenia docelowego przez sieć rozległą, podobnie jak robią to samochodowe GPS’y, ale także adresowanie danych z wykorzystaniem adresów logicznych (adresów IP).

No i na koniec mamy warstwę dostępu do sieci, która koduje dane do postaci czystych bitów (zer i jedynek) i przekazuje je do medium transmisyjnego i także je adresuje, tym razem poprzez adresy fizyczne (adresy MAC).

Model ISO/OSI składa się z 7 warstw:

Na samej górze tego modelu wyróżnić możemy warstwę aplikacji i tutaj tak naprawdę jej funkcję są bardzo podobne do tych z modelu TCP/IP, no bo pozwalają użytkownikom końcowym sieci korzystać z aplikacji sieciowych.

Dalej mamy warstwę prezentacji, która to przekazuje do warstwy aplikacji informacje o zastosowanym formacie danych, np. informuje jakie typy plików będą przesyłane, odpowiada ona również za odpowiednie zakodowanie danych na urządzeniu źródłowym i ich dekodowanie na urządzeniu docelowym.

Niżej jest warstwa sesji, zarządzająca sesjami użytkowników korzystających np. ze stron WWW czy komunikacji video.

Idąc dalej mamy warstwę transportu, czyli ponownie dokładnie to samo co w modelu TCP/IP, zarówno w jednym jak i w drugim przypadku funkcje tej warstwy są dokładnie takie same.

Następnie mamy warstwę sieci, która jest odpowiednikiem warstwy internetowej modelu TCP/IP czyli znowu bardzo podobne funkcje, takie jak adresowanie i wyznaczanie najlepszej ścieżki przesyłu danych.

Dalej idąc w dół mamy warstwę łącza danych, której głównym zadaniem jest kontrola dostępu do medium transmisyjnego, a także adresowanie danych, tym razem jednak w celu przesyłania ich pomiędzy hostami w sieci LAN.

No i na koniec warstwa fizyczna, która koduje dane do postaci czystych bitów (zer i jedynek) i przesyła je poprzez medium transmisyjne do odpowiednich urządzeń.

Oba modele są do siebie dość podobne. Różnice jakie występują widoczne są w górnych warstwach gdzie w przypadku modelu ISO/OSI dokonano podziału, aż na 3 warstwy, a w przypadku modelu TCP/IP te same funkcje realizowane jest tylko poprzez jedną warstwę. Podobne różnice widać w dolnych warstwach, gdzie w modelu ISO/OSI mamy dwie oddzielne warstwy łącza danych i fizyczną, a w przypadku modelu TCP/IP tylko jedną, warstwę dostępu do sieci.

Analiza procesu komunikacji

Przyjrzyjmy się teraz procesowi komunikacji z wykorzystaniem modelu TCP/IP. Jak już wspomniałem wcześniej model ten opisuje działanie protokołów, które tworzą tzw. zestaw protokołów, nazywany czasem również stosem protokołów. Skąd taka nazwa? Już tłumaczę, kiedy chcemy wyświetlić jakąś stronę internetową, to najpierw warstwa aplikacji skorzysta z protokołu HTTP, dalej w warstwie transportu wykorzystuje się protokoły tej warstwy np. TCP lub UDP, następnie w warstwie internetowej protokół IP, a w warstwie dostępu do sieci np. standard Ethernet. Komunikacja opiera się na całym zestawie protokołów, ułożonych w stos, jeden pod drugim. Dopiero wykorzystanie całego stosu protokołów do komunikacji gwarantuje jej poprawność.

 

Proces komunikacji

Na początek użytkownik sieci tworzy dane w warstwie aplikacji, może to być zapytanie do serwera WWW, może to być także napisanie jakiejś wiadomości w komunikatorze. Potem dane przekazywane są w dół stosu, najpierw do warstwy transportowej gdzie następuje ich podział na mniejsze fragmenty, potem do warstwy internetowej, gdzie nadawany jest adres pozwalający przesłać dane przez sieć rozległą. Następnie trafiają one do warstwy dostępu do sieci, gdzie po raz kolejny nadawany jest adres, tym razem adres urządzenia w sieci lokalnej. Na koniec dane wprowadzane są do medium transmisyjnego i przesyłane poprzez urządzenia pośredniczące do urządzenia końcowego, w którym to dane przechodzą w górę stosu, składane są ponownie w całość i przekazywane do warstwy aplikacji.

Zapamiętaj

Proces przesyłania danych od hosta źródłowego do docelowego, polega na przepływie danych przez warstwy na urządzeniu źródłowym, potem następuje ich kodowanie i przesłanie za pośrednictwem medium transmisyjnego do urządzenia docelowego, w którym to proces jest odwracany i dane przechodzą w górę stosu.

Zanim nieco bardziej zgłębimy się w analizę procesu komunikacji, musimy wspomnieć o jeszcze jednej, bardzo ważnej kwestii. Aby dane mogły trafić do odpowiedniego hosta i aplikacji oraz w miarę możliwości w niezmienionej postaci opatrywane są odpowiednimi informacjami, nazwijmy je sterującymi.

Informacje te dodawane są w trzech warstwach. W warstwie transportu dodawany są numery portów aplikacji (port aplikacji na hoście źródłowym oraz port aplikacji hoście docelowym), w warstwie internetowej czy też sieciowej adresy IP (również hosta źródłowego i docelowego) , a w warstwie dostępu do sieci lub łącza danych adresy MAC (hosta źródłowego oraz rutera sieci lokalnej). Cały proces przechodzenia danych przez warstwy w dół stosu, ich podział na mniejsze fragmenty oraz dodawanie informacji sterujących (tych dodatkowych danych) nazywany jest enkapsulacją. Istnieje oczywiście również proces odwrotny, pozwalający na usuwanie tych dodatkowych informacji na urządzeniu docelowym i nazywany jest procesem dekapsulacji.

Zapamiętaj

Przepływ danych przez warstwy na urządzeniu źródłowym, opatrywanie ich informacjami pozwalającymi zidentyfikować aplikację i urządzenie docelowe to enkapsulacja, natomiast proces odwrotny, czyli przepływ danych w górę warstw i usuwanie tych dodatkowych informacji na hoście docelowym to dekapsulacja.

Dodawanie tych informacji sterujących, osobno w każdej z warstw powoduje, że zmienia się trochę ich struktura, jest to logiczne skoro dodajemy do danych jakieś informacje, których wcześniej tam nie było. W związku z tym zmienia się również nazewnictwo zbioru danych. Ogólnie dane przesyłane przez sieć nazywane są jednostkami PDU (ang. Protocol Data Unit), natomiast podczas przechodzenia przez poszczególne warstwy ich nazwy się zmieniają, i tak: w warstwie aplikacji jednostkę PDU będziemy nazywać po prostu danymi. Dalej w warstwie transportu jednostkę PDU nazywać będziemy segmentem lub datagramem w zależności od zastosowanego protokołu tej warstwy. Jednostka PDU w warstwie internetowej to już pakiet, natomiast w warstwie dostępu do sieci będziemy mieli ramkę. Takie samo nazewnictwo będziemy stosować podczas analizy komunikacji z wykorzystaniem modelu ISO/OSI.

Czytaj  G-SYNC to technologia opracowana przez firmę Nvidia

Zadania poszczególnych warstw

Czas teraz na bardziej szczegółowe przedstawienie procesu komunikacji z wykorzystaniem warstw. Omówimy go sobie na przykładzie wysyłania wiadomości e-mail. Na początku, użytkownik sieci, korzystając z programu pocztowego lub przeglądarki internetowej tworzy wiadomość e-mail. Warstwa aplikacji w odpowiedni sposób koduje te dane i przekazuje do warstwy transportu.

 

W tej warstwie następuje podział danych na mniejsze część, czyli segmenty, które to łatwiej jest przesłać przez sieć. To tak jakbyśmy chcieli przenieść z miejsca na miejsce ogromny narożnik, trudno byłoby go przenieść w całości, skoro nawet nie mieści się w drzwiach, dlatego też rozłożylibyśmy go na części a nie kombinowali z przeniesieniem go w całości. W tej warstwie również dodawane są informacje sterujące pozwalające później, na urządzeniu końcowym złożyć segmenty w odpowiedniej kolejności (chociaż nie są one dodawane zawsze, zależy to od zastosowanego protokołu tej warstwy), ale przede wszystkim dodawane są też numery portów aplikacji (port aplikacji na serwerze pocztowym oraz port na kliencie), czyli informacje pozwalająca potem stwierdzić, że jest to wiadomość e-mail, a nie np. strona WWW. O portach aplikacji opowiemy więcej kiedy to omawiać będziemy funkcje i protokoły warstwy aplikacji i transportu.

 

Dalej segmenty przekazywane są do warstwy internetowej, gdzie nadawane są adresy IP – zarówno urządzenia, które dane wysyła, jak również tego, który jest ich adresatem. Zabieg ten stosowany jest po to aby rutery, czyli urządzenia pośredniczące na drodze między nadawcą a odbiorcą wiadomości, wiedziały gdzie mają ją przesłać. Od tego momentu nasze segmenty są już zaadresowanymi pakietami.

 

Następnie pakiety trafiają do warstwy dostępu do sieci, gdzie tworzone są ramki, opatrywane adresem fizycznym urządzenia wysyłającego wiadomość oraz adresem fizycznym rutera, do którego podłączony jest komputer, z którego wysyłamy wiadomość. Dzięki temu adresowi, ramki potem mogą trafić do tego rutera, który to dalej wyśle je do sieci rozległej.

 

Zanim jednak nastąpi sama transmisja, ramki są kodowane do postaci bitów i przekazywane do urządzenia docelowego za pośrednictwem ruterów.

 

Kiedy host docelowy odbierze bity, następuje proces odwrotny do enkapsulacji, czyli dekapsulacja, gdzie ramki zamieniane są w pakiety, pakiety w segmenty, a warstwa transportu składa je we właściwej kolejności. Kiedy proces ten się zakończy, dane przesyłane są do warstwy aplikacji gdzie następuje wyświetlanie wiadomości. Podobnie będzie wyglądał proces komunikacji kiedy będziemy chcieli wyświetlić stronę WWW czy przesłać plik za pośrednictwem Internetu, z tym, że wówczas wykorzystane zostaną inne protokoły warstwy aplikacji, takie które obsługują nie wysyłanie i odbieranie poczty elektronicznej, ale przesłanie stron WWW czy plików.

I jeszcze na koniec ważna informacja – omówiony tutaj proces komunikacji pomiędzy urządzeniami jest uproszczony, nazwijmy go umownym. Dlaczego? No dlatego, że pominęliśmy tutaj procesy przekazywania danych pomiędzy urządzeniami pośredniczącymi czyli ruterami. Proces routingu czyli przesyłania danych pomiędzy ruterami w sieciach rozległych, a także możliwość zastosowania różnych rodzajów mediów transmisyjnych na drodze od nadawcy do odbiorcy to obszerne i dość skomplikowane zagadnienie, którego nie będziemy teraz poruszać. Oczywiście jest to niezwykle ważny etap komunikacji i z pewnością przyjrzymy się i niemu, ale dopiero kiedy nasza wiedza i umiejętności w zakresie sieci komputerowych będą na to pozwalały.

Czytaj  Co to jest adres mac

No to teraz już każdy z Was wie jak wygląda proces komunikacji przedstawiony i zaprezentowany na warstwowym modelu protokołów TCP/IP, bardzo podobnie proces ten będzie wyglądał na modelu odniesienia ISO/OSI. Dlatego jeśli zostaniecie poproszeni, np. przez nauczyciela na sprawdzianie o opisanie procesu komunikacji na podstawie modelu ISO/OSI, nie powinniście mieć z tym problemu.

Adresowanie w sieci

Wyjaśnijmy teraz bardzo istotną kwestię, a mianowicie adresowanie w sieci. Jak mogliście zauważyć, kwestia ta pojawiła się aż trzykrotnie podczas omawiania procesu komunikacji, ponieważ aż w trzech warstwach dodawane są informacje związane z adresami lub też numerami.

Zacznijmy tym razem jednak od dołu stosu, zobaczcie w warstwie dostępu do sieci dla modelu TCP/IP i w warstwie łącza danych dla modelu ISO/OSI pojawiło się pojęcia adresu fizycznego. Co to jest ten adres fizyczny zapytacie. No adres fizyczny, nazywany również adresem MAC to 48-bitowy numer, zakodowany w systemie szesnastkowym na karcie sieciowej urządzenia końcowego czyli np. komputera. Adres ten może przyjąć taką postać: 28-80-23-D6-BE-14 i jest on nadawany na etapie produkcji karty. Składa się z dwóch równych części, pierwsza to identyfikator producenta, a druga to identyfikator karty.

Całość, ten cały kod szesnastkowy służy do odnajdywania hostów w sieciach lokalnych, sieciach LAN i to właśnie taki adres, adres fizyczny hosta źródłowego i rutera w sieci lokalnej, czyli bramy łączącej naszą sieć lokalną z siecią rozległą jest nadawany w procesie enkapsulacji w warstwie dostępu do sieci dla modelu TCP/IP oraz w warstwie łącza danych w modelu ISO/OSI.

Idąc wyżej mamy warstwę internetową dla modelu TCP/IP oraz warstwę sieci dla modelu ISO/OSI. W tych warstwach, w procesie enkapsulacji dodawane są adresy IP, zwany również adresami logicznymi. Te adresy to adres IP komputera nadawcy oraz adres IP komputera odbiorcy.  Adresy te stosowane są do przesyłania danych pomiędzy hostami znajdującymi się w różnych sieciach, oddalonych od siebie geograficznie często o setki kilometrów.

 

No i na koniec mamy jeszcze warstwę transportu, która co prawda nie stosuje adresowania do odnajdywania hostów, jak czynią to poprzednio omówione warstwy, ale stosuje numerację portów, w celu przypisania danych do konkretnej aplikacji w systemie operacyjnym. Zauważmy, że dzisiejsze komputery pozwalają na korzystanie z wielu aplikacji jednocześnie. Możemy w tym samym czasie korzystać z przeglądarki serfując w Internecie, słuchać radia internetowego, wysyłać i odbierać pocztę elektroniczną czy nawet grać w gry sieciowe. Gdyby nie istniał podział na aplikację, gdyby nie nadawano numerów portów w warstwie transportu pozwalających na identyfikację konkretnych usług sieciowych to moglibyśmy się spotkać z sytuacją kiedy to podczas rozgrywki na ekranie w dolnym roku pojawiła by się otrzymana wiadomość e-mail, a w edytorze tekstu pojawiła by się wiadomość z komunikatora. Zobaczcie jak to wszystko jest dobrze pomyślane, ułożone w logiczną całość, nic nie jest pozostawione przypadkowi, dlatego właśnie tak lubię sieci komputerowe.

 

Podsumowanie

W sieciach komputerowych stosuje się modele warstwowe w celu łatwiejszego opisywania i sterowania poszczególnymi etapami komunikacji, a także w celu standaryzacji, tak aby zarówno sprzęt jak i oprogramowania różnych producentów były ze sobą kompatybilne. Komunikacja w sieci odbywa się z wykorzystaniem przyjętych reguł i zasad zwanych protokołami komunikacyjnymi. Proces komunikacji w sieci polega na przekazywaniu danych w dół stosu na urządzeniu źródłowym, zakodowaniu ich do postaci bitów i przesłaniu do urządzenia docelowego, gdzie dane przekazywane są w górę stosu i interpretowane. W poszczególnych warstwach dane opatrywane są informacjami sterującymi, numerami portów oraz adresami logicznymi i fizycznymi, następnie są kodowane i przesyłane do odbiorcy. Proces przepływu danych przez stos w dół i nadawania informacji sterujących oraz adresów nazywany jest enkapsulacją, natomiast na urządzeniu końcowym, kiedy to dane przesyłane są w górę stosu, proces ten nazywany jest dekapsulacją.

Polecane wpisy
Ile trzeba zainwestować w kryptowaluty
Ile trzeba zainwestować w kryptowaluty

Ilość, którą trzeba zainwestować w kryptowaluty, zależy od wielu czynników, takich jak: Ile trzeba zainwestować w Czytaj dalej

Chat GPT: Co To i Jak Używać? Wszystko Na Temat ChatGPT

Chat GPT (Generative Pre-trained Transformer) to chatbot uruchomiony przez OpenAI w listopadzie 2022 roku. Jest zbudowany na szczycie rodziny dużych Czytaj dalej