Retele de calculatoare
Introducere
Suntem în mijlocul unei revoluþii !
Revoluþia se datoreazã progresului tehnologic extraordinar ºi proiectãrii unor sisteme mai performante care folosesc puterea de calcul ºi facilitãþile de comunicare mult mai eficient. Caracteristica principalã a acestei revoluþii este convergenþa dintre tehnologia de calcul cu cea de comunicaþie.
În cadrul dezvoltãrii rapide a comunicaþiei între calculatoare douã au fost direcþiile de dezvoltare :
teleinformatica - distribuirea puterii de calcul bazatã pe reþele de calculatoare, adresatã în special unor centre specializate de calcul
telematica - comunicaþia pentru orice utilizator
Astãzi, datoritã reþelelor de calculatoare, companii cu zeci/sute de puncte de lucru worldwide, cu aplicaþi 10210l113k i tranzacþionale, sunt ceva comun. Mixarea avantajelor puterii de calcul ºi comunicaþiei au dus la noi organizãri ale sistemelor de calcul. Modelul centrului de calcul, cu un computer de putere mare (mainframe) ce serviseazã zeci/sute de clienþi, a devenit depãºitã. El este înlocuit cu modelul sistemului de calcul format din mai multe computere interconectate (staþie de lucru - workstation), ce lucreazã la acelaºi job. Aceste computere autonome interconectate (capabile de a schimba informaþii) printr-un mediu de comunicaþie formeazã o reþea de calculatoare. În aceste fel se exclud sisteme de tip master/slave, în care unul din calculatoare poate controla funcþionarea celorlalte. Relaþia dintre o reþea de calculatoare ºi sistem distribuit este cã, într-un sistem distribuit existenþa mai multor maºini de calcul este transparentã (invizibilã) pentru user. În cazul sistemelor distribuite, sistemul de operare selecteazã procesorul cel mai indicat pentru execuþie, rezultatele apãrând userului, indiferent de localizarea resurselor folosite. Cu alte cuvinte, un sistem distribuit este ca un singur calculator monoprocesor. Într-o reþea, userul trebuie în mod explicit sã asigneze joburile pe diverse maºini remote (sã mute fiºiere). Un sistem distribuit nu implicã aceste lucruri explicit, deoarece ele se realizeazã de cãtre sistem. Astfel, un sistem distribuit este un caz particular de reþea de calculatoare, cu un nivel suplimentar de software care permite transparenþa ºi coeziunea. Deosebirea deci între reþea de calculatoare ºi sistem distribuit este relativã la softwareul folosit (sistem de operare) ºi nu la hardware. Desigur, întrepãtrunderea între cele douã arhitecturi de calculatoare este suficient de largã. Diferenþa principalã constã în cine determinã comunicaþia : sistemul sau userul.
Obiective
Un prim obiectiv este de a partaja resursele, astfel ca hardwareul ºi diverse programe, date sã fie accesibile oricui, la orice distanþã. Un aspect al partajãrii resurselor este partajarea gradului de încãrcare a calculatoarelor.
Un al doilea obiectiv este siguranþa mare în funcþionare prin asigurarea mai multor surse pentru date. De exemplu, copii ale fiºierele pot fi stocate pe mai multe maºini, existã mai multe CPU (unitãþi de calcul) disponibile. Pentru aplicaþii militare, bancare, de control al traficului, capacitatea de continuare a lucrului în condiþii de degradare a sistemelor de calcul este de o mare importanþã.
Un al treilea obiectiv este micºorarea costului sistemelor de calcul. Calculatoarele mici au un raport preþ/performanþe mai bun decât cele mari. Se poate spune cã mainframe-urile au o putere de calcul de zeci de ori mai bunã decât a celui mai rapid procesor dar costul este de sute de ori mai mare.
Aceste aspecte au dus la construirea de calculatoare personale mai puternice, numite file-servere, pentru reþele locale unei companii de exemplu, numite LAN. Existã desigur ºi WAN, reþele rãspândite pe o arie geograficã mult mai mare. Problema care se pune este de mãrire a capacitãþii de prelucrare odatã cu adãugarea de noi noduri. Un element esenþial al unei reþele este mediumul de comunicare : fir cupru (telefon), radio, satelit, infraroºu, fibrã opticã. Nu trebuie neglijat aspectul social care îl implicã punerea în comunicaþie a atâtor calculatoare.
În fig 1 se prezintã o clasificare a sistemelor formate din procesoare interconectate funcþie de distanþa dintre ele. Primele sunt aºa numitele data flow machine, calculatoare paralele de putere mare, cu multe unitãþi de procesare lucrând sincronizat la acelaºi program. Vin apoi multiprocesoarele, sisteme ce comunicã prin memorie partajatã, apoi reþelele, sisteme ce comunicã prin schimb de mesaje. Legarea împreunã a mai multor reþele duce la o reþea generalã (Internet).
|
localizare procesoare |
||
|
circuite pe placã |
||
1 m |
sistem |
||
|
încãpere |
||
|
clãdire |
||
1 km |
campus |
||
|
oraº |
||
|
þarã |
||
|
continent |
||
|
planetã |
fig 1 - clasificarea interconectãrii procesoarelor dupã distanþã
Înlocuirea unui mainframe cu o reþea de workstations dintr-un LAN nu permite introducerea de noi aplicaþii spectaculoase, cu toate cã atât performanþa cât ºi siguranþa în funcþionare sunt avantaje. Reþelele WAN permit însã noi aplicaþii : acces la programe remote, acces la baze de date remote, facilitãþi de valoare adãugatã la comunicaþii.
Structuri de reþele
În fiecare reþea existã staþii prevãzute pentru execuþia programelor utilizatorului, numite hosts (end system). Aceste hosts transferã mesaje prin mediul fizic al reþelelor, numite subnets. Putem astfel distinge nivelul de comunicaþie implicat de subnets ºi nivelul aplicaþie implicat de hosts. În cele mai multe din reþele, subnets constã din douã componente : linii de transmisii ºi circuite de comutare. Circuitele se mai numesc canale, trunchiuri, etc. Comutatoarele sunt computere specializate folosite pentru interconectarea mai multor linii (IMP - Interface Message Processor). Astfel o linie de intrare se asociazã uneia de ieºire prin aceste noduri de comutare a pachetelor, sisteme intermediare, etc. În fig 2, la un IMP se pot conecta unul sau mai multe staþii. Traficul între hosts se face prin IMP. În mare, existã douã tipuri de subnets :
canale point-to-point
canale broadcast
În prima categorie intrã reþelele cu numeroase legãturi, cable, fiecare legãnd perechi de IMP-uri. Douã IMP-uri ce nu sunt legate direct, vor comunica prin intermediul altora. Transferul are loc astfel : când un mesaj (în contextul subnetului denumit pachet) este recepþionat de un IMP intermediar, este reþinut pânã ce ieºirea corespunzãtoare este disponibilã ºi apoi transmis. O astfel de reþea subnet se mai numeºte point-to-point, store-and-forward sau packet-switched. Aproapre toate reþelele de pe arii mari sunt subnets store-and-forward. Folosirea unei reþele point-to-point este direct dependentã de topologia de interconectare.
![]() |
|||
|
|||
fig 2 - hosts, IMP, subnet
În fig 3 se prezintã diverse topologii de reþele. LAN-urile au de obicei topologii regulate, spre deosebire de WAN care au structuri din cele mai variate (neregulate).
![]() | ![]() | ![]() |
|||
a) b) c)
![]() | ![]() | ![]() |
|||
d) e) f)
fig 3 - topologii pentru subnets point-to-point : a) stea, b) inel, c) arbore, d) completã, e) inele intersectate, f) neregulatã
A doua categorie de arhitecturi de subnets foloseºte broadcasting. Cele mai multe din LAN-uri ºi multe din WAN-uri folosesc acest tip. Într-un LAN, un IMP se reduce la cartela de reþea din computer, deci un IMP la un host. Sistemele cu broadcast partajeazã un canal unic. Pachetele trimise de o maºinã sunt recepþionate de toate celelalte. Un câmp din pachet specificã adresa nodului cãruia îi este adresat pachetul, deci prin verificarea acestui câmp un computer poate rejecta pachetul dacã nu îi este adresat. Broadcast permite ºi multiadresarea pachetelor la mai multe noduri (multicast) sau la toate nodurile dintr-o reþea (broadcast efectiv) prin utilizarea unui cod special de broadcast în câmpul de adresã. O schemã simplã de multicast este un grup de adrese ce au setat numai ele un bit pe 1 din câmpul de adresã (celelalte adrese vor avea bitul respectiv 0). Ceilalþi n-1 biþi din câmp formeazã un bit map corespunzãtor la n-1 grupuri. Orice maºinã poate aparþine la unul sau mai multe grupuri. În fig 4 se prezintã câteva posibilitãþi de broadcast pentru subnets. Într-o reþea tip bus (cablu continuu), la un moment dat, o maºinã este master ºi poate sã transmitã. Celelalte maºini sunt obligate sã se abþinã. Un mecanism de arbitraj rezolvã conflictele când douã sau mai multe maºini vor sã transmitã simultan. Mecanismul de arbitrare poate fi centralizat sau distribuit.
![]() |
||||||||||||||
![]() | ![]() |
|||||||||||||
![]() | ![]() | ![]() | ![]() |
|||||||||||
![]() |
||||||||||||||
a) b) c)
fig 4 - subnets cu broadcasting : a) bus, b) radio/satelit, c) inel
O altã posibilitate de broadcast este un sistem conectat prin radio/satelit. Fiecare IMP are o antenã pentru emisie/recepþie. Toate IMP-urile pot recepþiona ce vine de la satelit ºi chiar transmisii de la IMP-uri vecine. O a treia posibilitate de broadcast este legarea în inel. În inel, fiecare bit se propagã fãrã a aºtepta pachetul de care aparþine. În mod normal, primii biþi cãlãtoresc în inel înainte ca întregul pachet sã fi fost transmis. Desigur, sunt necesare reguli de arbitrare a acceselor simultane la inel, ca în toate sistemele cu broadcast. Subnets-urile cu broadcast pot fi împãrþite ºi în statice ºi dinamice, funcþie de tipul canalului alocat. O alocare staticã clasicã se face prin divizarea intervalului de timp în subintervale, ºi conform unei strategii round-robin, fiecãrui canal îi este alocat un slot egal cu un subinterval. Canalele statice nu folosesc foarte eficient capacitatea canalului, deoarece pot exista sloturi de timp în care sã nu se facã transmisie, dar care rãmân alocate. Acest impediment este eliminat de alocarea dinamicã, care asigneazã canale la cerere. Metodele de alocare dinamice sunt fie centralizate, fie distribuite. Cele centralizate presupun existenþa unui unitãþi de arbitrare a busului, de exemplu, care acceptã cereri ºi ia decizii pe baza unor algoritmi interni. În cele descentralizate, nu existã o entitate de coordonare, ci fiecare maºinã decide singurã dacã sã transmitã sau nu. Cu toate cã la prima vedere aceastã metodã este pasibilã de haos sau blocaj, algoritmii care existã ordoneazã cererile ºi permit o sincronizare perfectã a lor.
Timpi de întârziere în reþele point-to-point
Problema este : cât timp îi trebuie unui pachet sã ajungã de la un calculator la altul ? Iatã câteva exemple. Mai întãi sã considerãm un pachet ce conþine P biþi transmis cu o ratã de transmisie R bps (biþi pe secundã), de-a lungul unei linii de lungime L km. Semnalelor le trebuie 3.3 ms pentru parcurgerea unui km de cablu coaxial, twisted pair (pereche) sau între douã antene radio ºi 5 ms unui km de fibrã opticã. Astfel, semnalului îi trebuie PROP=L q sec pentru propagarea pe L km, unde q este 5 (-6) s/km pentru fibrã ºi q=3.3 (-6) s/km pentru cablu sau pereche. Timpul PROP este deci timpul de propagare a semnalului. Presupunem cã transmiþãtorul starteazã transmiterea pachetului la momentul 0. Transmiterea ultimului bit se va termina la momentul TRANS=P/R secunde. Timpul TRANS este timpul necesar emiterii pachetului de cãtre circuitul de transmisie de pe cartela de reþea. Biþii, convertiþi acum în semnale electrice, vor avea nevoie de timpul PROP pentru a se propagara pânã la ultimul. Putem spune cã pachetul a ajuns complet la receptor dupã timpul
T=P/R + Lq = TRANS + PROP (1)
Exemple
Tip |
q (ms/km) |
R (biþi/s) |
L (km) |
P (biþi) |
TRANS (ms) |
PROP (ms) |
fibrã |
| |||||
fibrã | ||||||
fibrã | ||||||
fibrã | ||||||
coax | ||||||
coax | ||||||
pereche |
Din tabelul prezentat se observã cã timpul de transmisie este neglijabil dacã rata de transmisie este mare iar întârzierea totalã T este datã de fapt de timpul de propagare. Este cazul reþelelor Ethernet. Analog, dacã rata de transmisie este micã, timpul de propagare este neglijabil, iar întârzierea T este datã de timpul de transmisie. Acesta este cazul transmisiei modemurilor pe o linie telefonicã, a liniilor seriale în general.
Întârzieri în reþele store-and-forward
Considerãm un fiºier descompus în N pachete de P biþi, transmis printr-o reþea store-and-forward de la computerul A la C prin B, fig 5. Presupunem cã transmisia se face cu rata R bps de-a lungul a L km de fibrã. Presupunem, de asemenea, cã L << 1 km, astfel cã neglijãm timpul de propagare (PROP=0).
|
|
|
fig 5 - A, B, C legate într-o reþea store-and-forward
Problema este : în cât timp ajunge fiºierul de la A la C ? Cheia problemei o reprezintã pipeliningul care se realizeazã (suprapunerea unor activitãþi). Computerul A începe transmisia la momentul 0. La momentul TRANS=P/R, primul pachet transmis ajunge la B (am presupus PROP=0). La momentul TRANS, A începe transmisia celui de-al doilea pachet ºi în acelaºi timp B transmite primul pachet cãtre C. La 2 TRANS, primul pachet a ajuns la C. Similar, la 3 TRANS, al treilea pachet ajunge la C. Continuând raþionamentul, al N-lea pachet va ajunge la C la momentul (N+1) TRANS. Se observã, cã în situaþia transmisiei fiºierului ca un singur pachet mare, întârzierea ar fi fost de 2N TRANS, faþã de (N+1) TRANS. Raportul între cei doi timpi de întârziere se mai numeºte factorul de câºtig al unei reþele store-and-forward. Efectul de pipeline în reþele store-and-forward este prezentat în fig 6.
![]() |
|
|
|
![]() |
|||
![]() |
|||
|
|||
fig 6 - efect de pipeline în reþea store-and-forward
Sintezã
La ce folosesc reþelele ?
partajarea resurselor : imprimante, discuri, modeme, linii
partajarea informaþiilor : fiºiere, poºtã, ºtiri, fax, audio, movie, videoconferencing
Ce tipuri de reþele existã :
prima reþea : transmisia din om în om, apoi telegraful (reþea în timp
real cu comutaþie), serviciul poºtal (
reþeaua telefonicã
primele reþele de calculatoare : point-to-point închiriate, Ethernet (cu partajarea mediului - LAN)
televiziunea prin cablu : semnalele NTSC cu broadcasting necesitã benzi largi de frecvenþã
Internet : computere interconectate prin TCP/IP
fãrã fir : permit acces mobil sau peste ocean
ATM : viitorul reþelelor este în tehnologiile de comutare rapidã a pachetelor, unde calitatea serviciilor poate fi mãsuratã ºi garantatã
Probleme
1. Considerãm 2n-1 IMP-uri conectate în topologiile :
a) stea (nodul central este un comutator ºi nu IMP)
b) inel
c) interconectare completã
Gãsiþi pentru fiecare topologie numãrul mediu de noduri (hops) pentru un trafic IPM-IMP.
2. Avem 2n-1 IMP-uri interconectate într-un arbore binar, fiecare nod al arborelui fiind un IMP. IMP-ul i comunicã cu IMP-ul j prin rãdãcinã. Gãsiþi expresia numãrului mediu de hops pentru transferul unui mesaj ºi n oarecare.
3. La o subnet cu broadcast, timpul este împãrþit în sloturi, fiecare din cele n hosts accesând canalul, în cadrul slotului sãu, cu probabilitatea p. Ce timp se pierde ?
4 Cât timp dureazã transmisia unui bit la o ratã de 1 Gbps ?
5 Cât timp dureazã transmisia a x kb la o ratã de y Mbps ? ( fracþie de x ºi y)
6 Se doreºte transmiterea a 10 pachete de la computerul A la C prin B. Neglijând timpii de propagare, cât dureazã transmisia dacã timpul de transmisie este TRANSP ?
7 Presupunem cã nu neglijãm timpii de transmisie ºi cã legãturile între calculatoare sunt în lungime de 10 km, fibrã opticã. Fiecare pachet are 10000 biþi iar rata de transmisie este de 10 Mbps. Cât timp dureazã transmisia store-and-forward între A ºi C ?
8 În lucrare s-au definit timpul de propagare în reþea ºi timpul de transmisie a unui pachet. Se definesc :
timpul de pachetizare (PD), ca fiind timpul de conversie a unui ºir de biþi în pachete
timpul de procesare (PROC), ca fiind timpul necesar de gãsire a adresei ºi rutare a unui pachet într-un nod
timpul de aºteptare (QD), ca fiind timpul petrecut de pachet aºteptând servisarea într-un nod (existã o coadã de aºteptare pentru pachete)
Avem un fiºier de 100000 biþi care dorim sã-l transferãm prin reþea. Pachetele au o lungime de 10000 biþi (neglijãm headerele la fiecare). Existã 5 noduri intermediare (neglijãm timpii de aºteptare în nod), interconectate prin fibrã opticã de lungime 10 km. Rata de transmisie este de 10 Mbps. Tot fiºierul trebuie pachetizat în final, ceea ce necesitã 50 ms. Fiecare nod pierde 50 ms pentru operaþii cu tabele interne, la fiecare pachet. Cât timp dureazã transmisia întregului fiºier prin reþea ?
9 Avem o linie de comunicaþie cu rata de 10000 bps. Un fiºier are B biþi, trimiºi în pachete de P biþi. Fiecare pachet conþine 16 biþi suplimentari pentru controlul erorilor. Douã pachete trebuie separate cu cel puþin 10 ms. Gãsiþi timpul total pentru transmisia fiºierului ca funcþie de P ºi B.
10. Dorim implementarea unei transmisii de pachete-voce. La transmisie ºi recepþie existã interfeþe cu o ratã de transmisie/recepþie de 64 kbps a pachetelor de 48 octeþi. Timpul de propagare este de 1 ms. Care este timpul de propagare pentru k pachete ?
|