Modelul OSI

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Acest articol se referă la un standard pentru comunicații. Pentru alte sensuri, vedeți OSI (dezambiguizare).
Stiva de protocoale după modelul OSI

Modelul de Referință OSI (OSI este un acronim pentru interconectarea sistemelor deschise, engleză Open Systems Interconnection), pe scurt: OSI, este o stiva de protocoale de comunicație ierarhic foarte des folosit pentru a realiza o rețea de calculatoare. OSI este un standard al Organizației internaționale de standardizare, emis în 1984.

Modelul de Referință OSI oferă metode generale pentru realizarea comunicației, sistemelor de calcul pentru ca acestea să poată schimba informații, indiferent de particularitățile constructive ale sistemelor (fabricant, sistem de operare, țară, etc). Modelul de Referință are aplicații în toate domeniile comunicațiilor de date, nu doar în cazul rețelelor de calculatoare.

Modelul OSI divizează problema complexă a comunicării între două sau mai multe sisteme în 7 straturi numite și niveluri (layers) distincte, într-o arhitectură ierarhică. Fiecare strat (nivel) are funcții bine determinate și comunică doar cu straturile adiacente. Cele 7 niveluri ale Modelului de Referință se numesc: Aplicație (nivelul 7, superior) , Prezentare, Sesiune, Transport, Rețea, Legătură de date, Fizic (nivelul 1, inferior). Termenii corespunzători din engleză sunt Application, Presentation, Session, Transport, Network, Data link, Physical. Iată câteva expresii ale căror acronime ajută la reținerea mai ușoară:

  • "Am plecat să trimit roze la fete";
  • "All People Seem To Need Data Processing",

și în ordine inversă:

  • "Please Do Not Throw Sausage Pizza Away";
  • "Please Do Not Take Sally's Panties Away".

Deși astăzi există și alte sisteme, cei mai mulți distribuitori de echipamente de comunicație folosesc OSI pentru a instrui utilizatorii în folosirea echipamentelor. Se consideră că OSI este cel mai bun mijloc prin care se poate face înțeles modul în care informația este trimisă și primită.

Avantajele OSI[modificare | modificare sursă]

Câteva din avantajele folosirii OSI:

  1. Descompune fenomenul de comunicare în rețea în părți mai mici și implicit mai simple.
  2. Standardizează componentele unei rețele permițînd dezvoltarea independentă de un anumit producător.
  3. Permite comunicarea între diferite tipuri de hardware și software.
  4. Permite o înțelegere mai ușoară a fenomenelor de comunicație.

Mod de funcționare[modificare | modificare sursă]

Modul de comunicare pe baza modelului OSI între elementele unei rețele de calculatoare și alte aparate "inteligente" poate fi înțeles mai uşor dacă se consideră pentru exemplificare numai 2 participanți la conversație. Pentru a profita de toate posibilitățile de comunicație, modelul OSI trebuie să fie implementat în întregime (cu toate cele 7 niveluri sau straturi) în ambele elemente participante.

OSI intercomputer exchange.png

Notă. Pentru o mai bună înțelegere a imaginii de mai sus, comunicația pe verticală de la un element la cel imediat superior sau inferior (săgețile albastre) respectă regulile interfeței respective, în timp ce comunicația (indirectă) pe orizontală între un element verde și unul albastru respectă protocolul nivelului respectiv.

Când participantul 1 (o persoană sau un calculator sau dispozitiv "inteligent") vrea să "converseze" cu participantul 2 (de asemenea o persoană sau un dispozitiv), aceasta se face prin intermediul unei aplicaţii, Aplicația 1 trimite Aplicației 2 mai întâi un prim mesaj, de exemplu "Ești liber și stăpânești protocolul FTP?". Pentru "conversația" lor aplicațiile trebuie să folosească un protocol de aplicație predefinit. Protocoalele de pe fiecare nivel prescriu până la ultimul amănunt cum anume se "vorbește", ce se spune și mai ales în ce ordine, astfel încât participantul celălalt să "înțeleagă" despre ce este vorba. În acest exemplu însă, Aplicația 1 nu are legătură directă/fizică cu Aplicația 2. O legătura fizică există, dar se află departe - la baza "stivei" de protocoale. Metoda Modelului OSI prevede ca mesajul Aplicației 1 destinat Aplicației 2 să fie mai întâi predat nivelului de mai jos = Prezentare 1, printr-o interfață specială. Acest nivel "vorbește" la rândul său cu nivelul său omolog din stiva 2, anume Prezentare 2, pentru care se folosește de protocolul necesar. Dar nici cele 2 niveluri de Prezentare nu sunt legate direct între ele. Nivelul Prezentare 1 predă atunci cele dorite în jos, nivelului Sesiune 1 (iarăși printr-o interfață specializată).

Această procedură se continuă în jos până se atinge Nivelul fizic 1. Abia acesta posedă o legătură fizică cu omologul său, Nivelul fizic 2, de exemplu printr-un cablu. De aici informația se propagă spre participantul 2 de jos în sus, printr-o serie de interfețe, până într-un bun sfârșit se atinge nivelul Aplicație 2, respectiv Participant 2, cu care Aplicația 1 voia inițial să "vorbească". Din punct de vedere al Aplicației 1, ea doar pare că duce o conversație directă cu Aplicația 2, conform prescripțiilor din protocolul de aplicație ales. În realitate ea schimbă informații doar cu nivelul Prezentare 1, imediat vecin, prin interfața respectivă.

