Introducere în OSI

Când rețeaua ARPA tocmai era în curs de dezvoltare, ne-am dorit foarte mult să o facem cât mai inteligentă posibil. Dar cu cât rețeaua este mai complexă, cu atât este mai dificil de dezvoltat și de întreținut. Ca soluție, s-a propus împărțirea tuturor funcțiilor rețelei în straturi logice.

Modelul de funcționare a rețelei este denumit modelul de rețea al Modelului de referință de bază de interconectare a sistemelor deschise ISO/OSI. Pe scurt - modelul OSI (Open Systems Interconnection).

Modelul OSI

În total, există 7 niveluri în acest model. Interacțiunea nivelurilor este strict standardizată și minimizată. Nivelul inferior nu are idee despre prezența nivelurilor superioare și structura lor.

Cel mai de jos strat poate trimite doar biți . Nici măcar nu transmite, și anume trimite. Habar nu are dacă vor sau nu. Trimis și uitat.

Un nivel superior operează deja cu grupuri de biți - cadre și știe puțin despre dispozitivul fizic al rețelei, înțelege adresele MAC și altele asemenea.

Următorul nivel este lotul. Este și mai inteligent și știe să opereze cu adrese IP de rețea. Și așa mai departe.

De ce sunt necesare toate acestea? Pentru a maximiza flexibilitatea.

Imaginați-vă că fiecare strat este o interfață Java și poate avea mai multe implementări diferite. Deci și aici. La nivel fizic, puteți trimite biți prin fir, trimite prin aer (Wi-Fi), trimite prin satelit și toate celelalte niveluri nici măcar nu vor ști nimic despre asta. Și totul va funcționa conform intenției.

Stiva de protocol OSI

Puteți studia stiva de protocoale mai detaliat în imaginea de mai jos :

Dar dacă nu sunteți administrator de sistem, atunci nu aveți nevoie de astfel de detalii ale protocoalelor. Mai interesant poate fi studiul stivei de protocoale TCP (Transmission Control Protocol) / IP (Internet Protocol).

Primele trei straturi din modelul OSI, adică stratul de aplicație, stratul de prezentare și stratul de sesiune, nu sunt distinse separat în modelul TCP/IP, care are doar un strat de aplicație deasupra stratului de transport:

Distribuția protocoalelor pe straturi ale modelului OSI

TCP/IP OSI
Aplicat Aplicat HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP
Reprezentare XDR, AFP, TLS, SSL
sesiune ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
Transport Transport TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
reţea reţea IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP
canalizat canalizat Ethernet, Token Ring, HDLC, PPP, X.25, Frame Relay, ISDN, ATM, SPB, MPLS, ARP/td>
Fizic fire electrice, comunicații radio, fire de fibră optică, radiații infraroșii

Stiva de protocoale TCP/IP

Stiva de protocoale TCP/IP include patru straturi:

  • Stratul de aplicare
  • Stratul de transport
  • Strat de internet (strat de rețea) (strat de internet)
  • Strat de legătură (Stratul de acces la rețea)

Protocoalele acestor straturi implementează pe deplin toate funcționalitățile modelului OSI. Toată interacțiunea utilizatorului în rețelele IP este construită pe stiva de protocoale TCP / IP.

Stiva de protocoale TCP/IP este independentă de hardware-ul fizic, care, printre altele, asigură interacțiunea complet transparentă între rețelele cu fir și fără fir.

Stratul Aplicație este locul în care rulează majoritatea aplicațiilor de rețea.

Strat de aplicație

Pentru interacțiunea programelor, există protocoale la nivel înalt pentru schimbul de informații. De exemplu, browserele funcționează folosind protocolul HTTP, e-mailurile sunt trimise folosind protocolul SMTP, Telegram funcționează folosind propriul protocol criptat.

Dar nu prea ne interesează protocoalele private. Cel mai adesea, veți întâlni protocoale în bloc, cum ar fi un client ftp pentru FTP (transfer de fișiere), SSH (conexiune securizată la o mașină la distanță), DNS (traducere caracter în adresă IP) și multe altele.

Aproape toate aceste protocoale rulează pe TCP, deși unele rulează peste UDP (User Datagram Protocol) pentru a accelera lucrurile. Dar, important, aceste protocoale au porturi implicite. Exemplu:

  • 20 FTP la portul TCP 20 (pentru transfer de date) și 21 (pentru comenzi de control)
  • 22-SSH
  • 23 - Telnet
  • 53 - Interogări DNS
  • 80-HTTP
  • 443 - HTTPS

Aceste porturi sunt definite de Naming Assignment and Unique Parameters Agency (IANA).

Există câteva alte protocoale populare de nivel de aplicație: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.

strat de transport

Protocoalele nivelului de transport sunt concepute pentru a rezolva problema livrării garantate a mesajelor.

Un mesaj (pachet de date) poate fi trimis și pierdut undeva în rețea. În acest caz, este la latitudinea stratului de transport să monitorizeze aceste situații și să retrimite mesajul dacă este necesar.

O altă sarcină importantă a protocolului stratului de transport este de a controla ordinea în care sosesc mesajele. Se întâmplă adesea ca mesajele să fie trimise într-o ordine și să ajungă în alta. Și dacă adunați un mesaj mare din astfel de piese, obțineți prostii.

Pentru a preveni acest lucru, stratul de transport fie enumerează mesajele, fie nu trimite unul nou până când nu primește confirmarea primirii celui precedent. Protocoalele de rutare automată care sunt prezente în mod logic la acest nivel (deoarece rulează peste IP) fac de fapt parte din protocoalele stratului de rețea.

Protocolul TCP este un mecanism de transport prestabilit de conexiune „garantată” care oferă unei aplicații un flux de date fiabil, asigură că datele primite sunt fără erori, solicită din nou datele în caz de pierdere și elimină duplicarea datelor.

TCP vă permite să reglați sarcina în rețea, precum și să reduceți timpul de așteptare pentru date atunci când sunt transmise pe distanțe lungi. Mai mult, TCP garantează că datele primite au fost trimise exact în aceeași ordine. Aceasta este principala diferență față de UDP.

UDP este un protocol de datagramă fără conexiune. Se mai numește și protocol de transfer „nefiabil”, în sensul incapacității de a verifica livrarea unui mesaj către destinatar, precum și posibila amestecare a pachetelor. Aplicațiile care necesită transmisie garantată a datelor utilizează protocolul TCP.

UDP este utilizat de obicei în aplicații precum streaming video și jocuri în care pierderea pachetelor este tolerată și reîncercarea este dificilă sau nejustificată, sau în aplicații cu răspuns la provocare (cum ar fi interogările DNS) în care stabilirea unei conexiuni necesită mai multe resurse decât retrimiterea.

Atât TCP, cât și UDP folosesc un număr numit port pentru a defini protocolul de nivel superior.