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).
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.
GO TO FULL VERSION