Wprowadzenie do OSI

Kiedy sieć ARPA dopiero powstawała, bardzo chcieliśmy, aby była jak najbardziej inteligentna. Jednak im bardziej złożona jest sieć, tym trudniej jest ją rozwijać i utrzymywać. Jako rozwiązanie zaproponowano podział wszystkich funkcji sieci na warstwy logiczne.

Model działania sieci jest określany jako model sieciowy bazowego modelu odniesienia ISO/OSI Open Systems Interconnection Base. W skrócie – model OSI (Open Systems Interconnection).

modelu OSI

W sumie w tym modelu jest 7 poziomów. Interakcja poziomów jest ściśle wystandaryzowana i zminimalizowana. Niższy poziom nie ma pojęcia o istnieniu wyższych poziomów i ich strukturze.

Najniższa warstwa może po prostu wysyłać bity . Nawet nie nadawać, a mianowicie wysyłać. Nie ma pojęcia, czy będą, czy nie. Wysłane i zapomniane.

Wyższy poziom operuje już grupami bitów - ramek i wie trochę o fizycznym urządzeniu sieci, rozumie adresy MAC i tym podobne.

Następnym poziomem jest partia. Jest jeszcze sprytniejszy i wie, jak operować sieciowymi adresami IP. I tak dalej.

Dlaczego to wszystko jest konieczne? Aby zmaksymalizować elastyczność.

Wyobraź sobie, że każda warstwa jest interfejsem Java i może mieć kilka różnych implementacji. Więc tutaj też. Na poziomie fizycznym możesz przesyłać bity przez kabel, przesyłać bezprzewodowo (Wi-Fi), wysyłać przez satelitę, a wszystkie inne poziomy nawet nic o tym nie wiedzą. I wszystko będzie działać zgodnie z przeznaczeniem.

Stos protokołów OSI

Możesz przestudiować stos protokołów bardziej szczegółowo na poniższym obrazku :

Ale jeśli nie jesteś administratorem systemu, nie potrzebujesz takiego uszczegóławiania protokołów. Bardziej interesujące może być badanie stosu protokołów TCP (Transmission Control Protocol) / IP (Internet Protocol).

Trzy najwyższe warstwy w modelu OSI, tj. warstwa aplikacji, warstwa prezentacji i warstwa sesji, nie są oddzielnie rozróżniane w modelu TCP/IP, który ma tylko warstwę aplikacji nad warstwą transportową:

Dystrybucja protokołów według warstw modelu OSI

TCP/IP OSI
Stosowany Stosowany HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
Reprezentacja XDR, AFP, TLS, SSL
sesja ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
Transport Transport TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
sieć sieć IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP
kanałowy kanałowy Ethernet, Token Ring, HDLC, PPP, X.25, Frame Relay, ISDN, ATM, SPB, MPLS, ARP/td>
Fizyczny przewody elektryczne, komunikacja radiowa, przewody światłowodowe, promieniowanie podczerwone

Stos protokołów TCP/IP

Stos protokołów TCP/IP obejmuje cztery warstwy:

  • Warstwa aplikacji
  • warstwa transportowa
  • Warstwa internetowa (warstwa sieciowa) (warstwa internetowa)
  • Warstwa łącza (warstwa dostępu do sieci)

Protokoły tych warstw w pełni realizują wszystkie funkcjonalności modelu OSI. Cała interakcja użytkownika w sieciach IP opiera się na stosie protokołów TCP/IP.

Stos protokołów TCP/IP jest niezależny od fizycznego sprzętu, co między innymi zapewnia całkowicie przejrzystą interakcję między sieciami przewodowymi i bezprzewodowymi.

Warstwa aplikacji to miejsce, w którym działa większość aplikacji sieciowych.

Warstwa aplikacji

Do interakcji programów istnieją protokoły wysokiego poziomu do wymiany informacji. Na przykład przeglądarki działają przy użyciu protokołu HTTP, poczta jest wysyłana przy użyciu protokołu SMTP, Telegram działa przy użyciu własnego szyfrowanego protokołu.

Ale nie jesteśmy zbytnio zainteresowani prywatnymi protokołami. Najczęściej napotkasz protokoły masowe, takie jak klient ftp dla FTP (przesyłanie plików), SSH (bezpieczne połączenie ze zdalną maszyną), DNS (translacja znaków na adres IP) i wiele innych.

Prawie wszystkie te protokoły działają na TCP, chociaż niektóre działają na UDP (User Datagram Protocol), aby przyspieszyć działanie. Ale, co ważne, te protokoły mają domyślne porty. Przykład:

  • 20 FTP do portu TCP 20 (do przesyłania danych) i 21 (do poleceń sterujących)
  • 22-SSH
  • 23 - Telnet
  • 53 - Zapytania DNS
  • 80-HTTP
  • 443 — HTTPS

Porty te są definiowane przez Naming Assignment and Unique Parameters Agency (IANA).

Istnieje kilka innych popularnych protokołów warstwy aplikacji: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

Warstwa transportowa

Protokoły warstwy transportowej mają na celu rozwiązanie problemu gwarantowanego dostarczenia wiadomości.

Wiadomość (pakiet danych) może zostać wysłana i zgubiona gdzieś w sieci. W takim przypadku do warstwy transportowej należy monitorowanie tych sytuacji i ponowne wysłanie wiadomości, jeśli to konieczne.

Innym ważnym zadaniem protokołu warstwy transportowej jest kontrolowanie kolejności nadejścia komunikatów. Często zdarza się, że wiadomości zostały wysłane w jednym zamówieniu, a dotarły w innym. A jeśli z takich kawałków ułożysz wielkie przesłanie, otrzymasz nonsens.

Aby temu zapobiec, warstwa transportowa albo wylicza komunikaty, albo nie wysyła nowego, dopóki nie otrzyma potwierdzenia odbioru poprzedniego. Protokoły automatycznego routingu, które są logicznie obecne w tej warstwie (ponieważ działają na wierzchu IP), są w rzeczywistości częścią protokołów warstwy sieciowej.

Protokół TCP jest „gwarantowanym” mechanizmem transportowym z wcześniej nawiązanym połączeniem, który zapewnia aplikacji niezawodny przepływ danych, gwarantuje, że odebrane dane są wolne od błędów, ponownie żąda danych w przypadku ich utraty i eliminuje powielanie danych.

TCP pozwala regulować obciążenie sieci, a także skracać czas oczekiwania na dane przesyłane na duże odległości. Co więcej, TCP gwarantuje, że odebrane dane zostały wysłane w dokładnie tej samej kolejności. To jest jego główna różnica w stosunku do UDP.

UDP to bezpołączeniowy protokół datagramowy. Nazywany jest również „zawodnym” protokołem transmisji, w sensie braku możliwości weryfikacji doręczenia wiadomości do adresata, a także ewentualnego pomieszania pakietów. Aplikacje wymagające gwarantowanej transmisji danych korzystają z protokołu TCP.

Protokół UDP jest zwykle używany w aplikacjach, takich jak strumieniowe przesyłanie wideo i gry, w których utrata pakietów jest tolerowana, a ponawianie prób jest trudne lub nieuzasadnione, lub w aplikacjach typu wyzwanie-odpowiedź (takich jak zapytania DNS), w których ustanowienie połączenia wymaga więcej zasobów niż ponowne wysłanie.

Zarówno protokół TCP, jak i UDP używają numeru zwanego portem do zdefiniowania protokołu wyższej warstwy.