Model ISO/OSI i TCP/IP

TCP OSI

Architektura ISO/OSI

Model wzorcowy ISO OSI (angielskie Open System Interconnection Reference Model), jest kompleksowy standard komunikacji sieciowej (ISO 7498). Proces komunikacji wg tego modelu został podzielony na 7 etapów, zwanych warstwami, ze względu na sposób przechodzenia informacji pomiędzy nimi. Według modelu OSI każdy protokół komunikuje się ze swoim odpowiednikiem, będącym implementacją tego samego protokołu w równorzędnej warstwie komunikacyjnej systemu odległego. Dane przekazywane są od wierzchołka stosu, poprzez kolejne warstwy, aż do warstwy fizycznej, która przesyła je poprzez sieć do odległego hosta. 

1. Warstwa fizyczna

Zapewnia transmisję danych pomiędzy węzłami sieci. Definiuje interfejsy sieciowe i medium transmisji. Określa m.in. sposób połączenia mechanicznego, elektrycznego, standard fizycznej transmisji danych. W skład jej obiektów wchodzą min.: przewody, karty sieciowe, modemy, wzmacniacze, koncentratory. 

2. Warstwa łącza danych

Zapewnia niezawodność łącza danych. Definiuje mechanizmy kontroli błędów w przesyłanych ramkach lub pakietach - CRC (Cyclic Redundancy Check). Jest ona ściśle powiązana z warstwą fizyczną, która narzuca topologię. Warstwa ta często zajmuje się również kompresją danych. W skład jej obiektów wchodzą sterowniki urządzeń sieciowych, np.: sterowniki kart sieciowych oraz mosty i przełączniki. 

3. Warstwa sieciowa

Zapewnia metody ustanawiania, utrzymywania i rozłączania połączenia sieciowego. Obsługuje błędy komunikacji. Ponadto jest odpowiedzialna za trasowanie pakietów w sieci, czyli wyznaczenie optymalnej trasy dla połączenia. W niektórych warunkach dopuszczalne jest gubienie pakietów przez tę warstwę. W skład jej obiektów wchodzą min.: rutery. 

4. Warstwa transportowa

Zapewnia przezroczysty transfer danych typu point-to-point. Dba o kolejność pakietów otrzymywanych przez odbiorcę. Sprawdza poprawność przesyłanych pakietów i w przypadku ich uszkodzenia lub zaginięcia, zapewnia ich retransmisję. 

5. Warstwa sesji

Zapewnia aplikacjom na odległych komputerach realizację wymiany danych pomiędzy nimi. Kontroluje nawiązywanie i zrywanie połączenia przez aplikację. Jest odpowiedzialna za poprawną realizację zapytania o daną usługę. Do warstwy tej można zaliczyć funkcje API udostępniane programiście przez bibliotekę realizującą dostęp do sieci na poziomie powyżej warstwy transportowej takie jak np. biblioteka strumieni i gniazdek BSD. 

6. Warstwa prezentacji

Zapewnia tłumaczenie danych, definiowanie ich formatu oraz odpowiednią składnię. Umożliwia przekształcenie danych na postać standardową, niezależną od aplikacji. Rozwiązuje takie problemy jak niezgodność reprezentacji liczb, znaków końca wiersza, liter narodowych itp. Odpowiada także za kompresję i szyfrowanie. 

7. Warstwa aplikacji

Zapewnia aplikacjom metody dostępu do środowiska OSI. Warstwa ta świadczy usługi końcowe dla aplikacji, min.: udostępnianie zasobów (plików, drukarek). Na tym poziomie rezydują procesy sieciowe dostępne bezpośrednio dla użytkownika.


Architektura TCP/IP

Protokoły TCP/IP odwzorowują czterowarstwowy model koncepcyjny znany jako model DARPA. Cztery warstwy modelu DARPA to: warstwa aplikacji, transportowa, internetowa i interfejsu sieciowego. Każda warstwa modelu DARPA odpowiada jednej lub więcej warstwie siedmiowarstwowego modelu Open Systems Interconnection (OSI). 

