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).
mașină data flow |
localizare procesoare |
||
mașină multiprocesor |
circuite pe placă |
||
1 m |
sistem |
||
10 m |
încăpere |
||
rețea LAN |
clădire |
||
1 km |
campus |
||
rețea MAN/WAN |
oraș |
||
100 km |
țară |
||
Internet |
continent |
||
10.000 km |
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.
host
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).
A B C
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.
C B A
timp
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 ?
|