Networking and communication
domeniul networking and communication include analiza, proiectarea, implementarea și utilizarea rețelelor locale, de arie largă și mobile care leagă computerele împreună. Internetul în sine este o rețea care face posibil pentru aproape toate computerele din lume pentru a comunica.
o rețea de calculatoare leagă computerele împreună printr-o combinație de semnale luminoase infraroșii, transmisii de unde radio, linii telefonice, cabluri de televiziune și legături prin satelit. Provocarea pentru informaticieni a fost să dezvolte protocoale (reguli standardizate pentru formatul și schimbul de mesaje) care să permită proceselor care rulează pe computerele gazdă să interpreteze semnalele pe care le primesc și să se angajeze în “conversații” semnificative pentru a îndeplini sarcini în numele utilizatorilor. Protocoalele de rețea includ, de asemenea, controlul fluxului, care împiedică un expeditor de date să umple un receptor cu mesaje pe care nu are timp să le proceseze sau spațiu de stocat și controlul erorilor, care implică detectarea erorilor de transmisie și retrimiterea automată a mesajelor pentru a corecta astfel de erori. (Pentru unele dintre detaliile tehnice ale detectării și corectării erorilor, a se vedea teoria informațiilor.)
standardizarea protocoalelor este un efort internațional. Deoarece altfel ar fi imposibil ca diferite tipuri de mașini și sisteme de Operare să comunice între ele, preocuparea cheie a fost ca componentele sistemului (computerele) să fie “deschise”.”Această terminologie provine din standardele de comunicare Open systems interconnection (OSI), stabilite de Organizația Internațională pentru Standardizare. Modelul de referință OSI specifică standardele Protocolului de rețea în șapte straturi. Fiecare strat este definit de funcțiile pe care se bazează din stratul de sub el și de serviciile pe care le furnizează stratului de deasupra acestuia.
în partea de jos a protocolului se află stratul fizic, care conține reguli pentru transportul de biți pe o legătură fizică. Stratul de legătură de date gestionează “pachete” de date de dimensiuni standard și adaugă fiabilitate sub formă de biți de detectare a erorilor și de control al fluxului. Straturile de rețea și de transport împart mesajele în pachetele de dimensiuni standard și le direcționează către destinațiile lor. Stratul de sesiune acceptă interacțiunile dintre aplicații pe două mașini de comunicare. De exemplu, oferă un mecanism cu care să inserați puncte de control (salvând starea curentă a unei sarcini) într-un transfer de fișiere lung, astfel încât, în caz de eșec, numai datele de după ultimul punct de control trebuie retransmise. Stratul de prezentare este preocupat de funcții care codifică date, astfel încât sistemele eterogene să se poată angaja într-o comunicare semnificativă. La cel mai înalt nivel sunt protocoalele care acceptă aplicații specifice. Un exemplu de astfel de aplicație este file transfer protocol (FTP), care guvernează transferul fișierelor de la o gazdă la alta.
dezvoltarea rețelelor și a protocoalelor de comunicare a generat, de asemenea, sisteme distribuite, în care computerele conectate într-o rețea partajează date și sarcini de procesare. Un sistem de baze de date distribuite, de exemplu, are o bază de date răspândită între (sau reprodusă la) diferite site-uri de rețea. Datele sunt reproduse la” site-uri oglindă”, iar replicarea poate îmbunătăți disponibilitatea și fiabilitatea. Un SGBD distribuit gestionează o bază de date ale cărei componente sunt distribuite pe mai multe computere dintr-o rețea.
o rețea client-server este un sistem distribuit în care baza de date se află pe un computer (serverul) și utilizatorii se conectează la acest computer prin rețea de la propriile computere (clienții). Serverul furnizează date și răspunde solicitărilor fiecărui client, în timp ce fiecare client accesează datele de pe server într-un mod independent și ignorant de prezența altor clienți care accesează aceeași bază de date. Sistemele Client-server necesită ca acțiunile individuale de la mai mulți clienți la aceeași parte a bazei de date a serverului să fie sincronizate, astfel încât conflictele să fie rezolvate într-un mod rezonabil. De exemplu, rezervările companiilor aeriene sunt implementate folosind un model client-server. Serverul conține toate datele despre zborurile viitoare, cum ar fi rezervările curente și atribuirea locurilor. Fiecare client dorește să acceseze aceste date în scopul rezervării unui zbor, obținerii unei cesiuni de loc și plății zborului. În timpul acestui proces, este probabil ca două sau mai multe solicitări ale clienților să dorească să acceseze același zbor și să rămână un singur loc pentru a fi atribuit. Software-ul trebuie să sincronizeze aceste două solicitări, astfel încât scaunul rămas să fie atribuit într-un mod rațional (de obicei persoanei care a făcut prima solicitare).
un alt tip popular de sistem distribuit este rețeaua peer-to-peer. Spre deosebire de rețelele client-server, o rețea peer-to-peer presupune că fiecare computer (utilizator) conectat la acesta poate acționa atât ca client, cât și ca server; astfel, toată lumea din rețea este un peer. Această strategie are sens pentru grupurile care partajează Colecții audio pe Internet și pentru organizarea rețelelor sociale precum LinkedIn și Facebook. Fiecare persoană conectată la o astfel de rețea primește atât informații de la alții, cât și împărtășește propriile informații cu alții.