Warstwa interfejsu sieciowego

Warstwa interfejsu sieciowego, zwana także warstwą dostępu sieciowego jest odpowiedzialna za umieszczanie pakietów TCP/IP w nośniku sieciowym i odbieranie pakietów TCP/IP z tego nośnika. TCP/IP został zaprojektowany tak, aby być niezależnym od metody dostępu do sieci, formatu ramki i nośnika. Dzięki temu TCP/IP może być używany do łączenia różnych rodzajów sieci, takich jak Ethernet i Token Ring. Warstwa interfejsu sieciowego otacza warstwy połączenia i fizyczną modelu OSI. Warstwa internetowa nie korzysta z usług kolejkowania i potwierdzania, które mogą być obecne w warstwie połączenia. Zadaniami tymi zajmuje się warstwa transportowa. 

Warstwa internetowa

Warstwa internetowa jest odpowiedzialna za adresowanie, pakowanie i funkcje routowania. Podstawowe protokoły warstwy internetowej to IP, ARP, ICMP oraz IGMP.

  • Internet Protocol (IP) to routowalny protokół odpowiedzialny za adresowanie IP, routing oraz dzielenie i łączenie pakietów.
  • Address Resolution Protocol (ARP) jest odpowiedzialny za przekształcanie adresów warstwy internetowej na adresy warstwy interfejsu sieciowego, takie jak adres sprzętowy.
  • Internet Control Message Protocol (ICMP) jest odpowiedzialny za funkcje diagnostyczne i zgłaszanie błędów niedostarczenia pakietów IP.
  • Internet Group Management Protocol (IGMP) jest odpowiedzialny za zarządzanie transmisjami grupowymi.

Warstwa internetowa jest odpowiednikiem warstwy sieciowej modelu OSI. 

Warstwa transportowa

Warstwa transportowa jest odpowiedzialna za dostarczenie warstwie aplikacji usług sesji i datagramowych. Protokołami warstwy transportowej są Transmission Control Protocol (TCP) i User Datagram Protocol (UDP).

  • TCP odpowiada za ustanowienie połączenia, kolejkowanie, potwierdzanie wysyłanych pakietów i za odzyskiwanie pakietów utraconych.
  • UDP używany jest, gdy przesyłana jest mała ilość danych (czyli taka, która zmieści się w jednym pakiecie) lub gdy koszt tworzenie połączenia TCP jest zbyt wysoki.

Warstwa transportowa wykonuje zadania warstwy transportowej modelu OSI oraz część zadań warstwy sesji modelu OSI. 

Warstwa aplikacji

Warstwa aplikacji umożliwia aplikacjom korzystanie z usług innych warstw i określa protokoły używane przez aplikację do wymiany danych. Jest wiele protokołów warstwy aplikacji i ciągle tworzone są nowe. Najbardziej znanymi protokołami warstwy aplikacji są te, których używa się do wymiany informacji użytkownika:

  • Hypertext Transfer Protocol (HTTP) jest używany do przesyłania plików stron internetowych światowej sieci Web.
  • File Transfer Protocol (FTP) jest używany do interakcyjnego przesyłania plików.
  • Simple Mail Transfer Protocol (SMTP) jest używany do przesyłania poczty i załączników.
  • Telnet, protokół emulacji terminala jest używany do logowania się zdalnie do hostów.

Dodatkowo, używanie i zarządzanie sieciami TCP/IP ułatwiają następujące protokoły: •Domain Name System (DNS) jest używany do przekształcenia nazwy hosta na adres IP.

  • Routing Information Protocol (RIP) jest protokołem używanym przez routery do wymiany informacji.
  • Simple Network Management Protocol (SNMP) jest używany pomiędzy konsolą sieciową a urządzeniami (routery, mosty, inteligentne koncentratory) do zbierania i wymiany informacji sterujących.