Avantajul acestei metode stratificate este că nici Aplicația 1, și nici măcar programatorul ei (!!!) nu trebuie să cunoască deloc sarcinile și soluțiile de la nivelurile inferioare, ci doar una sau 2 interfețe, în sus și în jos. În plus, ea nu trebuie modificată reactiv la orice schimbare de pe straturile inferioare. De exemplu, dacă se schimbă cablul de legătură (de la nivelul Nivelului fizic) printr-un canal radio. Specific pentru canale radio rata pierderilor de pachete de date poate fi destul de mare, eroare care desigur trebuiesc corectată automat, în funcție de, să zicem, condițiile atmosferice, caz care însă nu se întâmplă niciodată la cablul de cupru. Și cu toate astea, Aplicația 1 nu trebuie modificată.

Funcțiile nivelurilor[modificare | modificare sursă]

La baza stabilirii nivelelor arhitecturale ale modelului ISO OSI au stat o serie de principii generale, cum ar fi:

  • crearea unui număr redus de nivele cu puține interacţiuni între ele;
  • colectarea funcțiilor înrudite în același nivel;
  • crearea posibilitații de modificare a funcțiilor unui nivel, fără afectuarea celorlalte;
  • crearea pentru fiecare nivel de linii de demarcație (interfețe) spre nivelul adiacent inferior și superior.

Nivelul Aplicație[modificare | modificare sursă]

Rol: realizează interfața cu utilizatorul și interfața cu aplicațiile, specifică interfața de lucru cu utilizatorul și gestionează comunicația între aplicații. Acest strat nu reprezintă o aplicație de sine stătătoare, ci doar interfața între aplicații și componentele sistemelui de calcul.
Unitatea de date: mesajul

Nivelul Prezentare[modificare | modificare sursă]

Rol: transformă datele în formate înțelese de fiecare aplicație și de calculatoarele respective, compresia datelor și criptarea.
Unitatea de date: -

Nivelul Sesiune[modificare | modificare sursă]

Rol: furnizează controlul comunicației între aplicații. Stabilește, menține, gestionează și închide conexiuni (sesiuni) între aplicații.
Unitatea de date: -

Nivelul Transport[modificare | modificare sursă]

Rol: transferul fiabil al informației între două sisteme terminale (end points) ale unei comunicații. Furnizează controlul erorilor și controlul fluxului de date între două puncte terminale, asigurând ordinea corectă a pachetelor de date. Oferă un serviciu de transport de date care izolează nivelurile superioare de orice specificitații legate de modul în care este executat transportul datelor.
Unitatea de date: segmentul, datagrama

Nivelul Rețea[modificare | modificare sursă]

Rol: determinarea căii optime pentru realizarea transferului de informații într-o rețea constituită din mai multe segmente, prin fragmentarea și reasamblarea informației
Unitatea de date: pachetul

Nivelul Legătură de Date[modificare | modificare sursă]

Nivelul legatură de date se ocupă cu adresarea fizica, topologia rețelei, accesul la rețea, detecția și anunțarea erorilor și controlul fluxului fizic (flow control).

Rol: furnizează un transport sigur, fiabil, al datelor de-a lungul unei legături fizice, realizând:

  • Controlul erorilor de comunicație
  • Controlul fluxului de date
  • Controlul legăturii
  • Sincronizarea la nivel de cadru
    Unitatea de date: cadrul

Nivelul Fizic[modificare | modificare sursă]

Articol principal: Nivelul Fizic

Nivelul fizic definește specificații electrice, mecanice, procedurale și functionale pentru activarea, menținerea și dezactivarea legăturilor fizice între sisteme.

Rol: transmiterea unui șir de biți pe un canal de comunicații. Se precizează modulații, codări, sincronizări la nivel de bit. Un standard de nivel fizic definește 4 tipuri de caracteristici:

  • Mecanice (forma și dimensiunile conectorilor, numărul de pini)
  • Electrice (modulația, debite binare, codări, lungimi maxime ale canalelor de comunicație)
  • Funcționale (funcția fiecărui pin)
  • Procedurale (succesiunea procedurilor pentru activarea unui serviciu)
    Unitatea de date: bitul

Exemple de protocoale din stiva OSI[modificare | modificare sursă]

7 Aplicație ex.: HTTP, SMTP, SNMP, FTP, Telnet, SIP, SSH, NFS, RTSP, XMPP, Whois, ENRP
6 Prezentare ex.: XDR, ASN.1, SMB, AFP, NCP
5 Sesiune ex.: ASAP, TLS, SSH, ISO 8327 / CCITT X.225, RPC, NetBIOS, ASP, Winsock, BSD sockets, NCP (Network Core Protocol), NFS (Network File System)
4 Transport ex.: TCP, UDP, RTP, SCTP, SPX, ATP, IL
3 Rețea ex.: IP, ICMP, IGMP, IPX, BGP, OSPF, RIP, IGRP, EIGRP, ARP, RARP, X.25 (Packet Switching)
2 Legătura de date ex.: Ethernet, Token ring, HDLC, Frame relay, ISDN, ATM, 802.11 Wi-Fi, FDDI, PPP
1 Fizic ex.: cablu coaxial, radio, fibră optică, cablu bifilar torsadat, fire cupru