CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii) reţelelor de calculatoare După cum am precizat în capitolul anterior, din punct de vedere fizic (hardware) elementele constitutive ale unei reţele de calculatoare sunt nodurile de reţea (staţii de lucru, servere, routere etc) legate între ele prin medii de transmisie (cablu coaxial, UTP, wireless etc). Peste acestea rulează o gamă mare de aplicaţii (programe de calculator, software), unele cu scopul de a face reţeaua funcţională, altele executând sarcini specifice pentru utilizatori (procesoare de text, email, multimedia etc). Provenienţa componentelor unei reţele este variată geografic şi cronologic. La un moment dat, se achiziţionează echipamente de reţea de la producătorul A dintr-o anumită ţară. Peste un interval de timp, reţeaua se extinde cu noi elemente de la producătorul B din altă ţară. Pentru o bună funcţionare a tuturor acestor entităţi, ele trebuie proiectate, manufacturate şi configurate după reguli comune, referinţe, descrise detaliat în standarde naţionale şi internaţionale şi având o bună acoperire teoretică şi practică. Definirea unor sisteme de referinţă deschise este legată istoric de necesitatea sectorului industrial al armatei americane a anilor 70, care îşi propunea utilizarea informaticii în toate etapele de dezvoltare ale unui proiect dependent de un singur furnizor (single vendor), ceea ce a creat mari probleme nu numai în achiziţia platformelor hardware şi software, dar şi a productivităţii şi a performanţelor cerute unui sistem. În această accepţiune, a apărut necesitatea de a defini o structură care să poată realiza o independenţă faţă de platformele hardware şi software. Astfel se naşte conceptul de sistem deschis, concept care a determinat o relansare pe toate direcţiile a competiţiei în tehnologia informaţiei şi a determinat o abordare formală a standardelor în domeniu. Se poate considera că o dată cu acesta se crează premisele dezvoltării pe scară largă a programelor de calculator inter-operabile şi standardizate, altfel spus ia naştere 1
industria de software. Un sistem deschis SD (Open System) este definit de IEEE (Institute of Electrical and Electronics Engineers) în Guide of the POSIX Open System Environment ca fiind capabil: să implementeze suficient de multe specificaţii deschise pentru interfeţe, servicii şi să suporte formate care să asigure funcţionarea aplicaţiilor software, să fie portabil pe o gamă largă de sisteme (cu minime modificări), să realizeze interoperabilitatea cu alte aplicaţii locale sau la distanţă şi să interacţioneze cu utilizatorii astfel încât să fie efective facilităţile de portabilitate [1]. O astfel de definiţie este destul de largă şi greu de realizat practic. În realitate, conceptul SD se referă la două standarde distincte: Open System Interconnecting (OSI); u n model ierarhic pe şapte niveluri ale standardelor de comunicaţie, servicii şi protocoale care permit interconectarea şi, în anumite cazuri, interoperabilitatea între sisteme. Aceste standarde sunt definite de organisme de standardizare internaţională şi fac parte din efortul general de a standardiza modul în care sistemele automate comunică unele cu altele; [2] Open Computing System (OCS): s unt sisteme care, prin utilizarea componentelor comune sau compatibile - sisteme de operare, baze de date relaţionale, limbaje de programare - permit portabilitatea verticală şi orizontală a mediului utilizatorului, a aplicaţiilor, a datelor şi platformelor software. Sistemele deschise pretind un grad ridicat de portabilitate, scalabilitate şi interoperabilitate aplicaţii, date şi utilizator. [4] Pentru a maximiza rezultatele, problema trebuie abordată din ambele puncte de vedere. Implementarea numai a mecanismelor OSI va face ca portabilitatea să nu fie posibilă, iar implementarea numai a mecanismelor OCS va îngreuna comunicarea între entităţi. În acest sens, sunt de luat în considerare următoarele elemente: selectarea procesoarelor în direcţia setului de instrucţiuni disponibile selectarea sistemului de operare incluzând şi interfeţele acestuia cu utilizatorul şi aplicaţiile, serviciile pe care le pune la dispoziţie, dezvoltarea aplicaţiilor, administrarea resurselor 2
selectarea facilităţilor de comunicaţie, a standardelor şi protocoalelor implicate alegerea limbajelor de programare, Sistemul de Gestiune a Bazelor de Date (SGBD), automatizarea activităţilor de birou gradul în care informaţia este disponibilă administratorului de sistem, firmelor care dezvoltă aplicaţii software, utilizatorului final, producătorilor de hardware viteza de modificare a hardware-ului, a sistemului software şi a facilităţilor de comunicaţii consistenţa cu care sunt elaborate facilităţile utilizatorilor consistenţa cu care dezvoltarea aplicaţiilor urmăreşte definiţiile interfeţelor sistemelor de operare, a interfeţelor utilizator ca metode de dezvoltare, documentare şi standarde ale managementului ciclului de viaţă, proceduri sau doctrine. Un sistem deschis trebuie să ofere: compatibilitate: aplicaţiile care se execută pe un sistem trebuie să poată fi executate pe versiunile ulterioare ale aceluiaşi sistem portabilitate: aplicaţiile care se execută pe o platformă hardware, sub un sistem de operare, să poată fi executate sub acelaşi sistem de operare pe platforma hardware a unui alt furnizor scalabilitate: aplicaţiile scrise pentru un sistem dat să poată fi executate pe întreg domeniul arhitecturilor de sistem (de la micro la mainframe) interoperabilitate: aplicaţiile scrise pentru un sistem dat să fie capabile să comunice între ele cu alte aplicaţii în cadrul aceloraşi protocoale de reţea utilizate. 2.2. Modelul OSI (Open System Interconnection) [2] Modelul de referinţă OSI (Open System Interconnection, Interconectarea Sistemelor Deschise) propune criterii generale pentru realizarea comunicării în cadrul sistemelor de calcul, astfel încât acestea să poată schimba informaţii, indiferent de particularităţile constructive ale sistemelor (fabricant, sistem de 3
operare, ţară). Modelul de referinţă OSI are aplicaţii în toate domeniile comunicaţiilor de date, nu doar în cazul reţelelor de calculatoare. Modelul OSI divide problema complexă a comunicării între două sau mai multe sisteme informatice în şapte niveluri sau straturi ( layers) distincte, într-o arhitectură ierarhică. Fiecare nivel are funcţii bine determinate şi comunică doar cu nivelurile adiacente. Aceste şapte niveluri formează o ierarhie plecînd de la nivelul superior 7 Aplicaţie (Application) şi până la ultimul din partea de jos a stivei, nivelul 1 Fizic (Physical). 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. Literatura de specialitate şi manualele de bună practică estimează că OSI este cel mai bun mijloc prin care se poate face înţeles modul în care informaţia este transmisă şi recepţionată în cadrul reţelelor de calculatoare. Modelul OSI include un set de protocoale care încearcă să definească şi să standardizeze procesul comunicaţiilor de date. Protocoalele OSI au fost definite de către Organizaţia Internaţională de Standardizare (ISO) în anul 1984. Modelul OSI a fost susţinut şi adoptat de cele mai importante companii producătoare de calculatoare şi de echipamente de reţea, clienţi comerciali (enterprise) şi de marile guverne, începând cu Statele Unite. Este un concept care descrie modul în care comunicaţiile de date ar trebui să aibă loc, prin împărţirea procesului în şapte grupe numite niveluri (layers). Aceste niveluri includ, de fapt, protocoalele standard dezvoltate de ISO (International Organization for Standardization) şi alte organisme de standardizare, inclusiv IEEE (Institute of Electrical and Electronics Engineers), ANSI (American National Standards Institute) şi ITU (International Telecommunication Union), cunoscut anterior ca CCITT (Comité Consultatif Internaţional Téléphonique et Telegrafic). Modelul OSI nu este singurul model care defineşte comunicaţiile de date, există şi alte stive de protocoale definite pentru fiecare nivel. Modelul OSI stabileşte modul în care procesul ar trebui să fie divizat şi ce protocoale ar trebui să fie utilizate la fiecare nivel. În cazul în care un producător de echipamente pune în aplicare unul dintre protocoale la fiecare nivel, componentele de reţea produse ar trebui să fie compatibile cu cele oferite de alţi furnizori. Este modular, ceea ce înseamnă că fiecare strat succesiv al modelului OSI se află în strânsă legătură cu cel superior sau inferior. Cel puţin în teorie, putem substitui un 4
protocol cu altul în cadrul aceluiaşi nivel, fără a afecta funcţionarea nivelurilor OSI superioare sau inferioare. De exemplu, echipamentele hardware Token Ring sau Ethernet ar trebui să opereze cu mai multe servicii ale nivelurilor superioare, inclusiv protocoalele de transport, de reţea, aplicaţii şi interfeţe. Cu toate acestea, pentru ca această interoperabilitate să existe, producătorii trebuie să creeze produse care respectă specificaţiile modelului OSI. Deşi fiecare strat al modelului OSI asigură propriul set de funcţii, este posibilă gruparea nivelurilor în două categorii distincte. Primele patru niveluri, fizic, data link, network, precum şi transport, oferă funcţiile punct la punct necesare transferului de date între cele două sisteme. Aceste straturi furnizează protocoalele de comunicaţii asociate reţelei folosite, pentru a conecta două computere. Straturile superioare, application, presentation, precum şi nivelul session, oferă serviciile aplicaţie, necesare schimbului de informaţii. Nivelurile superioare permit ca două aplicatii, fiecare rulând pe un nod diferit de reţea, să interacţioneze prin intermediul serviciilor oferite de sistemele de operare. 2.2.1. Nivelurile Modelului OSI (Layers of OSI Reference Model) Modelul OSI împarte arhitectura reţelei în şapte niveluri, construite unul deasupra altuia, adaugând funcţionalitate serviciilor oferite de nivelul inferior. Modelul OSI nu precizează cum se construiesc nivelurile, dar insistă asupra serviciilor oferite de fiecare în parte şi specifică modul de comunicare între niveluri, prin intermediul interfeţelor. Fiecare producător poate implementa sau construi nivelurile aşa cum doreşte, însă fiecare nivel trebuie să furnizeze un anumit set de servicii. Modelul OSI are şapte straturi sau niveluri (layers) şi anume: Layer 7 Application Layer 6 Presentation Layer 5 Session Layer 4 Transport Layer 3 Network Layer 2 Data Link Layer 1 Physical Recomandăm următoarea formulă mnemotehnică: APSTNDP (All People 5
Seem To Need Data Processing) Nivelurile 7, 6, 5 sunt grupate într-un singur nivel şi se mai numesc Application Layers. Ele se ocupă de problemele legate de transferul de fluxuri de date între sisteme (controlul dialogului, controlul prezentării, criptare, compresie, interfaţa cu utilizatorul). Nivelurile 4, 3, 2, 1 se mai numesc şi Data Flow Layers. Ele se ocupă de problemele legate de transportul fizic al mesajelor în reţea (impulsuri electrice şi fenomenele legate de acestea, adresare fizică, adresare logică, recuperarea mesajelor pierdute). Figura 2.1 Nivelurile modelului OSI, comunicaţia point-to-point dintre două aplicaţii [2] 6