Protokoły składowe TCP/IP

Składnik TCP/IP zainstalowany w systemie jest serią połączonych ze sobą protokołów zwanych protokołami składowymi TCP/IP. Wszystkie aplikacje oraz inne protokoły pakietu protokołów TCP/IP opierają się na usługach dostarczanych przez następujące protokoły: IP, ARP, ICMP, IGMP, TCP i UDP. 

Protokół IP

Protokół IP nie ustanawia połączenia, jest mniej niezawodny, w głównej mierze odpowiedzialny za adresowanie i routing pakietów pomiędzy hostami. Nie ustanawiający połączenia oznacza, że sesja nie jest ustanawiana przed rozpoczęciem wymiany danych. Mniej niezawodny oznacza, że nie ma gwarancji dostarczenia danych do odbiorcy. IP zawsze „stara się” jak najlepiej dostarczyć pakiet, jednak nie zajmuje się kontrolą błędów. Pakiet IP może więc zostać zgubiony, dostarczony poza kolejnością, zdublowany lub opóźniony. Potwierdzaniem przyjętych pakietów oraz korekcją błędów zajmuje się warstwa wyższa, jak TCP. 

Protokół ARP

Kiedy pakiety IP są wysyłane do sieci opartych na emisji, jak Ethernet czy Token Ring, musi zostać określony adres sprzętowy korespondujący z danym adresem IP. ARP używa emisji na poziomie MAC, aby rozłożyć adres IP na adres MAC. 

Protokół ICMP

Protokół Internet Control Message Protocol (ICMP) zajmuje się rozwiązywaniem problemów z transmisją i zgłaszaniem błędów dla pakietów, których nie da się dostarczyć. Na przykład, gdy IP nie może dostarczyć pakietu do hosta docelowego, ICMP wysyła komunikat „Miejsce przeznaczenia nieosiągalne” do hosta źródłowego. ICMP nie czyni IP protokołem niezawodnym. ICMP zgłasza błędy i daje odpowiedzi na konkretne warunki. Komunikaty ICMP są przenoszone jako niepotwierdzone datagramy IP i same są zawodne. 

Protokół IGMP

Internet Group Management Protocol (IGMP) zarządza przynależnością hostów do grup multiemisji. Grupa multiemisjiIP znana także jako host group jest zbiorem hostów, które odbierają dane nadawane dla konkretnego adresu multiemisji. Dane wysyłane jako multiemisja IP są przeznaczone dla jednego adresu MAC, ale odbierane przez wiele hostów. 

Protokół TCP

Protokół Transmission Control Protocol (TCP) jest protokołem niezawodnym, świadczącym usługi w trybie połączeniowym. Dane przesyłane są w segmentach. Tryb połączeniowy oznacza, że połączenie musi zostać nawiązane zanim hosty zaczną przesyłać dane. Niezawodność jest uzyskiwana dzięki przypisaniu numeru każdemu wysyłanemu segmentowi. W celu sprawdzenia czy dane zostały odebrane przez odbiorcę, używane jest potwierdzenie odbioru. Dla każdego wysyłanego segmentu, odbierający host musi zwrócić potwierdzenie odbioru (ACK) co pewną konkretną ilość odebranych bajtów. Jeśli nie odebrano ACK, dane są retransmitowane. 

Protokół UDP

UDP jest protokołem bezpołączeniowym, oferującym przesyłanie danych metodą zawodną, jako komunikaty. Oznacza to, że nie ma gwarancji ani przybycia datagramów, ani poprawnej kolejności dostarczenia pakietów. UDP nie retransmituje utraconych danych. Protokół UDP jest używany przez aplikacje nie wymagające potwierdzenia odbioru oraz wysyłające małe ilości danych. Usługa nazw NetBIOS, usługa NetBIOS datagram i SNMP, to przykłady aplikacji i usług używających UDP.