Sunteți pe pagina 1din 335

SEC. 1.

HARDWARE-UL REELEI

13

craiilor, legea asigur n mod explicit dreptul unei persoane acuzate de a-i chema acuzatorul n faa
Curii. Acuzaiile anonime nu pot servi drept prob.
Pe scurt, reelele de calculatoare, asemenea industriei tipografice cu 500 de ani n urm, permit
cetenilor obinuii s-i lanseze opiniile prin mijloace diferite i ctre audiene diferite fa de cele
de pn acum. Aceast libertate nou descoperit aduce cu ea probleme nerezolvate de ordin social,
politic i moral.
Odat cu binele vine i rul. Viaa pare a fi construit astfel. Internetul ofer posibilitatea de a
gsi repede informaii, dar multe dintre ele sunt greit informate, tendenioase sau chiar complet
eronate. Sfatul medical pe care tocmai l-ai luat de pe Internet poate s vin de la un laureat al premiului Nobel sau de la un repetent din liceu. Reelele de calculatoare au introdus de asemenea i noi
tipuri de comportamente antisociale i infracionale. Transmiterea electronic a fleacurilor i gunoaielor (eng.: junk) a devenit parte din via pentru c oamenii au colecionat milioane de adrese pe
care le vnd pe CD-ROM-uri aa-ziilor ageni de marketing. Mesajele care au un coninut activ (de
obicei programe sau macrouri care se execut pe maina receptorului) pot avea efecte distructive.
Furtul de identitate devine o problem serioas, pentru c hoii colecteaz destule informaii despre o potenial victim pentru a putea obine cri de credit i alte documente n numele acesteia.
n fine, posibilitatea de a transmite digital muzic i filme a deschis ua pentru nclcarea masiv a
drepturilor de autor care sunt greu de depistat i pedepsit.
Multe dintre aceste probleme puteau fi rezolvate dac industria de calculatoare ar fi luat n serios
securitatea calculatoarelor. Dac toate mesajele erau criptate i autentificate, ar fi fost mai greu s se
comit nedrepti sau furturi. Aceast tehnologie este bine conturat i o vom studia n detaliu n
cap. 8. Problema este c vnztorii de hardware i aplicaii software tiu c introducerea unor atribute de securitate cost bani, iar cumprtorii nu solicit astfel de atribute. Mai mult, un numr substanial de probleme este determinat de aplicaiile care funcioneaz cu erori, ceea ce se ntmpl
pentru c productorii adaug din ce n ce mai multe faciliti programelor lor, ceea ce nseamn
inevitabil mai mult cod i de aceea mai multe erori. O tax pentru noile faciliti ar putea ajuta, dar
ar face produsele greu de vndut n anumite segmente de pia. Plata unei despgubiri pentru programele care funcioneaz eronat ar fi foarte cinstit, doar c ar duce la faliment ntreaga industrie
software chiar din primul an.

1.2 HARDWARE-UL REELEI


A venit acum timpul s ne ndreptm atenia de la aplicaiile i problemele sociale ale interconectrii (partea distractiv) la aspectele tehnice care intervin n proiectarea reelelor (partea serioas
de lucru). Dei nu exist o taxonomie general acceptat n care pot fi ncadrate toate reelele de calculatoare, sunt extrem de importante dou criterii: tehnologia de transmisie i scara la care opereaz
reeaua. Vom examina pe rnd fiecare din aceste aspecte.
n principal exist dou tipuri de tehnologii de transmisie care se folosesc pe scar larg. Acestea sunt:
1. Legturi cu difuzare.
2. Legturi punct-la-punct.

14

INTRODUCERE

CAP. 1

Reelele cu difuzare au un singur canal de comunicaii care este partajat de toate mainile din reea. Orice main poate trimite mesaje scurte, numite n anumite contexte pachete, care sunt primite
de toate celelalte maini. Un cmp de adres din pachet specific maina creia i este adresat pachetul. La recepionarea unui pachet, o main controleaz cmpul de adres. Dac pachetul i este
adresat, maina l prelucreaz; dac este trimis pentru o alt main, pachetul este ignorat.
S considerm, ca analogie, c cineva se afl la captul unui coridor cu multe ncperi i strig
,,Watson, vino aici: Am nevoie de tine. Dei pachetul poate fi primit (auzit) de mult lume, numai
Watson va rspunde. Ceilali pur i simplu l ignor. Un alt exemplu ar fi un aeroport unde se anun
c toi pasagerii zborului 644 sunt rugai s se prezinte la poarta 12.
Sistemele cu difuzare permit n general i adresarea unui pachet ctre toate destinaiile, prin folosirea unui cod special n cmpul de adres. Un pachet transmis cu acest cod este primit i prelucrat
de toate mainile din reea. Acest mod de operare se numete difuzare. Unele sisteme cu difuzare
suport de asemenea transmisia la un subset de maini, operaie cunoscut sub numele de trimitere
multipl. Una din schemele posibile este s se rezerve un bit pentru a indica trimiterea multipl.
Restul de n - 1 bii de adres pot forma un numr de grup. O main se poate ,,abona la orice grup
sau la toate grupurile. Un pachet trimis unui anumit grup va ajunge la toate mainile abonate la grupul respectiv.
Prin contrast, reelele punct-la-punct dispun de numeroase conexiuni ntre perechi de maini individuale. Pentru a ajunge de la surs la destinaie pe o reea de acest tip, un pachet s-ar putea s fie
nevoit s treac prin una sau mai multe maini intermediare. Deseori sunt posibile trasee multiple,
de diferite lungimi, i de aceea descoperirea drumurilor celor mai potrivite este foarte important.
Ca o regul general (dei exist numeroase excepii), reelele mai mici, localizate geografic, tind s
utilizeze difuzarea, n timp ce reelele mai mari sunt de obicei punct-la-punct. Transmisiile punct la
punct cu un sigur transmitor i un singur receptor sunt numite uneori i unicasting.

Fig. 1-6. Clasificarea procesoarelor interconectate n funcie de dimensiune.

Un criteriu alternativ pentru clasificarea reelelor este mrimea lor. n fig. 1-6 este prezentat o
clasificare a sistemelor cu procesoare multiple dup mrimea lor fizic. Prima categorie o reprezint
reelele personale (personal area networks), reele gndite pentru o singur persoan. De exemplu,

SEC. 1.2

HARDWARE-UL REELEI

15

o reea fr fir care conecteaz calculatorul cu perifericele sale (tastatur, imprimant, mouse) este
o reea personal. De asemenea, un PDA care controleaz aparatul auditiv al utilizatorului sau
regulatorul lui de ritm cardiac se ncadreaz n aceeai categorie. Mai departe de aceste reele
personale sunt reele cu domenii mai mari. Acestea pot fi mprite n reele locale, reele metropolitane i reele larg rspndite geografic. n sfrit, prin conectarea a dou sau mai multe reele
rezult o inter-reea. Internet-ul este un exemplu bine cunoscut de inter-reea. Distana este un
criteriu de clasificare important, pentru c, la scri diferite, sunt folosite tehnici diferite. n aceast
carte ne vom ocupa de reele din toate aceste categorii. Prezentm mai jos o scurt introduce n
subiectul echipamentelor de reea.

1.2.1

Reele locale

Reelele locale (Local Area Networks), denumite n general LAN-uri, sunt reele private localizate ntr-o singur cldire sau ntr-un campus de cel mult civa kilometri. Ele sunt frecvent utilizate pentru a conecta calculatoarele personale i staiile de lucru din birourile companiilor i fabricilor, n scopul de a partaja resurse (imprimante, de exemplu) i de a schimba informaii. LAN-urile
se disting de alte tipuri de reele prin trei caracteristici: (1) mrime, (2) tehnologie de transmisie i
(3) topologie.
LAN-urile au dimensiuni restrnse, ceea ce nseamn c timpul de transmisie n cazul cel mai defavorabil este limitat i cunoscut dinainte. Cunoscnd aceast limit, este posibil s utilizm anumite
tehnici de proiectare care altfel nu ar fi fost posibile. Totodat, se simplific administrarea reelei.
LAN-urile utilizeaz frecvent o tehnologie de transmisie care const dintr-un singur cablu la care sunt ataate toate mainile, aa cum erau odat cablurile telefonice comune n zonele rurale.
LAN-urile tradiionale funcioneaz la viteze cuprinse ntre 10 i 100 Mbps, au ntrzieri mici (microsecunde sau nanosecunde) i produc erori foarte puine. LAN-urile mai noi pot opera la viteze
mai mari, pn la 10 Gbps. n aceast carte vom pstra tradiia i vom msura vitezele de transmisie pe linii n megabii/sec (1 Mbps reprezint 1.000.000 bii), i gigabii/sec (1 Gbps reprezint
1.000.000.000 bii).

Fig. 1-7. Dou reele cu difuzare. (a) Magistral. (b) Inel.

Pentru LAN-urile cu difuzare sunt posibile diverse topologii. Fig. 1-7 prezint dou dintre ele.
ntr-o reea cu magistral (cu cablu liniar), n fiecare moment cel mult una dintre maini este master
i are dreptul s transmit. Restul mainilor nu pot transmite. Cnd dou sau mai multe maini vor

16

INTRODUCERE

CAP. 1

s transmit simultan, este necesar un mecanism de arbitrare. Mecanismul de arbitrare poate fi centralizat sau distribuit. De exemplu, IEEE 802.3, popular numit EthernetTM, este o reea cu difuzare
bazat pe magistral cu control descentralizat, lucrnd la viteze ntre 10 Mbps i 10 Gbps. Calculatoarele dintr-un Ethernet pot transmite oricnd doresc; dac dou sau mai multe pachete se ciocnesc, fiecare calculator ateapt o perioad de timp aleatorie i apoi ncearc din nou.
Un al doilea tip de reea cu difuzare este reeaua n inel. ntr-un inel fiecare bit se propag independent de ceilali, fr s atepte restul pachetului cruia i aparine. n mod tipic, fiecare bit navigheaz pe circumferina ntregului inel ntr-un interval de timp n care se transmit doar civa bii, de
multe ori nainte chiar ca ntregul pachet s fi fost transmis. Ca n orice alt sistem cu difuzare, este
nevoie de o regul pentru a arbitra accesele simultane la inel. Pentru aceasta se utilizeaz diferite
metode, care vor fi discutate n carte mai trziu. IEEE 802.5 (inelul cu jeton de la IBM) este un
LAN popular de tip inel, care opereaz la 4 i la 16 Mbps. Un alt exemplu de reea de tip inel este
FDDI (Fiber Distributed Data Interface, rom: Interfa de date distribuite pe fibr optic).
Reelele cu difuzare pot fi n continuare mprite n statice i dinamice, n funcie de modul de
alocare al canalului. O metod tipic de alocare static ar fi s divizm timpul n intervale discrete i
s rulm un algoritm round-robin, lsnd fiecare main s emit numai atunci cnd i vine rndul.
Alocarea static irosete capacitatea canalului atunci cnd o main nu are nimic de transmis n cuanta de timp care i-a fost alocat, astfel c majoritatea sistemelor ncearc s aloce canalul dinamic
(la cerere).
Metodele de alocare dinamic pentru un canal comun sunt fie centralizate, fie descentralizate. n
cazul metodei centralizate de alocare a canalului exist o singur entitate, de pild o unitate de arbitrare a magistralei, care determin cine urmeaz la rnd. Poate face acest lucru acceptnd cereri i
lund o decizie conform unui algoritm intern. n cazul metodei descentralizate de alocare a canalului
nu exist o entitate central; fiecare main trebuie s hotrasc pentru ea nsi dac s transmit
sau nu. S-ar putea crede c n acest fel se ajunge totdeauna la haos, dar lucrurile nu stau aa. Vom
studia mai trziu numeroi algoritmi proiectai s refac ordinea dintr-un potenial haos.

1.2.2

Reele metropolitane

O reea metropolitan (Metropolitan Area Network), sau MAN (plural: MAN-uri) deservete un
ora. Cel mai bun exemplu de MAN este reeaua de televiziune prin cablu disponibil n cele mai
multe orae. Acest sistem s-a dezvoltat de la primele antene colective folosite n zone n care semnalul recepionat prin aer era foarte slab. n aceste sisteme timpurii, o anten foarte mare era amplasat pe vrful celui mai apropiat deal i semnalul captat era retransmis ctre casele abonailor.
La nceput, acestea erau sisteme proiectate local, ad-hoc. Apoi companiile au nceput s se implice n aceast afacere, obinnd contracte de la municipalitile oraelor pentru a cabla chiar i
ntreg oraul. Urmtorul pas a fost programarea televiziunii i chiar canale de televiziune produse
numai pentru furnizarea prin cablu. De cele mai multe ori aceste canale sunt foarte specializate, pe
domenii precum tirile, sporturile, gastronomia, grdinritul, i altele. Dar nc de la nceputuri i
pn n ultima perioad a anilor 1990, aceste reele erau exclusiv dedicate recepiei de televiziune.
Din momentul n care Internet-ul a nceput s atrag audiena de mas, operatorii de reele de
cablu TV au realizat c, dac vor face anumite schimbri n sistem, ar putea s ofere servicii bidirecionale n Internet n prile nefolosite ale spectrului. La acel moment, sistemul de cablu TV a nceput s se transforme dintr-o soluie de a distribui semnalul TV n ora ntr-o reea metropolitan. La
o prim aproximare, o MAN poate s arate oarecum similar cu sistemul prezentat n fig. 1-8.

SEC. 1.2

HARDWARE-UL REELEI

17

Fig. 1-8. O reea metropolitan care se bazeaz pe cablu TV.

n aceast figur se vd att semnalele de televiziune ct i Internet-ul trimise ntr-un centralizator (head end) pentru a fi apoi redistribuite n casele oamenilor. Vom reveni la acest subiect n detaliu n cap. 2.
Televiziunea prin cablu nu este singurul MAN. Ultimele dezvoltri n domeniul accesului la Internet fr fir, a dus la dezvoltarea unei noi reele metropolitane care a fost standardizat cu numele
de IEEE 802.16. Vom studia acest domeniu n cap. 2.

1.2.3

Reele larg rspndite geografic

O reea larg rspndit geografic (Wide Area Network), sau WAN, acoper o arie geografic ntins - deseori o ar sau un continent ntreg. Reeaua conine o colecie de maini utilizate pentru a
executa programele utilizatorilor (adic aplicaii). n concordan cu termenul uzual, vom numi
aceste maini gazde. Gazdele sunt conectate printr-o subreea de comunicaie sau, pe scurt, subreea. Gazdele aparin clienilor (de exemplu calculatoarele personale ale oamenilor), dei subreeaua
de comunicaie aparine i este exploatat, de cele mai multe ori, de o companie de telefonie sau de
un furnizor de servicii Internet (ISP). Sarcina subreelei este s transporte mesajele de la gazd la
gazd, exact aa cum sistemul telefonic transmite cuvintele de la vorbitor la asculttor. Prin separarea aspectelor de pur comunicaie ale reelei (subreelei) de aspectele referitoare la aplicaii (gazde), proiectarea ntregii reele se simplific mult.
n majoritatea reelelor larg rspndite geografic, subreeaua este format din dou componente
distincte: liniile de transmisie i elementele de comutare. Liniile de transmisie transport biii ntre
maini. Ele pot fi alctuite din fire de cupru, fibr optic sau chiar legturi radio. Elementele de comutare sunt calculatoare specializate, folosite pentru a conecta dou sau mai multe linii de transmisie. Cnd sosesc date pe o anumit linie, elementul de comutare trebuie s aleag o nou linie pentru a retransmite datele mai departe. Din pcate, nu exist nici o terminologie standard pentru de-

18

INTRODUCERE

CAP. 1

numirea acestor calculatoare. Aceste elemente de comutare au primit diverse nume n trecut; numele de ruter (router1) este acum cel mai folosit.
n acest model, prezentat n fig. 1-9, fiecare gazd este de cele mai multe ori conectat la un
LAN n care exist un ruter, dei n anumite cazuri o gazd poate fi legat direct cu un ruter. Colecia de linii de comunicaie i de rutere (dar nu i gazdele) formeaz subreeaua.

Fig. 1-9. Relaia dintre gazde i subreea.

Merit s facem un scurt comentariu n jurul termenului de ,,subreea. Iniial, singura sa accepiune se referea la colecia ruterelor i liniilor de comunicaie care mutau pachetele de la gazda surs
la gazda destinaie. Totui, civa ani mai trziu, cuvntul a mai cptat un al doilea neles, n conjuncie cu adresarea reelelor (pe care o vom discuta n Cap. 5). Din nefericire, nu exist o alternativ larg acceptat pentru nelesul su iniial, drept care noi vom folosi acest termen, cu unele rezerve, n ambele sensuri. Din context, va fi totdeauna clar care din ele este subneles.
n cazul celor mai multe WAN-uri, reeaua conine numeroase linii de transmisie, fiecare din ele
legnd o pereche de rutere. Dac dou rutere nu mpart un acelai cablu, dar doresc s comunice,
atunci ele trebuie s fac acest lucru indirect, prin intermediul altor rutere. Cnd un pachet este
transmis de la un ruter la altul prin intermediul unuia sau mai multor rutere, pachetul este primit n
ntregime de fiecare ruter intermediar, este reinut acolo pn cnd linia de ieire cerut devine liber i apoi este retransmis. O subreea care funcioneaz pe acest principiu se numete subreea memoreaz-i-retransmite sau subreea cu comutare de pachete. Aproape toate reelele larg rspndite
geografic (excepie fcnd cele care utilizeaz satelii) au subreele memoreaz-i-retransmite. Cnd
pachetele sunt mici i au aceeai mrime, ele sunt adesea numite celule.
Principiul de funcionare a unui WAN cu comutare de pachete este att de important nct merit s mai adugm cteva cuvinte despre el. n general, atunci cnd un proces al unei gazde are un
mesaj de transmis ctre un proces de pe o alt gazd, gazda care transmite va sparge mesajul n pachete, fiecare dintre ele reinndu-i numrul de ordine din secven. Aceste pachete sunt apoi
transmise n reea unul cte unul ntr-o succesiune rapid. Pachetele sunt transportate individual
prin reea i depozitate la gazda receptoare, unde sunt reasamblate n mesajul iniial i furnizate pro-

Din pcate, unii l pronun ca englezescul rooter i alii prefer s l asocieze ca pronunie cu doubter.
Determinarea pronuniei corecte n limba englez va fi lsat ca exerciiu cititorului. (rspunsul pe care l vei
afla poate depinde de zona n care ntrebai).

SEC. 1.2

HARDWARE-UL REELEI

19

cesului receptor. Un flux de pachete rezultat din descompunerea unui mesaj iniial oarecare este
prezentat n fig. 1-10.

Fig. 1-10. Un flux de pachete de la transmitor la receptor.

n aceast figur, toate pachetele parcurg ruta A-C-E, n loc de A-B-D-E sau A-C-D-E. n unele
reele, toate pachetele aparinnd unui mesaj dat trebuie s urmeze aceeai rut; n altele, fiecare
pachet este dirijat separat. Desigur, dac A-C-E este cea mai bun rut, toate pachetele pot fi
transmise pe acolo, chiar dac fiecare dintre ele este dirijat individual.
Deciziile de dirijare se iau la nivelul local al ruterului. Cnd un pachet ajunge la ruterul A, este
de datoria lui A s decid dac acest pachet trebuie trimis pe linia ctre B sau pe linia ctre C. Modul n care ruterul A ia aceast decizie este denumit algoritm de rutare. Exist muli astfel de algoritmi. Pe unii dintre ei i vom studia n detaliu n cap. 5.
Nu toate WAN-urile sunt cu comutare de pachete. O a doua posibilitate pentru un WAN este un
sistem de satelii. Fiecare ruter are o anten prin care poate trimite i poate primi. Toate ruterele pot
asculta ieirea de la satelit, iar n anumite cazuri pot s asculte chiar i transmisia celorlalte rutere
ctre satelit. Uneori, ruterele sunt conectate la o reea punct-la-punct i numai unele dintre ele pot
avea antene de satelit. Reelele satelit sunt n mod implicit reele cu difuzare i sunt foarte utile cnd
proprietatea de difuzare este important.

1.2.4

Reele fr fir

Comunicaiile digitale fr fir nu reprezint o idee nou. nc din 1901, fizicianul italian
Guglielmo Marconi a realizat legtura ntre un vapor i un punct de pe coast folosind telegraful
fr fir i codul Morse (punctele i liniile sunt, n definitiv, binare). Sistemele radio moderne au performane mai bune, dar ideea fundamental a rmas aceeai.
La o prim aproximare, reelele fr fir pot fi mprite n 3 mari categorii:
1.
2.
3.

Interconectarea componentelor unui sistem


LAN-uri fr fir
WAN-uri fr fir

Interconectarea componentelor se refer numai la interconectarea componentelor unui calculator folosind unde radio cu raz mic de aciune. Aproape orice calculator are un monitor, o tastatur, un mouse i o imprimant legate la unitatea central prin cabluri. Muli dintre noii utilizatori au
probleme cu conectarea tuturor cablurilor exact n mufele micue n care trebuie (chiar dac acestea

20

INTRODUCERE

CAP. 1

sunt de cele mai multe ori codificate pe culori), aa c productorii de calculatoare ofer opiunea
de a trimite un tehnician pentru instalare. n consecin, cteva companii s-au adunat pentru a proiecta o reea fr fir cu raz mic de aciune denumit Bluetooth pentru a conecta toate aceste componente fr cabluri. De asemenea, Bluetooth permite camerelor digitale, ctilor, scanerelor i altor dispozitive s se conecteze la calculator prin simpla poziionare n zona acoperit de reea. Fr
cabluri, fr instalarea de drivere, doar poziionare, pornire i ... merge. Pentru muli oameni aceast
uurin n utilizare este un mare avantaj.
n cea mai simpl form, reelele de interconectare n sistem folosesc paradigma stpn-sclav
(master-slave) din fig. 1-11(a). Unitatea central a sistemului este n mod normal stpnul, care discut cu perifericele ca sclavi. Stpnul le comunic sclavilor ce adrese s foloseasc, cnd pot s difuzeze mesaje, ct timp pot s transmit, ce frecvene pot s foloseasc, i aa mai departe. Vom discuta despre Bluetooth n detaliu n cap. 4.

Fig. 1-11. (a) Configuraie Bluetooth. (b) Reea local fr fir.

Urmtoarea treapt n reelele fr fir o reprezint reelele locale fr fir. Acestea sunt sisteme
n care fiecare calculator are un modem radio i o anten cu care poate comunica cu alte calculatoare. De multe ori exist o anten n tavan cu care mainile vorbesc, aa cum se poate vedea n fig. 111(b). Oricum, dac sistemele sunt destul de apropiate, ele pot comunica direct unul cu altul ntr-o
configuraie punct-la-punct. Reelele locale fr fir devin din ce n ce mai utilizate n birouri mai mici
i acas, unde instalarea unei reele Ethernet este considerat prea complicat, precum i n cldiri
de birouri mai vechi, n cantinele companiilor, n camerele de conferine, i n alte asemenea locuri.
Exist un standard pentru reele locale fr fir, numit IEEE 802.11, pe care l implementeaz majoritatea sistemelor i care devine din ce n ce mai rspndit. l vom discuta n cap. 4.
Cea de-a treia categorie de reele fr fir este folosit n sistemele rspndite pe arii geografice
largi (Wide Area Networks). Reeaua radio utilizat de telefonia mobil este un exemplu de sistem
fr fir cu lrgime de band redus. Acest sistem este deja la generaia a treia. Prima generaie era
analogic i numai pentru voce. A doua generaie era digital, dar numai pentru voce. Cea de-a treia
generaie este digital i este utilizat att pentru voce ct i pentru date. ntr-un anume sens, reelele celulare fr fir sunt foarte asemntoare cu reelele locale fr fir, cu excepia faptului c distan-

SEC. 1.2

HARDWARE-UL REELEI

21

ele implicate sunt mult mai mari, iar ratele de transfer sunt mult mai mici. Reelele locale fr fir
pot opera la rate de pn la 50 Mbps pe distane de zeci de metri. Sistemele celulare pot opera sub 1
Mbps, dar distanele dintre staia de baz i calculator sau telefon este msurat mai degrab n kilometri dect n metri. Vom avea multe de spus despre aceste reele n cap. 2.
n plus fa de aceste reele de vitez redus, sunt dezvoltate i WAN-uri cu lrgime de band
mare. Important este n primul rnd accesul la Internet de acas sau din cadrul companiei prin conexiune rapid fr fir, eliminnd necesitatea folosirii sistemului de telefonie. Acest serviciu este de
multe ori denumit serviciu local de distribuire multipunct. l vom studia mai trziu n carte. A fost
dezvoltat i un standard al su, numit IEEE 802.16. l vom examina n cap. 4.
Aproape toate reelele ajung mai devreme sau mai trziu s fie parte dintr-o reea cablat pentru
a oferi acces la fiiere, baze de date sau Internet. Sunt multe variante prin care aceste conexiuni pot
fi realizate, n funcie de circumstane. De exemplu, n fig. 1-12(a) este prezentat un avion n care un
numr de persoane folosesc modemuri i telefoane ncorporate n sptarul scaunului (eng.: seatback telephone) pentru a suna la birou. Fiecare apel este independent de toate celelalte. O opiune
mult mai eficient este LAN-ul zburtor (flying LAN) din fig. 1-12(b). Aici, fiecare scaun este echipat cu un conector Ethernet n care pasagerii pot s i conecteze calculatoarele. Un singur ruter al
avionului menine o legtur radio cu un ruter de la sol, schimbnd acest ruter pe msur ce i parcurge traseul. Aceast configuraie este o reea local tradiional, doar c pentru a se conecta cu
restul lumii folosete o legtur radio n loc de o linie cablat.

Fig. 1-12. (a) Calculatoare mobile individuale. (b) Un LAN zburtor.

Mult lume crede c tehnologiile fr fir reprezint valul viitorului (de ex. Bi et al., 2001; Leeper,
2001; Varshez i Vetter, 2000), dar exisit cel puin o prere contrar cunoscut. Bob Metcalfe,
inventatorul Ethernet-ului, a scris urmtoarele: ,,Calculatoarele mobile fr fir sunt ca bile mobile
fr evi - nite olie de noapte portabile. Ele vor fi ceva comun n vehicule, pe antiere i la concerte
rock. Sfatul meu este s v racordai cabluri n cas i s rmnei acolo (Metcalfe, 1995). Istoria ar
putea s rein aceast afirmaie n aceeai categorie cu a lui T.J. Watson, preedintele IBM, care
explica n 1945 de ce IBM nu se intr n afacerea calculatoarelor: Patru sau cinci calculatoare ar
trebui s fie suficiente pentru ntreaga lume pn n anul 2000.

1.2.5

Reelele casnice (Home networks)

Reelele n mediul casnic sunt la orizont. Ideea fundamental este c n viitor, cele mai multe locuine vor fi pregtite pentru instalarea de reele. Fiecare dispozitiv din cas va fi capabil s comunice cu orice alt dispozitiv i toate vor fi accesibile prin Internet. Acesta este unul dintre acele concepte

22

INTRODUCERE

CAP. 1

revoluionare pe care nu l-a cerut nimeni (cum sunt telecomenzile TV sau telefoanele mobile), dar
de ndat ce au fost implementate nimeni nu i-a mai putut nchipui cum au trit fr ele.
Multe dispozitive sunt capabile s fie legate n reea. Unele dintre categoriile cele mai simple, nsoite de exemple sunt cele care urmeaz:
1.
2.
3.
4.
5.

Calculatoarele (PC-uri staionare, PC-uri portabile, PDA-uri, periferice partajate)


Dispozitivele de divertisment (TV, DVD, VCR, camera video, combina muzical)
Dispozitive pentru telecomunicaii (telefonul, telefonul mobil, fax-ul, sistemul de comunicare interioar)
Aparatura casnic (cuptorul cu microunde, frigiderul, ceasul, cuptorul, aparatul de aer
condiionat, luminile)
Contoarele i alarmele (contoarele pentru utiliti, alarmele de fum sau hoi, termostatele, sistemele de supraveghere a copilului)

Reelele casnice sunt deja implementate ntr-o oarecare msur. Multe case au deja un dispozitiv
pentru conectarea mai multor calculatoare la Internet printr-o conexiune rapid. Divertismentul
prin reea nu este chiar la ndemn, dar pentru c din ce n ce mai mult muzic i mai multe filme
sunt disponibile pentru descrcare din Internet, va exista o cerere de conectare a combinelor muzicale i a televizoarelor n reea. De asemenea, oamenii vor dori s mpart propriile clipuri video cu
prietenii i familia, astfel c aceast conexiune va trebui s fie bidirecional. Angrenajul telecomunicaiilor este deja conectat la lumea exterioar, dar n curnd aceste vor fi digitale i transmise prin
Internet. n medie, o cas are cam o duzin de ceasuri (de exemplu, cele de la aparatele electrocasnice), care toate trebuie potrivite cel puin de doua ori pe an, cnd se trece la ora de var i apoi la
ora de iarn. Dac toate aceste ceasuri ar fi conectate la Internet, aceast potrivire s-ar face automat.
n fine, monitorizarea de la distan a casei i a interiorului su este un posibil domeniu de succes.
Probabil c muli dintre prini ar fi gata s cheltuiasc nite bani pentru a-i supraveghea copiii
adormii, prin intermediul PDA-urilor, n timp ce iau masa n ora, chiar i dac au angajat un adolescent pentru a avea grij de ei. n timp ce unii i pot imagina o reea separat pentru fiecare zon
de aplicaii, integrarea tuturor ntr-o singur reea mai mare este probabil o idee mult mai bun.
Reelele casnice au cteva proprieti fundamental diferite de alte tipuri de reele. Mai nti, att
reeaua ct i dispozitivele trebuie s fie uor de instalat. Autorul a instalat multe componente hardware i software pe diverse calculatoare de-a lungul anilor, cu diverse rezultate. O serie de telefoane la biroul de suport tehnic al productorului au rezultat n rspunsuri de tipul (1) Citii manualul,
(2) Repornii calculatorul, (3) Scoatei toate componentele hardware i software cu excepia celor
furnizate de noi i ncercai din nou, (4) Descrcai cea mai nou versiune a programului de configurare de pe situl nostru Web i dac toate acestea eueaz, (5) Reformatai discul i apoi reinstalai
Windows de pe CD-ROM. A spune unui cumprtor de frigider care poate fi conectat la Internet s
descarce i s instaleze o nou versiune a sistemului de operare pentru frigiderul su nu este de natur s fac prea muli clieni fericii. Utilizatorii de calculatoare sunt obinuii cu instalarea de produse care nu merg din prima; cumprtorii de maini, televizoare sau frigidere sunt mai puin tolerani. Ei se ateapt ca produsele s rspund corect la 100% din comenzi.
n al doilea rnd, reelele i dispozitivele trebuie s fie protejate mpotriva utilizrii neglijente.
Primele aparate de aer condiionat aveau un buton cu patru poziii: OPRIT, SCZUT, MEDIU,
RAPID. Acum au manuale de 30 de pagini. De ndat ce vor fi conectate n reea, ateptai-v ca
numai capitolul de securizare s aib 30 de pagini. Ceea ce va depi capacitatea de nelegere a majoritii utilizatorilor.

SEC. 1.2

HARDWARE-UL REELEI

23

n al treilea rnd, preul sczut este esenial pentru succes. Cumprtorii nu vor plti 50 de dolari
n plus pentru un termostat numai pentru c unii oameni consider important s-i supravegheze de
la birou temperatura din cas. Pentru numai 5 dolari n plus, s-ar putea s se vnd.
n al patrulea rnd, programul principal este foarte probabil s implice faciliti multimedia, aa c
reeaua are nevoie de capacitate suficient. Nu exist pia pentru televizoare conectate la Internet
care s prezinte filme de groaz n rezoluie de 320 240 pixeli i la 10 cadre/s. Ethernet-ul rapid (fast
Ethernet), mediul de lucru n majoritatea birourilor, nu este destul de bun pentru facilitile multimedia. n consecin, reelele casnice vor avea nevoie de performane mai bune dect cele are reelelor
care exist acum n companii i de preuri mai mici pentru a deveni articole care se vnd n mas.
n cel de-al cincilea rnd, trebuie s fie posibil s se porneasc cu unul sau dou dispozitive i extinderea s se poat face gradat. Aceasta nseamn fr schimbri revoluionare. A spune consumatorilor s i cumpere periferice cu interfee IEEE 1394 (FireWire) i apoi, dup civa ani, s retractezi spunnd c USB 2.0 este interfaa lunii va face consumatorii s devin capricioi. Interfaa de
reea va trebui s rmn stabil pentru muli ani; cablajul (dac exist) va trebui s rmn acelai
pentru decade ntregi.
n cel de-al aselea rnd, securitatea i sigurana vor fi foarte importante. Pierderea ctorva fiiere datorit unui virus de pot electronic e una, dar dac un ho i dezarmeaz sistemul de securitate al locuinei de la PDA-ul su i apoi intr n cas este cu totul alt situaie.
O ntrebare interesant este dac reelele casnice trebuie s fie cablate sau fr fir. Majoritatea
locuinelor au deja ase reele instalate: electric, telefonic, televiziune prin cablu, ap, gaz i canalizare. Adugarea unei a aptea reele n timpul construciei nu este dificil, dar reamenajarea caselor
deja construite este costisitoare. Costul este un motiv de a alege reelele fr fir, dar securitatea este
un motiv pentru cele cablate. Problema cu reelele fr fir este aceea c undele radio pe care le folosesc trec foarte uor prin garduri. Nimeni nu este foarte bucuros dac vecinii i pot intercepta conexiunea la Internet i i pot citi mesajele de pot electronic n timp ce acestea sunt trimise la imprimant. n cap. 8 vom vedea cum se poate folosi criptarea pentru a oferi securitate, dar n contextul
unei reele casnice, securitatea trebuie s fie i ea protejat mpotriva utilizrii neglijente, chiar i n
cazul utilizatorilor fr experien. Aceasta este mai uor de spus dect de fcut, chiar i pentru utilizatori foarte pricepui. Pe scurt, reelele casnice ofer multe faciliti i provocri. Multe dintre ele
sunt legate de necesitatea de a fi uor de administrat, sigure i securizate, mai ales n minile utilizatorilor care nu sunt implicai n domeniul tehnic, concomitent cu necesitatea de a obine performane ridicate la preuri sczute.

1.2.6

Inter-reelele

n lume exist multe reele, cu echipamente i programe diverse. Persoanele conectate la o anumit reea doresc adesea s comunice cu persoane racordate la alta. Aceast cerin impune conectarea unor reele diferite, de multe ori incompatibile, ceea ce uneori se realizeaz utiliznd maini
numite pori (gateways). Acestea realizeaz conectarea i asigur conversiile necesare, att n termeni de hardware ct i de software. O colecie de reele interconectate este numit inter-reea sau
internet. Aceti termeni vor fi folosii n sens generic, spre deosebire de Internet-ul mondial (care
este un internet special), al crui nume va fi scris mereu cu majuscul.
O form comun de inter-reea este o colecie de LAN-uri conectate printr-un WAN. De fapt,
dac am nlocui eticheta ,,subreea din fig. 1-9 prin ,,WAN, n figur nu ar mai trebui schimbat
nimic altceva. n acest caz, singura diferen tehnic real ntre o subreea i un WAN se refer la

24

INTRODUCERE

CAP. 1

prezena gazdelor. Dac sistemul din interiorul zonei gri conine numai rutere, atunci este o subreea. Dac el conine att rutere, ct i gazde cu utilizatori proprii, atunci este un WAN. Diferenele
reale sunt legate de proprietate i utilizare.
Deseori se produc confuzii ntre subreele, reele i inter-reele. Termenul de subreea este mai
potrivit n contextul unei reele larg rspndite geografic, unde se refer la colecia de rutere i linii
de comunicaie aflate n proprietatea operatorului de reea. Ca o analogie, sistemul telefonic const
din centrale telefonice de comutare, care sunt conectate ntre ele prin linii de mare vitez i sunt
legate la locuine i birouri prin linii de vitez sczut. Aceste linii i echipamente, deinute i ntreinute de ctre compania telefonic, formeaz subreeaua sistemului telefonic. Telefoanele propriuzise (care corespund n aceast analogie gazdelor) nu sunt o parte a subreelei. Combinaia dintre o
subreea i gazdele sale formeaz o reea. n cazul unui LAN, reeaua este format din cablu i gazde. Aici nu exist cu adevrat o subreea.
O inter-reea se formeaz atunci cnd se leag ntre ele reele diferite. Din punctul nostru de vedere, legarea unui LAN i a unui WAN sau legarea a dou LAN-uri formeaz o inter-reea, dar nu
exist un consens asupra terminologiei din acest domeniu. O regul simpl este aceea c dac diferite companii sunt pltite s construiasc diverse pri ale unei reele i fiecare trebuie s i ntrein
propria parte, avem o inter-reea mai degrab dect o singur reea. De asemenea, dac tehnologiile
difer n diverse zone ale reelei (de exemplu: difuzare i punct-la-punct), probabil c discutm nu
despre una ci despre dou reele.

1.3 PROGRAMELE DE REEA


n proiectarea primelor reele de calculatoare, s-a acordat atenie n primul rnd echipamentelor,
iar programele au fost gndite ulterior. Aceast strategie nu mai este valabil. Programele de reea
sunt acum foarte structurate. n seciunile urmtoare vom examina unele detalii ale tehnicii de structurare a programelor. Metoda descris aici formeaz punctul de sprijin al ntregii cri i ea va aprea mai departe n repetate rnduri.

1.3.1

Ierarhiile de protocoale

Pentru a reduce din complexitatea proiectrii, majoritatea reelelor sunt organizate sub forma
unei serii de straturi sau niveluri, fiecare din ele construit peste cel de dedesubt. Numrul de niveluri, numele fiecrui nivel, coninutul i funcia sa variaz de la reea la reea. Oricum, n toate reelele, scopul fiecrui nivel este s ofere anumite servicii nivelurilor superioare, protejndu-le totodat
de detaliile privitoare la implementarea efectiv a serviciilor oferite. ntr-un anumit sens, fiecare
nivel este un fel de main virtual, oferind anumite servicii nivelului de deasupra lui.
Nivelul n de pe o main converseaz cu nivelul n de pe alt main. Regulile i conveniile utilizate n conversaie sunt cunoscute sub numele de protocolul nivelului n. n principal, un protocol
reprezint o nelegere ntre prile care comunic, asupra modului de realizare a comunicrii. Ca o
analogie, atunci cnd o femeie este prezentat unui brbat, ea poate hotr s-i ntind brbatului
mna. La rndul su, brbatul poate decide fie s-i strng, fie s-i srute mna, decizie care depinde, s spunem, dac femeia este o avocat american care a venit la o ntlnire de afaceri sau este o

SEC. 1.3

PROGRAMELE DE REEA

25

prines european prezent la un bal. nclcarea protocolului va face comunicarea mai dificil, dac nu chiar imposibil.
n fig. 1-13 este ilustrat o reea cu cinci niveluri. Entitile din niveluri corespondente de pe maini diferite se numesc egale. Entitile egale pot fi procese, dispozitive hardware, sau chiar fiine
umane. Cu alte cuvinte, entitile egale sunt cele care comunic folosind protocolul.

Fig. 1-13. Niveluri, protocoale i interfee.

n realitate, nici un fel de date nu sunt transferate direct de pe nivelul n al unei maini pe nivelul
n al altei maini. Fiecare nivel transfer datele i informaiile de control nivelului imediat inferior,
pn cnd se ajunge la nivelul cel mai de jos. Sub nivelul 1 se afl mediul fizic prin care se produce
comunicarea efectiv. n fig. 1-13, comunicarea virtual este reprezentat prin linii punctate, iar comunicarea fizic prin linii continue. ntre dou niveluri adiacente exist o interfa. Interfaa definete ce operaii i servicii primitive ofer nivelul de jos ctre nivelul de sus. Cnd proiectanii de
reea decid cte niveluri s includ ntr-o reea i ce are de fcut fiecare din ele, unul din considerentele cele mai importante se refer la definirea de interfee clare ntre niveluri.
Aceasta presupune ca, la rndul su, fiecare nivel s execute o colecie specific de funcii clar
definite. Pe lng minimizarea volumului de informaii care trebuie transferate ntre niveluri, interfeele clare permit totodat o mai simpl nlocuire a implementrii unui nivel cu o implementare
complet diferit (de exemplu, toate liniile telefonice se nlocuiesc prin canale de satelit). Aa ceva
este posibil, pentru c tot ceea ce i se cere noii implementri este s furnizeze nivelului superior
exact setul de servicii pe care l oferea vechea implementare. De altfel, este un fapt obinuit ca doua
gazde s foloseasc implementri diferite.
O mulime de niveluri i protocoale este numit arhitectur de reea. Specificaia unei arhitecturi
trebuie s conin destule informaii pentru a permite unui proiectant s scrie programele sau s
construiasc echipamentele necesare fiecrui nivel, astfel nct nivelurile s ndeplineasc corect
protocoalele corespunztoare. Nici detaliile de implementare i nici specificaiile interfeelor nu fac
parte din arhitectur, deoarece acestea sunt ascunse n interiorul mainilor i nu sunt vizibile din
afar. Nu este necesar nici mcar ca interfeele de pe mainile dintr-o reea s fie aceleai - cu condi-

26

INTRODUCERE

CAP. 1

ia, ns, ca fiecare main s poat utiliza corect toate protocoalele. O list de protocoale utilizate
de ctre un anumit sistem, cte un protocol pentru fiecare nivel, se numete stiv de protocoale.
Arhitecturile de reea, stivele de protocoale i protocoalele propriu-zise constituie principalele subiecte ale acestei cri.
O analogie poate ajuta la explicarea ideii de comunicare multinivel. Imaginai-v doi filosofi
(procesele egale de la nivelul 3), unul din ei vorbind limbile urdu i englez, iar cellalt vorbind chineza i franceza. Deoarece filosofii nu cunosc o limb comun, fiecare din ei angajeaz cte un
translator (procesele egale de la nivelul 2), iar fiecare translator contacteaz la rndul su o secretar
(procesele egale de la nivelul 1). Filosoful 1 dorete s comunice partenerului afeciunea sa pentru
oryctolagus cuniculus. Pentru aceasta, el trimite un mesaj (n englez) prin interfaa 2/3 ctre translatorul su, cruia i spune urmtoarele cuvinte: I like rabbits2 (ceea ce este ilustrat n fig. 1-14).
Translatorii s-au neles asupra unei limbi neutre, olandeza, aa c mesajul este convertit n Ik vind
konijnen leuk. Alegerea limbii reprezint protocolul nivelului 2 i este la latitudinea proceselor pereche de pe acest nivel.

Fig. 1-14. Arhitectura filosof-translator-secretar.


2

Propoziia nseamn mi plac iepurii. (n.t.)

SEC. 1.3

PROGRAMELE DE REEA

27

Fig. 1-15. Exemplu de flux de informaii pentru suportul comunicrii


virtuale la nivelul 5.

n continuare, translatorul nmneaz mesajul secretarei, care l trimite, de exemplu, prin fax
(protocolul nivelului 1). Cnd mesajul este primit, el este tradus n francez i trimis prin interfaa
2/3 ctre filosoful 2. Observai c, atta timp ct interfeele nu se modific, fiecare protocol este
complet independent de celelalte. Dac doresc, translatorii pot schimba olandeza cu alt limb, s
spunem finlandeza, cu condiia ca amndoi s se neleag asupra acestui lucru i ca nici unul din ei
s nu i modifice interfaa cu nivelul 1 sau cu nivelul 3. n mod similar, secretarele pot nlocui faxul
cu pota electronic sau cu telefonul fr a deranja (sau mcar a informa) celelalte niveluri. Fiecare
proces poate aduga anumite informaii suplimentare destinate numai procesului su pereche.
Aceste informaii nu sunt transmise n sus, ctre nivelul superior.
S considerm acum un exemplu mai tehnic: cum se realizeaz comunicarea la ultimul nivel din
reeaua cu cinci niveluri din fig. 1-15. O aplicaie care se execut n nivelul 5 produce un mesaj M i l
furnizeaz nivelului 4 pentru a-l transmite. Nivelul 4 insereaz un antet n faa mesajului, pentru a
identifica respectivul mesaj i paseaz rezultatul nivelului 3. Antetul include informaii de control, de
exemplu numere de ordine care ajut nivelul 4 de pe maina de destinaie s livreze mesajele n ordinea corect n cazul n care nivelurile inferioare nu pstreaz aceast ordine. Pe unele niveluri,
antetele conin de asemenea cmpuri de control pentru mrime, timp i alte informaii.
n numeroase reele nu exist nici o limit cu privire la mrimea mesajelor transmise n protocolul nivelului 4, dar exist aproape ntotdeauna o limit impus de protocolul nivelului 3. n consecin, nivelul 3 trebuie s sparg mesajele primite n uniti mai mici, pachete, atand fiecrui pachet
un antet specific nivelului 3. n acest exemplu, M este descompus n dou pri, M1 i M2.
Nivelul 3 decide ce linie de transmisie s utilizeze i trimite pachetele nivelului 2. Nivelul 2 adaug nu numai cte un antet pentru fiecare bucat, ci i o ncheiere, dup care furnizeaz unitatea rezultant nivelului 1 pentru a o transmite fizic. n maina receptoare mesajul este trimis n sus, din

28

INTRODUCERE

CAP. 1

nivel n nivel, pe parcurs fiind eliminate succesiv toate antetele. Nici un antet corespunztor nivelurilor de sub n nu este transmis n sus nivelului n.
Ceea ce este important de neles n fig. 1-15 este relaia dintre comunicaia virtual i cea efectiv i diferena ntre protocoale i interfee. De exemplu, procesele egale de la nivelul 4 i imagineaz conceptual comunicarea ca realizndu-se pe ,,orizontal, utiliznd protocolul nivelului 4. Dei
fiecare din ele are, probabil, o procedur de genul TrimitenCealaltParte i o alta PrimeteDinCealaltParte, aceste proceduri nu comunic de fapt cu cealalt parte, ci cu nivelurile inferioare prin interfaa 3/4.
Abstractizarea proceselor pereche este crucial pentru proiectarea ntregii reele. Cu ajutorul ei,
aceast sarcin practic imposibil poate fi descompus n probleme de proiectare mai mici, rezolvabile, i anume proiectarea nivelurilor individuale.
Dei Seciunea 1-3 este intitulat ,,Programele de reea, merit s subliniem c nivelurile inferioare dintr-o ierarhie de protocoale sunt implementate frecvent n hardware sau n firmware. Nu e
mai puin adevrat c aici intervin algoritmi compleci, chiar dac ei sunt nglobai (parial sau n
totalitate) n hardware.

1.3.2

Probleme de proiectare a nivelurilor

O parte din problemele cheie care apar la proiectarea reelelor de calculatoare sunt prezente n
mai multe niveluri. Vom meniona pe scurt unele probleme mai importante.
Fiecare nivel are nevoie de un mecanism pentru a identifica emitorii i receptorii. Dat fiind c
o reea cuprinde n mod normal numeroase calculatoare, iar o parte dintre acestea dein mai multe
procese, este necesar o modalitate prin care un proces de pe o anumit main s specifice cu cine
dorete s comunice. Ca o consecin a destinaiilor multiple, pentru a specifica una dintre ele, este
necesar o form de adresare.
Un alt set de decizii de proiectare se refer la regulile pentru transferul de date. n unele sisteme
datele circul ntr-un singur sens; n altele datele pot circula n ambele sensuri. Protocolul trebuie, de
asemenea, s determine ctor canale logice le corespunde conexiunea i care sunt prioritile acestora. Multe reele dispun de cel puin dou canale logice pe conexiune, unul pentru date normale i
unul pentru date urgente.
Controlul erorilor este o problem important deoarece circuitele fizice de comunicaii nu sunt
perfecte. Se cunosc multe coduri detectoare i corectoare de erori, dar ambele capete ale conexiunii
trebuie s se neleag asupra codului utilizat. n plus, receptorul trebuie s aib cum s-i spun emitorului care mesaje au fost primite corect i care nu.
Nu toate canalele de comunicaii pstreaz ordinea mesajelor trimise. Pentru a putea trata o
eventual pierdere a secvenialitii, protocolul trebuie s furnizeze explicit receptorului informaia
necesar pentru a putea reconstitui mesajul. O soluie evident este numerotarea fragmentelor, dar
aceast soluie nc nu rezolv problema fragmentelor care sosesc la receptor aparent fr legtur
cu restul mesajului.
O problem ce intervine la fiecare nivel se refer la evitarea situaiei n care un emitor rapid
trimite unui receptor lent date la vitez prea mare. Au fost propuse diverse rezolvri i ele vor fi
discutate mai trziu. Unele dintre acestea presupun o anumit reacie, direct sau indirect, prin
care receptorul l informeaz pe emitor despre starea sa curent. Altele limiteaz viteza de
transmisie a emitorului la o valoare stabilit de comun acord cu receptorul. Acest subiect se numete controlul fluxului.

SEC. 1.3

PROGRAMELE DE REEA

29

O alt problem care apare la cteva niveluri privete incapacitatea tuturor proceselor de a accepta mesaje de lungime arbitrar. Acest fapt conduce la mecanisme pentru a dezasambla, a transmite i apoi a reasambla mesajele. O problem asemntoare apare atunci cnd procesele insist s
transmit datele n uniti att de mici, nct transmiterea lor separat este ineficient. n aceast
situaie, soluia este s se asambleze mpreun mai multe mesaje mici destinate aceluiai receptor i
s se dezasambleze la destinaie mesajul mare obinut astfel.
Atunci cnd este neconvenabil sau prea costisitor s se aloce conexiuni separate pentru fiecare
pereche de procese comunicante, nivelul implicat n comunicare poate hotr s utilizeze aceeai
conexiune pentru mai multe conversaii independente. Atta timp ct aceast mutiplexare i demultiplexare se realizeaz transparent, ea poate fi utilizat de ctre orice nivel. Multiplexarea este necesar, de exemplu, n nivelul fizic, unde traficul pentru toate conexiunile trebuie s fie transmis prin
cel mult cteva circuite fizice.
Atunci cnd exist mai multe ci ntre surs i destinaie, trebuie ales un anumit drum. Uneori
aceast decizie trebuie mprit pe dou sau mai multe niveluri. De exemplu, este posibil ca trimiterea unor date de la Londra la Roma s necesite att o decizie la nivel nalt pentru alegerea ca ar de
tranzit a Franei sau a Germaniei - n funcie de legile lor de protejare a secretului datelor - ct i o
decizie de nivel sczut pentru alegerea unuia din multele trasee posibile, pe baza traficului curent.
Acest subiect poart numele de dirijare sau rutare (routing).

1.3.3

Servicii orientate pe conexiuni i servicii fr conexiuni

Nivelurile pot oferi nivelurilor de deasupra lor dou tipuri de servicii: orientate pe conexiuni i
fr conexiuni. n aceast seciune vom arunca o privire asupra acestor dou tipuri i vom examina
diferenele ntre ele.
Serviciul orientat pe conexiuni este modelat pe baza sistemului telefonic. Cnd vrei s vorbeti
cu cineva, mai nti ridici receptorul, apoi formezi numrul, vorbeti i nchizi. Similar, pentru a utiliza un serviciu orientat pe conexiuni, beneficiarul trebuie mai nti s stabileasc o conexiune, s foloseasc aceast conexiune i apoi s o elibereze. n esen conexiunea funcioneaz ca o eav: emitorul introduce obiectele (biii) la un capt, iar receptorul le scoate afar, n aceeai ordine, la cellalt
capt. n majoritatea cazurilor ordinea este meninut, astfel nct biii s ajung n aceeai ordine n
care au fost trimii.
n anumite cazuri cnd se stabilete o conexiune, transmitorul, receptorul i subreeaua negociaz parametrii care vor fi folosii, cum sunt dimensiunea maxim a mesajului, calitatea impus a
serviciilor, i alte probleme de acest tip. De obicei, una dintre pri face o propunere i cealalt parte
poate s o accepte, s o rejecteze sau s fac o contrapropunere.
Serviciul fr conexiuni este modelat pe baza sistemului potal. Toate mesajele (scrisorile) conin adresele complete de destinaie i fiecare mesaj circul n sistem independent de celelalte. n
mod normal, atunci cnd dou mesaje sunt trimise la aceeai destinaie, primul expediat este primul
care ajunge. Totui, este posibil ca cel care a fost expediat primul s ntrzie i s ajung mai repede
al doilea. n cazul unui serviciu orientat pe conexiuni, aa ceva este imposibil.
Fiecare serviciu poate fi caracterizat printr-o calitate a serviciului. Unele servicii sunt sigure n
sensul c nu pierd date niciodat. De obicei, un serviciu sigur se implementeaz oblignd receptorul
s confirme primirea fiecrui mesaj, astfel nct expeditorul s fie sigur c mesajul a ajuns la destinaie. Procesul de confirmare introduce un timp suplimentar i ntrzieri. Aceste dezavantaje sunt adesea acceptate, ns uneori ele trebuie evitate.

30

INTRODUCERE

CAP. 1

Transferul de fiiere este una din situaiile tipice n care este adecvat un serviciu sigur orientat pe
conexiuni. Proprietarul fiierului dorete s fie sigur c toi biii ajung corect i n aceeai ordine n
care au fost trimii. Foarte puini utilizatori ai transferului de fiiere ar prefera un serviciu care uneori amestec sau pierde civa bii, chiar dac acest serviciu ar fi mult mai rapid.
Serviciul sigur orientat pe conexiuni admite dou variante: secvenele de mesaje i fluxurile de
octei. Prima variant menine delimitarea ntre mesaje. Cnd sunt trimise dou mesaje de 1024 de
octei, ele vor sosi sub forma a dou mesaje distincte de 1024 de octei, niciodat ca un singur mesaj
de 2048 de octei. n a doua variant, conexiunea este un simplu flux de octei i nu exist delimitri
ntre mesaje. Cnd receptorul primete 2048 de octei, nu exist nici o modalitate de a spune dac ei
au fost trimii sub forma unui mesaj de 2048 octei, a dou mesaje de 1024 de octei sau a 2048 mesaje de cte 1 octet. Dac paginile unei cri sunt expediate unei maini fotografice de tiprit printr-o
reea, sub form de mesaje, atunci delimitarea mesajelor poate fi important. Pe de alt parte, n
cazul unui utilizator care se conecteaz la un server aflat la distan, este nevoie numai de un flux de
octei de la calculatorul utilizatorului la server. Delimitarea mesajelor nu mai este relevant.
Aa cum am menionat mai sus, ntrzierile introduse de confirmri sunt inacceptabile pentru
unele aplicaii. O astfel de aplicaie se refer la traficul de voce digitizat. Pentru abonaii telefonici
este preferabil s existe puin zgomot pe linie sau s aud ocazional cte un cuvnt distorsionat dect
s se produc o ntrziere din cauza ateptrii confirmrii. Similar, atunci cnd se transmite o videoconferin, civa pixeli diferii nu reprezint o problem, n schimb ntreruperile pentru a corecta
erorile ar fi extrem de suprtoare.
Nu orice aplicaie necesit conexiuni. De exemplu, n msura n care pota electronic devine ceva tot mai uzual, se poate s nu apar foarte curnd publicitatea prin pot electronic? Expeditorul
de publicitate prin pot electronic probabil c nu vrea s se complice stabilind i apoi elibernd o
conexiune doar pentru un singur mesaj. Nici furnizarea la destinaie cu o rat de corectitudine de
100% nu este esenial, mai ales dac lucrul acesta cost mai mult. Tot ceea ce se cere este un mijloc
de a trimite un singur mesaj cu o probabilitate mare de a ajunge la destinaie, dar fr o garanie n
acest sens. Serviciul nesigur (adic neconfirmat) fr conexiuni este deseori numit serviciu datagram, prin analogie cu serviciul de telegrame - care, la rndul su, nu prevede trimiterea unei confirmri ctre expeditor.
n alte situaii, avantajul de a nu fi necesar stabilirea unei conexiuni pentru a trimite un mesaj
scurt este de dorit, dar sigurana este de asemenea esenial. Aceste aplicaii pot utiliza serviciul
datagram confirmat. Este ca i cum ai trimite o scrisoare recomandat i ai solicita o confirmare de
primire. n clipa n care sosete confirmarea, expeditorul este absolut sigur c scrisoarea a fost livrat
la destinaia corect i nu a fost pierdut pe drum.
Mai exist un serviciu, i anume serviciul cerere-rspuns. n acest serviciu emitorul transmite o
singur datagram care conine o cerere; replica primit de la receptor conine rspunsul. n aceast
categorie intr, de exemplu, un mesaj ctre biblioteca local n care se ntreab unde este vorbit
limba Uighur. Serviciul cerere-rspuns este utilizat n mod frecvent pentru a implementa comunicarea n modelul client-server: clientul lanseaz o cerere i serverul rspunde la ea. n fig. 1-16 sunt
rezumate tipurile de servicii discutate mai sus.
Conceptul de a utiliza comunicaii nesigure poate prea derutant la nceput. La urma urmei, de
ce ar prefera cineva comunicaiile nesigure n locul comunicaiilor sigure? Mai nti, comunicaiile
sigure (ceea ce nseamn, pentru noi, confirmate) pot s nu fie disponibile. De exemplu, Ethernet-ul
nu ofer comunicaii sigure. Pachetele pot fi uneori alterate n timpul tranzitului. Urmeaz ca protocoalele nivelurilor superioare s se ocupe de aceast problem.

SEC. 1.3

PROGRAMELE DE REEA

31

Fig. 1-16. ase tipuri diferite de servicii.

n al doilea rnd, ntrzierile inerente n cazul n care se ofer servicii sigure ar putea fi inacceptabile, mai ales n cazul aplicaiilor de timp real cum sunt aplicaiile multimedia. Pentru aceste motive, comunicaiile sigure ct i cele nesigure coexist.

1.3.4

Primitive de serviciu

Un serviciu este specificat formal printr-un set de primitive (operaii) puse la dispoziia utilizatorului care folosete serviciul. Aceste primitive comand serviciului s execute anumite aciuni sau s
raporteze despre aciunile executate de o entitate pereche. Dac stiva de protocoale este localizat
n sistemul de operare, aa cum se ntmpl de cele mai multe ori, primitivele sunt n mod normal
apeluri sistem. Aceste apeluri cauzeaz o trecere a sistemului de operare n modul nucleu (kernel),
care preia controlul mainii pentru a trimite pachetele necesare.
Setul de primitive disponibile depinde de natura serviciului oferit. Primitivele serviciilor orientate
pe conexiuni sunt diferite de cele ale serviciilor fr conexiuni. Ca un exemplu minimal de primitive
de serviciu care pot fi oferite pentru a implementa un flux de octei ntr-un mediu client-server, putem considera primitivele listate n fig. 1-17.
Primitiva
LISTEN
(Ascult)
CONNECT
(Conecteaz)
RECEIVE
(Primete)
SEND
(Trimite)
DISCONNECT
(Deconecteaz)

Semnificaia
Blocare n ateptarea unei conexiuni
Stabilirea unei conexiuni cu o entitate pereche aflat n ateptare
Blocare n ateptarea unui mesaj
Trimite un mesaj entitii pereche
Termin o conexiune

Fig. 1-17. Cinci primitive de serviciu pentru implementarea unui


serviciu simplu orientat pe conexiune.

Aceste primitive pot fi folosite n urmtorul mod: mai nti serverul execut LISTEN pentru a
indica faptul c este pregtit s accepte conexiuni. Un mod obinuit de a implementa LISTEN este a

32

INTRODUCERE

CAP. 1

face un apel de sistem blocant. Dup execuia primitivei, procesul server este blocat pn la apariia
unei cereri de conectare.
Apoi procesul client execut CONNECT pentru a stabili o conexiune cu serverul. Apelul CONNECT trebuie s specifice cu cine se dorete conectarea, aa c ar putea avea un parametru prin
care se transmite adresa serverului. De cele mai multe ori, sistemul de operare va trimite un prim
pachet entitii pereche cerndu-i s se conecteze, dup cum este artat de (1) n fig. 1-18. Procesul
client este suspendat pn cnd apare un rspuns. Cnd pachetul ajunge la server, el este procesat
de sistemul de operare al acestuia. Cnd sistemul de operare observ c pachetul cere o conexiune,
verific dac exist vreun asculttor. Dac da, va face doua lucruri: va debloca asculttorul i va trimite napoi o confirmare (2). Sosirea acestei confirmri elibereaz apoi clientul. n acest moment,
att clientul ct i serverul sunt n execuie i au stabilit o conexiune ntre ei. Este important de observat c secvena de confirmare (2) este generat de codul protocolului nsui, nu ca rspuns al unei
primitive de la nivelul utilizatorului. Dac apare o cerere de conexiune i nu exist nici un asculttor,
rezultatul este nedefinit. n anumite sisteme, pachetul poate fi pstrat un scurt timp ntr-o coad,
anticipnd o eventual comand LISTEN.

Fig. 1-18. Pachetele trimise ntr-o simpl interaciune client-server


pe o reea orientat pe conexiuni.

Analogia evident ntre acest protocol i viaa real este cazul clientului care sun la directorul
departamentului de service al unei companii. Directorul st lng telefon pentru a putea rspunde
n cazul n care acesta sun. Clientul face un apel. Cnd directorul ridic receptorul, conexiunea
este stabilit.
Pasul urmtor este ca serverul s execute RECEIVE pentru a se pregti s accepte prima cerere.
n mod normal serverul face aceast operaie de ndat ce a fost eliberat din blocarea impus de
LISTEN, nainte s ajung confirmarea napoi la client. Apelul RECEIVE blocheaz serverul.
Apoi clientul execut SEND pentru a transmite cererea sa (3) urmat de execuia unui
RECEIVE pentru a obine rspunsul.
Sosirea pachetului de cerere la maina server deblocheaz procesul server astfel nct acesta s
poat procesa cererea. Dup ce a terminat lucrul, folosete SEND pentru a rspunde clientului (4).
Sosirea acestui pachet deblocheaz clientul care poate acum s analizeze rspunsul obinut. Daca
mai exist cereri din partea clientului, acesta le poate face acum. Dac a terminat, poate folosi
DISCONNECT pentru a termina conexiunea. De obicei, apelul iniial DISCONNECT este blocant,
suspendnd clientul i trimind un pachet ctre server pentru a-i comunica faptul ca respectiva conexiune nu mai este necesar (5). Cnd serverul primete pachetul, el lanseaz un DISCONNECT
propriu, confirmnd cererea clientului i elibernd conexiunea. Cnd pachetul serverului (6) ajunge

SEC. 1.3

PROGRAMELE DE REEA

33

napoi la maina clientului, procesul client este eliberat i conexiunea este ntrerupt. Foarte pe
scurt, aa funcioneaz comunicaiile orientate pe conexiuni.
Desigur, viaa nu este simpl. Multe dintre lucruri pot s nu funcioneze corect. Sincronizarea
poate fi proast (de exemplu, daca se ncearc un CONNECT nainte de LISTEN), pachetele se pot
pierde i multe altele. Vom studia toate acestea n detaliu ceva mai trziu, dar deocamdat fig. 1-18
rezum pe scurt modul n care ar putea s funcioneze o comunicaie client-server ntr-o reea orientat pe conexiuni.
tiind c acele ase pachete sunt necesare pentru a realiza acest protocol, cititorul se poate ntreba
de ce nu se folosete un protocol fr conexiune n locul su. Rspunsul este c ar fi posibil ntr-o lume perfect, i atunci ar fi nevoie de numai dou pachete: unul pentru cerere i unul pentru rspuns.
Oricum, n cazul real cu mesaje lungi n oricare dintre direcii (de exemplu un fiier de 1 MB), cu
erori de transmisie i cu pachete pierdute, situaia se modific. Dac rspunsul ar avea sute de pachete, dintre care unele s-ar putea pierde n timpul transmisiei, cum ar putea clientul s i dea seama c
unele piese lipsesc? Cum ar putea ti clientul dac ultimul pachet recepionat este de fapt ultimul pachet trimis? S presupunem c de la client se face o cerere pentru un al doilea fiier. Cum ar putea
clientul s diferenieze pachetele din cel de-al doilea fiier de eventualele pachete pierdute din primul
fiier? Pe scurt, n lumea real, un simplu protocol cerere-rspuns implementat ntr-o reea nesigur
este de cele mai multe ori inadecvat. n cap. 3 vom studia n detaliu o larg varietate de protocoale,
care pot rezolva aceste probleme i altele similare. Pentru moment ns este de ajuns s spunem c a
avea un flux de octei sigur i ordonat ntre procese este de multe ori foarte convenabil.

1.3.5

Relaia dintre servicii i protocoale

Dei sunt adesea confundate, serviciile i protocoalele reprezint concepte distincte. Diferena
ntre ele este att de important, nct o subliniem din nou n aceast seciune. Un serviciu este un
set de primitive (operaii) pe care un nivel le furnizeaz nivelului de deasupra sa. Serviciul definete
ce operaii este pregtit nivelul s realizeze pentru utilizatorii si, dar nu spune nimic despre cum
sunt implementate aceste operaii. Un serviciu este definit n contextul unei interfee ntre dou niveluri, nivelul inferior fiind furnizorul serviciului i nivelul superior fiind utilizatorul serviciului.
Prin contrast, un protocol este un set de reguli care guverneaz formatul i semnificaia cadrelor,
pachetelor sau mesajelor schimbate ntre ele de entitile pereche dintr-un nivel. Entitile folosesc
protocoale pentru a implementa definiiile serviciului lor. Ele sunt libere s i schimbe protocoalele
dup cum doresc, cu condiia s nu modifice serviciul pe care l vd utilizatorii. n acest fel, serviciul
i protocolul sunt complet decuplate.

Fig. 1-19. Relaia dintre un server i un protocol.

34

INTRODUCERE

CAP. 1

Cu alte cuvinte, serviciile sunt legate de interfeele dintre niveluri, dup cum este ilustrat i n fig.
1-19. Prin contrast, protocoalele sunt legate de pachetele trimise ntre entitile pereche de pe diferite maini. Este important s nu existe confuzii ntre cele dou concepte.
Merit s facem o analogie cu limbajele de programare. Un serviciu este ca un tip de date abstracte sau ca un obiect ntr-un limbaj orientat pe obiecte. Acesta definete operaiile care pot fi aplicate pe un obiect, dar nu specific modul de implementare a operaiilor. Un protocol se refer la
implementarea serviciului i nu este vizibil pentru utilizatorul serviciului.
Multe protocoale mai vechi nu fceau diferena ntre serviciu i protocol. Ca urmare, un nivel tipic putea avea o primitiv de serviciu SEND PACKET n care utilizatorul furniza o referin ctre un
pachet complet asamblat. Acest aranjament nsemna c toate modificrile protocolului erau imediat
vizibile pentru utilizatori. Majoritatea proiectanilor de reele privesc acum un astfel de mecanism ca
pe o eroare grav.

1.4 MODELE DE REFERIN


Acum, dup ce am discutat la modul abstract structura pe niveluri a reelelor, a sosit timpul s
studiem cteva exemple. n urmtoarele dou seciuni vom discuta dou arhitecturi de reea importante, modelul de referin OSI i modelul de referin TCP/IP. Dei protocoalele asociate cu modelul OSI nu sunt folosite aproape deloc, modelul n sine este destul de general i nc valabil, iar caracteristicile puse n discuie la fiecare nivel sunt n continuare foarte importante. Modelul TCP/IP are
caracteristici opuse: modelul n sine nu este foarte util, dar protocoalele sunt folosite pe scar larg.
Din acest motiv, le vom studia pe fiecare n detaliu. n plus, uneori poi nva mai multe din eecuri
dect din succese.

1.4.1

Modelul de referin OSI

Modelul OSI este prezentat n fig. 1-16 (mai puin mediul fizic). Acest model se bazeaz pe o
propunere dezvoltat de ctre Organizaia Internaional de Standardizare (International Standards
Organization - ISO) ca un prim pas ctre standardizarea internaional a protocoalelor folosite pe
diferite niveluri (Day i Zimmermann, 1983). A fost revizuit n 1995 (Day, 1995). Modelul se numete ISO OSI (Open Systems Interconnection, rom: interconectarea sistemelor deschise), pentru c el
se ocup de conectarea sistemelor deschise - adic de sisteme deschise comunicrii cu alte sisteme.
n continuare vom folosi mai ales termenul prescurtat de model OSI.
Modelul OSI cuprinde apte niveluri. Principiile aplicate pentru a se ajunge la cele apte niveluri
sunt urmtoarele:
1.
2.
3.
4.

Un nivel trebuie creat atunci cnd este nevoie de un nivel de abstractizare diferit.
Fiecare nivel trebuie s ndeplineasc un rol bine definit.
Funcia fiecrui nivel trebuie aleas acordndu-se atenie definirii de protocoale standardizate pe plan internaional.
Delimitarea nivelurilor trebuie fcut astfel nct s se minimizeze fluxul de informaii
prin interfee.

SEC. 1.4
5.

MODELE DE REFERIN

35

Numrul de niveluri trebuie s fie suficient de mare pentru a nu fi nevoie s se introduc n


acelai nivel funcii diferite i suficient de mic pentru ca arhitectura s rmn funcional.

n continuare vom discuta fiecare nivel al modelului, ncepnd cu nivelul cel mai de jos. Modelul
OSI nu reprezint n sine o arhitectur de reea, pentru c nu specific serviciile i protocoalele utilizate la fiecare nivel. Modelul spune numai ceea ce ar trebui s fac fiecare nivel. ISO a produs de
asemenea standarde pentru fiecare nivel, ns aceste standarde nu fac parte din modelul de referin
propriu-zis. Fiecare din standardele respective a fost publicat ca un standard internaional separat.

Nivelul fizic
Nivelul fizic se ocup de transmiterea biilor printr-un canal de comunicaie. Proiectarea trebuie
s garanteze c atunci cnd unul din capete trimite un bit 1, acesta e receptat n cealalt parte
ca un bit 1, nu ca un bit 0. Problemele tipice se refer la ci voli trebuie utilizai pentru a reprezenta un 1 i ci pentru un 0, dac transmisia poate avea loc simultan n ambele sensuri,
cum este stabilit conexiunea iniial i cum este ntrerupt cnd au terminat de comunicat
ambele pri, ci pini are conectorul de reea i la ce folosete fiecare pin. Aceste aspecte de
proiectare au o legtur strns cu interfeele mecanice, electrice, funcionale i procedurale,
ca i cu mediul de transmisie situat sub nivelul fizic.

Nivelul legtur de date


Sarcina principal a nivelului legturii de date este de a transforma un mijloc oarecare de
transmisie ntr-o linie care s fie disponibil nivelului reea fr erori de transmisie nedetectate.
Nivelul legtur de date realizeaz aceast sarcin oblignd emitorul s descompun datele de
intrare n cadre de date (n mod tipic, cteva sute sau cteva mii de octei) i s transmit cadrele
secvenial. Dac serviciul este sigur, receptorul confirm fiecare cadru trimind napoi un cadru de
confirmare pozitiv.
O alt problem care apare la nivelul legtur de date (i, de asemenea, la majoritatea nivelurilor
superioare) este evitarea inundrii unui receptor lent cu date provenite de la un emitor rapid. n
acest scop sunt necesare mecanisme de reglare a traficului care s permit emitorului s afle ct
spaiu tampon deine receptorul la momentul curent. Controlul traficului i tratarea erorilor sunt
deseori integrate. Reelele cu difuzare determin n nivelul legtur de date o problem suplimentar: cum s fie controlat accesul la canalul partajat. De aceast problem se ocup un subnivel special
al nivelului legtur de date i anume subnivelul de control al accesului la mediu.

Nivelul reea
Nivelul reea se ocup de controlul funcionrii subreelei. O problem cheie n proiectare este
determinarea modului n care pachetele sunt dirijate de la surs la destinaie. Dirijarea se poate baza
pe tabele statistice care sunt ,,cablate intern n reea i care sunt schimbate rar. Traseele pot fi de
asemenea stabilite la nceputul fiecrei conversaii, de exemplu la nceputul unei sesiuni la terminal
(de ex. o operaie de login pe o main la distan). n sfrit, dirijarea poate fi foarte dinamic, traseele determinndu-se pentru fiecare pachet n concordan cu traficul curent din reea.
Dac n subreea exist prea multe pachete simultan, ele vor intra unul pe traseul celuilalt i astfel se vor produce gtuiri. Controlul unor astfel de congestii i revine tot nivelului reea. Mai general,
calitatea serviciilor oferite (ntrziere, timp de tranzitare, fluctuaii, etc.) este tot o responsabilitate a
nivelului reea.
Multe probleme pot aprea cnd un pachet trebuie s cltoreasc dintr-o reea n alta ca s
ajung la destinaie. Modul de adresare folosit de a doua reea poate s difere de cel pentru prima.

36

INTRODUCERE

CAP. 1

A doua reea poate chiar s nu accepte deloc pachetul pentru c este prea mare. De asemenea, protocoalele pot fi diferite i aa mai departe. Rezolvarea acestor probleme n vederea interconectrii
reelelor eterogene este sarcina nivelului reea. n reelele cu difuzare, problema dirijrii este simpl,
astfel c nivelul reea este deseori subire sau chiar nu exist deloc.

Nivelul transport
Rolul principal al nivelului transport este s accepte date de la nivelul sesiune, s le descompun,
dac este cazul, n uniti mai mici, s transfere aceste uniti nivelului reea i s se asigure c toate
fragmentele sosesc corect la cellalt capt. n plus, toate acestea trebuie fcute eficient i ntr-un
mod care izoleaz nivelurile de mai sus de inevitabilele modificri n tehnologia echipamentelor.
Nivelul transport determin, de asemenea, ce tip de serviciu s furnizeze nivelului sesiune i, n final, utilizatorilor reelei. Cel mai obinuit tip de conexiune transport este un canal punct-la-punct fr
erori care furnizeaz mesajele sau octeii n ordinea n care au fost trimii. Alte tipuri posibile de servicii
de transport sunt transportul mesajelor individuale - fr nici o garanie n privina ordinii de livrare - i
difuzarea mesajelor ctre destinaii multiple. Tipul serviciului se determin cnd se stabilete conexiunea. (Ca un comentariu secundar: este imposibil de obinut un canal fr erori; ceea ce oamenii neleg
prin aceast expresie este c rata erorilor este destul de mic pentru a fi ignorat n practic).

Fig. 1-20. Modelul de referin OSI.

SEC. 1.4

MODELE DE REFERIN

37

Nivelul transport este un adevrat nivel capt-la-capt, de la surs la destinaie. Cu alte cuvinte,
un program de pe maina surs poart o conversaie cu un program similar de pe maina destinaie,
folosind n acest scop antetele mesajelor i mesaje de control. n nivelurile inferioare protocoalele au
loc ntre fiecare main i vecinii si imediai (niveluri nlnuite), i nu direct ntre mainile surs i
destinaie (niveluri capt-la-capt), care pot fi separate de numeroase rutere. Diferena ntre nivelurile de la 1 pn la 3, care sunt nlnuite i nivelurile de la 4 la 7, care sunt capt-la-capt, este ilustrat n fig. 1-20.

Nivelul sesiune
Nivelul sesiune permite utilizatorilor de pe maini diferite s stabileasc ntre ei sesiuni. Sesiunile
ofer diverse servicii, incluznd controlul dialogului (respectarea ordinii n raport cu dreptul de a
transmite), gestionarea jetonului (prevenirea situaiei n care dou entiti ncearc aceeai operaie
critic n acelai timp) i sincronizarea (introducerea de puncte de control pe parcursul transmisiilor
lungi, astfel nct, n cazul unui eec, acestea s poat fi reluate de unde rmseser).

Nivelul prezentare
n particular, spre deosebire de nivelurile inferioare, care se ocup numai de transferul biilor
dintr-un loc n altul, nivelul prezentare se ocup de sintaxa i semantica informaiilor transmise. Pentru a face posibil comunicarea ntre calculatoare cu reprezentri diferite ale datelor, structurile de
date care se schimba ntre ele pot fi definite ntr-un mod abstract, alturi de o codificare standardizat
ce va fi utilizat pe cablu. Nivelul prezentare gestioneaz aceste structuri de date abstracte i permite definirea i comunicarea unor structuri de date de nivel mai nalt (de ex. nregistrri bancare).

Nivelul aplicaie
Nivelul aplicaie conine o varietate de protocoale frecvent utilizate. Un exemplu de protocol utilizat pe scar larg este HTTP (HyperText Transfer Protocol, rom: protocol de transfer al hipertextului), care sta la baza WWW (World Wide Web, rom: reea de ntindere planetar). Atunci cnd
un program de navigare (browser) acceseaz o pagin Web, el trimite serverului numele paginii pe
care o dorete folosind HTTP. Serverul va trimite ca rspuns pagina. Alte protocoale de aplicaie
sunt folosite pentru transferul fiierelor, pot electronica, tiri n reea.

1.4.2

Modelul de referin TCP/IP

S ne ndreptm acum atenia de la modelul de referin OSI spre modelul de referin utilizat
de strmoul tuturor reelelor de calculatoare, ARPANET-ul, i de succesorul su, Internet-ul. Dei
vom prezenta mai trziu o scurt istorie a ARPANET-ului, este util s menionm acum cteva aspecte eseniale. ARPANET a fost o reea de cercetare sponsorizat de ctre DoD (U.S. Department of Defense, rom: Departamentul de Aprare al Statelor Unite). n cele din urm, reeaua a
ajuns s conecteze ntre ele, utiliznd linii telefonice nchiriate, sute de reele universitare i guvernamentale. Atunci cnd au fost adugate, mai trziu, reele prin satelit i radio, interconectarea acestora cu protocoalele existente a pus diferite probleme. Era nevoie de o nou arhitectur de referin.
De aceea, posibilitatea de a interconecta fr probleme mai multe tipuri de reele a reprezentat de la
bun nceput un obiectiv de proiectare major. Aceast arhitectur a devenit cunoscut mai trziu sub
denumirea de modelul de referin TCP/IP, dat dup numele celor dou protocoale fundamentale
utilizate. Arhitectura respectiv a fost definit prima dat n (Cerf i Kahn, 1974). O perspectiv ul-

38

INTRODUCERE

CAP. 1

terioar este prezentat n (Leiner .a., 1985). Filosofia de proiectare din spatele modelului este discutat n (Clark, 1988).
Dat fiind ngrijorarea Departamentului de Aprare c o parte din preioasele sale gazde, rutere
i pori de interconectare ar putea fi distruse dintr-un moment n altul, un alt obiectiv major a fost ca
reeaua s poat supravieui pierderii echipamentelor din subreea fr a fi ntrerupte conversaiile
existente. Cu alte cuvinte, DoD dorea ca, atta timp ct funcionau maina surs i maina destinaie, conexiunile s rmn intacte, chiar dac o parte din maini sau din liniile de transmisie erau
brusc scoase din funciune. Mai mult, era nevoie de o arhitectur flexibil, deoarece se aveau n vedere aplicaii cu cerine divergente, mergnd de la transferul de fiiere pn la transmiterea vorbirii
n timp real.

Nivelul internet
Toate aceste cerine au condus la alegerea unei reele cu comutare de pachete bazat pe un nivel
inter-reea fr conexiuni. Acest nivel, numit nivelul internet, este axul pe care se centreaz ntreaga
arhitectur. Rolul su este de a permite gazdelor s emit pachete n orice reea i a face ca pachetele s circule independent pn la destinaie (fiind posibil ca aceasta s se gseasc pe o alt reea).
Pachetele pot chiar s soseasc ntr-o ordine diferit fa de cea n care au fost trimise, caz n care
dac se dorete livrarea lor ordonat - rearanjarea cade n sarcina nivelurilor superioare. De observat c ,,internet este folosit aici ntr-un sens generic, chiar dac acest nivel este prezent i n Internet.
Aici, analogia este cu sistemul de pot (clasic). O persoan dintr-o anumit ar poate depune
ntr-o cutie potal mai multe scrisori internaionale i, cu puin noroc, majoritatea scrisorilor vor
ajunge la adresa corect din ara de destinaie. Probabil c scrisorile vor trece pe drum prin mai multe oficii de cartare, dar acest lucru se face transparent pentru utilizatori. Mai mult, faptul c fiecare
ar (adic fiecare reea) are propriile timbre, propriile mrimi favorite de plicuri i propriile reguli
de livrare este ascuns beneficiarilor.
Nivelul internet definete oficial un format de pachet i un protocol numit IP (Internet
Protocol, rom: protocol Internet). Sarcina nivelului internet este s livreze pachete IP ctre destinaie. Problemele majore se refer la dirijarea pachetelor i evitarea congestiei. n consecin, este rezonabil s spunem c nivelul internet din TCP/IP funcioneaz asemntor cu nivelul reea din OSI.
Fig. 1-21 arat aceast coresponden.

Fig. 1-21. Modelul de referin TCP/IP.

SEC. 1.4

MODELE DE REFERIN

39

Nivelul transport
Nivelul situat deasupra nivelului internet din modelul TCP/IP este frecvent numit nivelul transport. Acesta este proiectat astfel, nct s permit conversaii ntre entitile pereche din gazdele
surs i, respectiv, destinaie, la fel ca n nivelul transport OSI. n acest sens au fost definite dou
protocoale capt-la-capt. Primul din ele, TCP (Transmission Control Protocol, rom: protocolul de
control al transmisiei), este un protocol sigur orientat pe conexiuni care permite ca un flux de octei
trimii de pe o main s ajung fr erori pe orice alt main din inter-reea. Acest protocol fragmenteaz fluxul de octei n mesaje discrete i paseaz fiecare mesaj nivelului internet. La destinaie,
procesul TCP receptor reasambleaz mesajele primite ntr-un flux de ieire. TCP trateaz totodat
controlul fluxului pentru a se asigura c un emitor rapid nu inund un receptor lent cu mai multe
mesaje dect poate acesta s prelucreze.
Al doilea protocol din acest nivel, UDP (User Datagram Protocol, rom: protocolul datagramelor
utilizator), este un protocol nesigur, fr conexiuni, destinat aplicaiilor care doresc s utilizeze propria lor secveniere i control al fluxului, i nu pe cele asigurate de TCP. Protocolul UDP este de
asemenea mult folosit pentru interogri rapide ntrebare-rspuns, client-server i pentru aplicaii n
care comunicarea prompt este mai important dect comunicarea cu acuratee, aa cum sunt aplicaiile de transmisie a vorbirii i a imaginilor video. Relaia dintre IP, TCP i UDP este prezentat n
fig. 1-22. De cnd a fost dezvoltat acest model, IP a fost implementat pe multe alte reele.

Fig. 1-22. Protocoale i reele din modelul TCP/IP iniial.

Nivelul aplicaie
Modelul TCP/IP nu conine niveluri sesiune sau prezentare. Acestea nu au fost incluse pentru c
nu s-a simit nevoia lor. Experiena modelului OSI a dovedit c aceast viziune a fost corect: n majoritatea aplicaiilor, nivelurile respective nu sunt de mare folos.
Deasupra nivelului transport se afl nivelul aplicaie. Acesta conine toate protocoalele de nivel
mai nalt. Aa cum se vede din fig. 1-22, primele protocoale de acest gen includeau terminalul virtual (TELNET), transferul de fiiere (FTP) i pota electronic (SMTP). Protocolul de terminal
virtual permite unui utilizator de pe o main s se conecteze i s lucreze pe o main aflat la
distan. Protocolul de transfer de fiiere pune la dispoziie o modalitate de a muta eficient date de
pe o main pe alta. Pota electronic a fost la origine doar un tip de transfer de fiiere, dar ulterior
a fost dezvoltat un protocol specializat (SMTP Simple Mail Transfer Protocol, rom: Protocol
simplu de transfer al potei) pentru acest serviciu. Pe parcursul anilor, la aceste protocoale s-au
adugat multe altele, aa cum sunt Serviciul Numelor de Domenii (Domain Name Service - DNS)
pentru stabilirea corespondenei dintre numele gazdelor i adresele reelelor, NNTP, protocolul

40

INTRODUCERE

CAP. 1

utilizat pentru a transfera articole de tiri USENET, HTTP, folosit pentru aducerea paginilor de pe
Web i multe altele.

Nivelul gazd-reea
Sub nivelul internet se afl necunoscutul. Modelul de referin TCP/IP nu spune mare lucru despre ce se ntmpl acolo, ns menioneaz c gazda trebuie s se lege la reea, pentru a putea trimite pachete IP, folosind un anumit protocol. Acest protocol nu este definit i variaz de la gazd la
gazd i de la reea la reea. Crile i articolele despre TCP/IP rareori discut despre acest protocol.

1.4.3

O comparaie ntre modelele de referin OSI i TCP

Modelele de referin OSI i TCP/IP au multe lucruri n comun. Amndou se bazeaz pe conceptul unei stive de protocoale independente. De asemenea, funcionalitatea nivelurilor este n linii
mari similar. De exemplu, n ambele modele, nivelurile pn la nivelul transport inclusiv sunt necesare pentru a pune la dispoziia proceselor care doresc s comunice un serviciu de transport capt-lacapt independent de reea. Nivelurile respective formeaz furnizorul de transport. Din nou, n ambele modele, nivelurile de deasupra transportului sunt beneficiari orientai pe aplicaii ai serviciului
de transport.
n pofida acestor similitudini fundamentale, ntre cele dou modele exist i multe deosebiri. n
aceast seciune ne vom concentra asupra diferenelor cheie dintre cele dou modele de referin.
Este important de subliniat c vom compara aici modelele de referin, nu stivele de protocoale corespunztoare. Protocoalele propriu-zise vor fi discutate mai trziu. Pentru o ntreag carte consacrat
comparaiei i diferenelor dintre TCP/IP i OSI, a se vedea (Piscitello i Chapin, 1993).
Trei concepte sunt eseniale pentru modelul OSI:
1.
2.
3.

Servicii
Interfee
Protocoale

Probabil c cea mai mare contribuie a modelului OSI este c a fcut explicit diferena ntre
aceste trei concepte. Fiecare nivel realizeaz nite servicii pentru nivelul situat deasupra sa. Definiia
serviciului spune ce face nivelul, nu cum l folosesc entitile de deasupra sa sau cum funcioneaz
nivelul. El definete semantica nivelului.
Interfaa unui nivel spune proceselor aflate deasupra sa cum s fac accesul. Interfaa precizeaz
ce reprezint parametrii i ce rezultat se obine. Nici interfaa nu spune nimic despre funcionarea
intern a nivelului.
n sfrit, protocoalele pereche folosite ntr-un nivel reprezint treaba personal a nivelului. Nivelul poate folosi orice protocol dorete, cu condiia ca acesta s funcioneze (adic s ndeplineasc
serviciul oferit). Nivelul poate de asemenea s schimbe protocoalele dup cum vrea, fr ca acest
lucru s afecteze programele din nivelurile superioare.
Aceste idei se potrivesc foarte bine cu ideile moderne referitoare la programarea orientat pe
obiect. Un obiect, ca i un nivel, posed un set de metode (operaii) care pot fi invocate de ctre procese din afara obiectului. Semanticele acestor metode definesc mulimea de servicii pe care le ofer
obiectul. Parametrii i rezultatele metodelor formeaz interfaa obiectului. Codul intern al obiectului
reprezint protocolul su i nu este vizibil i nici important n afara obiectului.

SEC. 1.4

MODELE DE REFERIN

41

Dei lumea a ncercat ulterior s l readapteze pentru a fi mai asemntor modelului OSI, modelul TCP/IP nu a fcut iniial o distincie clar ntre serviciu, interfa i protocol. De exemplu, singurele servicii veritabile oferite de nivelul internet sunt SEND IP PACKET i RECEIVE IP PACKET.
n consecin, protocoalele din modelul OSI sunt mai bine ascunse dect n modelul TCP/IP i pot
fi nlocuite relativ uor pe msur ce se schimb tehnologia. Capacitatea de a face asemenea modificri reprezint unul din scopurile principale ale organizrii protocoalelor pe niveluri n modelul OSI.
Modelul de referin OSI a fost conceput nainte s fie inventate protocoalele corespunztoare.
Ordinea respectiv semnific faptul c modelul nu a fost orientat ctre un set specific de protocoale,
fiind prin urmare destul de general. Reversul este c proiectanii nu au avut mult experien n ceea
ce privete acest subiect i nu au avut o idee coerent despre mprirea funciilor pe niveluri.
De exemplu, nivelul legtur de date se ocupa iniial numai cu reelele punct-la-punct. Atunci
cnd au aprut reelele cu difuzare, a trebuit s fie introdus n model un subnivel nou. Cnd lumea a
nceput s construiasc reele reale utiliznd modelul OSI i protocoalele existente, s-a descoperit c
acestea nu se potriveau cu specificaiile serviciului cerut (minunea minunilor), astfel c a trebuit introdus n model convergena subnivelurilor, ca s existe un loc pentru a glosa pe marginea diferenelor. n sfrit, comitetul se atepta iniial ca fiecare ar s aib cte o reea care s fie n custodia
guvernului i s foloseasc protocoalele OSI, aa c nu s-a dat nici o atenie interconectrii. Pentru a
nu mai lungi povestea, s spunem doar c lucrurile s-au petrecut altfel.
n ceea ce privete TCP/IP, lucrurile stau exact pe dos: mai nti au aprut protocoalele, iar modelul
a fost de fapt doar o descriere a protocoalelor existente. Cu protocoalele respective nu era nici o problem: ele se potriveau perfect cu modelul. Singurul necaz era c modelul nu se potrivea cu nici o alt
stiv de protocoale. Prin urmare, modelul nu a fost prea util pentru a descrie alte reele non-TCP/IP.
Pentru a ne ntoarce de la subiectele filosofice la subiecte mai specifice, o diferen evident ntre
cele dou modele se refer la numrul de niveluri: modelul OSI are apte niveluri, iar TCP/IP are patru. Ambele modele au niveluri (inter-)reea, transport i aplicaie, dar restul nivelurilor sunt diferite.
O alt deosebire privete subiectul comunicaiei fr conexiuni fa de cel al comunicaiei orientat pe conexiuni. Modelul OSI suport ambele tipuri de comunicaii la nivelul reea, dar numai comunicaii orientate pe conexiuni n nivelul transport, unde acest fapt are importan (pentru c serviciul
de transport este vizibil utilizatorilor). Modelul TCP/IP are numai un mod (fr conexiuni) la nivelul
reea, dar suport ambele moduri la nivelul transport, ceea ce las utilizatorilor posibilitatea alegerii.
Aceast alegere este important n mod special pentru protocoale ntrebare-rspuns simple.

1.4.4

O critic a modelului i protocoalelor OSI

Nici modelul i protocoalele OSI i nici modelul i protocoalele TCP/IP nu sunt perfecte. Asupra
lor se pot formula, i s-au formulat, cteva critici. n prezenta i n urmtoarea seciune vom vedea
unele dintre aceste critici. Vom ncepe cu OSI, dup care vom examina TCP/IP.
La momentul cnd a fost publicat a doua ediie a acestei cri (1989), majoritatea experilor n
domeniu credeau c modelul i protocoalele OSI se vor impune peste tot i vor elimina orice concurent. Acest lucru nu s-a ntmplat. De ce? O privire spre leciile trecutului poate fi util. Aceste lecii
pot fi rezumate astfel:
1.
2.
3.
4.

Ratarea momentului.
Tehnologii proaste.
Implementri proaste.
Politici proaste.

42

INTRODUCERE

CAP. 1

Ratarea momentului
S vedem mai nti prima problem: ratarea momentului. Momentul la care se stabilete un
standard este absolut critic pentru succesul acestuia. David Clark de la M.I.T. are o teorie asupra
standardelor pe care o numete Apocalipsa celor doi elefani i care este ilustrat n fig. 1-23.

Fig. 1-23. Apocalipsa celor doi elefani.


Aceast figur arat volumul de activitate desfurat n jurul unui subiect nou. Cnd subiectul
este lansat, are loc o explozie a activitii de cercetare sub form de discuii, articole i ntlniri. Dup
un timp, cercetarea se reduce foarte mult, subiectul este descoperit de companii i piaa cunoate un
val de investiii de miliarde de dolari.
Este esenial ca standardele s fie definite n intervalul dintre cei doi elefani. Dac ele sunt definite prea devreme, nainte s se ncheie cercetarea, atunci subiectul poate s nu fie nc destul de
bine neles, ceea ce conduce la standarde proaste. Dac ele sunt definite prea trziu, atunci probabil
c att de multe firme au fcut deja investiii majore realiznd lucrurile altfel, nct standardele sunt
efectiv ignorate. Dac intervalul dintre cei doi elefani este foarte scurt (pentru c toat lumea arde
de nerbdare s treac la lucru), atunci cei care dezvolt standardele pot fi prini la mijloc i strivii.
Acum se vede c protocoalele OSI standard au fost strivite. La momentul apariiei lor, protocoalele concurente TCP/IP erau deja folosite pe scar larg n universiti, n cercetare. nainte s vin
valul investiiilor de miliarde de dolari, piaa din domeniul academic era destul de dezvoltat pentru
ca multe firme s nceap, prudent, s ofere produse TCP/IP. Cnd a aprut OSI, firmele nu au mai
vrut, dect forate, s sprijine o a doua stiv de protocoale, i, prin urmare, n-au aprut nici un fel de
oferte iniiale din partea lor. Fiecare firm atepta s nceap celelalte firme, aa c pn la urm n-a
mai nceput nici o firm i fenomenul OSI nu s-a mai produs niciodat.

Tehnologii proaste
Al doilea motiv pentru care OSI n-a prins niciodat este c att modelul ct i protocoalele au
defecte. Opiunea pentru apte niveluri a fost mai mult politic dect tehnic , i dou dintre niveluri (sesiune i prezentare) sunt aproape goale, n timp ce alte dou (legtura de date i reea) sunt
prea aglomerate.
Modelul OSI, alturi de protocoalele i definiiile de servicii asociate, este extraordinar de complex. Atunci cnd sunt puse unul peste altul, standardele tiprite au o grosime de civa zeci de centimetri. Standardele sunt, de asemenea, dificil de implementat i ineficiente n funcionare. n acest
context mi vine n minte o ghicitoare formulat de Paul Mockapetris i citat n (Rose, 1993):

SEC. 1.4

MODELE DE REFERIN

43

: Ce obii cnd aplici un standard internaional unui gangster?


R: O persoan care i face o ofert pe care n-o poi nelege.
Pe lng faptul c este incomprehensibil, o alt problem cu OSI este c unele funcii, cum sunt
adresarea, controlul fluxului i controlul erorilor apar repetat n fiecare nivel. Saltzer .a. (1994), de
exemplu, au artat c, pentru a fi eficient, controlul erorilor trebuie fcut la nivelul cel mai nalt i c
repetarea sa de attea ori n nivelurile de mai jos este adesea inutil i ineficient.

Implementri proaste
Dat fiind enorma complexitate a modelului i a protocoalelor, nu este de mirare n faptul c
implementrile iniiale erau uriae, greoaie i ineficiente. Oricine le ncerca se simea ca oprit. Nu a
trecut mult i lumea a asociat ,,OSI cu ,,calitate slab. Dei odat cu trecerea timpului produsele
au devenit mai bune, imaginea s-a deteriorat.
Din contr, una din primele implementri de TCP/IP fcea parte din Berkeley UNIX i era destul de bun (ca s nu mai spunem c era i gratuit). Lumea a nceput s o foloseasc repede, ceea
ce a determinat apariia unei comuniti largi de utilizatori, ceea ce a dus mai departe la mbuntiri, iar aceasta a dus la o comunitate i mai numeroas. n acest caz spirala nu cobora, ci urca.

Politici proaste
Din cauza implementrii iniiale, mult lume, n special din mediul academic, a considerat
TCP/IP ca o parte din Unix; iar n anii 80 Unix-ul era pentru oamenii din lumea academic cam la
fel de popular ca paternitatea (numit apoi incorect maternitate) sau ca plcinta cu mere.
OSI, pe de alt parte, a fost gndit ca o creaie a ministerelor de telecomunicaii europene, apoi a
Comunitii Europene i, mai trziu, a guvernului Statelor Unite. Aceast viziune s-a dovedit adevrat numai n parte; dar chiar ideea n sine - un grup de birocrai guvernamentali ncercnd s bage
un standard inferior tehnic pe gtul bieilor cercettori i programatori care stau n tranee i dezvolt efectiv reelele de calculatoare - nu a ajutat prea mult. Unii oameni au vzut aceast abordare n
aceeai lumin n care a fost vzut IBM cnd a anunat n anii 60 c PL/I era limbajul viitorului, sau
DoD care a corectat IBM-ul anunnd c limbajul respectiv era de fapt Ada.

1.4.5

O critic a modelului de referin TCP/IP

Modelul i protocoalele TCP/IP au i ele problemele lor. Mai nti, modelul nu face o distincie
clar ntre conceptele de serviciu, interfa i protocol. O practic recomandabil n ingineria programrii este s se fac diferena ntre specificaie i implementare, ceea ce OSI face cu mult atenie, pe cnd TCP/IP nu face. De aceea, modelul TCP/IP nu este un ghid prea bun de proiectare a
reelelor noi folosind tehnologii noi.
n al doilea rnd, modelul TCP/IP nu este deloc general i nu este aproape deloc potrivit pentru
descrierea altor stive de protocoale n afara celei TCP/IP. De exemplu, descrierea Bluetooth folosind modelul TCP/IP ar fi aproape imposibil.
n al treilea rnd, nivelul gazd-reea nu este deloc un nivel - n sensul normal n care este folosit
termenul n contextul protocoalelor organizate pe niveluri - ci este o interfa (ntre nivelurile reea
i legtur de date). Distincia ntre o interfa i un nivel este crucial i de aceea trebuie s i se
acorde atenia cuvenit.
n al patrulea rnd, modelul TCP/IP nu distinge (i nici mcar nu menioneaz) nivelurile fizic
i legtur de date. Acestea sunt complet diferite. Nivelul fizic are de-a face cu caracteristicile

44

INTRODUCERE

CAP. 1

transmisiei prin cablu de cupru, fibre optice sau radio. Rolul nivelului legtur de date este s delimiteze nceputul i sfritul cadrelor i s le transporte dintr-o parte n alta cu gradul de siguran
dorit. Un model corect ar trebui s includ ambele niveluri ca niveluri separate. Modelul TCP/IP
nu face acest lucru.
n sfrit, dei protocoalele IP i TCP au fost atent gndite i bine implementate, multe din celelalte protocoale au fost construite ad-hoc, fiind n general opera ctorva absolveni care tot
,,metereau la ele pn oboseau. Implementrile protocoalelor erau apoi distribuite gratuit; ca urmare, ele erau larg utilizate, fr s li se asigure suportul necesar, fiind de aceea greu de nlocuit.
Unele protocoale au ajuns acum s fie mai mult o pacoste. Protocolul de terminal virtual, TELNET,
de exemplu, a fost proiectat pentru un terminal teletype mecanic de zece caractere pe secund. Cu
toate acestea, 25 de ani mai trziu, protocolul este nc foarte utilizat.
Pentru a rezuma, n pofida acestor probleme, modelul OSI (mai puin nivelurile sesiune i prezentare) s-a dovedit a fi excepional de util pentru a discuta reelele de calculatoare. Din contr, protocoalele OSI nu au devenit populare. Pentru TCP/IP este adevrat afirmaia invers: modelul este
practic inexistent, dar protocoalele sunt larg utilizate. Dat fiind faptul c informaticienilor le place s
prepare - i apoi s i mnnce - propria lor prjitur, n aceast carte vom folosi un model OSI modificat, dar ne vom concentra n primul rnd pe TCP/IP i alte protocoale nrudite cu el; de asemenea, vom folosi i protocoale mai noi, precum 802, SONET i Bluetooth. Modelul de lucru folosit n
carte este modelul hibrid prezentat n fig. 1-24.
Nivelul aplicaie
Nivelul transport
Nivelul reea
Nivelul legtur de date
Nivelul fizic

Fig. 1-24. Modelul hibrid de referin care va fi utilizat n aceast carte.

1.5 EXEMPLE DE REELE


Subiectul reelelor de calculatoare acoper diferite tipuri de reele, mari i mici, arhicunoscute
sau mai puin cunoscute. Ele au scopuri, dimensiuni i tehnologii diverse. n urmtoarele seciuni,
vom studia cteva exemple, pentru a avea o idee despre varietatea pe care o poate regsi oricine n
domeniul reelelor de calculatoare.
Vom porni cu Internet-ul, probabil cea mai cunoscut reea, i vom studia istoria, evoluia i tehnologiile sale. Apoi vom discuta ATM, care este de multe ori utilizat n nucleul reelelor (telefonice) mari. Din punct de vedere tehnic, este destul de diferit de Internet, ceea ce evideniaz un contrast interesant. Apoi vom introduce Ethernet, dominant n cazul reelelor locale. n final, vom studia IEEE 802.11, standardul pentru reele fr cablu.

1.5.1

Internet

Internet-ul nu este deloc o reea, ci o colecie vast de reele diverse, care utilizeaz anumite
protocoale comune i ofer anumite servicii comune. Este un sistem neobinuit prin aceea c nu a

SEC. 1.5

EXEMPLE DE REELE

45

fost planificat de nimeni i nu este controlat de nimeni. Pentru a-l nelege mai bine, s pornim de la
nceputuri i s vedem cum s-a dezvoltat i de ce. Pentru o istorie foarte reuit a Internet-ului, este
recomandat cartea lui John Naughton (2000). Este una dintre acele cri rare care nu este numai
plcut la citit, dar are i 20 de pagini de ibid. i op.cit. pentru istoricii serioi. Unele dintre materialele de mai jos sunt bazate pe aceast carte.
Desigur, au fost scrise nenumrate cri tehnice despre Internet, i despre protocoalele sale de
asemenea. Pentru mai multe informaii vedei, de exemplu, (Maufer, 1999).

ARPANET-ul
Povestea ncepe la sfritul anilor 1950. n momentul n care Rzboiul Rece era la apogeu, DoD
(Department of Defense, rom: Departamentul de Aprare al SUA) a vrut o reea de comand i
control care s poat supravieui unui rzboi nuclear. La momentul acela, toate comunicaiile militare foloseau reelele telefonice publice, care erau considerate vulnerabile. Motivul pentru o astfel de
prere poate fi observat n fig. 1-25(a). Aici punctele negre reprezint oficii de comutare, la ele fiind
conectate mii de telefoane. Aceste oficii erau, la rndul lor, conectate la oficii de comutare de nivel
mai nalt (oficii de taxare), pentru a forma o ierarhie naional cu un nivel sczut de redundan.
Vulnerabilitatea sistemului consta n aceea c distrugerea ctorva oficii de taxare putea fragmenta
sistemul n mai multe insule izolate.

Fig. 1-25. (a) Structura sistemului de telefonie.


(b) Sistemul distribuit cu comutare al lui Baran.
n jurul anului 1960, DoD a oferit un contract corporaiei RAND pentru a gsi o soluie. Unul
dintre angajaii ei, Paul Baran, a venit cu ideea sistemului distribuit cu un nivel ridicat de tolerana la
defecte, prezentat n fig. 1-25(b). Deoarece cile dintre oricare dou oficii de comutare erau n acest
caz mult mai lungi dect cile pe care semnale analogice puteau s circule fr distorsiuni, Baran a
propus utilizarea unei tehnologii digitale cu comutare de pachete prin ntregul sistem. Baran a scris
cteva rapoarte pentru DoD n care a descris ideile sale n detaliu. Oficialii de la Pentagon au agreat

46

INTRODUCERE

CAP. 1

conceptul i au apelat la AT&T, apoi la monopolul naional al telefoniei SUA pentru a construi un
prototip. AT&T a desconsiderat imediat ideile lui Baran. Cea mai mare si cea mai bogata companie
din lume nu avea de gnd s permit unui tnr oarecare s spun cum s se construiasc un sistem
de telefonie. Ei au declarat c sistemul propus de Baran nu poate fi construit, i ideea a fost abandonat.
Au mai trecut civa ani i DoD nc nu avea un sistem de comand i control mai bun. Pentru a
nelege ceea ce s-a ntmplat n continuare trebuie s ne ntoarcem n Octombrie 1957, cnd Uniunea Sovietic a ntrecut SUA n domeniul spaial prin lansarea primului satelit artificial, Sputnik.
Cnd preedintele Eisenhower a ncercat s afle cine adormise la comand, a fost surprins s afle c
Armata, Marina i Forele Aeriene i disputau bugetul de cercetare al Pentagonului. Rspunsul lui
imediat a fost crearea unei singure organizaii de cercetare n domeniul aprrii: ARPA (Advanced
Research Projects Agency, rom: Agenia de Cercetare pentru Proiecte Avansate). ARPA nu avea
nici oameni de tiin, nici laboratoare; de fapt, nu avea dect un birou i un mic buget (dup standardele Pentagonului). i ducea misiunile la ndeplinire prin acordarea de granturi (fonduri pentru
cercetare) i contracte universitilor i companiilor ale cror idei preau promitoare.
n primii civa ani, ARPA a ncercat s afle care i era misiunea. n 1967, atenia directorului
Larry Roberts a fost atras de domeniul reelelor. A contactat diveri experi ca s decid ce este de
fcut. Unul dintre ei, Weslez Clark, a sugerat construirea unei subreele cu comutare de pachete,
dnd fiecrei gazde propriul ruter, aa cum este ilustrat n fig. 1-12.
Dup un oarecare scepticism iniial, Roberts a adoptat ideea i a prezentat o lucrare destul de
vag despre ea la Simpozionul ACM SIGOPS inut n Gatlinburg, Tennessee la sfritul lui 1967
(Roberts, 1967). Spre surprinderea lui Roberts, o alt lucrare prezentat la aceeai conferin descria un sistem similar, care nu numai c fusese proiectat, dar fusese i implementat sub comanda lui
Donald Davies de la NPL (National Physical Laboratories, rom: Laboratoarele Naionale de cercetri n Fizic), Anglia. Sistemul propus de NPL nu era un sistem naional (conecta numai cteva
calculatoare n campusul NPL) dar demonstrase c comutarea de pachete poate fi funcional. n
plus, cita din rapoartele timpurii ale lui Baran care fuseser desconsiderate la momentul respectiv.
Roberts s-a ntors de la Gatlinburg hotrt s construiasc ceva ce urma s devin cunoscut sub numele de ARPANET.
Subreeaua trebuia s fie format din minicalculatoare numite IMP-uri (Interface Message
Processors - procesoare de mesaje de interfa) conectate prin linii de transmisie. Pentru o siguran
mare, fiecare IMP trebuia legat la cel puin alte dou IMP-uri. Subreeaua avea s fie o subreea
datagram, astfel c dac unele linii i IMP-uri se defectau, mesajele puteau fi redirijate automat pe
ci alternative.
Fiecare nod al reelei era format dintr-un IMP i dintr-o gazd, aflate n aceeai ncpere i legate printr-un fir scurt. O gazd putea s trimit mesaje de pn la 8063 bii spre IMP-ul su, iar acesta
descompunea apoi mesajele n pachete de cel mult 1008 bii i le retransmitea la destinaie separat.
Fiecare pachet era primit n ntregime nainte de a fi reexpediat, astfel c subreeaua a fost prima
reea electronic memoreaz-i-retransmite cu comutare de pachete.
ARPA a cutat apoi o ofert pentru construirea subreelei. Au depus oferte dousprezece firme.
Dup evaluarea tuturor propunerilor, ARPA a selectat BBN, o firm de consultan din Cambridge,
Massachusetts, i n 1968 a ncheiat cu aceasta un contract pentru construirea subreelei i scrierea
programelor de subreea. BBN a decis s utilizeze pe post de IMP-uri minicalculatoare Honeywell
DDP-316 special modificate, dispunnd de o memorie intern de 12K cu cuvinte pe 16 bii. IMPurile nu aveau discuri, pentru c prile mobile erau considerate nesigure. IMP-urile au fost interco-

SEC. 1.5

EXEMPLE DE REELE

47

nectate prin linii de 56 Kbps nchiriate de la companii de telefoane. Dei 56 Kbps este acum o variant pentru adolescenii care nu i permit ADSL sau cablu, era cea mai bun alternativ a momentului respectiv.
Programele au fost mprite n dou: pentru subreea i pentru gazde. Programele de subreea
cuprind gestionarea captului dinspre IMP al conexiunii gazd-IMP, protocolul IMP-IMP i un protocol surs IMP - destinaie IMP, proiectat pentru a mri sigurana. Proiectul iniial al reelei
ARPANET este prezentat n fig. 1-26.

Fig. 1-26. Proiectul iniial al reelei ARPANET.


i n afara subreelei erau necesare programe: gestionarea captului dinspre gazd al conexiunii
gazd-IMP, protocolul gazd-gazd i programe de aplicaie. n scurt timp, a devenit clar c BBN
considera sarcina sa ncheiat din momentul n care acceptase un mesaj pe un fir gazd-IMP i l
plasase pe firul gazd-IMP destinaie.
Robets avea o nou problem: gazdele aveau i ele nevoie de programe. Pentru a rezolva aceasta
problem, el a convocat o adunare a cercettorilor n reele, majoritatea fiind tineri absolveni de
facultate, la Snowbird, n Utah, n vara anului 1969. Absolvenii se ateptau ca nite experi n reele
s le explice proiectarea i software-ul reelei i ca fiecare din ei s primeasc dup aceea sarcina de
a scrie o parte din programe. Au rmas ns mui de uimire cnd au constatat c nu exista nici un
expert n reele i nici o proiectare serioas. Trebuiau s i dea seama singuri ce au de fcut.
Cu toate acestea, n decembrie 1969 ncepea deja s funcioneze o reea experimental cu patru
noduri, la UCLA, UCSB, SRI i Universitatea din Utah. Au fost alese aceste patru instituii pentru
c toate aveau un numr mare de contracte cu ARPA i toate aveau calculatoare gazd diferite i
complet incompatibile (doar ca treaba s fie mai amuzant). Pe msur ce se aduceau i se instalau
mai multe IMP-uri, reeaua cretea rapid; n scurt timp, s-a ntins pe tot spaiul Statelor Unite. Fig.
1-27 arat ct de repede a crescut ARPA n primii 3 ani.
Pe lng ajutorul oferit pentru dezvoltarea tnrului ARPANET, ARPA a finanat de asemenea cercetri n domeniul reelelor de satelii i reelelor mobile radio cu pachete. ntr-o faimoas
demonstraie, un camion care circula n California folosea reeaua radio cu pachete pentru a trimite mesaje ctre SRI, aceste mesaje erau retransmise apoi prin ARPANET pe Coasta de Est, iar de
aici mesajele erau expediate ctre University College din Londra prin reeaua de satelii. Acest
lucru permitea unui cercettor din camion s utilizeze un calculator din Londra n timp ce cltorea prin California.

48

INTRODUCERE

CAP. 1

Fig. 1-27. (a) Dec.. 1969. (b) Iulie 1970. (c) Martie 1971. (d) Aprilie 1972. (e) Sept. 1972.

Acest experiment a demonstrat totodat c protocoalele ARPANET existente nu erau potrivite


pentru a rula pe mai multe reele. Observaia a condus la noi cercetri asupra protocoalelor, culminnd cu invenia modelului i protocoalelor TCP/IP (Cerf i Kahn, 1974). TCP/IP a fost proiectat
special pentru a trata comunicarea prin inter-reele, un lucru care devenea din ce n ce mai important, pe msur ce tot mai multe reele erau legate la ARPANET.
Pentru a ncuraja adoptarea acestor noi protocoale, ARPA a semnat cteva contracte cu BBN i
cu University of California din Berkeley pentru a integra protocoalele n Berkeley UNIX. Cercettorii de la Berkeley au dezvoltat o interfa de programare a reelei (soclurile) i au scris numeroase
aplicaii, utilitare i programe de administrare care s simplifice interconectarea.
Momentul era ideal. Multe universiti tocmai achiziionaser un al doilea sau al treilea calculator VAX i un LAN care s le conecteze, dar nu aveau nici un fel de programe de interconectare.
Cnd a aprut 4.2BSD, cu TCP/IP, socluri i multe utilitare de reea, pachetul complet a fost adoptat
imediat. Mai mult chiar, folosind TCP/IP, LAN-urile se puteau lega simplu la ARPANET i multe
LAN-uri au fcut acest lucru.
n anii 80 au fost conectate la ARPANET multe alte reele, n special LAN-uri. Pe msur ce
cretea dimensiunea reelei, gsirea gazdelor devenea tot mai costisitoare; de aceea, a fost creat
DNS (Domain Name System, rom: Sistemul Numelor de Domenii), care organiza mainile n domenii i punea n coresponden numele gazdelor cu adrese IP. De atunci ncoace, DNS a ajuns s

SEC. 1.5

EXEMPLE DE REELE

49

fie un sistem de baze de date distribuit, generalizat, folosit pentru a memora diverse informaii referitoare la procedurile de atribuire a numelor. Vom studia detaliat acest sistem n cap. 7.

NSFNET
La sfritul anilor 1970, NSF (U.S. National Science Foundation, rom: Fundaia Naional de tiin din SUA) a remarcat impactul imens pe care ARPANET-ul l avea asupra cercetrii universitare,
reeaua permind savanilor din toat ara s partajeze date i s colaboreze la proiecte de cercetare.
Dar, pentru a se conecta la ARPANET, o universitate trebuia s aib un contract de cercetare cu
DoD, iar multe universiti nu aveau. Rspunsul NSF a fost proiectarea unui succesor al ARPANET
care s fie deschis tuturor grupurilor de cercetare din universiti. Pentru a avea ceva concret de la
care s porneasc, NSF a decis s construiasc o reea tip coloan vertebral (backbone) pentru a
conecta cele 6 centre de supercalculatoare pe care le deinea n San Diego, Boulder, Champaign,
Pittsburgh, Ithaca, Princeton. Fiecrui calculator i s-a dat un frate mai mic, care era de fapt un microcalculator LSI-11 denumit fuzzball. Aceste fuzzball-uri erau conectate cu linii nchiriate de 56 Kbps i
formau o subreea , care folosea aceeai tehnologie ca i ARPANET. Tehnologia programelor era
ns diferit: fuzzball-urile au fost proiectate pentru a conversa direct folosind TCP/IP, ceea ce a condus la crearea primei reele pe arie larga bazat pe TCP/IP (TCP/IP WAN).
NSF a finanat, de asemenea, un numr de (aproximativ 20, pn la urm) reele regionale care
se conectau la coloana vertebral, permind utilizatorilor din mii de universiti, laboratoare de
cercetare, biblioteci i muzee s acceseze oricare dintre supercalculatoare i s comunice ntre ei.
Reeaua complet, care includea coloana vertebral i reelele regionale, a fost numit NSFNET.
Aceasta a fost conectat la ARPANET printr-o legtur ntre un IMP i un fuzzball din laboratorul
de la Carnegie-Mellon. Prima coloan vertebral NSFNET este ilustrat n fig. 1-28.

Fig. 1-28. Coloana vertebral NSFNET n 1988.


NSFNET-ul a reprezentat un succes foarte rapid i a fost suprasolicitat din clipa n care a nceput
s funcioneze. NSF a nceput imediat s planifice succesorul NSFNET-ului i a semnat un contract
cu consoriul MERIT cu sediul n Michigan. Pentru realizarea coloanei vertebrale numrul 2, au fost
nchiriate de la MCI (care a fuzionat ntre timp cu WorldCom) canale cu fibre optice de 448 Kbps.
Ca rutere s-au folosit IBM PC-RT. i aceast reea a devenit curnd suprancrcat, drept care, n
1990, a doua coloan vertebral a fost adus la viteza de 1.5 Mbps.

50

INTRODUCERE

CAP. 1

Dar creterea a continuat, iar NSF a realizat c guvernul nu poate finana interconectrile la nesfrit. n plus, o serie de organizaii comerciale erau interesate s se conecteze, dar statutul NSF le
interzicea s se lege la reele finanate de NSF. n consecin, NSF a ncurajat MERIT, MCI i IBM
s formeze o corporaie nonprofit, ANS (Advanced Networks and Services, rom: reele i servicii
avansate), ca un pas pe drumul spre comercializare. n 1990, ANS a preluat NSFNET i a nlocuit
legturile de 1.5 Mbps cu legturi de 45 Mbps, formnd ANSNET. Aceast reea a funcionat timp
de 5 ani i apoi a fost cumprat de America Online. Dar pn atunci, diverse companii ofereau deja
servicii IP comerciale i era clar c guvernul trebuia s se retrag din afacerea cu reele.
Ca s uureze tranziia i ca s fie sigur c orice reea regional putea comunica cu orice alt reea regional, NSF a semnat contracte cu patru operatori de reele diferii n vederea stabilirii unui
NAP (Network Access Point, rom: punct de acces la reea). Aceti operatori erau PacBell (San
Francisco), Ameritech (Chicago), MFS (Washington, D.C.), i Sprint (New York City, unde - din
raiuni legate de NAP - Pennsauken, N.J. se consider New York City). Fiecare operator de reea
care dorea s ofere servicii de infrastructur pentru reelele regionale NSF trebuia s se lege la toate NAP-urile.
De aceea, pentru a ajunge de la NAP-ul su la NAP-ul destinaiei, un pachet trimis din orice reea regional putea opta ntre mai multe companii care ofer servicii de transmisie pe coloana vertebral. n consecin, pentru a fi alese de reelele regionale, companiile de comunicaii au fost forate
s intre n competiie pe baza serviciilor i preurilor practicate - bineneles, aceasta era ideea. Ca
rezultat, conceptul unei singure reele de tip coloan vertebral a fost nlocuit de o infrastructur
competitiv condus de criterii comerciale. Multora le place s critice Guvernul Federal pentru c
nu este destul de inovator, dar n zona reelelor, DoD i NSF au fost cele care au creat infrastructura
care a stat la bazele formrii Internet-ului i apoi a cedat-o industriei pentru operare i exploatare.
n timpul anilor 1990, multe alte ri i regiuni construiesc i ele reele naionale, de multe ori
modelate chiar dup ARPANET i NSFNET. Acestea includ EuropaNET i EBONE n Europa,
care au pornit cu linii de 2 Mbps i apoi au avansat pn la linii de 34 Mbps. n cele din urm, i infrastructura de reea din Europa a fost cedat industriei spre operare i exploatare.

Folosirea Internet-ului
Numrul reelelor , mainilor i utilizatorilor conectai la ARPANET a crescut rapid dup ce
TCP/IP a devenit, la 1 ian. 1983, unicul protocol oficial. Cnd au fost conectate NSFNET i
ARPANET, creterea a devenit exponenial. S-au alturat multe reele regionale i s-au realizat
legturi cu reele din Canada, Europa i Pacific.
Cndva, pe la mijlocul anilor 1980, lumea a nceput s vad colecia de reele ca fiind un internet, iar apoi ca fiind Internet-ul; nu a existat ns nici un toast oficial cu politicieni desfcnd sticle
de ampanie.
Substana care ine legat Internet-ul este modelul de referin TCP/IP i stiva de protocoale
TCP/IP. TCP/IP face posibile serviciile universale, putnd fi comparat cu adoptarea limii standard pentru cile ferate n secolul 19 sau cu adoptarea protocoalelor comune de semnalizare de ctre toate companiile telefonice.
Ce nseamn de fapt s fii pe Internet? Definiia noastr este c o main este pe Internet dac
folosete stiva de protocoale TCP/IP, are o adres IP i are posibilitatea de a trimite pachete IP ctre
toate celelalte maini de pe Internet. Simpla posibilitate de a trimite i primi pot electronic nu
este suficient, deoarece pota electronic este redirectat ctre multe reele din afara Internet-ului.
Oricum, subiectul este cumva umbrit de faptul c milioane de calculatoare personale pot s apeleze

SEC. 1.5

EXEMPLE DE REELE

51

un furnizor de servicii Internet folosind un modem, s primeasc o adres IP temporar i apoi s


trimit pachete IP spre alte gazde. Are sens s privim asemenea maini ca fiind pe Internet numai
atta timp ct ele sunt conectate la ruterul furnizorului de servicii.
Tradiional (nsemnnd din 1970 pn n jurul lui 1990), Internet-ul i predecesorii si au avut
patru aplicaii principale, dup cum urmeaz:
1.

2.

3.
4.

Pota electronic. Facilitatea de a compune, trimite i primi pot electronic a existat din
primele zile ale ARPANET-ului i este extrem de popular. Muli oameni primesc zeci de
mesaje pe zi i consider pota electronic principalul lor mijloc de a interaciona cu lumea
exterioar, depind de departe telefonul i pota obinuit. Programele de pot electronic sunt astzi disponibile practic pe orice tip de calculator.
tiri. Grupurile de tiri sunt forumuri specializate n care utilizatorii cu un anumit interes
comun pot s fac schimb de mesaje. Exist mii de grupuri de tiri, pe subiecte tehnice sau
non-tehnice incluznd calculatoarele, tiina, divertismentul i politica. Fiecare grup de tiri
are eticheta, stilul i obiceiurile sale proprii i nenorocirile se vor abate asupra celor care le
ncalc.
Conectare la distan. Folosind programe ca telnet, rlogin sau ssh, utilizatorii aflai oriunde
pe Internet pot s se conecteze la orice main pe care au un cont.
Transfer de fiiere. Copierea fiierelor de pe o main din Internet pe alta este posibil utiliznd programul FTP. n acest fel sunt disponibile extrem de multe articole, baze de date i
alte informaii.

Pn la nceputul anilor 1990 Internet-ul a fost foarte populat cu cercettori din domeniul academic, guvernamental i industrial. O aplicaie nou, WWW (World Wide Web), a schimbat total
situaia i a adus n reea milioane de noi utilizatori care nu fac parte din mediul academic. Aceast
aplicaie, inventat de fizicianul Tim Berners Lee de la CERN, nu a modificat nici una din facilitile
existente, n schimb le-a fcut mai uor de folosit. mpreun cu programul de navigare Mosaic, scris
la Centrul Naional pentru Aplicaiile Supercalculatoarelor, WWW-ul a fcut posibil ca un sit s
pun la dispoziie un numr de pagini de informaii coninnd text, poze, sunet i chiar video, n fiecare pagin existnd legturi ctre alte pagini. Printr-un clic pe o legtur, utilizatorul este imediat
transportat la pagina indicat de legtur. De exemplu, multe firme au o pagin principal cu intrri
care trimit la alte pagini pentru informaii asupra produselor, liste de preuri, reduceri, suport tehnic,
comunicare cu angajaii, informaii despre acionari i multe altele.
ntr-un timp foarte scurt au aprut numeroase alte tipuri de pagini: hri, tabele cu cotaii la burs, cataloage de bibliotec, programe radio nregistrate i chiar o pagin care ofer legturi spre textele complete ale multor cri crora le-au expirat drepturile de autor (Mark Twain, Charles
Dickens, etc.). De asemenea, muli oameni au pagini personale (home pages).
Mare parte din creterea Internetului n timpul anilor 1990 a fost alimentat de companii denumite ISP (Internet Service Providers, rom: Furnizori de Servicii Internet). Acestea sunt companii
care ofer utilizatorilor individuali posibilitatea de a apela, de acas, una dintre mainile furnizorului
i de a se conecta la Internet, obinnd n consecin acces la pota electronica, WWW i alte servicii
similare. La sfritul anilor 1990, aceste companii au nregistrat zeci de milioane de noi utilizatori n
fiecare an, modificnd astfel complet caracterul reelei, care s-a transformat dintr-o reea academic
i militar ntr-o utilitate public, precum sistemul de telefonie. Numrul actual al utilizatorilor Internet nu este cunoscut, dar este cu siguran de ordinul sutelor de milioane la nivel mondial i probabil c va ajunge la un miliard n curnd.

52

INTRODUCERE

CAP. 1

Arhitectura Internet
n aceast seciune vom ncerca s aruncm o scurt privire de ansamblu asupra Internet-ului
de astzi. Din cauza multor fuziuni ntre companiile de telefoane i companiile ISP, apele au devenit tulburi. i este de cele mai multe ori dificil de precizat care sunt atribuiile fiecruia, cine ce
anume are de fcut. n consecin aceast descriere va fi simplificat n raport cu realitatea efectiv.
Imaginea de ansamblu este prezentat n fig. 1-29. n continuare, vom analiza aceast figur bucat
cu bucat.

Fig. 1-29. Privire de ansamblu asupra Internet-ului.

Un bun punct de pornire este sistemul propriu al clientului. S presupunem c acest client sun
la ISP-ul su printr-o linie telefonic, aa cum se vede n fig. 1-29. Modemul este o plac din PC-ul
clientului care convertete semnalele digitale pe care le produce calculatorul n semnale analogice
care pot circula fr probleme prin sistemul telefonic. Aceste semnale sunt transferate la punctul de
livrare (POP) al ISP-ului, unde sunt preluate din sistemul telefonic i injectate n reeaua regionala a
ISP. De aici nainte, sistemul este n ntregime digital i folosete comutarea de pachete. Daca ISP-ul
este acelai cu furnizorul local de telefonie, punctul de livrare va fi localizat, probabil, chiar n oficiul
de comutare al serviciului telefonic, punctul n care se termin firul de telefon al utilizatorului. Chiar
dac ISP-ul nu este acelai cu furnizorul local de telefonie, punctul de livrare poate fi doar la distan
de cteva oficii de comutare.
Reeaua regional a ISP este format prin interconectarea ruterelor din diverse orae pe care le
deservete compania. Dac pachetul este destinat unei gazde deservite direct de ctre reeaua ISP,
pachetul va fi livrat direct gazdei. Altfel, el este livrat n continuare operatorului care furnizeaz
companiei ISP servicii de comunicare prin coloana vertebral (backbone) a reelei.

SEC. 1.5

EXEMPLE DE REELE

53

n partea superioar a acestei ierarhii sunt operatorii principali de la nivelul de coloan vertebral a reelei, companii precum AT&T sau Sprint. Acetia opereaz coloane vertebrale mari, internaionale, cu mii de rutere conectate prin fibra optic cu band larg de transfer. Corporaiile mari i
firmele care ofer servicii de gzduire (hosting), utilizeaz ferme de servere (maini care pot servi
mii de pagini Web pe secund) sunt conectate adeseori direct la nivelul coloanei vertebrale. Operatorii ncurajeaz aceast conectare direct prin nchirierea de spaii n ceea ce se numete hotelul
companiei de transport (carrier hotel), i reprezint de cele mai multe ori sertare (racks) pentru
echipamente aflate n aceeai camer cu ruterul, pentru a permite conexiuni scurte i rapide ntre
fermele de servere si coloana vertebral a reelei.
Dac un pachet trimis n coloana vertebral este destinat unui ISP sau unei companii deservite
de aceeai coloan, el este transmis celui mai apropiat ruter. Oricum exist multe astfel de coloane
vertebrale n ntreaga lume, astfel nct un pachet poate s treac ntr-o coloan concurent. Pentru
a permite pachetelor s treac dintr-o coloan n alta, toate aceste coloane principale sunt conectate
n NAP-urile (Network Access Point, rom: Punct de acces n reea) discutate mai devreme. n principiu, un NAP este o camer plin cu rutere, cel puin unul pentru fiecare coloan vertebral conectat. O reea local camerei conecteaz toate aceste rutere, astfel nct pachetele s poat fi retransmise din orice coloan n orice alt coloan. n afar de interconectarea n NAP-uri, coloanele vertebrale de dimensiuni mari au numeroase conexiuni directe ntre ruterele lor, tehnic denumit conectare privat (private peering). Unul dintre multiplele paradoxuri ale Internet-ului este acela c
ISP-urile care sunt la nivel public n competiie pentru clieni, coopereaz de cele mai multe ori pentru a realiza astfel de conectri private (private peering) (Metz, 2001).
Astfel se ncheie acest scurt tur de orizont asupra Internet-ului. Vom avea multe de spus despre
componentele individuale i proiectarea lor, despre algoritmi i despre protocoale n capitolele urmtoare. Merit de asemenea menionat n trecere c anumite companii i-au interconectat toate
reelele interne existente, folosind de multe ori aceleai tehnologii ca i Internet-ul. Aceste intraneturi sunt accesibile de cele mai multe ori numai din interiorul companiei, dar altfel funcioneaz la fel
ca Internet-ul.

1.5.5

Reele orientate pe conexiune

nc de la nceputurile domeniului reelelor, exist un rzboi ntre cei care susin subreelele fr
conectare (de exemplu datagramele) i cei care susin subreelele orientate pe conexiune. Susintorii subreelelor fr conexiune provin din comunitatea ARPANET/Internet. Amintii-v c dorina
iniial a DoD n finanarea i construirea ARPANET a fost s aib o reea care s continue s funcioneze chiar i dup ce mai multe lovituri nucleare ndreptate direct mpotriva ei au distrus numeroase rutere si linii de transmisie. De aceea, tolerana la defecte se afla pe primele poziii ale listei de
prioriti; taxarea clienilor nu exista pe acea list. Aceast abordare a condus la o proiectare fr
conexiune n care fiecare pachet era rutat independent de orice alt pachet. Ca o consecin, dac
anumite rutere se defecteaz n timpul unei sesiuni, nu apare nici o problem atta timp ct sistemul
se poate reconfigura singur, dinamic, astfel nct pachetele urmtoare s gseasc o rut ctre destinaie, chiar dac ea este diferit de cea utilizat pn la momentul respectiv.
Tabra celor care susin reelele orientate conexiune provine din lumea comunicaiilor pe linii telefonice. n sistemul telefonic, un utilizator trebuie s formeze numrul pe care dorete s l apeleze
i s atepte formarea unei conexiuni nainte de a vorbi sau de a transmite date. Aceasta faz de conectare stabilete o rut prin sistemul telefonic, rut care va fi meninut pn cnd apelul este n-

54

INTRODUCERE

CAP. 1

cheiat. Toate cuvintele sau pachetele de date urmeaz aceeai rut. Dac o linie sau un comutator
de pe respectiva cale se defecteaz, apelul este ncheiat forat. Aceasta proprietate era exact cea care
nu convenea deloc Departamentului de Aprare.
De ce sunt companiile organizate astfel? Din dou motive:
1.
2.

Calitatea serviciilor
Facturarea

Prin setarea unei conexiuni n avans, subreeaua poate rezerva resurse precum zone tampon de
memorie sau capacitatea de procesare a procesorului din ruter. Dac se face o ncercare de a iniia
un apel i nu se gsesc suficiente resurse disponibile, apelul este rejectat i apelantul primete un fel
de semnal de ocupat. n acest fel, de ndat ce conexiunea a fost stabilit, conexiunea va obine
servicii bune din punct de vedere calitativ. ntr-o reea fr conexiune, dac prea multe pachete
ajung la acelai ruter n acelai moment, ruterul va fi sufocat i, probabil, va pierde din pachete.
Eventual, utilizatorul va observa i le va retrimite, dar calitatea serviciilor va fi proast i deloc potrivit pentru comunicaii audio sau video, cu excepia cazurilor n care reeaua este doar foarte puin
ncrcat. Nu mai este nevoie s precizm c pentru companii calitatea de transmitere a semnalului
audio este un parametru extrem de important, i de aceea prefer reelele orientate pe conexiune.
Cel de-al doilea motiv pentru care companiile de telefonie prefer serviciile orientate pe conexiune este acela c sunt obinuite s taxeze utilizatorul n funcie de timpul de conexiune. Atunci cnd
se face un apel la distan (chiar i local, dar n afara Americii de Nord) taxarea se face la minut. La
apariia reelelor, aceste companii au fost automat atrase n acest sistem, n care taxarea la minut era
uor de fcut. Dac trebuie stabilit o conexiune nainte de transmisia propriu-zis a datelor, ceasul
de taxare este pornit. Dac nu exist conexiune, nu poi fi taxat pentru ea.
Culmea, meninerea sistemului de taxare este foarte scump. Dac o companie de telefonie ar
trebui s adopte o schem de plat cu rate lunare fixe, fr a ine cont de numrul de apeluri i fr a
ine evidena facturrilor pe convorbire, cu siguran s-ar economisi sume mari de bani, n ciuda
creterii nsemnate a numrului de apeluri care va rezulta. Factorii politici, de reglementare i de
alt natur sunt ns mpotriv. Destul de interesant este c o astfel de politic este funcional n
alte sectoare. De exemplu, cablul TV este facturat cu o rat lunar fix, indiferent de ct de mult te
uii la televizor. Ar fi putut s fie proiectat i avnd la baz un principiu plat-pentru-utilizare (payper-view), dar nu s-a fcut aa, n parte i din cauza cheltuielilor impuse de o asemenea strategie de
facturare (dat fiind calitatea slab a majoritii televiziunilor, trebuie luat n considerare chiar i
factorul jen). Un alt exemplu sunt parcurile tematice care ncaseaz o tax de intrare zilnic, spre
deosebire de caravane, care taxeaz plimbarea.
Acestea fiind spuse, nu va fi o surpriz c toate reelele proiectate de industria de telefonie au
avut subreele orientate pe conexiune. Ceea ce este probabil surprinztor este c i Internet-ul deviaz n aceasta direcie, pentru a oferi o calitate mai bun pentru serviciile audio i video. Vom reveni
la acest subiect n cap. 5. Dar, s examinm n continuare cteva reele orientate pe conexiune.

X.25 i Frame Relay (releu de cadre)


Primul exemplu de reea orientat conexiune este X.25, care a fost prima reea public de date.
A fost dat n folosin n anii 1970, ntr-un moment n care serviciile telefonice erau un monopol
peste tot, i compania de telefonie din fiecare ar se atepta s existe i o reea de date unic n ar
a lor. Pentru a folosi X.25, un calculator a stabilit mai nti o conexiune cu calculatorul aflat la distan, adic a fcut un apel telefonic. Pentru aceast conexiune s-a alocat un numr de conexiune

SEC. 1.5

EXEMPLE DE REELE

55

folosit apoi n transferul pachetelor de date (deoarece pot fi deschise mai multe conexiuni n acelai
timp). Pachetele de date erau foarte simple, fiind formate dintr-un antet de 3 ... 128 de octei de date. n antet se regsea un numr de conexiune de 12 bii, un numr de secven al pachetului, un
numr de confirmare pozitiv (ACK) i civa bii oarecare. Reelele X.25 au funcionat aproape un
deceniu cu un oarecare succes.
n anii 1980, reelele X.25 au fost nlocuite pe scar larg cu un nou tip de reea, denumit Frame
Relay (Releu de Cadre). n esen, este vorba de o reea orientat pe conexiune, fr control al erorilor i fr control al fluxului de date. Deoarece era orientat pe conexiune, pachetele erau furnizate n ordine (dac erau furnizate). Aceste caracteristici distribuire de pachete n ordine, lipsa de
control al erorilor, lipsa de control al fluxului au fcut ca Frame Relay s se asemene cu o reea local de dimensiuni mari. Aplicaia cea mai important a fost interconectarea reelelor locale aflate n
diverse birouri ale companiilor. Dei Frame Relay a avut parte de un succes modest, este folosit i
astzi n anumite companii.

ATM (Asynchronous Transfer Mode)


nc o reea orientat pe conexiune una mult mai important de aceast dat este ATM (ATM
Asynchronous Transfer Mode, rom: Mod de Transfer Asincron). Acest nume, oarecum ciudat, este
justificat prin aceea c, n timp ce n reelele telefonice majoritatea transmisiilor sunt sincrone (strns
legate de un semnal de ceas), n reelele ATM transmisiile nu sunt sincrone.
ATM a fost proiectat la nceputul anilor 1990 i lansat la mijlocul acestei perioade incredibile
(Ginsburg, 1996; Goralski, 1995; Ibe, 1997; Kim et al., 1994; at Stallings, 2000). ATM urma s rezolve toate problemele de reele i telecomunicaii ale lumii, unificnd transmisiile de voce, date,
televiziune prin cablu, telex, telegraf, porumbei mesageri, cutii de conserve conectate prin sfori,
semnale cu fum, i orice altceva ntr-un singur sistem integrat care s poat face totul pentru toat
lumea. Nu s-a ntmplat. n mare parte, problemele erau similare cu acelea care au fost descrise
mai devreme n ceea ce privete OSI, adic: ratarea momentului, tehnologii slabe, implementri
ineficiente, politici proaste. Dup ce tocmai nvinseser companiile telefonice n runda I, muli
membri din comunitatea Internet au vzut ATM-ul pe poziia Internet-ului n lupta cu companiile
mixte telefonie-ISP: Urmtorul. Dar nu a fost aa, i de aceast dat chiar i cei mai fanatici susintori ai datagramelor au trebuit s recunoasc faptul c Internet-ul lsa mult de dorit n privina
calitii serviciilor. Pentru a scurta povestea, ATM a nregistrat un succes mult mai mare dect OSI
i este acum utilizat pe scar larg n cadrul sistemelor de telefonie, adeseori vehiculnd chiar pachete IP. Deoarece ATM este utilizat la ora actual de majoritatea companiilor numai pentru operaiile de rutare i transport intern, n cele mai multe cazuri utilizatorii nu sunt contieni de existena lui, chiar dac el este operaional.

Circuite virtuale ATM


Deoarece reelele ATM sunt orientate pe conexiune, transmisia datelor necesit mai nti
transmisia unui pachet pentru iniializarea conexiunii. Pe msur ce pachetul de iniializare circul
prin subreea, toate ruterele de pe drumul pe care l parcurge i creeaz cte o nregistrare n tabelele de dirijare n care nregistreaz existena conexiunii i rezerv resursele necesare pentru ea. Conexiunile sunt de cele mai multe ori denumite circuite virtuale, n analogie cu circuitele fizice utilizate
n sistemele de telefonie. Majoritatea reelelor ATM suport i circuite virtuale permanente, care
sunt conexiuni permanente ntre dou gazde aflate la distan. Acestea sunt similare cu liniile nchiriate din lumea telefoniei. Fiecare conexiune, fie ea temporar sau permanent, are un identificator
de conexiune unic. Un circuit virtual este prezentat n fig. 1-30.

56

INTRODUCERE

CAP. 1

Fig. 1-30. Un circuit virtual

ndat ce o conexiune a fost stabilit, oricare dintre pri poate s nceap s transmit date. Ideea de baz n cazul reelelor ATM este s se transmit toate informaiile n pachete mici, de
dimensiune fix, denumite celule (cells). Celulele au 53 de octei, din care 5 octei reprezint antetul,
iar restul de 48 reprezint ncrctura efectiv, dup cum se poate vedea n figura1-31. O parte din
antet reprezint identificatorul de conexiune, astfel nct att transmitorul ct i receptorul, precum i toate ruterele intermediare pot ti corespondena dintre celule i conexiuni (care celule aparin crei conexiuni). Aceast informaie permite fiecrui ruter s dirijeze fiecare celul pe care o
primete. Dirijarea celulelor este implementat direct n partea hardware a ruterelor i este o operaie rapid. De fapt, argumentul principal n alegerea de celule de dimensiune fix este acela c este
mai uor de construit partea hardware pentru dirijare dac ea are de a face cu pachete scurte i egale
ca dimensiune. Pachetele IP de lungime variabil trebuie dirijate de programe (software), proces
care este mai lent. Un alt avantaj al reelelor ATM este acela c partea hardware poate fi configurat s multiplice o celul pe care o primete la intrare pe mai multe linii de ieire, o proprietate obligatorie n cazul n care trebuie abordat transmisia unui program de televiziune difuzat ctre mai
muli receptori. La urma urmei, celulele mici nu blocheaz nici o linie pentru prea mult timp, ceea
ce face garantarea calitii serviciilor mai uoar.
Toate celulele urmeaz aceeai cale ctre destinaie. Livrarea celulelor nu este garantat,
dar ordinea lor da. Dac doua celule 1 i 2 sunt transmise n aceast ordine (1,2), dac amndou
ajung, ele vor ajunge n aceeai ordine, niciodat nu va ajunge 2 naintea lui 1. Dar oricare dintre ele,
sau chiar amndou se pot pierde pe drum. Este de datoria protocoalelor nivelului superior s repare eroarea cauzat de celulele pierdute. De reinut c, dei aceast garanie nu este perfect, este
mai bun dect cea pe care o ofer Internet-ul. Acolo nu numai c pachetele se pot pierde, dar i
ordinea de ajungere la destinaie poate fi oricare (nu are legtur cu ordinea de transmisie).

Fig. 1-31. O celul ATM

Reelele ATM sunt organizate similar cu reelele WAN tradiionale, cu linii i comutatoare
(rutere). Cele mai des ntlnite viteze de lucru pentru reelele ATM sunt 155 Mbps i 622 Mbps, dei
sunt posibile i viteze mai mari. Viteza de 155 Mbps a fost aleas pentru c este foarte apropiat de
viteza minim obligatorie pentru transmisia de televiziune cu rezoluie nalt. Decizia de a alege
viteza exact de 155.52 Mbps a fost fcut pentru compatibilitatea cu sistemul de transmisie

SEC. 1.5

EXEMPLE DE REELE

57

SONET de la AT&T, care va fi studiat n cap. 2. Viteza de 622 Mbps a fost aleas astfel nct
s fie echivalent cu transmisia simultan a 4 canale de 155 Mbps.

Modelul de referin ATM


ATM are propriul su model de referin, diferit de modelul OSI i diferit de asemenea de modelul TCP/IP. Acest model este ilustrat n fig. 1-32. El const din trei niveluri - nivelul fizic, nivelul
ATM i nivelul de adaptare ATM - plus orice mai vrea utilizatorul s pun deasupra lor.
Nivelul fizic se ocup de mediul fizic: voltaj, planificare la nivel de bii i diverse alte aspecte.
ATM nu prescrie un set particular de reguli, dar spune n schimb c celulele ATM pot fi trimise
direct prin cablu sau fibre optice sau pot fi, la fel de bine, mpachetate n interiorul datelor din alte
sisteme de transmisie. Cu alte cuvinte, ATM-ul a fost proiectat pentru a fi independent de mediul
de transmisie.

Fig. 1-32. Modelul de referin B-ISDN ATM.


Nivelul ATM se ocup de celule i de transportul celulelor. Nivelul definete structura unei celule
i spune ce reprezint cmpurile celulelor. Tot el se ocup i de stabilirea i eliberarea circuitelor
virtuale. Controlul congestiei se realizeaz tot aici.
Deoarece cele mai multe aplicaii nu vor s lucreze direct cu celule (dei unele vor), deasupra nivelului ATM a fost definit un nivel care permite utilizatorilor s trimit pachete mai mari dect o
celul. Interfaa ATM segmenteaz aceste pachete, transmite celulele individual i le reasambleaz
la cellalt capt. Acest nivel este AAL (ATM Adaption Layer, rom: nivelul de adaptare ATM).
Spre deosebire de cele dou modele de referin anterioare, care erau bidimensionale, modelul
ATM este definit ca fiind tridimensional, dup cum se arat n fig. 1-32. Planul utilizator se ocup,
printre altele, cu transportul datelor, controlul fluxului, corectarea erorilor. Prin contrast, sarcina
planului de control este s trateze conexiunile. Funciile de administrare ale nivelurilor i planurilor
se refer la gestionarea resurselor i coordonarea ntre niveluri.
Fiecare din nivelurile fizic i AAL sunt mprite n dou subniveluri: un subnivel care face munca efectiv, la baz, i un subnivel de convergen, deasupra, care pune la dispoziia nivelului situat
peste el interfaa adecvat. Funciile nivelurilor i subnivelurilor sunt prezentate n fig. 1-33.
Subnivelul PMD (Physical Medium Dependent, rom: dependent de mediul fizic) asigur interfaa cu cablul propriu-zis. Acest subnivel transfer biii i se ocup de planificarea transmisiei la nivel
de bii. n cazul unor companii telefonice i a unor cabluri diferite, subnivelul va fi i el diferit.

58

INTRODUCERE

CAP. 1

Fig. 1-33. Nivelurile i subnivelurile ATM i funciile acestora.

Cellalt subnivel al nivelului fizic este subnivelul TC (Transmission Convergence, rom: convergena transmisiei). Cnd sunt transmise celulele, nivelul TC le expediaz sub forma unui ir de bii
spre nivelul PMD. Acest lucru este uor de fcut. La cellalt capt, subnivelul TC primete de la
subnivelul PMD un flux de bii. Sarcina sa este s converteasc acest flux de bii ntr-un flux de celule
pentru nivelul ATM. Subnivelul TC se ocup de tot ce este necesar pentru a putea spune unde ncep
i unde se termin celulele din fluxul de bii. n modelul ATM aceast funcionalitate este nglobat
n nivelul fizic. n modelul OSI i n majoritatea celorlalte reele, ncadrarea, adic transformarea
unui flux oarecare de bii ntr-o secven de cadre sau de celule, este sarcina nivelului legtur de
date. De aceea, n aceast carte vom discuta funcia respectiv mpreun cu nivelul legtur de date,
nu cu nivelul fizic.
Aa cum am menionat mai devreme, nivelul ATM gestioneaz celulele, inclusiv generarea i
transportul lor. Mare parte din aspectele interesante ale ATM-ului apar aici. Nivelul ATM este un
amestec ntre nivelurile legtur de date i reea de la OSI, dar nu este mprit n subniveluri.
Nivelul AAL este mprit ntr-un subnivel SAR (Segmentation And Reassembly, rom: segmentare i reasamblare) i un subnivel CS (Convergence Sublayer, rom: subnivel de convergen).
Subnivelul inferior descompune pachetele n celule - la captul la care are loc transmisia - i le recompune la destinaie. Subnivelul superior face posibile sistemele ATM care ofer diverse tipuri de
servicii pentru diverse aplicaii (de exemplu, transferul de fiiere i sistemul video la cerere au cerine
diferite privitoare la gestionarea erorilor, planificare etc.).
Deoarece se preconizeaz o evoluie descendent pentru reelele ATM, ele nu vor fi discutate n
continuare n aceast carte. Oricum, fiind instalate pe scar destul de larg, vor fi n continuare folo-

SEC. 1.5

EXEMPLE DE REELE

59

site pentru civa ani buni. Pentru mai multe informaii despre ATM, vedei (Dobrowski i Grise,
2001; Gadeki i Heckart, 1997).

1.5.3

Ethernet

Internet-ul i ATM au fost proiectate pentru WAN. Oricum, multe companii, universiti i alte
organizaii au multe calculatoare care trebuie conectate. Aceast necesitate a dus la o dezvoltare
rapid a reelelor locale. n aceast seciune vom prezenta cteva lucruri despre cea mai popular
dintre reelele locale, i anume Ethernet.
Povestea ncepe n primitivul Hawaii la nceputul anilor 1970. n acest caz, primitiv poate fi interpretat ca fr sistem de telefonie funcional. Chiar dac faptul c nu te deranjeaz telefonul ct
e ziua de lung poate s fac viaa mai plcut n vacan, aceast situaie nu era foarte plcut pentru cercettorul Norman Abramson i colegii si de la Universitatea din Hawaii, care ncercau s
conecteze utilizatorii din mai multe insule aflate la distan la calculatorul principal din Honolulu. i
cum varianta de a-i trage singuri cablurile pe fundul Oceanului Pacific nu prea viabil, a trebuit s
se caute o alt soluie.
Cea pe care au gsit-o a fost transmisia radio pe unde scurte. Fiecare terminal utilizator era echipat cu un mic sistem radio care avea dou frecvene: Trimite (upstream - ctre calculatorul central)
i Primete (downstream de la calculatorul central). Cnd utilizatorul dorea s contacteze calculatorul, trebuia doar s transmit un pachet care coninea datele pe canalul Trimite. Dac nu mai
transmitea nimeni n acel moment, pachetul ajungea la calculatorul central i i se ddea un rspuns
pe canalul Primete. Dac avea loc o disput pentru canalul de transmisie, terminalul observa c nu
primete confirmarea pozitiv pe canalul de recepie i trimitea din nou. Deoarece era un singur
transmitor pe canalul de primire (calculatorul central), aici erau imposibile coliziunile. Acest sistem, care a fost denumit ALOHANET, funciona destul de bine n condiii de trafic redus, dar eua
de ndat ce traficul pe canalul de Transmisie era aglomerat.
Cam n acelai timp, un student pe nume Bob Metcalfe i-a obinut diploma de absolvire la M.I.T.
i s-a mutat pentru a obine doctoratul la Harvard. n timpul studiilor sale, a ajuns sa cunoasc lucrarea lui Abramson. A devenit att de interesat n acest domeniu nct dup ce a absolvit la Harvard, a
decis s petreac vara n Hawaii lucrnd mpreun cu Abramson, nainte de a ncepe lucrul la Xerox
PARC (Palo Alto Research Center, rom: Centrul de Cercetare de la Palo Alto) . Cnd a ajuns la
PARC, a descoperit c cercettorii de acolo proiectaser i construiser mainile care mai trziu
aveau s fie denumite calculatoare personale. Dar mainile erau izolate. Folosind cunotinele pe care
le acumulase n timpul lucrului petrecut cu Abramson, a proiectat i implementat mpreun cu colegul su David Boggs prima reea local de calculatoare (Metcalfe i Boggs, 1976).
Au numit sistemul Ethernet dup luminiferous ether (eter), prin care se credea odinioar c se
propag undele electromagnetice (n secolul 19, cnd fizicianul englez James Clerk Maxwell a descoperit c radiaia electromagnetic poate fi descris printr-o ecuaie de und, oamenii de tiin au
presupus c spaiul trebuie s fie umplut cu un mediu eteric prin care aceste radiaii se propagau.
Numai dup faimosul experiment Michelson-Morley din 1887 fizicienii au descoperit c radiaia
electromagnetic se poate propaga n vid).
Mediul de transmisie n acest caz era un cablu coaxial gros, avnd o lungime de pn la 2.5 km
(cu repetoare la fiecare 500m). Pn la 256 de maini pot fi ataate sistemului prin transivere conectate direct n cablu. Un cablu cu mai multe maini ataate n paralel este numit cablu multidrop
(multidrop cable). Sistemul funciona la 2.94 Mbps. O schi a arhitecturii sale este prezentat n fig.

60

INTRODUCERE

CAP. 1

1-34. Ethernet-ul avea o mbuntire major fa de AOHANET: nainte s transmit, un calculator asculta mediul pentru a vedea dac nu cumva este altcineva care transmite. Dac exista deja o
transmisie n curs, calculatorul se oprea i atepta ncheierea transmisiei curente. Astfel, se evita interferena cu transmisiunile existente, ceea ce cretea semnificativ eficiena sistemului.
ALOHANET nu putea s funcioneze n aceast manier pentru c era imposibil pentru un terminal de pe o insul s detecteze transmisia unui alt terminal de pe o alt insul. Pe un cablu unic,
aceast problem era rezolvat.

Fig. 1-34. Arhitectura Ethenet-ului original

n ciuda faptului c fiecare calculator asculta mediul nainte s nceap transmisia, exista n continuare o problem: ce se ntmpl dac dou calculatoare ateapt amndou ncheierea transmisiei curente i apoi pornesc propriile transmisii simultan? Soluia este urmtoarea: fiecare calculator
va asculta mediul i n timpul propriei transmisii i dac detecteaz interferene, bruiaz linia pentru
a anuna toi transmitorii. Apoi se retrage i ateapt un interval de timp generat aleator nainte s
ncerce din nou. Dac apare o a doua coliziune, timpul de ateptare se dubleaz, i tot aa, pentru a
dispersa (n timp) transmisiile concurente oferind fiecreia dintre ele ansa de a fi servit prima.
Ethernet-ul Xerox a avut un succes att de mare nct DEC, Intel i Xerox au colaborat pentru a
schia un standard pentru o reea Ethernet de 10 Mbps, denumit standardul DIX. Cu dou modificri minore, acesta a devenit standardul IEEE 802.3 n anul 1983.
Din pcate pentru Xerox, compania avea deja reputaia de a face invenii (precum calculatorul
personal) i apoi s eueze n valorificarea lor comercial, poveste spus n Fumbling the Future
(Smith i Alexander, 1988). i pentru c Xerox nu a anunat vreo intenie de a face i altceva cu
Ethernet-ul n afara standardizrii lui Metcalfe i-a format propria companie, 3Com, care urma
s produc i s vnd adaptoare Ethernet pentru PC. A vndut peste 100 de milioane.
Ethernet-ul a continuat s se dezvolte i este nc n curs de dezvoltare. Noi versiuni, la 100
Mbps i 1000 Mbps, ba chiar i mai rapide au aprut deja. De asemenea, cablarea s-a mbuntit,
fiind adugate i alte faciliti, precum comutarea (switching). Vom discuta n detaliu despre Ethernet n cap. 4.
n trecere, merit menionat c Ethernet (IEEE 802.3) nu este singurul standard LAN. Comitetul a standardizat de asemenea Token Bus (Jeton pe Magistral 802.4) i Token Ring (Jeton pe
Inel 802.5). Necesitatea de a avea trei standarde mai mult sau mai puin incompatibile ine mai
mult de politic dect de tehnologie. La momentul standardizrii, firma General Motors promova o
reea n care topologia era aceeai ca la Ethernet (un cablu liniar), dar calculatoarele obineau dreptul la transmisie pe rnd, prin transmiterea unui scurt pachet denumit jeton (token). Un calculator
putea s emit numai dac era n posesia jetonului, fiind evitate astfel coliziunile. General Motors a

SEC. 1.5

EXEMPLE DE REELE

61

anunat c aceast schem era esenial pentru fabricaia de maini i nu era pregtit s se mite de
pe aceast poziie. Dac acest anun nu era susinut, 802.4 nu ar fi existat.
Similar, IBM avea propriul favorit: reeaua proprietar cu jeton n inel. De aceast dat, jetonul
era transmis prin inel i orice calculator care avea jetonul putea s transmit nainte de a repune
jetonul n circulaie n inel. Spre deosebire de 802.4, aceast schem, standardizat ca 802.5, este
nc folosit n birouri i filiale ale IBM, dar practic nicieri n afara IBM. Oricum, cercetarea avanseaz ctre o versiune gigabit, dar pare foarte puin probabil ca aceast tehnologie s ajung la nivelul Ethernet. Pe scurt, chiar dac a fost cndva un rzboi ntre Ethernet, Token Ring i Token
Bus, Ethernet a ctigat, n special pentru c a fost primul i pentru c oponenii si nu era destul
de buni.

1.5.4

Reele fr fir: 802.11

Imediat dup apariia calculatoarelor portabile, muli utilizatori visau s intre cu calculatorul
portabil personal ntr-un birou i, miraculos, acesta s fie conectat la Internet. n consecin, mai
multe grupuri de studiu am nceput s caute soluii pentru a atinge acest scop. Cea mai practic
abordare era echiparea biroului i a calculatorului cu transmitoare i emitoare radio cu raz mic
de aciune pentru a le permite s comunice. Aceast variant a dus rapid la comercializarea soluiilor de reele locale fr fir de ctre diverse companii.
Problema era c dintre aceste variante nu se gseau dou compatibile. Aceast proliferare a
standardelor nsemna c un calculator care era echipat cu un radio marca X nu putea s se conecteze n reeaua unui birou dac acesta era echipat cu o staie de la firma Y. n cele din urm, comunitatea industrial a decis c ar trebui impus un standard pentru LAN fr fir. Astfel, comitetul IEEE
care standardizase i LAN-urile cu cablu a primit ca sarcin s schieze un standard pentru reele
LAN fr fir. Standardul astfel creat s-a numit 802.11. O denumire mai bine cunoscut n argou este
WiFi. Este un standard important i merit tot respectul, astfel c ne vom referi la el cu numele oficial, 802.11.
Standardul propus trebuia s lucreze n dou moduri:
1.
2.

n prezena unei staii de baz


n absena unei staii de baz

Fig. 1-35. (a) Reele fr fir cu staie de baz. (b) Conectare ad-hoc.

62

INTRODUCERE

CAP. 1

n primul caz, toate comunicaiile urmau s aib loc prin intermediul staiei de baz, denumit
punct de acces (access point) 802.11. n cel de-al doilea caz, calculatoarele urmau s comunice direct
unul cu cellalt. Acest mod este uneori denumit conectare ad-hoc (ad-hoc networking). Un exemplu
tipic este cel al utilizatorilor care se afl ntr-o camer care nu este echipat cu o staie de baz, calculatoarele lor comunicnd direct. Aceste dou moduri sunt ilustrate n fig. 1-35.
Prima decizie a fost cea mai simpl: cum s se numeasc. Toate celelalte standarde LAN aveau
numere cum sunt 802.1, 802.2, 802.3, pn la 802.10. Aa c noul standard de LAN fr fir s-a numit
802.11. Restul a fost mai dificil de realizat.
n particular, cteva dintre obiectivele care trebuiau atinse erau : gsirea unei benzi de frecvene
care s fie disponibil, de preferin la nivel mondial; tratarea faptului c semnalele radio au o raz
de aciune limitat; asigurarea meninerii confidenialitii utilizatorului; tratarea problemei duratei limitate de lucru a bateriei; considerarea eventualelor efecte pe care sistemul le putea avea asupra oamenilor (provoac undele radio cancer?); nelegerea implicaiilor portabilitii calculatoarelor; i, n final, construirea unui sistem cu lrgime de band suficient pentru a fi viabil din punct de
vedere economic.
La momentul n care s-a nceput procesul de standardizare (la mijlocul anilor 1990), Ethernet-ul
domina deja domeniul reelelor locale, aa nct comitetul a decis s fac noul standard 802.11 compatibil Ethernet ncepnd de deasupra nivelului legtur de date. Mai exact, ar trebui s se poate
transmite un pachet IP ntr-un LAN fr fir n aceeai manier n care un pachet IP este transmis
prin Ethernet. Desigur, la nivelurile Fizic i Legtur de date apar anumite diferene inerente fa
de Ethernet i ele trebuie considerate de ctre standard.
Mai nti, un calculator din Ethernet va asculta eterul nainte de a transmite. Numai dac acesta
este liber calculatorul va ncepe transmisia. n cazul reelelor LAN fr fir, aceast idee nu funcioneaz prea bine. Pentru a vedea de ce, analizai fig. 1-36. S presupunem c A transmite ctre B, dar
raza de aciune a lui A este prea mic pentru a l acoperi i pe C. Atunci cnd C vrea s transmit, el
poate asculta mediul nainte s nceap, dar faptul c nu aude nimic nu nseamn c transmisia lui va
reui. Standardul 802.11 trebuia s rezolve i aceast problem.

Fig.1-36. Raza de aciune a unui singur radio poate s nu acopere ntregul sistem.

O a doua problem care trebuia rezolvat era aceea c semnalul radio poate fi reflectat de anumite obiecte solide i deci poate fi recepionat de mai multe ori (pe diverse ci). Aceast interferen
duce la ceea ce se numete disipare pe mai multe ci (multipath fading).

SEC. 1.5

EXEMPLE DE REELE

63

Cea de-a treia problem era c o mare parte din aplicaii nu erau contiente de mobilitatea calculatoarelor. De exemplu, multe dintre editoarele de texte aveau o list de imprimante dintre care
una putea fi aleas pentru tiprirea documentului. Atunci cnd calculatorul ruleaz n afara mediului su obinuit, ntr-un mediu nou, lista de imprimante implicite nu mai este valid.
Cea de-a patra problem se referea la mutarea calculatorului portabil din raza de aciune a unei
staii de baz n raza altei staii de baz. ntr-un fel sau altul, trebuie gsit o soluie de predare/primire ntre cele dou staii de baz. Dei aceast problem apare i la nivelul telefoanelor mobile, ea nu apare la Ethernet i nu avea o soluie la momentul respectiv. Mai exact, reeaua const din
mai multe celule, fiecare cu propria staie de baz, conectate prin Ethernet, dup cum se poate vedea n fig. 1-37. Din exterior, sistemul trebuie s arate ca o singur reea Ethernet. Conexiunea dintre sistemele 802.11 i lumea exterioar se numete portal (portal).

Fig.1-37. O reea 802.11 cu mai multe celule

Dup o oarecare munc, comitetul a obinut o variant de standard n 1997, variant care adresa
aceste probleme i altele asemntoare. Reelele locale fr fir pe care standardul le propunea puteau funciona la 1 Mbps sau 2 Mbps. Aproape imediat, utilizatorii au nceput s se plng de viteza
prea sczut i s-a pornit o nou campanie pentru obinerea unor standarde mai rapide. n cadrul
comitetului a avut loc o ruptur, ceea ce a dus la apariia a dou standarde n 1999. Standardul
802.11a folosete o band de frecven mai larg i poate ajunge la viteze mai mari de 54 Mbps.
Standardul 802.11b folosete aceeai banda ca i 802.11, dar folosete o tehnic de modulare diferit
i poate ajunge la 11 Mbps. Unii vd n aceasta un amnunt important la nivel psihologic, pentru c
11 Mbps este o vitez mai mare dect a Ethernet-ului original, cu cablu. Este foarte probabil ca
standardul original 802.11 de 1 Mbps s moar n curnd, dar nu se tie care dintre noile standarde
va iei nvingtor.
Pentru a face lucrurile nc mai complicate dect erau, comitetul 802 a venit cu o nou variant,
802.11g, care folosete tehnica de modulare folosit i de 802.11a, dar banda de frecven a lui
802.11b. Vom reveni n detaliu la 802.11 n cap. 4.
Faptul ca 802.11 urmeaz s duc la o revoluie n lumea calculatoarelor i a accesului la Internet
este mai presus de orice ndoial. Aeroporturile, grile, hotelurile, magazinele mari i universitile l
implementeaz foarte curnd. Chiar si cafenelele aflate ntr-o perioad de cretere a afacerilor instaleaz reele 802.11 pentru ca grupurile de tineri rebeli s poat naviga pe Web n timp ce i savureaz cafelele cu lapte. Este foarte probabil ca 802.11 s aib asupra Internet-ului acelai efect pe care lau avut portabilele n lumea calculatoarelor: s-l fac mobil.

SEC. 1.7

UNITI DE MSUR

69

1.7 UNITI DE MSUR


Pentru a ne feri de orice confuzie, merit s precizm de la bun nceput c n aceast carte, ca
i n lumea tiinei calculatoarelor n general, vor fi folosite unitile metrice n locul unitilor tradiionale englezeti (sistemul furlong-stone-fortnight4). Principalele prefixe metrice sunt precizate n
fig. 1-39. Ale sunt n general abreviate folosindu-se prima liter, cu unitile mai mari ca 1 scrise cu
majuscule (KB, MB etc.). O excepie (din motive istorice) este Kbps (kilobits per second) pentru
kilobii pe secund. Astfel, o linie de comunicaie de 1 Mbps transmite 106 bii/secund, n timp
ce pentru 100 ps (psec), ceasul bate la fiecare 10-10 secunde. Deoarece denumirile mili i micro
ncep amndou cu litera m, trebuia fcut o alegere. n mod normal, m este folosit pentru mili, iar (litera greac miu) este folosit pentru micro.
4

furlong = jumtate de mil


stone = 6,350kg
fortnight = 2 sptmni

Fig. 1-39. Principalele prefixe metrice

Este de asemenea important s subliniem c pentru msurarea dimensiunilor memoriei, discurilor, fiierelor i a bazelor de date se obinuiete folosirea acestor uniti, dei ele au valori uor modificate. Astfel, kilo reprezint 210 (1024) i nu de 103 (1000), pentru c volumului memoriilor sunt
ntotdeauna puteri ale lui doi. Deci, o memorie de 1 KB are 1024 de octei, nu 1000. Similar, o memorie de 1 MB are 220 (1.048.576) octei, o memorie de 1 GB are 230 octei (1.073.741.824), iar o
baz de date de 1 TB are 240 (1.099.511.627.776) octei. Oricum, o linie de comunicaie de 1 Kbps
transmite 1000 de bii pe secund i o reea local de 10 Mbps ruleaz la 10.000.000 bii/secund,
deoarece aceste uniti nu sunt puteri ale lui 2. Din pcate, muli oameni tind s amestece aceste
dou sisteme, n special pentru capacitatea discurilor. Pentru a evita orice ambiguitate, n aceast
carte vom folosi simbolurile KB, MB, GB pentru 210, 220, 230, i simbolurile Kbps, Mbps i Gbps pentru 103, 106 i 109 bii pe secund, respectiv.

1.9 REZUMAT
Reelele de calculatoare pot fi utilizate pentru numeroase servicii, att pentru firme ct i pentru
persoane particulare. Pentru companii, reelele de calculatoare personale care folosesc servere par72

INTRODUCERE

CAP. 1

tajate asigur accesul la informaiile corporaiei. De obicei, acestea urmeaz modelul client-server,
cu staiile de lucru clieni pe mesele de lucru ale angajailor accesnd serverele puternice din camera
mainilor. Pentru persoane particulare, reelele ofer acces la o mulime de informaii i de resurse
de divertisment. De cele mai multe ori persoanele particulare acceseaz Internet-ul folosind un modem pentru a apela un ISP, dei din ce n ce mai muli utilizatori au chiar i acas o conexiune Internet fix, permanent. Un domeniu care se dezvolt rapid este acela al reelelor fr fir, care conduc
la dezvoltarea de noi aplicaii, cum ar fi mobilitatea accesului la pota electronic i comerul mobil.
n mare, reelele pot fi mprite n LAN-uri, MAN-uri, WAN-uri i inter-reele, fiecare cu caracteristicile, tehnologiile, vitezele i rolurile sale proprii. LAN-urile acoper suprafaa unei cldiri i lucreaz la viteze mari, MAN-urile acoper suprafaa unui ora de exemplu reeaua de televiziune
prin cablu, care este actualmente folosit de muli dintre utilizatori i pentru conectarea la Internet.
WAN-urile se ntind pe suprafaa unei ri sau a unui continent. LAN-urile i MAN-urile sunt necomutate (adic nu au rutere); WAN-urile sunt comutate. Reelele fr fir devin din ce n ce mai populare, n special la nivelul reelelor locale. Reelele pot fi interconectate pentru a forma inter-reele.
Programele de reea constau din protocoale, adic reguli prin care procesele pot s comunice.
Protocoalele pot fi fie fr conexiuni, fie orientate pe conexiuni. Majoritatea reelelor asigur suport
pentru ierarhiile de protocoale, fiecare nivel asigurnd servicii pentru nivelurile de deasupra sa i
izolndu-le de detaliile protocoalelor folosite n nivelurile de mai jos. Stivele de protocoale se bazeaz n mod tipic fie pe modelul OSI, fie pe modelul TCP/IP. Ambele modele posed niveluri reea,
transport i aplicaie, dar ele difer n ceea ce privete celelalte niveluri. Problemele care apar n
procesul de proiectare a acestor protocoale includ multiplexarea, controlul traficului, controlul erorilor i nc altele. O mare parte a acestei cri este dedicat protocoalelor i proiectrii lor.
Reelele ofer servicii utilizatorilor lor. Aceste servicii pot fi orientate pe conexiune sau fr conexiune. n anumite reele, serviciile fr conectare sunt oferite la un anumit nivel i pot fi completate cu serviciile orientate pe conexiune oferite de un alt nivel.
Ca reele bine-cunoscute sunt menionate Internet-ul, reelele ATM, Ethernet-ul i LAN-ul fr
fir, standard denumit IEEE 802.11. Internet-ul a evoluat din ARPANET, prin adugarea de noi
reele pentru a se forma o inter-reea. n prezent, Internet-ul este n fapt o colecie de multe mii de
reele i nu o singur reea. Ceea ce caracterizeaz aceast colecie este folosirea stivei TCP/IP peste
tot. Reelele ATM sunt rspndite mai ales n sistemele de telefonie pentru trafic de date intensiv.
Ethernet-ul este cea mai popular reea local i este implementat n majoritatea companiilor mari
i n universiti. n fine, reelele locale fr fir, cu viteze de transfer surprinztor de mari (pn la 54
Mbps) ncep s fie folosite pe scar larg.
Pentru a putea determina mai multe calculatoare s comunice ntre ele este nevoie de o important munc de standardizare, att pentru partea de echipamente (hardware), ct i pentru partea
de programe (software). Organizaiile ca ITU-T, ISO, IEEE i IAB administreaz diverse pri din
procesul de standardizare.

1.10 PROBLEME
1.

Imaginai-v c v-ai dresat cinele St. Bernard, pe nume Bernie, ca, n locul clasicei sticle cu rom,
s poarte o cutie cu trei benzi de 8 mm. (Cnd i se umple discul, respectiva cutie reprezint o ur-

SEC. 1.10

PROBLEME

73

gen.) Aceste benzi conin fiecare cte 7 gigabytes. Cinele poate cltori pn la dvs., oriunde
v-ai afla, cu 18 km/h. Pentru ce ordin de distane are Bernie o vitez mai mare de transmisie a
datelor dect o linie a crei vitez de transfer (fr suprancrcare) este de 150 Mbps?
2.

O alternativ la un LAN este pur i simplu un mare sistem, cu divizarea timpului cu terminale pentru toi utilizatorii. Prezentai dou avantaje ale unui sistem client-server care folosete un LAN.

3.

Performana unui sistem client-server este influenat de doi factori ai reelei: lrgimea de band (ci bii poate transporta ntr-o secund) i latena (cte secunde dureaz transferul primului bit de la client la server). Dai un exemplu de reea care are i lrgime de band ridicat i laten mare. Apoi dai un exemplu de reea cu lrgime de band sczut i laten mic.

4.

Pe lng lrgime de band i laten, ce alt parametru este necesar pentru a caracteriza calitatea
serviciilor oferite de o reea folosit pentru trafic de voce digitizat?

5.

Un factor de ntrziere al unui sistem memoreaz-i-retransmite cu comutare de pachete este ct


de mult timp ia operaia de stocare i retrimitere a unui mesaj printr-un comutator. Dac timpul
de comutare este de 10 s, este acesta un factor important n rspunsul unui sistem client-server
n care clientul este n New York i serverul n California? Presupunei c viteza de propagare a
semnalului printr-un fir de cupru sau prin fibra optic ar fi de 2/3 din viteza luminii n vid.

6.

Un sistem client-server folosete o reea-satelit, cu satelitul amplasat la o nlime de 40.000 km.


n cazul optim, care este ntrzierea cu care vine rspunsul la o cerere?

7.

n viitor, cnd toat lumea va avea acas un terminal conectat la o reea de calculatoare, vor
deveni posibile referendumuri publice imediate pe subiecte de legislaie importante. n ultim
instan ar putea fi chiar eliminate parlamentele, pentru a lsa voina poporului s se exprime
direct. Aspectele pozitive ale unei astfel de democraii directe sunt destul de evidente; discutai
unele din aspectele negative.

8.

O colecie de cinci rutere trebuie s fie conectat ntr-o subreea punct-la-punct. ntre dou
rutere proiectanii pot instala o linie de mare vitez, o linie de vitez medie, o linie de vitez sczut sau nici o linie. Dac generarea i examinarea fiecrei topologii pe calculator dureaz 100
ms, ct timp va dura examinarea tuturor topologiilor pentru a o gsi pe cea care se potrivete cel
mai bine cu ncrcarea prevzut?

9.

Un grup de 2n-1 rutere sunt interconectate ntr-un arbore binar centralizat, cu un ruter n fiecare
nod al arborelui. Ruterul i comunic cu ruterul j trimind un mesaj rdcinii arborelui. Rdcina trimite apoi mesajul napoi n jos pn la j. Deducei o expresie aproximativ pentru numrul
mediu de salturi pe mesaj n cazul unui numr n mare, presupunnd c toate perechile de rutere
sunt la fel de probabile.

10. Un dezavantaj al unei subreele cu difuzare este risipa de capacitate datorat multiplelor gazde
care ncearc s acceseze canalul n acelai timp. Ca un exemplu simplist, s presupunem c
timpul este mprit n intervale discrete i fiecare din cele n gazde ncearc s utilizeze canalul
cu probabilitatea p n timpul fiecrui interval. Ce fraciune din intervale se pierde datorit coliziunilor?
11. Care sunt dou din motivele utilizrii protocoalelor organizate pe niveluri?

74

INTRODUCERE

CAP. 1

12. Preedintelui Companiei de Vopsele Speciale i vine ideea s lucreze mpreun cu un productor local de bere n scopul de a produce o cutie de bere invizibil (ca o msur
anti-gunoi). Preedintele comand departamentului su juridic s analizeze ideea, iar acesta cere ajutorul, la rndul su, departamentului de ingineri. Ca rezultat, inginerul ef l cheam pe
inginerul-ef de la cealalt firm pentru a discuta aspectele tehnice ale proiectului. Apoi, inginerii prezint un raport ctre departamentele juridice respective, iar acestea aranjeaz prin telefon
aspectele legale. n final, cei doi preedini de firme discut partea financiar a afacerii. Este
Care sunt adresele
acesta un exemplu de protocol multinivel n sensul modelului OSI?6.
SAP n cazul difuzrii radio FM ?
13. Care este principala diferen ntre comunicarea fr conexiuni i comunicarea orientat pe
conexiuni?
14. Dou reele furnizeaz, fiecare, servicii orientate pe conexiuni sigure. Una din ele ofer un flux
sigur de octei, iar cealalt ofer un flux sigur de mesaje. Sunt acestea identice? Dac da, de ce
se face aceast distincie? Dac nu, exemplificai prin ce difer.
15. Ce nseamn ,,negociere atunci cnd se discut protocoalele de reea? Dai un exemplu.
16. n fig. 1-19 este prezentat un serviciu. Exist i servicii implicite n aceast figur? Dac da, unde? Dac nu, de ce nu?
17. n unele reele, nivelul legtur de date trateaz erorile de transmisie, solicitnd retransmiterea
cadrelor deteriorate. Dac probabilitatea de a se strica un cadru este p, care este numrul mediu
de transmisii necesare pentru a trimite un cadru, n cazul n care confirmrile nu se pierd niciodat?
18. Care dintre nivelurile OSI se ocup de fiecare din urmtoarele sarcini:
a) Descompunerea fluxului de bii transmii n cadre.
b) Determinarea traseului care trebuie folosit n subreea.
c) TDPU-rile ncapsuleaz pachete sau invers? Discuie.
19. Dac unitile de date schimbate la nivelul legtur de date se numesc cadre i unitile de date
schimbate la nivelul reea se numesc pachete, pachetele ncapsuleaz cadre sau cadrele ncapsuleaz pachete? Explicai rspunsul dat.
20. Un sistem are o ierarhie de protocoale organizat pe n niveluri. Aplicaiile genereaz mesaje de
lungime M octei. La fiecare nivel este adugat un antet de h octei. Ce fraciune din limea
benzii reelei este ocupat de antete?
21. Prezentai dou aspecte comune modelului de referin OSI i modelului de referin TCP/IP.
Prezentai apoi dou aspecte prin care modelele difer.
22. Care este principala deosebire ntre TCP i UDP?
23. Subreeaua din fig. 1-25(b) a fost proiectat pentru a putea rezista unui rzboi nuclear. Cte
bombe ar fi necesare pentru a partiiona nodurile sale n dou seturi complet deconectate? Presupunei c orice bomb distruge un nod i toate legturile conectate cu el.

SEC. 1.10

PROBLEME

75

24. Internet-ul i dubleaz dimensiunea o dat la aproximativ 18 luni. Dei nimeni nu tie cu siguran, se estimeaz numrul gazdelor la 100 de milioane n 2001. Folosii aceste date pentru a
calcula numrul de gazde Internet prevzut pentru anul 2010. Putei crede acest scenariu? Explicai de ce da sau de ce nu.
25. La transferul unui fiier ntre dou calculatoare exist (cel puin) dou strategii de confirmare.
Conform primei strategii, fiierul este descompus n pachete care sunt confirmate individual de
ctre server, dar transferul de fiiere pe ansamblu nu este confirmat. n a doua strategie, pachetele nu sunt confirmate individual, dar la sfrit este confirmat ntregul fiier. Discutai aceste
dou abordri.
26. De ce folosete ATM-ul celule mici, de lungime fix?
27. Ct de lung era un bit n standardul original 802.3 msurat n metri? Folosii viteza de transmisie de 10 Mbps i presupunei c viteza de transmisie prin cablu coaxial este de 2/3 din viteza de
propagare a luminii n vid.
28. O imagine are 1024 x 768 pixeli i reine cte 3 octei pentru fiecare pixel. Presupunei c imaginea este necomprimat. Ct dureaz transmisia ei pe un canal de modem de 56 Kbps ? Dar
printr-un modem de cablu de 1 Mbps? Dar prin Ethernet la 10 Mbps? Dar prin Ethernet la 100
Mbps ?
29. Ethernet-ul i reelele fr fir au unele asemnri i deosebiri. O proprietate a Ethernet-ului
este aceea c un singur cadru poate fi transmis la un moment dat pe mediu. Are i 802.11 aceast proprietate? Discutai rspunsul dat.
30. Reelele fr fir sunt uor de instalat, ceea ce le face mai ieftine, deoarece de cele mai mult ori
operaia de instalare depete semnificativ costul echipamentelor. Totui, aceste reele au i
unele dezavantaje. Numii dou dintre ele.
31. Prezentai dou avantaje i dou dezavantaje ale existenei standardelor internaionale pentru
protocoalele de reea.
32. Atunci cnd un sistem dispune de o parte permanent i de o parte detaabil, de exemplu un
cititor de CD-uri i un CD-ROM, este important ca sistemul s fie standardizat, astfel ca diferite
firme s poat realiza att prile permanente ct i cele mobile i ca ele s se potriveasc fr
probleme. Dai trei exemple din afara industriei de calculatoare unde exist astfel de standarde
internaionale. Indicai apoi trei domenii din afara industriei de calculatoare unde nu exist astfel de standarde.
33. Alctuii o list de activiti pe care le facei zilnic i n care sunt implicate reele de calculatoare.
Cum ar fi viaa voastr alterat dac aceste reele ar fi deconectate la un moment dat ?
34. Descoperii ce reele sunt utilizate n coala sau la locul de munc. Descriei tipurile de reele,
topologiile i metodele de comutare folosite acolo.
35. Programul ping v permite s trimitei un pachet de test la o locaie dat pentru a vedea ct de
mult dureaz pn cnd acesta ajunge acolo i napoi. ncercai s folosii ping pentru a vedea
ct de mult dureaz transferul pachetului ntre locul n care v gsii i alte cteva locuri cunos-

76

INTRODUCERE

CAP. 1

cute. Din aceste date, calculai timpul de tranzit ntr-o sigur direcie n funcie de distan. Este
bine s folosii universitile deoarece locaiile serverelor lor sunt cunoscute foarte bine. De
exemplu, berkley.edu este n Berkley, California, mit.edu este n Cambridge, Massachusetts, vu.nl
este n Amsterdam, Olanda, www.usyd.edu.au este n Sydney, Australia i www.uct.ac.za este n
Cape Town, Africa de Sud.
36. Vizitai situl Web al IETF, www.ietf.org pentru a vedea ce mai fac. Alegei un proiect care v
place i scriei un raport de jumtate de pagin despre problem i despre o soluie propus.
37. Standardizarea este foarte important n lumea reelelor. ITU i ISO sunt principalele organizaii oficiale de standardizare. Vizitai siturile lor Web, www.itu.org i www.iso.org, respectiv, i
aflai despre munca lor de standardizare. Scriei un scurt raport despre tipurile de lucruri pe care le-au standardizat.
38. Internet-ul este alctuit dintr-un mare numr de reele. Aranjarea lor determin topologia Internet-ului. O important cantitate de informaii despre topologia Internet-ului este disponibil
online. Folosii un motor de cutare pentru a afla mai multe despre acest subiect i scriei un
scurt raport care s rezume informaiile pe care le-ai gsit.

2
NIVELUL FIZIC

n continuare vom analiza trei tipuri de medii de transmisie: ghidate (cablu din cupru i fibre optice), fr fir (unde radio terestre) i prin satelit. Acest material furnizeaz informaiile fundamentale referitoare la tehnologiile de comunicaie folosite n reelele moderne.
Restul capitolului este dedicat descrierii a trei exemple de sisteme de comunicaie folosite
n practic pentru reele cu rspndire geografic larg. Vom ncepe cu sistemul telefonic, studiind trei variante: sistemul de telefonie fix, sistemul de telefonie mobil i sistemul bazat pe
cablu de televiziune. Toate acestea folosesc fibra optic pentru implementarea coloanei vertebrale, dar sunt organizate diferit i folosesc tehnologii diferite pentru ultima mil a legturii.

77

82

NIVELUL FIZIC

CAP. 2

2.2 MEDII DE TRANSMISIE GHIDAT


Scopul nivelului fizic este de a transporta o secven de bii de la o main la alta. Pentru transmisia efectiv pot fi utilizate diverse medii fizice. Fiecare dintre ele este definit de lrgime proprie de
band, ntrziere, cost, dar i de uurina de instalare i ntreinere. Aceste medii pot fi mprite n
dou grupe mari: medii ghidate, cum sunt cablul de cupru i fibrele optice i medii neghidate, cum
sunt undele radio i laserul. Vom arunca o privire asupra acestora n urmtoarele seciuni.

2.2.1

Medii magnetice

Una din cele mai obinuite metode de a transporta date de la un calculator la altul este s se scrie
datele pe o band magnetic sau pe un suport reutilizabil (de exemplu, DVD-uri pentru nregistrare), s se transporte fizic banda sau discul la maina de destinaie, dup care s se citeasc din nou
datele. Cu toate c aceast metod nu este la fel de sofisticat precum folosirea unui satelit de comunicaie geosincron, ea este de multe ori mai eficient din punct de vedere al costului, mai ales
pentru aplicaiile n care lrgimea de band sau costul pe bit transportat sunt factori cheie.
Un calcul simplu va confirma acest punct de vedere. O band Ultrium standard industrial poate
nmagazina 200 gigaoctei. ntr-o cutie cu dimensiunile 60 x 60 x 60 cm pot s ncap cam 1000 de
astfel de benzi, ceea ce nseamn o capacitate total de 200 de terraoctei sau 1600 terrabii (1.6
petabii). O cutie cu benzi poate fi distribuit oriunde n Statele Unite n 24 de ore de ctre Federal
Express sau de alte companii. Banda de frecven efectiv a acestei transmisii este de 1600 terrabii /
84600 secunde, adic 19Gbps. Dac destinaia ar fi la distan de numai o or cu maina, lrgimea
de band s-ar mri la peste 400Gbps. Nici o reea de calculatoare nu poate s se apropie de o asemenea vitez.
Pentru o banc n care datele sunt de ordinul gigaocteilor i trebuie salvate zilnic pe o alt main (pentru ca banca s poat funciona n continuare chiar i n urma unor inundaii puternice sau
unui cutremur), probabil c nici o alt tehnologie de transmisie nu e comparabil cu performana
atins de banda magnetic. Desigur, reelele devin din ce n ce mai rapide, dar i capacitile benzilor magnetice cresc.
Dac ne uitm la cost, vom obine aceeai situaie. Atunci, dac sunt cumprate en-gros, benzile
Ultrium ajung s coste n jur de 40 de dolari pe bucat. O band poate fi refolosit de cel puin 10
ori, astfel nct costul benzii este aproape de 4000 de dolari/cutie/utilizare. Dac adugm nc 1000
de dolari pentru transport (probabil mult mai ieftin), vom avea un cost de 5000 de dolari pentru a
transporta 200 de terraoctei. De aici rezult c un gigaoctet poate fi transportat la un pre mai mic
de 3 ceni. Nici o reea nu poate concura cu un astfel de pre. Morala povetii:
Niciodat nu subestima lrgimea de band a unui camion ncrcat cu benzi magnetice care gonete
la vale pe autostrad.

SEC. 2.2

2.2.2

MEDII DE TRANSMISIE GHIDAT

83

Cablul torsadat

Dei caracteristicile de lrgime de band ale mediilor magnetice sunt excelente, performanele
legate de ntrzieri sunt slabe. Timpul de transmisie nu se msoar n milisecunde, ci n minute sau
ore. Pentru multe aplicaii este nevoie de o conexiune on-line. Unul dintre cele mai vechi medii de
transmisie, rmas cel mai utilizat mediu, este cablul torsadat. O pereche torsadat este format din
dou fire de cupru izolate, fiecare avnd o grosime tipic de 1 mm. Firele sunt mpletite ntr-o form
elicoidal, ca o molecul de ADN. mpletirea se face pentru c dou fire paralele constituie o bun
anten. Dac firele sunt mpletite, undele din diferite mpletiri se anuleaz, astfel nct radiaia firului este sczut eficient.
Cea mai cunoscut aplicaie a cablului torsadat este sistemul telefonic. Aproape toate telefoanele
sunt conectate la centrala telefonic printr-un cablu torsadat. Cablurile torsadate se pot ntinde pe
mai muli kilometri fr amplificare, dar pentru distane mai mari, sunt necesare repetoare. Atunci
cnd mai multe cabluri torsadate sunt grupate n paralel cum sunt de exemplu toate firele de la un
bloc de locuine legate la centrala telefonic ele sunt legate mpreun i ncapsulate ntr-un material protector. Dac perechile de fire nu ar fi fost mpletite, cablurile grupate astfel mpreun ar fi interferat. n anumite pri ale lumii, unde liniile telefonice sunt montate pe stlpi, sunt des ntlnite
cablurile cu diametrul de civa centimetri.
Cablurile torsadate pot fi folosite att pentru transmisia semnalelor analogice ct i pentru
transmisia de semnale digitale. Lrgimea de band depinde de grosimea firului i de distana parcurs, dar, n multe cazuri, se poate atinge o vitez de mai muli megabii pe secund pe distane de
ordinul a civa kilometri. Datorit performanei satisfctoare i a costului sczut, cablurile torsadate sunt foarte larg folosite n prezent i probabil c vor rmne larg folosite i n urmtorii ani.
Exist numeroase tipuri de cabluri torsadat, dou dintre acestea fiind importante pentru reelele
de calculatoare. Perechile torsadate din Categoria 3 sunt formate din dou fire izolate rsucite unul
n jurul celuilalt cu pas mare. De obicei, patru astfel de perechi sunt grupate ntr-un material plastic,
pentru a le proteja i pentru a le ine mpreun. Pn n 1988, cele mai multe cldiri cu birouri aveau
un cablu de categoria 3, care pornea din panoul central de la fiecare etaj ctre fiecare birou. Aceast
schem permitea ca maxim patru telefoane obinuite, sau maxim dou telefoane cu mai multe linii,
toate aflate n acelai birou, s poat fi cuplate la centrala telefonic prin panoul central.
ncepnd din 1988, au fost introduse cablurile de Categoria 5, mai performante. Ele sunt similare
celor din categoria 3, dar au mai multe rsuciri pe centimetru (pas de rsucire mai mic), rezultnd o
interferen (diafonie) sczut i o mai bun calitate a semnalului pe distane mari, ceea ce le face
mai adecvate comunicaiilor la viteze mari ntre calculatoare. Categoriile mai noi sunt 6 i 7, care
sunt capabile s trateze semnale cu banda de frecven de 250 MHz i, respectiv, 600 MHz (fa de
numai 16MHz sau 100MHz pentru categoriile 3 i, respectiv, 5) .
Pentru a le deosebi de cablurile torsadate voluminoase, ecranate i scumpe, pe care IBM le-a introdus la nceputul anilor 80, dar care nu au devenit populare n afara instalaiilor IBM, aceste tipuri
de cabluri sunt cunoscute sub numele de cabluri UTP (Unshielded Twisted Pair, rom: cablu torsadat
neecranat). Torsadarea firelor este ilustrat n fig. 2-3.

Fig. 2-3. (a) Cablu UTP cat. 3. (b) Cablu UTP cat. 5.

84

2.2.3

NIVELUL FIZIC

CAP. 2

Cablu Coaxial

Un alt mediu uzual de transmisie este cablul coaxial (cunosc ut printre utilizatorii si sub numele
de coax i este pronunat co-ax). El are o ecranare mai bun dect cablurile torsadate, putnd
acoperi distane mai mari la rate de transfer mai mari. Exist dou tipuri de cabluri coaxiale folosite
pe scar larg. Primul, cablul de 50 de ohmi, este folosit frecvent cnd se dorete transmisie digital
de la nceput. Al doilea tip, cablul de 75 de ohmi, este frecvent folosit n transmisia analogic i televiziunea prin cablu, dar devine tot mai important o data cu apariia Internetului prin cablu. Aceast
clasificare are la baz un criteriu stabilit mai mult pe considerente istorice dect pe considerente
tehnice (de exemplu, primele antene dipol aveau o impedan de 300 de ohmi i existau transformatoare de impedan 4 : 1, care erau uor de folosit).
Un cablu coaxial este format dintr-o srm de cupru rigid, protejat de un material izolator.
Acest material este ncapsulat ntr-un conductor circular, de obicei sub forma unei plase strns ntreesute. Conductorul exterior este acoperit cu un nveli de plastic protector. n fig. 2-4 este prezentat o vedere n seciune a cablului coaxial.

Fig. 2-4. Un cablu coaxial.

Structura i ecranarea cablului coaxial asigur o bun mpletire a necesitilor semnificative de


lrgime de band i totodat de imunitate excelent la zgomot. Lrgimea de band poate depinde de
calitatea cablului, de lungime, i de raportul semnal-zgomot al semnalului de date. Cablurile moderne
au o band de frecven de aproape 1 GHz. Cablurile coaxiale erau folosite pe scar larg n sistemul
telefonic pentru linii ntinse pe distane mari, dar au fost n mare parte nlocuite cu fibre optice. Oricum, cablul coaxial este utilizat n continuare n televiziunea prin cablu i n unele reele locale.

2.2.4

Fibre optice

Muli dintre cei implicai n industria calculatoarelor sunt foarte mndri de viteza de evoluie a
tehnologiei calculatoarelor. Originalul (1981) IBM PC rula la o frecven de ceas de 4,77 MHz. Douzeci de ani mai trziu, calculatoarele personale pot rula la 2 GHz, ceea ce reprezint o cretere a
frecvenei de 20 de ori pentru fiecare deceniu. Nu e ru deloc.
n aceeai perioad, comunicaiile de date pe arii ntinse au evoluat de la o vitez de 56 Kbps
(ARPANET) pn la 1 Gbps (comunicaiile optice moderne), o cretere de mai bine de 125 de ori
pentru fiecare deceniu. n aceeai perioad, frecvena erorilor a sczut de la 10-5 per bit pn aproape de zero.
Mai mult, procesoarele se aproprie de limitele lor fizice, date de viteza luminii i de problemele
de disipare a cldurii. Din contr, folosind tehnologiile actuale de fibre optice, lrgimea de band
care poate fi atins este cu siguran mai mare dect 50,000 Gbps (50 Tbps) i sunt nc muli cei

SEC. 2.2

MEDII DE TRANSMISIE GHIDAT

85

care caut materiale i tehnologii mai performante. Limitarea practic actual la aproximativ 10
Gbps este o consecin a imposibilitii de a converti mai rapid semnalele electrice n semnale optice, dei, n laborator, 100 Gbps a fost atins ntr-o singur fibr.
n cursa dintre calculatoare i comunicaii, acestea din urm au nvins. Implicaiile complete ale
lrgimii de band infinite (dei nu la un cost nul) nu au fost nc abordate de o generaie de oameni
de tiin i ingineri nvai s gndeasc n termenii limitrilor calculate de Nyquist i Shannon,
limitri stricte impuse de firele de cupru. Noua paradigm convenional spune c mainile de calcul
sunt extrem de lente, astfel c reelele trebuie s evite cu orice pre calculele, indiferent de lrgimea
de band risipit. n aceast seciune vom studia fibrele optice pentru a ne familiariza cu aceast
tehnologie de transmisie.
Un sistem de transmisie optic este format din trei componente: sursa de lumin, mediul de
transmisie i detectorul. Prin convenie, un impuls de lumin nseamn un bit cu valoarea 1, iar absena luminii indic un bit cu valoarea 0. Mediul de transmisie este o fibr foarte subire de sticl.
Atunci cnd intercepteaz un impuls luminos, detectorul genereaz un impuls electric. Prin ataarea
unei surse de lumin la un capt al fibrei optice i a unui detector la cellalt, obinem un sistem unidirecional de transmisie a datelor care primete un semnal electric, l convertete i l transmite ca
impulsuri luminoase i apoi reconvertete ieirea n semnale electrice la recepie.
Acest sistem de transmisie ar fi pierdut din semnalele luminoase i ar fi fost lipsit de importan
n practic, dac nu s-ar fi folosit un principiu interesant al fizicii: cnd o raz luminoas trece de la
un mediu la altul, de exemplu de la siliciu la aer, raza este refractat (frnt) la suprafaa de separaie siliciu / aer ca n fig. 2-5. Se observ o raz de lumin incident pe suprafaa de separaie la un
unghi 1 care se refract la un unghi 1. Mrimea refraciei depinde de proprietile celor dou medii (n particular, de indicii lor de refracie). Pentru unghiuri de inciden mai mari dect o anumit
valoare critic, lumina este refractat napoi n siliciu fr nici o pierdere. Astfel o raz de lumin, la
un unghi egal sau mai mare dect unghiul critic, este ncapsulat n interiorul fibrei, ca n fig. 2-5(b)
i se poate propaga pe muli kilometri, aparent fr pierderi.

Fig. 2-5. (a) Trei exemple de raze de lumin n interiorul unei fibre de siliciu care cad pe suprafaa de separaie aer/siliciu la unghiuri diferite. (b) ncapsularea luminii prin reflexie total.

n fig. 2-5(b) se poate observa o singura raz ncapsulat, dar se pot transmite mai multe raze cu
unghiuri de inciden diferite, datorit faptului c orice raz de lumin cu unghi de inciden la suprafaa de separaie mai mare dect unghiul critic va fi reflectat total. Se spune c fiecare raz are
un mod diferit, iar fibra care are aceast proprietate se numete fibr multi-mod.
Oricum, dac diametrul fibrei este redus la cteva lungimi de und ale luminii, fibra acioneaz
ca un ghid de und i lumina se va propaga n linie dreapt, fr reflexii, rezultnd o fibr monomod. Aceste fibre sunt mai scumpe, dar sunt des folosite pentru distane mai mari. Fibrele mono-

86

NIVELUL FIZIC

CAP. 2

mod curente pot transmite date la 50 Gbps pe distane de 100 Km fr amplificare. n condiii de
laborator i pentru distane mai mici s-au obinut rate de transfer chiar i mai mari.

Transmisia luminii prin fibre


Fibrele optice sunt fabricate din sticl, iar sticla este fabricat la rndul ei din nisip, un material
brut necostisitor, care se gsete n cantiti nelimitate. Producerea sticlei era cunoscut de egiptenii
din Antichitate, dar pentru ei sticla trebuia s nu fie mai groas de 1 mm pentru ca lumina s poat
s treac prin ea. Sticla suficient de transparent pentru a putea fi folosit ca fereastr a aprut abia
n timpul Renaterii. Sticla folosit pentru fibrele optice moderne este att de transparent nct,
dac oceanele ar fi fost pline cu astfel de sticl n loc de ap, fundul oceanului s-ar vedea de la suprafa tot att de clar precum se vede pmntul din avion ntr-o zi senin.
Atenuarea luminii prin sticl depinde de lungimea de und a luminii (i de alte cteva proprieti
fizice ale sticlei). Pentru tipul de sticl folosit la fibre optice, atenuarea este prezentat n fig. 2-6,
msurat n decibeli pe kilometru liniar de fibr. Atenuarea n decibeli este dat de formula:

Atenuarea _ n _ decibeli = 10 log10

puterea _ transmis
puterea _ receptionat

De exemplu, pentru un factor de pierdere egal cu 2 rezult o atenuare de 10 log102 = 3 dB. Fig.
prezint valorile atenurii pentru lungimi de und apropiate spectrului razelor infraroii, care sunt
folosite n practic. Lumina vizibil are lungimi de und puin mai mici, de la 0.4 la 0.7 microni (1
micron este 10-6 metri).

Fig. 2-6. Atenuarea luminii prin fibr n spectrul infrarou.

Trei benzi din acest spectru sunt folosite n comunicaii. Ele sunt centrate respectiv la 0.85, 1.3 i
1.55 microni. Ultimele dou au proprieti bune de atenuare (mai puin de 5% pierderi pe kilometru). Banda de 0.85 microni are o atenuare mai mare, dar o proprietate care o avantajeaz este c, la
aceast lungime de und, laserul i echipamentul electronic pot fi fcute din acelai material (arseniur de galiu). Toate cele trei benzi au o lrgime de band ntre 25.000 i 30.000 GHz.

SEC. 2.2

MEDII DE TRANSMISIE GHIDAT

87

Impulsurile de lumin transmise prin fibr i extind lungimea n timpul propagrii. Aceast extindere se numete dispersie cromatic, i mrimea ei este dependent de lungimea de und. Un
mod de a preveni suprapunerea acestor impulsuri extinse este de a mri distana dintre ele, dar
aceasta se poate face doar prin reducerea ratei semnalului. Din fericire, s-a descoperit c, dnd acestor impulsuri o form special, legat de reciproca cosinusului hiperbolic, se anuleaz toate efectele
de dispersie, i este astfel posibil s se trimit impulsuri pe mii de kilometri, fr distorsiuni semnificative ale formei. Aceste impulsuri se numesc solitonuri. Cercetrile pentru implementarea practic
a acestei soluii de laborator sunt n plin desfurare.

Cablurile din fibr optic


Cablurile din fibr optic sunt similare celor coaxiale, cu singura deosebire c nu prezint acel
material conductor exterior sub forma unei plase. Fig. 2-7(a) prezint o seciune a unei singure fibre.
n centru se afl miezul de sticl prin care se propag lumina. n fibrele multi-mod, miezul are un
diametru de 50 microni, aproximativ grosimea prului uman. n fibrele mono-mod miezul este de 8
pn la 10 microni.
Miezul este mbrcat n sticl cu un indice de refracie mai mic dect miezul, pentru a pstra lumina n miez. Totul este protejat cu o nvelitoare subire din plastic. De obicei, mai multe fibre sunt grupate mpreun, protejate de o teac protectoare. Fig. 2-7(b) prezint un astfel de cablu cu trei fibre.

Fig. 2-7 (a) Vedere perspectiv a unei singure fibre.


(b) Vedere n seciune a unei teci cu trei fibre.

Fibrele terestre sunt ngropate n pmnt pn la adncimi de un metru, fiind ocazional deteriorate de buldozere sau de crtie. Lng rm, fibrele transoceanice sunt ngropate n anuri cu ajutorul unui fel de plug de mare. n apele adnci, ele stau pe fundul apei, unde pot fi agate de traulere de pescuit sau pot fi atacate de calmari. Fibrele pot fi conectate n trei moduri. Primul mod const
n ataarea la captul fibrei a unor conectori care se pot lega la un soclu pentru fibr. Conectorii
pierd ntre 10% i 20% din lumin, dar avantajul acestor sisteme este c sunt uor de reconfigurat.
Al doilea mod const n mbinarea mecanic. mbinrile mecanice se obin prin ataarea celor
dou capete unul lng altul, ntr-un nveli special, i fixarea lor cu ajutorul unor clame. Alinierea se
poate face prin trimitere de semnale prin jonciune i realizarea de mici ajustri pentru a maximiza
semnalul. Unui specialist i trebuie n jur de 5 minute s fac o mbinare mecanic, aceasta avnd ca
rezultat o pierdere de lumin de 10%.
A treia posibilitate este de a mbina (topi) cele dou buci de fibr, pentru a forma o conexiune
solid. O mbinare prin sudur este aproape la fel de bun ca i folosirea unui singur fir, dar chiar i
aici, apare o mic atenuare.

88

NIVELUL FIZIC

CAP. 2

Pentru toate cele trei tipuri de mbinare poate s apar fenomenul de reflexie la punctul de mbinare, iar energia reflectat poate interfera cu semnalul.
Criteriu
Viteza de transfer a datelor
Tip de fibr
Distan
Durata de via
Sensibilitate la temperatur
Cost

LED
Joas
Multi-mod
Scurt
Via lung
Minor
Cost redus

Laser cu semiconductor
Mare
Multi-mod sau uni-mod
Lung
Via scurt
Substanial
Scump

Fig. 2-8. O comparaie ntre laserele semiconductoare i LED-uri ca surse de lumin.

Pentru transmiterea semnalului se pot folosi dou tipuri de surse de lumin: LED-uri (Light
Emitting Diode diod cu emitere de lumin) i laserul cu semiconductor. Ele au proprieti diferite, dup cum arat fig. 2-8. Ele se pot ajusta n lungime de und prin introducerea interferometrelor Fabry-Perot sau Mach-Zender ntre surs i fibra optic. Interferometrele Fabry-Perot sunt
simple caviti rezonante, formate din dou oglinzi paralele. Lumina cade perpendicular pe oglinzi.
Lungimea acestei caviti selecteaz acele lungimi de und care ncap n interior de un numr ntreg de ori. Interferometrele Mach-Zender separ lumina n dou fascicole. Cele dou fascicole se
propag pe distane uor diferite. Ele sunt apoi recombinate i se afl n faz doar pentru anumite
lungimi de und.
Captul fibrei optice care recepioneaz semnalul const dintr-o fotodiod, care declaneaz un
impuls electric cnd primete o raz de lumin. Timpul de rspuns tipic al unei diode este de 1ns,
ceea ce limiteaz viteza de transfer de date la aproximativ 1Gbps. Pentru a putea fi detectat, un impuls luminos trebuie s aib suficient energie ca s evite problema zgomotului termic. Viteza de
apariie a erorilor se poate controla prin asocierea unei puteri suficient de mari a semnalului.

Reelele din fibre optice


Fibrele optice pot fi folosite att pentru LAN-uri ct i pentru transmisia pe distane foarte lungi,
dei conectarea ntr-o reea bazat pe acest mediu este mult mai complex dect conectarea la
Ethernet. O soluie pentru a evita aceast problem este prezentarea unei reele n inel ca fiind o
colecie de legturi punct la punct, aa ca n fig. 2-9. Interfaa fiecrui calculator las s treac impulsul de lumin ctre urmtoarea legtur i totodat are rolul unei jonciuni n T pentru a face posibil transmiterea i recepia mesajelor.

Fig. 2-9. Un inel din fibr optic cu repetoare active.

SEC. 2.2

MEDII DE TRANSMISIE GHIDAT

89

Se folosesc dou tipuri de interfee. O interfa activ const din doi conectori sudai pe fibra
central. Unul din ei are la un capt un LED sau o diod cu laser (pentru transmisie) i cellalt are
la capt o fotodiod (pentru recepie). Conectorul este complet pasiv i este viabil, deoarece un
LED sau o fotodiod defect nu ntrerupe inelul, ci doar scoate un calculator din circuit.
Un alt model de interfa, prezentat n fig. 2-9, este repetorul activ. Lumina recepionat este
convertit ntr-un semnal electric, regenerat la putere maxim, dac este atenuat i retransmis ca
semnal luminos. Interfaa cu calculatorul este un fir de cupru obinuit care se leag la regeneratorul
de semnal. n prezent, sunt folosite i repetoare integral optice. Aceste echipamente nu necesit
conversii de tipul optic-electric-optic, ceea ce nseamn c pot opera la lrgimi de band foarte mari.
n cazul n care repetorul activ se deterioreaz, inelul este ntrerupt i reeaua nu mai funcioneaz. Pe de alt parte, deoarece semnalul este regenerat de fiecare interfa, legturile ntre dou calculatoare adiacente pot avea lungimi de kilometri, practic fr nici o limitare asupra dimensiunii
totale a inelului. Interfeele pasive diminueaz lumina la fiecare jonciune, avnd ca efect restricii
drastice n ceea ce privete numrul de calculatoare ce pot fi conectate i lungimea total a inelului.
O topologie n inel nu este singura modalitate de a construi un LAN folosind fibre optice. Este
posibil i o arhitectur de tip stea pasiv, ca aceea prezentat n fig. 2-10. n aceast schem, fiecare
interfa prezint o fibr care face conexiunea ntre transmitor i un cilindru de siliciu, cu toate
aceste fibre sudate la un capt al cilindrului. Similar, fibrele sudate la cellalt capt al cilindrului se
conecteaz la fiecare receptor. Ori de cte ori o interfa transmite un semnal, el este difuzat n interiorul stelei pasive pentru a ilumina toi receptorii, realizndu-se astfel difuzarea. Steaua pasiv
combin toate semnalele de la intrare i transmite semnalul combinat pe toate liniile. Deoarece
energia de la intrare este mprit ntre toate liniile de la ieire, numrul de noduri n reea este
limitat de senzitivitatea fotodiodelor.

Fig. 2-10. Conectarea unei stele pasive n reelele de fibr optic.

90

NIVELUL FIZIC

CAP. 2

Comparaie ntre fibrele optice i firul de cupru


O comparaie ntre fibra optic i firele de cupru este instructiv. Fibra are multe avantaje. Mai
nti, lrgimea de band pe care o suport este mai mare dect a firelor de cupru. Numai acest lucru
i ar fi suficient pentru a fi utilizat n reelele performante. Datorit atenurii sczute, repetoarele
sunt necesare la fiecare 30 km pe liniile lungi, n comparaie cu 5 Km pentru cupru. Fibra are avantajul c nu este afectat de ocurile electrice, de interferena cmpului electromagnetic sau de cderile
de tensiune. De asemenea, nu este afectat nici de substanele chimice corozive din aer, fiind ideal
pentru mediile aspre din fabrici.
Destul de surprinztor, companiile de telefoane prefer fibra dintr-un alt motiv: este subire i
foarte uoar. Multe dintre canalele cu cabluri sunt pline pn la refuz i prin nlocuirea cuprului cu
fibr se obine ceva spaiu, iar cuprul are o valoare excelent pe pia, deoarece fabricile l consider
un minereu de mare importan. De asemenea, fibra este mai uoar dect cuprul. O mie de cabluri
torsadate cu o lungime de 100 Km lungime cntresc 8000 Kg. Dou fibre au o capacitate mai mare
i cntresc doar 100 Kg, acest lucru reducnd drastic necesitatea unor echipamente mecanice
scumpe care trebuie ntreinute. Pe traseele noi, fibra ctig detaat n faa cuprului datorit costului de instalare foarte sczut.
n sfrit, fibrele nu disip lumina i de aceea sunt foarte dificil de interceptat. Aceste proprieti
le ofer o excelent securitate mpotriva unor poteniale tentative de interceptare.
Pe de alt parte, fibra este o tehnologie mai puin familiar i necesit o pregtire pe care nu toi
inginerii o au, iar fibrele pot fi stricate uor dac sunt ndoite prea mult. Deoarece transmisia optic
este prin natura ei unidirecional, comunicaiile bidirecionale necesit fie dou fibre, fie dou
benzi de frecven diferite pe aceeai fibr. n sfrit, interfeele pentru fibr cost mai mult dect
interfeele electrice. Nu mai puin adevrat este faptul c toate comunicaiile de date pe lungimi mai
mari de civa metri se vor face n viitor cu fibre. Pentru o discuie asupra tuturor aspectelor fibrelor
optice i asupra reelelor construite cu ele, vedei (Hecht, 2001).

2.3 COMUNICAIILE FR FIR


Epoca noastr a generat dependena de informaie: oameni care au nevoie s fie n permanena
conectai la informaii. Pentru aceti utilizatori mobili, cablul torsadat, cablul coaxial i fibrele optice
nu sunt de nici un folos. Ei au nevoie de date pentru calculatoarele lor portabile, fr a fi legai de
infrastructura comunicaiilor terestre. Pentru aceti utilizatori comunicaiile fr fir reprezint soluia optim. n seciunile ce urmeaz, vom discuta la modul general asupra comunicaiilor fr fir,
deoarece acestea au multe alte aplicaii importante n afara serviciilor de conectare oferite utilizatorilor care doresc s navigheze pe WEB de pe plaj.
Sunt voci care susin c viitorul rezerv numai dou tipuri de comunicaii: prin fibre optice i fr
fir. Toate calculatoarele, faxurile, telefoanele fixe (nemobile) vor folosi fibre, iar cele mobile vor folosi comunicaia fr fir.
Comunicaiile fr fir sunt avantajoase chiar i pentru echipamentele fixe, n anumite mprejurri. De exemplu, n cazul n care conectarea unei cldiri cu ajutorul fibrei este dificil datorit terenului (muni, jungle, mlatini etc.), comunicaia fr fir poate fi mai bun. Este de remarcat faptul c

SEC. 2.3

COMUNICAIILE FR FIR

91

sistemele moderne de comunicaie digital fr fir au aprut n Insulele Hawaii, unde utilizatorii
erau desprii de mari ntinderi de ap din oceanul Pacific, sistemul telefonic fiind inadecvat.

2.3.1

Spectrul electromagnetic

Atunci cnd electronii se afl n micare, ei creeaz unde electromagnetice care se pot propaga
prin spaiu (chiar i n vid). Aceste unde au fost prezise de fizicianul britanic James Clerk Maxwell n
1865 i au fost observate pentru prima dat de fizicianul german Heinrich Hertz n 1887. Numrul
de oscilaii ale unei unde ntr-o secund poart numele de frecven, f, i este msurat n Hz (n
onoarea lui Heinrich Hertz). Distana dintre dou maxime (sau minime) consecutive este numit
lungime de und. Notaia universal a lungimii de und este (lambda).
Cnd o anten dimensionat corespunztor este ataat unui circuit, undele electromagnetice
pot fi difuzate eficient i interceptate de un receptor, aflat la o anumit distan. Acest principiu st
la baza tuturor comunicaiilor fr fir.
n vid, toate undele electromagnetice se transmit cu aceeai vitez, indiferent de frecven,
Aceast vitez, numit de obicei viteza luminii, c, este de aproximativ de 3 x 108 m/s, sau aproape 1
picior (30 cm) pe nanosecund. (Ar fi o ideea redefinirea piciorului (eng: foot) ca fiind distana pe
care o parcurge lumina n vid ntr-o nanosecunda, mai degrab dect definirea pe baza mrimii pantofului unui rege oarecare mort demult). n cupru sau n fibr, viteza scade la aproape 2/3 din aceast valoare i devine uor dependent de frecvena undei. Viteza luminii este viteza maxim care poate fi atins nici un obiect sau semnal nu se deplaseaz vreodat cu o viteza mai mare ca aceasta.
Relaia fundamental dintre f, i c (n vid) este

f=c

(2-2)

Deoarece c este o constant, tiind f putem afla , dar i invers. Ca o regul clar, reinei c
atunci cnd este n metri i f este n MHz, f=300. De exemplu, undele cu frecvena de 100 MHz
au lungimea de und de aproape 3 metri, cele cu frecvena de 1000 MHz au lungimea de und de
0.3 metri, iar cele cu lungimea de und de 0.1 metri au frecvena de 3000 MHz.
n fig. 2-11 este prezentat spectrul electromagnetic. Domeniile corespunztoare undelor radio,
microundelor, undelor infraroii i luminii vizibile din spectru pot fi folosite pentru transmiterea informaiei prin modularea amplitudinii, frecvenei sau fazei undelor. Lumina ultraviolet, razele X i
razele gama ar fi chiar mai performante datorit frecvenelor lor mai nalte, dar ele sunt greu de
produs i de modulat, nu se propag bine prin cldiri i sunt periculoase pentru fiinele vii. Benzile
listate n partea de jos a fig. 2-11 sunt numele oficiale ITU i se bazeaz pe lungimile de und, LF
acoperind intervalul de la 1 Km la 10 Km (aproximativ de la 30 KHz la 300 KHz). Termenii de LF,
MF i HF se refer la frecvenele joase, medii i nalte, respectiv. Este evident c atunci cnd au fost
date aceste nume, nimeni nu se atepta ca frecvene mai mari de 10 MHz s se foloseasc vreodat.
Benzile mai nalte au fost numite mai trziu benzi de frecven Foarte, Ultra, Super, Extrem i Extraordinar de nalte. Dincolo de aceste frecvene nu mai exist denumiri consacrate, dar am putea s
folosim expresii de genul frecvene Incredibil, Uimitor sau Miraculos de nalte.
Cantitatea de informaie pe care o und electromagnetic o poate transporta este legat de lrgimea ei de band. Folosind tehnologia curent, este posibil s codificm civa bii pe Hertz la frecvene
joase i deseori pn la 8 bii pe Hertz la frecvene nalte; n concluzie, un cablu torsadat cu lrgimea de
band de 750MHz poate transporta date de ordinul a civa gigabii/s. Din fig. 2-11 ar trebui s reias
de acum foarte clar de ce profesionitii din domeniul reelelor apreciaz att de mult fibrele optice.

92

NIVELUL FIZIC

CAP. 2

Fig. 2-11. Spectrul electromagnetic aa cum este folosit n comunicaii.

Dac rezolvm Ec. (2-2) pentru f i o difereniem n raport cu lungimea de und, obinem
df
c
= 2
d

Dac trecem la diferene finite n loc de difereniale i alegem doar valorile pozitive, obinem:

f =

(2-3)

Astfel, fiind dat lrgimea unei benzi de lungimi de und, , putem calcula banda de frecven
corespunztoare, f i, n continuare, viteza de transfer de date pe care banda o poate produce. Cu
ct banda este mai larg, cu att crete viteza de transfer a datelor. De exemplu, s considerm banda de 1.30 microni din fig. 2-6. Aici avem = 1.3 x 10-6 i = 0.17 x 10-6, cu f aproape 30 THz. La
, s zicem, 8 bii/Hz, avem 240 Tbps.
Majoritatea transmisiilor folosesc o band ngust de frecven (f / f << 1) pentru a obine cea
mai bun recepie (ct mai muli Watts/Hz). Totui, banda larg este folosit n dou situaii. n cazul utilizrii metodei salturilor de frecven ntr-un spectru larg (frequency hopping spread spectrum), transmitorul sare de la o frecven la alta de sute de ori pe secund. Ea este foarte popular
n comunicaiile armatei, deoarece face transmisia greu de detectat i aproape imposibil de bruiat.
De asemenea, ofer un grad ridicat de imunitate la atenuarea multi-ci, deoarece semnalul direct
ajunge ntotdeauna primul la receptor. Semnalele reflectate urmresc o cale mai lung si ajung mai
trziu. Pn atunci receptorul a schimbat deja frecvena i nu mai primete semnale cu frecvena
anterioar, eliminnd astfel orice interferen ntre semnalele directe i cele reflectate. n ultimii ani,
aceast tehnic a fost aplicat comercial de exemplu, pentru 802.11 i pentru Bluetooth.
Ca o curiozitate, tehnica a fost co-inventat de Hedy Lamarr, o senzual actri nscut n Austria, prima femeie care a aprut goal intr-un film (n 1933, n filmul cehesc Extase). Primul ei so
era fabricant de armament, i i-a spus ct de uor era s blochezi undele radio, folosite pe atunci

SEC. 2.3

COMUNICAIILE FR FIR

93

pentru ghidarea torpilelor. ngrozit cnd a descoperit c el i vindea arme lui Hitler, ea s-a deghizat
n servitoare pentru a fugi i a zburat la Hollywood pentru a-i continua cariera de actri de film. n
timpul liber, a inventat metoda salturilor de frecvene pentru a-i ajuta pe aliai n rzboi. Schema ei
folosea 88 de frecvene, numrul de clape (si frecvene) de la pian. Pentru invenia lor, ea i prietenul ei, compozitorul de musical-uri George Antheil, au primit patentul U.S. cu numrul 2.292.387 .
Totui, nu au reuit sa conving marina american c invenia lor putea fi pus n practic i nu au
primit niciodat nici un fel de onoruri. Abia peste ani, dup ce patentul expirase, metoda a devenit o
tehnic popular.
i cealalt form de spectru larg, spectru larg cu succesiune direct (direct sequence spread
spectrum), metod care mprtie semnalul pe o band de frecven larg ctig popularitate n
lumea comercial. In particular, unele telefoane mobile din cea de-a doua generaie folosesc aceast
tehnic, i va deveni predominant pentru generaia a treia, datorit eficienei spectrale bune, imunitii la zgomot i a altor proprieti. Este folosit i n unele LAN-uri fr fir. Vom reveni la discuia
despre spectrul larg mai trziu n acest capitol. Pentru o istorie fascinant i detaliat a comunicaiilor n spectru larg, vezi (Scholtz, 1982).
Pentru moment, vom considera c toate transmisiunile folosesc o band de frecven ngust.
Vom discuta despre modul n care diverse pri ale spectrului electromagnetic din fig. 2-11 sunt folosite, ncepnd cu banda radio.

2.3.2

Transmisia radio

Undele radio sunt uor de generat, pot parcurge distane mari, penetreaz cu uurin zidurile
cldirilor, fiind larg rspndite n comunicaii, att interioare ct i exterioare. De asemenea, undele
radio sunt omnidirecionale, ceea ce nseamn c se pot propaga n orice direcie de la surs, deci nu
este nevoie de o aliniere fizic a transmitorului cu receptorul.
Uneori aceast proprietate de propagare omnidirecional este bun, alteori nu. n anii 70, General Motors a decis s echipeze noile sale Cadillac-uri cu un calculator care s previn blocarea
frnelor. Atunci cnd oferul apsa pedala de frn, calculatorul frna treptat, n loc s preseze frna
complet. ntr-o zi frumoas de var, un ofier de pe o autostrad din Ohio a nceput s-i foloseasc
staia radio mobil pentru a chema sediul central i deodat un Cadillac situat n apropriere a nceput s se cabreze ca un cal slbatic. Atunci cnd ofierul a oprit maina, oferul a pretins c el nu a
fcut nimic, dar maina a nnebunit.
n cele din urm a reieit c lucrurile se petreceau dup un anumit tipar: mainile Cadillac erau
scpate uneori de sub control, dar numai pe marile autostrzi din Ohio i numai cnd o patrul de
poliie era n zon. Pentru o foarte lung perioad de timp, cei de la General Motors nu au neles de
ce mainile mergeau foarte bine n toate celelalte state, ca i pe strzile secundare din Ohio. Dup
ndelungi cutri au descoperit c, n Cadillac, cablajul forma o anten foarte bun pentru frecvena
folosit de noul sistem radio al poliiei rutiere din Ohio.
Proprietile undelor radio sunt dependente de frecven. La frecvene joase, undele radio se
propag bine prin obstacole, dar puterea semnalului scade mult odat cu distana de la surs, aproximativ cu 1/r2 n aer. La frecvene nalte, undele radio tind s se propage n linie dreapt i s ricoeze din obstacole. De asemenea, sunt absorbite de ploaie. Mai mult, toate frecvenele radio sunt supuse la interferene datorate motoarelor i altor echipamente electrice.

94

NIVELUL FIZIC

CAP. 2

Datorit capacitii undelor radio de a se propaga pe distane mari, interferena dintre utilizatori
devine o problem. Acesta este principalul motiv pentru care toate guvernele acord cu foarte mare
atenie licenele pentru utilizatorii de transmitoare radio, cu o singur excepie (discutat mai jos).
n benzile de frecven foarte joas (VLF), joas (LF) i medie (MF), undele radio se propag la
sol, dup cum este ilustrat n fig. 2-12(a). Aceste unde pot fi detectate pe distane de pn la aproximativ 1000 Km pentru frecvenele mai joase i pe distane mai mici pentru cele mai nalte. Pentru
difuzarea undelor radio AM se folosete banda MF, acesta fiind motivul pentru care staia radio
AM din Boston nu poate fi auzit cu uurin n New York. Undele radio n aceast band trec uor
prin cldiri, fiind astfel posibil utilizarea radiourilor portabile n spaii interioare. Problema principal care apare la comunicaia de date la aceste frecvene este lrgimea mic a benzii pe care o ofer
[vezi ecuaia (2-2)].
n benzile de frecven nalt i foarte nalt, undele de la sol tind s fie absorbite de pmnt.
Totui, undele care ating ionosfera (un strat de particule care nvelete atmosfera la o nlime de
100 pn la 500 Km), sunt refractate de aceasta i trimise napoi spre pmnt, dup cum arat fig.
2-12(b). n anumite condiii atmosferice, semnalele pot parcurge acest drum de mai multe ori.

Fig. 2-12. (a) n benzile VLF, VF i MF, undele radio urmresc curbura pmntului.
(b) n banda HF undele revin din ionosfer.

Operatorii radio amatori folosesc aceste benzi pentru a realiza convorbiri la mare distan. De
asemenea, comunicaiile armatei se desfoar n benzile de frecvene nalte i foarte nalte.

2.3.3

Transmisia prin microunde

Peste 100 MHz, undele se propag n linii aproximativ drepte i pot fi, din acest motiv, direcionate. Concentrnd toat energia ntr-un fascicol ngust, cu ajutorul unei antene parabolice (ca o anten de satelit obinuit) rezult o valoare mult mai ridicat a raportului semnal-zgomot, dar antenele care transmit i cele care recepioneaz trebuie s fie aliniate cu precizie una cu alta. n plus, faptul c aceste unde sunt orientate permite ca mai multe transmitoare s fie aliniate i s comunice
cu mai multe receptoare aflate n linie, fr interferene, cu condiia s se respecte cteva reguli de
distanare. naintea fibrelor optice, microundele au format, timp de decenii, inima sistemului telefonic de comunicaie pe distane mari. De fapt, MCI, una dintre primele competitoare AT&T , i-a
construit ntregul sistem prin comunicaii cu microunde, din turn n turn, la distane de zeci de kilometri ntre ele. Chiar i numele companiei reflect acest lucru (MCI nseamn Microwave
Communications, Inc.). MCI a trecut apoi pe fibr i a fuzionat cu WorldCom.
Datorit faptului c microundele se propag n linii drepte, dac turnurile sunt foarte deprtate,
atunci n calea lor st chiar Pmntul (gndii-v la o legtur ntre San Francisco i Amsterdam). n
consecin trebuie instalate repetoare din loc n loc. Cu ct turnurile sunt mai nalte, cu att distana

SEC. 2.3

COMUNICAIILE FR FIR

95

dintre repetoare este mai mare. Distana dintre repetoare crete direct proporional cu radicalul nlimii turnului. Pentru turnuri cu o nlime de 100 m, distana dintre repetoare poate fi de 80 km.
Spre deosebire de undele radio de frecvene joase, microundele nu trec cu uurin prin zidurile
cldirilor. n plus, cu toate c unda poate fi bine direcionat la transmitor, apare o divergen n
spaiu. Unele unde pot fi refractate de straturile atmosferice joase i pot ntrzia mai mult dect undele directe. Undele ntrziate pot sosi defazate fa de unda direct, anulnd astfel semnalul. Acest
efect este numit atenuare multi-ci (multipath fading) i constituie deseori o problem serioas.
Este dependent de vreme i de frecven. Unii operatori pstreaz nefolosit un procent de 10 la
sut din canalul propriu pentru a putea comuta pe acesta atunci cnd atenuarea multi-ci le anuleaz temporar anumite benzi de frecven.
Cererea de benzi este din ce n ce mai mare i duce operatorii ctre frecvene tot mai nalte.
Benzi de pn la 10 GHz sunt acum uzuale, dar la aproape 8 GHz apare o nou problem: absorbia
de ctre ap. Aceste unde au lungimi de doar civa centimetri i sunt absorbite de ploaie. Acest
efect ar fi potrivit pentru cineva care ar fi ncercat s construiasc un imens cuptor cu microunde n
aer liber, dar pentru comunicaii este o problem dificil. La fel ca i n cazul atenurii multi-ci,
singura soluie posibil este ntreruperea legturilor acolo unde plou i gsirea unei rute alternative.
Comunicaiile cu microunde sunt att de larg folosite de telefonia pe distane mari, telefoanele
celulare, televiziune i altele, nct a aprut o criz n ceea ce privete spectrul. Microundele au mai
multe avantaje semnificative fa de fibr. Cel mai important avantaj este c nu sunt necesare drepturi de acces la drum, cumprnd un mic teren la fiecare 50 Km i montnd un turn pe el, se poate
ocoli sistemul telefonic i se poate realiza o comunicare direct. Astfel a reuit MCI s porneasc
att de rapid ca o companie de telefoane pe distane mari. (Sprint a aplicat o alt tactic : a fost format de Southern Pacific Railroad (cile feroviare sudice), care deja deinea destule drepturi de
acces i tot ce a avut de fcut a fost s ngroape fibra lng ine).
Comunicaiile cu microunde, prin comparaie cu alte medii de transmisie, sunt ieftine. Preul ridicrii a dou turnuri simple (doi stlpi nali asigurai cu patru cabluri) i de montare a unei antene
pe fiecare turn, poate fi mai mic dect preul ngroprii a 50 de Km de fibr ntr-o zon urban foarte populat sau peste un munte i poate fi mai mic dect costul nchirierii fibrei de la o companie
telefonic, mai ales atunci cnd acestea nu au pltit nc integral cuprul care a fost nlocuit cu fibr.

Politica din domeniul spectrului electromagnetic


Pentru a preveni haosul general, exist convenii naionale i internaionale care reglementeaz
modul de folosire al frecvenelor cine ce frecven folosete. Deoarece toat lumea dorete o rat
de transfer ct mai mare, toat lumea dorete ct mai mult din spectru. Guvernele naionale aloc
spectru pentru radio AM i FM, televiziune, telefoane mobile, ca de altfel i pentru companii telefonice, poliie, marin, navigatori, armat, guvern i muli ali clieni competitori. La nivel internaional
agenia ITU-R (WARC) ncearc s coordoneze aceast alocare, astfel nct s poat fi construite
dispozitive care s funcioneze n diverse ri. Totui, rile nu sunt obligate s respecte recomandrile ITU, iar FCC (Comisia Federal de Comunicaii), comisia care se ocup cu alocarea de spectru n
Statele Unite, a respins de cteva ori recomandrile ITU (de obicei pentru c acestea cereau unui
grup puternic din punct de vedere politic s renune la o parte din spectru).
Chiar i atunci cnd o parte din spectru a fost alocat unei anumite utilizri, cum ar fi telefonia
mobil, apare discuia legat de modul de alocare a frecvenelor ctre companiile de telecomunicaii. n trecut, erau utilizai trei algoritmi. Cel mai vechi algoritm, adesea denumit concursul de frumusee, cerea fiecrei companii de telecomunicaii s explice de ce propunerea sa servete cel mai

96

NIVELUL FIZIC

CAP. 2

bine interesul public. Oficialii guvernului decideau apoi care dintre poveti le place cel mai mult.
Posibilitatea ca unul dintre oficialii s premieze compania favorit cu o proprietate valornd miliarde de dolari ducea adesea la mit, corupie, nepotism i chiar mai ru. Mai mult, chiar i un oficial
cinstit al guvernului, cruia i se prea c o companie strin ar face o treab mai bun dect companiile naionale, ar fi avut de dat multe explicaii.
Aceast observaie a condus la algoritmul 2: organizarea unei loterii ntre companiile interesate.
n acest caz, problema este c pot participa la loterie chiar i companii care nu au nici o intenie de
utilizare a spectrului. S zicem c un restaurant cu servire rapid sau un lan de magazine de pantofi
ar ctiga: acesta ar putea revinde spectrul unei companii de telecomunicaii, cu un profit imens i
fr riscuri.
Scandaluri furtunoase datorate unor astfel de situaii alarmante, dei aleatoare, au dus la critici
severe din partea multora, ceea ce a condus la algoritmul 3: licitarea benzii de frecven i atribuirea
ei celui care d mai mult. n anul 2000, cnd Anglia a licitat frecvenele necesare pentru generaia a
treia de sisteme mobile, se ateptau s primeasc n jur de 4 miliarde de dolari. De fapt, au primit 40
de miliarde de dolari, deoarece companiile de telecomunicaii au intrat ntr-o frenezie molipsitoare,
fiind speriate de moarte c vor rata trenul telefoniei mobile. Acest eveniment a declanat lcomia
guvernelor din jur i le-a inspirat s organizeze propriile licitaii. A funcionat, dar a i lsat unele
dintre companiile de telecomunicaii cu foarte multe datorii, aproape de faliment. Chiar i n cele
mai bun variante, vor trece muli ani pn cnd acestea vor reui s acopere taxele de licen.
O modalitate cu totul diferit de a aborda problema alocrii frecvenelor este s nu fie alocate n
nici un fel. Toat lumea este lsat s transmit ct dorete, fiind reglementat doar puterea folosit,
astfel nct staiile s aib o raz de aciune suficient de scurt ca s nu interfereze ntre ele. n consecin, cele mai multe guverne au pus deoparte cteva benzi de frecven, numite benzi ISM (Industriale, tiinifice, Medicale) pentru utilizare neliceniat. Sistemele de deschidere de ui de garaj,
telefoane fr fir, jucrii telecomandate, mouse-uri fr fir, i multe alte aparate casnice fr fir folosesc benzile ISM. Pentru a minimiza interferena ntre aceste dispozitive necoordonate, FCC a impus ca toate dispozitivele din benzile ISM s foloseasc tehnici de spectru larg. Reguli asemntoare
sunt aplicate i n alte ri.

Fig. 2-13. Benzile ISM n Statele Unite.

Localizarea benzilor ISM difer oarecum de la o ar la alta. n Statele Unite, de exemplu, dispozitivele a cror putere este sub 1 Watt pot folosi benzile din fig. 2.13 fr a cere licen FCC. Banda 900Mhz este cea mai bun, dar este aglomerat i nu este disponibil n ntreaga lume. Banda
2.4GHz este disponibil n cele mai multe ri, dar este supus interferenei cu instalaiile radar sau
cuptoarele cu microunde. Bluetooth i unele dintre LAN-urile fr fir conforme 802.11 opereaz pe
aceast band. Banda 5.7GHz este nou i relativ nedezvoltat, astfel c echipamentele pentru ea
sunt scumpe; dar pentru c 802.11 o folosete, va deveni rapid mai popular.

SEC. 2.3

2.3.4

COMUNICAIILE FR FIR

97

Undele infraroii i milimetrice

Undele infraroii i milimetrice neghidate sunt larg folosite pentru comunicaiile pe distane
mici. Telecomenzile pentru televizoare, aparate video sau combine muzicale folosesc comunicaiile
n infrarou. Ele sunt relativ direcionale, ieftine i uor de construit, dar au un dezavantaj major: nu
penetreaz obiectele solide (ncercai s stai ntre telecomand i televizor i vedei dac telecomanda mai d comenzi televizorului). n general, pe msur ce ne deplasm de la undele radio lungi
ctre lumina vizibil, undele se comport din ce n ce mai mult ca lumin i din ce n ce mai puin ca
unde radio.
Pe de alt parte, faptul c razele infraroii nu trec prin obiecte constituie un avantaj. Aceasta nseamn c un sistem cu infraroii dintr-o camer a unei cldiri nu va interfera cu un sistem similar
situat n camerele sau cldirile adiacente: nu poi controla televizorul vecinului tu cu telecomanda
ta. Mai mult, sistemele de protecie cu radiaii infraroii asigur o mai bun protecie mpotriva interceptrilor n raport cu sistemele radiofonice, tocmai din acest motiv. Datorit acestor motive,
pentru operarea unui sistem cu infraroii nu este necesar procurarea unei licene, spre deosebire de
sistemele radiofonice, care trebuie s dein o licen.

2.3.5

Transmisia undelor luminoase

Semnalele optice neghidate au fost folosite secole ntregi. naintea faimoasei lui cltorii, Paul
Revere a folosit semnalizarea optic binar de la Old North Church. O aplicaie mai modern este
conectarea reelei locale ntre dou cldiri prin intermediul laserelor montate pe acoperiurile acestora. Semnalizarea optic folosind laserul este inerent unidirecional, deci fiecare cldire are nevoie
de propriul ei laser i de propria ei fotodiod. Aceast schem ofer o band foarte larg la un cost
foarte redus. De asemenea, este uor de instalat i, spre deosebire de microunde, nu necesit o licen FCC. Puterea laserului, un fascicol foarte ngust, este aici o slbiciune. ndreptarea unui fascicol
de lumin de 1mm lime ctre o int de limea unui ac cu gmlie aflat la 500 de metri deprtare
necesit o tehnic de vrf. De obicei sunt folosite lentile pentru o uoar defocalizare a fascicolului.
Un alt dezavantaj este c fascicolul laser nu penetreaz ploaia i ceaa groas, dar n mod normal
ele funcioneaz bine n zilele nsorite. Totui, autorul a participat odat ntr-un hotel modern din
Europa la o conferin la care organizatorii conferinei s-au gndit s pun la dispoziie o camer
plin cu terminale, n care participanii s-i poat citi pota electronic n timpul prezentrilor plictisitoare. Deoarece PTT-ul local nu dorea s instaleze un numr mare de linii telefonice doar pentru 3
zile, organizatorii au montat pe acoperi un laser orientat ctre cldirea departamentului de calculatoare al universitii de calculatoare aflat la o distana de civa kilometri. Ei l-au testat cu o noapte
nainte i totul a decurs perfect. n dimineaa urmtoare, ntr-o zi nsorit, la ora 9, legtura a czut i
a rmas nefuncional toata ziua. Seara, organizatorii au testat-o din nou cu atenie i a funcionat
nc o dat perfect. Acelai lucru s-a ntmplat nc dou zile la rnd.
Dup conferin, organizatorii au descoperit problema. Cldura datorat soarelui din timpul zilei
a determinat naterea unor cureni de convecie din acoperiul cldirii, ca n fig. 2-14. Acest aer turbulent a deviat fascicolul i l-a fcut s oscileze n jurul detectorului. Aceast vedere atmosferic
face ca stelele s plpie (acesta este motivul pentru care astronomii i pun telescoapele pe vrful
munilor ca s fie ct se poate de mult deasupra atmosferei). Efectul respectiv este responsabil i
pentru tremurul oselei ntr-o zi nsorit i a imaginii vlurite deasupra unui radiator fierbinte.

98

NIVELUL FIZIC

CAP. 2

Fig. 2-14. Curenii de convecie pot interfera cu sistemele de comunicaie prin laser. Aici este prezentat un sistem bidirecional, cu dou lasere.

2.4 SATELII DE COMUNICAIE


n anii 1950 i la nceputul anilor 1960, oamenii au ncercat s construiasc sisteme de comunicaie pe baza reflectrii semnalelor de ctre baloanele meteorologice metalizate. Din nefericire, semnalele recepionate erau prea slabe ca s poat fi folosite practic la ceva. Apoi, Marina S.U.A. a observat pe cer un fel de balon meteorologic permanent - Luna - i a construit, pe baza reflectrii semnalelor de ctre Lun, un sistem operaional pentru comunicaii nav-rm.
Progresul n domeniul comunicaiilor celeste a trebuit s mai atepte pn cnd a fost lansat primul satelit de comunicaii, n 1962. Principala diferen ntre un satelit artificial i unul natural este
aceea c satelitul artificial poate amplifica semnalele nainte de a le transmite napoi, transformnd
ceea ce era doar o curiozitate ntr-un sistem puternic de comunicaie.
Sateliii de comunicaie au cteva proprieti interesante, care i fac tentani pentru multe aplicaii. Un satelit de comunicaie poate fi gndit ca un mare repetor de microunde, aflat n cer. Acesta
conine mai multe dispozitive de recepie-transmisie automat (transporder); fiecare dintre ele ascult pe o anume poriune din spectru, amplific semnalul recepionat i apoi l redifuzeaz pe o alt
frecven, pentru a evita interferena cu semnalul recepionat. Unda descendent poate fi difuzat,
acoperind astfel o fraciune substanial din suprafaa Pmntului sau poate fi concentrat, caz n

SEC. 2.4

SATELII DE COMUNICAIE

99

care va acoperi numai o zon de cteva sute de kilometri n diametru. Acest mod de operare este
cunoscut i sub numele de eav ndoit (bent pipe).
Conform legii lui Kepler, perioada de rotaie a unui satelit variaz cu puterea 3/2 a razei orbitei.
Cu ct un satelit este mai sus, cu att este mai lung perioada. n apropierea suprafeei Pmntului,
perioada este de aproximativ 90 de minute. n consecin, sateliii cu orbita mai mic dispar din raza
vizual destul de repede, astfel c muli dintre ei sunt necesari pentru a oferi acoperire continu. La
o altitudine de aproximativ 35.800 km, perioada unui satelit este de 24 de ore. La o altitudine de
aproximativ 384.000 km, perioada unui satelit este de aproape o lun, aa dup cum poate confirma
oricine care a urmrit luna n mod regulat.
Perioada unui satelit este important, dar nu este singurul criteriu n determinarea locului n care
va fi plasat satelitul. Un alt criteriu este prezena centurilor lui Van Allen, straturi de particule foarte
ncrcate prinse n cmpul magnetic al pmntului. Aceti factori conduc la formarea a trei regiuni n
care sateliii pot fi plasai n siguran. Aceste regiuni i unele dintre proprietile lor sunt ilustrate n
fig. 2-15. n continuare vom descrie pe scurt sateliii care sunt plasai n fiecare dintre aceste regiuni.

Fig. 2-15. Sateliii de comunicaie i cteva dintre proprietile lor,


inclusiv altitudinea, ntrzierea pentru un drum dus-ntors i numrul
de satelii necesari pentru acoperirea global.

2.4.1

Satelii geostaionari

n 1945, scriitorul de proz tiinifico-fantastic Arthur C. Clarke a calculat c un satelit aflat la


altitudinea de 35.800 km pe o orbit ecuatorial circular apare ca staionar pe cer, astfel nct nu
este nevoie s fie urmrit (Clarke, 1945). El a mers mai departe i a descris un sistem complet de
comunicare care folosea aceti satelii geostaionari, inclusiv orbitele lor, panourile solare, frecvenele radio i procedurile de lansare.
Din pcate, a ajuns la concluzia c sateliii nu erau o soluie practic datorit imposibilitii de a
lansa pe orbit amplificatoare cu tub catodic, acestea fiind fragile i mari consumatoare de energie, aa
c nu a mai continuat pe aceasta idee, dei a scris cteva povestiri tiinifico-fantastice bazate pe ea.

100

NIVELUL FIZIC

CAP. 2

Inventarea tranzistorului a schimbat toate acestea i a fost lansat primul satelit artificial pentru
comunicaii, Telstar, n iulie 1962. Din acel moment, sateliii pentru comunicaii au devenit o afacere
de miliarde de dolari i totodat singurul aspect al explorrii spaiului cosmic care a devenit foarte
profitabil. Aceti satelii care zboar la altitudini mari sunt adeseori numii satelii GEO
(Geostationary Earth Orbit, rom: cu orbit geostaionar terestr).
Pentru a evita interferena, n condiiile tehnologiilor actuale, nu este recomandat s existe satelii mai apropiai de 2 grade n planul ecuatorial de 360 grade. La o spaiere de 2 grade, pot exista pe
cer, la un moment dat, doar 360/2=180 satelii de comunicaie geostaionari. Totui, fiecare transponder poate folosi mai multe frecvene i polarizri pentru a crete lungimea de band disponibil.
Pentru a preveni un haos total pe cer, alocarea locurilor pe orbit este fcut de ctre ITU. Acest
proces este mult influenat de politic, existnd ri de abia ieite din epoca de piatra care i cer locurile lor pe orbit (pentru a le nchiria celui care ofer mai mult). Alte ri susin c drepturile
naionale de proprietate nu se extind pn la lun, precum i c nici o ar nu are dreptul s revendice locurile de pe orbita de deasupra teritoriului su. Pentru a pune paie pe foc, telecomunicaiile
comerciale nu reprezint singurul domeniu interesat de aceti satelii. Canalele de televiziune, guvernele i armata doresc i ele cte o felie din plcinta reprezentat de orbita terestra.
Sateliii moderni pot fi destul de mari, cntrind pn la 4000 de kg i consumnd civa KW de
energie electric produs de panourile solare. Efectele forelor de gravitaie solare, lunare i planetare tind s i deplaseze din locurile i orientrile prevzute pentru ei pe orbit, efect contracarat de
motoarele de rachet cu care sunt echipai. Aceast activitate de reglare fin se numete meninerea
staiei. Cu toate acestea, cnd combustibilul pentru motoare se epuizeaz, de obicei n vreo 10 ani,
satelitul plutete n deriv i se rotete neajutorat, astfel nct trebuie s fie scos din funcionare. n
cele din urma, orbita sa se deformeaz i satelitul reintr n atmosfera unde este distrus prin ardere
sau, uneori, se prbuete pe pmnt.
Alocarea locurilor pe orbit nu este singurul mr al discordiei. Alocarea frecvenelor este de
asemenea un motiv de a se isca noi conflicte, deoarece transmisiile descendente de la satelii interfereaz cu utilizatorii dispozitivelor de comunicaie prin microunde deja existente. Prin urmare, ITU a
alocat anumite benzi de frecven utilizatorilor comunicaiilor prin satelii. Cele mai importante
benzi comerciale sunt listate n fig. 2-16. Banda C a fost desemnat iniial pentru traficul comercial
prin satelii. n banda C sunt asigurate dou domenii de frecven, cea mai mic pentru traficul descendent (dinspre satelit), iar cea superioar pentru traficul ascendent (ctre satelit). Pentru o conexiune full-duplex este necesar un canal n ambele sensuri. Aceste benzi sunt deja supraaglomerate,
deoarece sunt folosite i de purttoarele obinuite pentru legturile terestre pe microunde. Benzile L
i S au fost adugate prin acordul internaional din anul 2000. Oricum, i ele sunt nguste i aglomerate.
Banda

Legtura
ascendenta
1.6 GHz

Lime de band

Probleme

Legtura
descendent
1.5 GHz

15 MHz

1.9 GHz

2.2 GHz

70 MHz

C
Ku
Ka

4.0 GHz
11 GHz
20 GHz

6.0 GHz
14 GHz
30 GHz

500 MHz
500 MHz
3500 MHz

Lime mic de band;


aglomerata
Lime mic de band;
aglomerata
Interferene terestre
Ploaia
Ploaia; costul echipamentelor

Fig. 2-16. Principalele benzi de satelit.

SEC. 2.4

SATELII DE COMUNICAIE

101

Urmtoarea band, cea mai nalt, disponibil pentru companiile comerciale de telecomunicaii,
este banda Ku (K under, rom: sub K). Aceast band nu este (nc) congestionat i la aceste frecvene sateliii pot fi poziionai la o distan de un grad. Totui, exist i aici o alt problem: ploaia.
Apa este un absorbant excelent al acestor microunde scurte. Din fericire, furtunile toreniale sunt de
obicei localizate i, prin urmare, folosind mai multe staii terestre separate de distane mari (n loc de
una singur), problema poate fi evitat cu preul surplusului de antene, cabluri i electronic necesare
pentru a comuta rapid ntre staii. Limea de band pentru Ka (K above, rom: peste K) a fost i ea
alocat pentru traficul comercial prin satelit, dar echipamentele necesare pentru folosirea ei sunt nc
foarte scumpe. n plus fa de aceste benzi comerciale, exist multe benzi guvernamentale i militare.
Un satelit modern are n jur de 40 de transpondere, fiecare cu o lime de band de 80 MHz. Un
transponder de 50 Mbps poate fi folosit pentru a codifica un singur flux de date de 50 Mbps, 800
canale vocale digitale de 64 Kbps sau diverse alte combinaii. De obicei, fiecare transponder funcioneaz ca un repetor, dar, mai nou, sateliii au i o anumita capacitate de procesare integrat, permind operaii mai sofisticate. La sateliii mai vechi, mprirea transponderilor pe canale s-a fcut
static, prin mprirea lrgimii de band n benzi fixe de frecven (FDM). n prezent, fiecare fascicol
de transponder este mprit n intervale de timp, cu mai muli utilizatori comunicnd pe rnd. Vom
studia aceste dou tehnici (multiplexarea cu divizare n frecven i multiplexarea cu divizare n
timp) ntr-o seciune urmtoare din acest capitol.
Primii satelii geostaionari aveau un singur fascicol spaial care ilumina aproximativ 1/3 din suprafaa Pmntului, suprafa numit raz de aciune. Odat cu scderea masiv a preului, dimensiunii i cerinelor de putere ale microelectronicii, a devenit posibil o strategie de difuzare mai
complex. Fiecare satelit este echipat cu antene i transpondere multiple. Fiecare fascicol descendent poate fi focalizat pe o arie geografic mic i prin urmare pot avea loc simultan, transmisii ascendente i descendente multiple. Aceste aa numite fascicole punctuale sunt n mod obinuit de
form eliptic i pot avea pn la cteva sute de km n diametru. Un satelit de comunicaii pentru
Statele Unite are n mod normal un singur fascicol larg pentru cele 48 de state alturate, plus fascicole punctuale pentru Alaska i Hawaii.
O nou realizare n lumea comunicaiilor prin satelit o constituie dezvoltarea microstaiilor de cost
sczut, denumite i VSAT-uri (Very Small Aperture Terminals, rom: terminale cu deschidere foarte
mic) (Abramson, 2000). Aceste mici terminale au antene de 1 metru sau mai mici (fata de cei 10m ai
unei antene GEO standard) i pot emite cu o putere de aproximativ 1Watt. Legtura ascendent este
n general bun pentru 19.2Kbps, dar cea descendent este mai mare, deseori de 512 Kbps. Televiziunea cu difuzare direct prin satelit folosete aceast tehnologie pentru transmisia uni-direcional.
n multe sisteme VSAT, microstaiile nu au suficient putere pentru a comunica direct ntre ele
(prin intermediul satelitului, desigur). n schimb, se folosete o staie terestr special, un hub, cu o
anten mare, de ctig ridicat, pentru a retransmite traficul dintre VSAT-uri, aa cum este prezentat
n fig. 2-17. n acest fel, att emitorul ct i receptorul dispun de o anten mare i de un amplificator puternic. Compromisul const ntr-o ntrziere mai mare n schimbul unor staii mai ieftine la
utilizatorul final.
VSAT-urile au un potenial ridicat n special pentru zonele rurale. Nu este un lucru foarte cunoscut, dar peste jumtate din populaia globului locuiete la peste o ora de mers pe jos de cel mai
apropiat post telefonic. A instala fire telefonice pn la fiecare dintre miile de sate mici este mult
peste bugetele majoritii guvernelor din lumea a treia, dar instalarea de antene VSAT de 1 metru
alimentate de celule solare este o soluie adeseori posibil. VSAT-urile ofer o tehnologie care va
conecta ntreaga lume.

102

NIVELUL FIZIC

CAP. 2

Fig. 2-17. VSAT-uri care folosesc un hub.

Sateliii de comunicaie au cteva proprieti prin care se deosebesc radical de legturile terestre
punct-la-punct. Ca un prim aspect, cu toate c semnalele spre i dinspre satelit se propag cu viteza
luminii (aproximativ 300.000 km/sec), lungimea semnificativ a traseului dus-ntors introduce o ntrziere substanial pentru sateliii GEO. Funcie de distana dintre utilizator i staia terestr, precum i de nlimea satelitului deasupra orizontului, timpul de propagare este ntre 250 i 300 msec.
O valoare uzual este de 270 msec (540 msec pentru un sistem VSAT cu un hub).
Trebuie spus, pentru comparaie, c legturile terestre prin microunde au o ntrziere de propagare n jur de 3 sec/km, iar legturile pe cablu coaxial sau fibr optic au o ntrziere de aproximativ
5sec/km. Transmisia prin cel de-al doilea mediu este mai nceat dect prin primul deoarece semnalele electromagnetice se propag mai repede prin aer dect prin materiale solide.
O alt proprietate important a sateliilor este aceea c ei sunt n mod inerent sisteme cu difuzare. Transmiterea unui mesaj ctre miile de staii din raza de aciune a unui transponder cost tot att
de mult ct pentru o singur staie. Pentru unele aplicaii, aceast proprietate este foarte util. De
exemplu, se poate imagina un satelit difuznd pagini Web populare ctre memoriile cache ale unui
mare numr de computere rspndite pe o arie larg. Chiar i atunci cnd difuzarea poate fi simulat folosind linii punct-la-punct, difuzarea prin satelit poate fi mult mai ieftin. Pe de alt parte, din
punct de vedere al securitii i confidenialitii, sateliii sunt un dezastru complet: oricine poate
asculta orice. Criptarea este esenial dac securitatea este o necesitate.
Sateliii au i proprietatea c preul transmisiei unui mesaj este independent de distana parcurs.
Un apel peste ocean nu cost mai mult dect un apel peste strad. Sateliii au rate de eroare foarte
sczute i pot fi instalai aproape instantaneu, un considerent major pentru comunicaiile militare.

SEC. 2.4

2.4.2

SATELII DE COMUNICAIE

103

Satelii de altitudine medie

La altitudini mult mai joase, ntre cele dou centuri Van Allen, gsim sateliii MEO (MediumEarth Orbit, rom: orbit terestr medie). Vzui de pe Pmnt, aceti satelii se deplaseaz lent n
plan longitudinal, iar un ocol n jurul Pmntului dureaz cam de 6 ore. n consecin, ei trebuie
urmrii n timp ce trec pe deasupra Pmntului. Avnd altitudine mai mic dect GEO, au o raz
de aciune mai mic pe Pmnt i este nevoie de emitoare mai puin puternice pentru a comunica
cu ei. Deocamdat nu sunt folosii pentru comunicaii, deci nu vor mai fi examinai aici. Cei 24 de
satelii GPS (Global Positioning System, rom: sistem de poziionare global) care orbiteaz la aproximativ 18.000 km sunt exemple de satelii MEO.

2.4.3

Satelii de joas altitudine

Cobornd n altitudine, ajungem la sateliii LEO (Low-Earth Orbit, rom: orbit terestr joas).
Datorit micrii lor rapide, este nevoie de muli astfel de satelii pentru a realiza un sistem complet.
Pe de alt parte, datorit faptului c sateliii sunt att de aproape de Pmnt, staiile terestre nu au
nevoie de mult putere, iar ntrzierea dus-ntors este numai de cteva milisecunde. n acest paragraf vom examina trei exemple, dou concepute pentru comunicaiile de voce i unul pentru servicii
Internet.

Iridium
Aa cum am menionat i mai sus, n primii 30 de ani ai erei sateliilor, sateliii de joas altitudine
au fost rareori folosii, deoarece ei apar i dispar destul de repede din cmpul vizual. n 1990, Motorola a declanat o aciune n acest domeniu prin punerea la punct a unei noi aplicaii. Motorola a obinut acordul FCC n vederea lansrii a 77 de satelii de joas altitudine pentru proiectul Iridium (elementul 77 este Iridium). Planul a fost mai trziu revzut, astfel nct s se utilizeze numai 66 de satelii
i, ca urmare, proiectul ar fi trebuit s fie redenumit Dysprosium (elementul 66), dar probabil c sun
prea mult ca o boal. Ideea era c n momentul n care un satelit dispare din cmpul vizual, un alt
satelit ar putea s-i ia locul. Aceast propunere a generat printre celelalte companii de telefoane o
poft nebun: dintr-o dat, toat lumea dorea s lanseze un lan de satelii de joas altitudine.
Dup apte ani n care s-au adunat parteneri i finanri, sateliii Iridium s-au lansat n 1997. Serviciile de comunicaii au nceput n noiembrie 1998. Din pcate, cererea comercial pentru telefoane
mari i grele, chiar dac acestea comunicau prin satelit, era neglijabil deoarece reeaua de telefonie
mobil crescuse spectaculos din 1990. n consecin, Iridium nu era profitabil i a fost forat s intre
n faliment n august 1999, ntr-unul din cele mai spectaculoase fiasco-uri de corporaii din istorie. n
consecin, sateliii i celelalte bunuri (n valoare de 5 miliarde $) au fost cumprate de un investitor
cu 25 milioane $ ntr-un fel de vnzare cu reducere dintr-un garaj extraterestru. Serviciul Iridium a
fost repornit n martie 2001.
Scopul principal al sistemului Iridium era (i este) s furnizeze servicii mondiale de telecomunicaie, folosind dispozitive portabile care s comunice direct cu sateliii Iridium. Sistemul furnizeaz
servicii vocale, de date, paging, fax i navigare, oriunde pe pmnt, ap i aer. Printre clieni se numr industriile maritim, aviatic i de explorare de petrol, ca i persoanele care cltoresc n pri
ale lumii lipsite de o infrastructur de telecomunicaii (de exemplu deerturi, muni, jungle i unele
ri din lumea a treia).

104

NIVELUL FIZIC

CAP. 2

Fig. 2-18. (a) Sateliii Iridium formeaz ase coliere n jurul Pmntului.
(b) 1628 de celule mictoare acoper Pmntul.

Sateliii Iridium sunt poziionai la o altitudine de 750 km pe orbite polare circulare. Ei sunt aranjai n form de coliere nord-sud, cu un satelit la fiecare 32 grade latitudine. Dup cum se sugereaz
n fig. 2-18(a), cu ase coliere de satelii s-ar putea acoperi ntregul Pmnt. Cei care nu cunosc prea
multe despre chimie, se pot gndi la aceast dispunere ca la un atom de dysprosium foarte mare,
avnd Pmntul pe post de nucleu i sateliii pe post de electroni.
Dup cum este prezentat n fig. 2-18(b), fiecare satelit va avea cel mult 48 de raze punctuale, cu un
total de 1628 celule pe suprafaa Pmntului. Fiecare satelit are o capacitate de 3840 de canale, sau
253.440 n total. O parte din acestea sunt folosite pentru paging i navigare, altele pentru date i voce.
O proprietate interesant a sistemului Iridium este aceea c o comunicaie ntre clieni aflai la
distan are loc n spaiu, cu un satelit transmind date la altul, cum este ilustrat n fig. 2-19(a). Aici
putem vedea un apelant de la Polul Nord contactnd un satelit aflat direct deasupra sa. Apelul este
transmis prin ceilali satelii i trimis n cele din urma la apelatul de la Polul Sud.

Globalstar
Un proiect alternativ pentru Iridium este Globalstar. Acesta se bazeaz pe 48 de satelii
LEO, dar folosete o schem de comutare diferit de cea folosit de Iridium. n timp ce Iridium transmite apeluri de la satelit la satelit, ceea ce necesita echipamente complicate de comutare n cadrul sateliilor, Globalstar utilizeaz un sistem de repetoare tradiional. Apelul pornit
de la Polul Nord din fig. 2-19(b) este trimis napoi ctre pmnt i preluat de staia terestr
mare de la Atelierul lui Mo Crciun. Apelul este apoi dirijat printr-o reea terestr ctre staia terestr cea mai apropiat de apelat i livrat printr-o conexiune cu satelitul repetor, aa
cum se vede i n figur. Avantajul acestei scheme este c transfer mare parte din complexitate pe Pmnt, unde este mai prelucrrile sunt mai uor de efectuat. De asemenea, dac pentru
staiile terestre se vor folosi antene mari, care pot emite un semnal puternic i pot recepiona
unul slab, atunci n sistem pot fi folosite telefoane cu putere mic. Pn la urm, telefonul debiteaz o putere de civa mW, deci semnalul care se ntoarce la staia terestr este destul de
slab, chiar dup ce a fost amplificat de satelit.

SEC. 2.4

SATELII DE COMUNICAIE

105

Fig. 2-19. (a) Transmisia n spaiu.


(b) Transmisia pe Pmnt.

Teledesic
Iridium este conceput pentru utilizatorii de telefoane aflai n locuri ciudate. Urmtorul
nostru exemplu, Teledesic, este conceput pentru utilizatorii de Internet din ntreaga lume doritori de ct mai mult lrgime de band. A fost conceput n 1990 de ctre pionierul telefoniei
mobile Craig McCaw i de ctre fondatorul Microsoft, Bill Gates, care era nemulumit de viteza de melc cu care companiile telefonice din lume ofereau lime ridicat de band utilizatorilor de calculatoare. Scopul sistemului Teledesic este s ofere milioanelor de utilizatori Internet
care acceseaz sistemul simultan o legtur ascendent de pn la 100 Mbps i o legtur descendent de pn la 720 Mbps, utiliznd o anten de tip VSAT mic i fix, dar i ocolind total
sistemul telefonic. Pentru companiile telefonice, acesta este un ideal de neatins.
Proiectul original consta dintr-un sistem format din 288 de satelii cu raz mic de aciune,
poziionai n 12 planuri imediat sub centura Van Allen, la o altitudine de 1350 km. Acest proiect a fost schimbat ulterior la 30 de satelii cu raze de aciune mai mari. Transmisia se petrece
n banda Ka, relativ neaglomerata i cu lime de band ridicat. Sistemul funcioneaz cu comutare de pachete n spaiu, fiecare satelit fiind capabil s dirijeze pachete ctre vecinii si.
Cnd un utilizator are nevoie de lime de band pentru a trimite pachete, aceasta este cerut
i alocat dinamic n aproximativ 50msec. Este prevzut ca sistemul s intre n funciune n
anul 2005, dac totul merge conform planului.

2.4.4

Sateliii n comparaie cu fibrele optice

O comparaie ntre comunicaiile prin satelit i comunicaiile terestre este instructiv. Cu numai
20 de ani n urm s-ar fi putut crede c viitorul va aparine comunicaiilor prin satelit. La urma urmei, sistemul telefonic s-a schimbat puin n ultimii 100 de ani i nici nu d semne de schimbare n
urmtorii 100 de ani. Aceast evoluie lent s-a datorat n mare msur mediului nconjurtor, n
care companiilor de telefoane li se cerea s furnizeze un serviciu vocal calitativ la un pre rezonabil
(ceea ce au i fcut) n schimbul unui profit garantat al investiiilor lor. Prin urmare, pentru cei care

106

NIVELUL FIZIC

CAP. 2

aveau date de transmis, erau disponibile modemuri de 1200 bps. Aceasta era destul de bine pentru
ceea ce exista atunci.
Introducerea competiiei n 1984 n Statele Unite i, ceva mai trziu, n Europa a schimbat radical situaia. Companiile de telefoane au nceput nlocuirea cu fibre optice a reelelor exploatate un
timp att de ndelungat i au introdus servicii cu limi de band ridicate, cum este ADSL
(Asymetric Digital Subscriber Line, rom: linie de abonat digital asimetrica). n plus, i-au ncetat
practica ndelungat de a factura utilizatorii aflai la distane mai mari cu sume mrite artificial pentru a subveniona utilizatorii locali.
Dintr-o dat, se prea c legturile terestre pe fibr optic reprezint ctigtorul pe termen lung.
Cu toate acestea, sateliii de comunicaie au cteva nie pe pia, n care fibra optic nu a ptruns (i
n unele cazuri nici nu o va putea face). Vom analiza acum o parte dintre acestea.
n timp ce o singur fibr optic are, n principiu, mai mult lime potenial de band dect toi
sateliii lansai vreodat, aceast lime de band nu este disponibil majoritii utilizatorilor. Fibrele
optice instalate la ora actual sunt folosite n sistemul telefonic pentru a gestiona simultan mai multe
apeluri de distan lung, i nu pentru a furniza utilizatorilor individuali lime de band ridicat. n
cazul sateliilor, un utilizator poate foarte bine s scoat o anten pe acoperiul cldirii i s ocoleasc sistemul telefonic. Teledesic se bazeaz pe aceast idee.
O a doua ni o reprezint comunicaiile mobile. n zilele noastre, muli oameni doresc s comunice n timp ce fac jogging, conduc, navigheaz sau zboar. Legturile terestre prin fibre optice nu le
sunt de nici un folos, n schimb le pot fi utile legturile prin satelit. Este posibil, totui, ca o combinaie
ntre radioul celular i fibra optic s fie satisfctoare pentru cerinele majoritii utilizatorilor (probabil cu excepia acelora care se afl la bordul unui avion sau pe mare).
O a treia ni o reprezint situaiile n care este esenial difuzarea. Un mesaj transmis de satelit
poate fi recepionat simultan de mii de staii terestre. De exemplu, o firm care transmite aciuni,
titluri de proprietate sau preurile mrfurilor ctre mii de distribuitori, ar putea descoperi c utilizarea unui sistem prin satelit este mult mai ieftin dect simularea difuzrii pe Pmnt.
O a patra ni o constituie comunicaia n locurile cu terenuri greu accesibile sau cu o infrastructur terestr slab dezvoltat. Indonezia, de exemplu, are propriul satelit pentru traficul telefonic intern. Lansarea unui satelit a fost mult mai simpl dect ntinderea a mii de cabluri submarine ntre
cele 13.677 de insule din arhipelag.
O a cincea ni pentru piaa sateliilor este acolo unde dreptul de instalare a fibrei optice este dificil de obinut sau nejustificat de scump.
n al aselea rnd, atunci cnd instalarea rapid este critic, cum este n cazul sistemelor de comunicaii militare pe timp de rzboi, sateliii obin ctig de cauz fr probleme.
Pe scurt, se pare c n viitor fluxul principal de comunicaie va fi pe fibr optic n combinaie cu
radioul celular, iar pentru civa utilizatori specializai, vor rmne preferabili sateliii. Totui, exist
un avertisment valabil pentru toate acestea: economia. Cu toate c fibra optic ofer mai mult lime de band, este posibil, fr ndoial, ca n viitor comunicaiile terestre i cele prin satelit s intre
ntr-o competiie agresiv pe baza preului practicat. Dac progresele tehnologice vor reduce radical
costul de instalare al unui satelit (de exemplu, unele viitoare navete spaiale vor putea mprtia n
spaiu mai multe zeci de satelii la o singur lansare) sau dac vor deveni populari sateliii de joas
altitudine, atunci s-ar putea ca fibrele optice s-i piard, pe unele piee, poziia lor de lider.

SEC. 2.5

SISTEMUL TELEFONIC

123

Fig. 2-30. Arhitectura unui sistem LMDS.

LMDS are totui cteva probleme. Pentru nceput, undele milimetrice se propag n linie dreapt, deci trebuie s existe vizibilitate ntre antena de pe acoperi i turn. O alta este c frunzele absorb
aceste unde destul de bine, deci turnul trebuie s fie suficient de nalt pentru ca drumul pn la anten s treac pe deasupra copacilor. Iar ceea ce pare un drum liber n decembrie s-ar putea s nu
mai fie n iulie, cnd copacii sunt plini de frunze. Ploaia absoarbe i ea aceste unde. Totui, erorile
introduse de ploaie pot fi compensate cu un cod corector de erori sau prin mrirea puterii atunci
cnd plou. Oricum, serviciul LMDS e mult mai probabil s fie introdus mai nti n inuturile uscate, s zicem n Arizona, dect n Seattle.
Buclele locale fr fir nu au anse s prind dac nu exist standarde, pentru a ncuraja vnztorii
de echipamente s produc i s asigure clienii c pot schimba CLEC-ul fr s fie nevoie s cumpere un alt echipament. Pentru a asigura acest standard, IEEE a ntrunit un comitet numit 802.16
pentru a stabili standardul pentru LMDS. Standardul 802.16 a fost publicat n aprilie 2002. IEEE
numete 802.16 MAN fr fir (wireless MAN). IEEE 802.16 a fost proiectat pentru telefonia digital, acces la Internet, conectarea a dou LAN-uri ndeprtate, emisie radio i TV, precum i pentru
alte utilizri. l vom studia mai n detaliu n cap. 4.

2.5.4

Trunchiuri i multiplexare

Economiile rezultate din scalabilitate joac un rol important n sistemul telefonic. Instalarea i ntreinerea unor trunchiuri de band larg ntre dou oficii de comutare cost cam tot att ct instalarea
i ntreinerea unui trunchi de band joas (costul provine de la sparea anului, nu de la firul de cupru
sau de la fibra optic). n consecin, companiile telefonice au dezvoltat metode sofisticate pentru
multiplexarea mai multor convorbiri pe aceeai magistral fizic. Aceste metode de multiplexare se pot
mpri n dou categorii principale: FDM (Frequency Division Multiplexing, rom: multiplexare cu

124

NIVELUL FIZIC

CAP. 2

divizare n frecven) i TDM (Time Division Multiplexing, rom: multiplexare cu divizare n timp). La
FDM, spectrul de frecven este mprit n mai multe canale logice, fiecare utilizator avnd drepturi
exclusive asupra unei anumite benzi de frecven. La TDM, utilizatorii i ateapt rndul (n mod repetat, circular), fiecare utilizator obinnd ntreaga band de frecven pentru o scurt perioad.
Difuzarea radio AM ilustreaz ambele metode de multiplexare. Spectrul alocat este de aproape
1MHz, aproximativ ntre 500 i 1500 de KHz. Pentru diferite canale logice (staii) sunt alocate frecvene diferite. Fiecare canal logic opereaz ntr-un anumit domeniu al spectrului, distanele ntre
canale fiind destul de mari pentru a preveni interferena. Acest sistem este un exemplu de multiplexare prin divizarea frecvenei. n plus (n unele ri), staiile individuale au dou subcanale logice:
muzic i publicitate. Acestea dou alterneaz n timp pe aceeai frecven, la nceput muzic i dup un timp o secven de reclame, apoi din nou muzic i aa mai departe. Aceast situaie se numete multiplexare prin divizare n timp.
n continuare, vom studia multiplexarea prin divizarea n frecven. Dup aceea vom analiza cum
se poate aplica FDM fibrelor optice (multiplexare prin divizarea lungimii de und). Apoi ne vom
ntoarce la TDM, iar n final vom studia un sistem TDM avansat folosit n fibrele optice (SONET).

Multiplexarea prin divizarea n frecven


Fig. 2-31 ne prezint cum sunt multiplexate trei canale de band vocal folosind FDM. Filtrele limiteaz lrgimea de band folosit la 3100 de Hz pe canal de band vocal. Atunci cnd sunt multiplexate mpreun mai multe canale, fiecrui canal i sunt alocai 4000 de Hz, astfel nct canalele s fie
bine separate. Mai nti, canalele de voce sunt deplasate n frecven, fiecare cu o valoare diferit.
Apoi ele pot fi combinate, deoarece nu exist dou canale care s ocupe aceeai zon a spectrului.
Este de remarcat c, dei exist spaii (spaii de gard) ntre canale, poate s apar o suprapunere
ntre canalele adiacente, deoarece filtrele nu au marginile abrupte. Aceast suprapunere nseamn c
un semnal puternic la captul unui canal va fi simit n canalul adiacent ca un zgomot non-termic.

Fig. 2-31. Mutliplexarea prin divizare n frecven. (a) Banda de frecven iniial.
(b) Banda deplasat n frecven. (c) Canalul multiplexat.

SEC. 2.5

SISTEMUL TELEFONIC

125

Schemele FDM folosite pe glob sunt, pn la un anumit nivel, standardizate. Un standard foarte
folosit este dat de 12 canale vocale a 4000 Hz multiplexate n banda de 60 pn la 108 KHz. Aceast
unitate este numit grup. Banda 12 - 60 KHz este uneori folosit de un alt grup. Multe companii
ofer clienilor un serviciu de linie nchiriat de 48 pn la 56 Kbps, bazat pe un grup. Cinci grupuri
(60 de canale vocale) formeaz un super-grup. Urmtoarea unitate este un master-grup, care este
format din cinci super-grupuri (n standardul CCITT) sau zece super-grupuri (sistemul Bell). Exist
i alte standarde, care cuprind pn la 230.000 canale vocale.

Multiplexarea prin divizarea lungimii de und


Pentru canalele de fibr optic se utilizeaz o alternativ a multiplexrii prin divizarea n frecven. Aceasta se numete WDM (Wavelength Division Multiplexing, rom: multiplexarea prin divizarea
lungimii de und). Principiul de baz pentru WDM pe fibre este prezentat n fig. 2-32. Aici se ntlnesc patru fibre la nivelul unui combinator optic, fiecare cu energia i lungimea de und proprie.
Cele patru raze sunt combinate ntr-o singur fibr comun pentru a fi transmise ctre o destinaie
deprtat. La destinaie, raza este desprit n attea fibre cte au fost iniial. Fiecare fibr de la
destinaie conine un mic filtru special construit, care filtreaz toate lungimile de und mai puin
una. Semnalele rezultate pot fi rutate ctre destinaie sau recombinate n diferite feluri pentru
transmisii multiplexate ulterioare.

Fig. 2-32. Multiplexarea prin divizarea lungimii de und

Aici nu este de fapt nimic nou. Este tot multiplexare prin divizarea n frecven, aplicat la frecvene foarte mari. Atta timp ct fiecare canal are propriul domeniu de frecven (lungime de und)
i toate aceste domenii sunt disjuncte, ele pot fi multiplexate mpreun pe o fibr de distan mare.
Singura diferen fa de FDM prezentat anterior este aceea c sistemul optic, folosind o reea de
difracie, este total pasiv i, de aceea, foarte sigur.
Tehnologia WDM a progresat extrem de rapid, umbrind chiar i tehnologia calculatoarelor.
WDM a fost inventat n jurul anului 1990. Primul sistem comercial avea opt canale, fiecare de 2,5
Gbps. n 1998 existau deja pe pia sisteme cu 40 de canale de 2,5 Gbps fiecare. n 2001, existau pro-

126

NIVELUL FIZIC

CAP. 2

produse cu 96 de canale de 10 Gbps fiecare, deci un total de 960 Gbps. Aceast lime de band este
suficient pentru a transmite filme ntregi ntr-o secund (format MPEG-2). n laboratoare se lucreaz deja la sisteme cu 200 de canale. Atunci cnd numrul de canale este foarte mare i lungimile
de und sunt foarte apropiate, de exemplu la 0,1 nm, sistemul mai este numit i DWDM (Dense
WDM, rom: WDM dens).
Este de remarcat c WDM este foarte popular datorit faptului c energia pe o singur fibr este, de obicei, cuprins ntr-o band de numai civa gigaheri, deoarece n acest moment este imposibil conversia mai rapid de la mediul electric la cel optic. Prin folosirea n paralel a mai multor
canale, de lungimi de und diferite, limea de band crete liniar cu numrul de canale. Din moment ce banda de frecven a unei singure fibre este de aproximativ 25.000 GHz (vezi fig. 2-6), exist
posibilitatea de a se ajunge la 2500 de canale de 10Gbps fiecare, chiar i la o rat de 1 bit/Hz (fiind
posibile de asemenea i rate mai mari).
O alt direcie de dezvoltare o reprezint toate amplificatoarele optice. nainte vreme, la fiecare
100km era obligatorie separarea tuturor canalelor i conversia fiecrui semnal optic ntr-un semnal
electric; fiecare semnal era amplificat separat nainte de a se face conversia invers, din semnal electric n semnal optic, urmat de recombinarea semnalelor optice. n prezent, toate amplificatoarele
optice pot regenera ntregul semnal odat la 1000km fr a fi nevoie de conversii multiple ntre semnalele electrice i optice.
n exemplul din fig. 2-32, avem un sistem cu lungimi de und fixe. Unii bii din fibra de intrare 1
trec n fibra de ieire 3, bii din fibra de intrare 2 trec n fibra de ieire 1 etc. Oricum, este posibil s
construim i sisteme WDM comutate. n cazul unui astfel de dispozitiv, filtrele de ieire sunt reglabile folosind interferometre Fabry-Perot sau Mach-Zender. Pentru informaii suplimentare despre WDM i aplicaiile sale n comutarea pachetelor n Internet vezi (Elmirghani i Mouftah,
2000; Hunter i Andonovic, 2000; Listani i alii, 2001)

Multiplexarea prin divizarea n timp


Tehnologia WDM este minunat, dar exist nc multe fire din cupru n reeaua telefonic, deci
s revenim un timp la discuiile referitoare la acestea. Cu toate c FDM este folosit nc pe firele de
cupru sau pe canalele de microunde, ea necesit circuite analogice i nu poate fi realizat de un calculator. Dimpotriv, TDM-ul poate fi n ntregime tratat de electronica digital, devenind mult mai
rspndit n ultimii ani. Din pcate, TDM-ul poate fi folosit numai pentru date digitale. Deoarece
buclele locale produc semnale analogice, este necesar o conversie analogic digital n oficiul final,
unde toate buclele locale individuale se ntlnesc pentru a forma o magistral.
Vom arunca acum o privire asupra modului n care mai multe semnale vocale analogice sunt digitizate i sunt reunite pentru a forma o singur magistral digital. Datele trimise de un calculator
prin modem sunt tot analogice, deci urmtoarea descriere se aplic i pentru acestea. Semnalele
analogice sunt digitizate n oficiul final de un echipament numit codec (codificator/decodificator),
operaie care are ca rezultat o serie de numere de 8 bii. Codec-ul realizeaz 8000 de eantioane pe
secund (125 sec/eantion), deoarece teorema lui Nyquist spune c aceasta rat este suficient pentru a capta toat informaia de pe canalul telefonic de 4 KHz. La o rat mai mic de eantionare, o
parte din informaie ar putea fi pierdut; la o rat mai mare, nu se furnizeaz nici un fel de informaie suplimentar. Aceast tehnic se numete PCM (Pulse Code Modulation, rom: modularea n cod
de impulsuri). PCM constituie nucleul sistemelor telefonice moderne. Ca o consecin, practic toate
intervalele de timp dintr-un sistem telefonic sunt multipli de 125 sec.

SEC. 2.5

SISTEMUL TELEFONIC

127

Fig. 2-33. Purttoarea T1 (1.544 Mbps).

Cnd transmisia digital a nceput s devin o tehnologie accesibil, CCITT nu a fost capabil s
ajung la o soluie cu privire la un standard pentru PCM. n consecin, acum exist o varietate de
scheme incompatibile, folosite n diverse ri din ntreaga lume.
O metod rspndit n America de Nord i Japonia o reprezint purttoarea T1, prezentat n
fig. 2-33. (Din punct de vedere tehnic, formatul se numete DS1 iar purttoarea se numete T1, dar
noi nu vom face aceast deosebire subtil aici). Purttoarea T1 const din 24 de canale vocale multiplexate mpreun. De obicei, cele 24 de semnale analogice sunt eantionate pe rnd, iar fluxul analogic rezultat este trecut prin codec, n loc s se utilizeze 24 de codec-uri separate a cror semnale de
ieire s compun ieirea digital. Fiecare canal din cele 24 va introduce 8 bii n secvena de la ieire. apte bii reprezint date, iar unul este de control, rezultnd 7x8000 = 56.000 bps de date i
1x8000 = 8.000 bps de informaie de semnalizare pe fiecare canal.
Un cadru const din 24x8 = 192 bii, plus un bit suplimentar pentru ncadrare, rezultnd 193 de
bii la fiecare 125 sec. De aici rezult o vitez de transfer a datelor de 1.544 Mbps. Bitul 193 este
folosit pentru sincronizarea cadrelor, i urmeaz un model de forma 0101010101... . n mod normal,
receptorul verific n continuu acest bit, pentru a fi sigur c nu a pierdut sincronizarea. Dac ntradevr a pierdut tactul, receptorul poate cuta dup acest ablon pentru a se resincroniza. Clienii
analogici nu pot genera un semnal conform cu acest ablon, deoarece el corespunde unei unde sinusoidale la 4000 Hz, care ar fi eliminat prin filtrare. Clienii digitali pot, desigur, s genereze un semnal care s respecte acest ablon, dar ansele apariiei lui sunt mici atunci cnd un cadru este pierdut.
Atunci cnd un sistem T1 este folosit integral pentru date, doar 23 de canale sunt folosite pentru
date. Canalul 24 este folosit pentru un ablon de sincronizare special, care permite reluarea mai rapid a funcionrii n cazul n care un cadru este pierdut.
n cele din urm, cnd CCITT a ajuns la o nelegere, a considerat c a folosi 8000 bps de informaie de semnalizare este o exagerare, aa c standardul de 1.544 Mbps se bazeaz pe date de 8 bii
n loc de 7 bii; aceasta nseamn c semnalul analogic este codificat folosind 256 de niveluri discrete
n loc de 128. Exist dou situaii, incompatibile. n semnalizarea prin canal comun (commonchannel signaling), bitul suplimentar (care este ataat mai degrab n urma, i nu n faa cadrului de
193 de bii) are valorile 1010101010... n cadrele impare i conine informaii de semnalizare pentru
toate canalele n cadrele pare.

128

NIVELUL FIZIC

CAP. 2

n cealalt alternativ, semnalizarea pe canale asociate (channel-asssociated signaling), fiecare


canal are propriul su subcanal de semnalizare. Un subcanal privat este constituit prin alocarea unui
bit pentru semnalizare (dintre cei 8 bii utili) la fiecare 6 cadre; astfel, 5 din 6 eantioane sunt de 8
bii lungime, iar ultimul este de doar 7 bii lungime. De asemenea, CCITT a recomandat o purttoare PCM de 2.048 Mbps numit E1. Aceast purttoare are 32 de eantioane de 8 bii, mpachetate n
cadrul de baz de 125 sec. Treizeci dintre aceste canale sunt folosite pentru informaii, iar celelalte
dou sunt folosite pentru semnalizare. Fiecare grup de 4 cadre asigur 64 de bii de semnalizare,
dintre care jumtate sunt folosii pentru semnalizarea pe canalul asociat i jumtate pentru sincronizarea cadrelor sau pentru alte operaii, n funcie de rile unde sunt utilizate. Purttoarea E1 de
2.048 Mbps este larg folosit n afara Americii de Nord i a Japoniei.
Odat ce semnalul vocal a fost codificat, este tentant s folosim metode statistice pentru a reduce
numrul de bii necesari pentru fiecare canal. Aceste tehnici sunt potrivite nu numai pentru codificarea vorbirii, ci i pentru digitizarea oricrui semnal analogic. Toate metodele de compactare se bazeaz pe principiul c semnalul se modific relativ ncet n comparaie cu frecvena de eantionare,
deci multe dintre informaiile codificate pe 7 sau 8 bii sunt redundante.
Metoda, numit modulare diferenial n cod de impulsuri (differential pulse code modulation),
const n furnizarea la ieire nu a amplitudinii digitizate, ci a diferenei dintre valoarea curent i cea
anterioar. Deoarece sunt puin probabile salturi mai mari de 16 pe o scal de 128, ar putea fi suficieni 5 bii n loc de 7. Dac semnalul are salturi prea brute, logica de codificare poate necesita mai
multe perioade de eantionare pentru a prinde din urm aceste variaii. n cazul vorbirii, eroarea
introdus poate fi ignorat.
O variant a acestei metode de compactare impune ca fiecare valoare eantionat s difere de
precedenta prin +1 sau -1. n aceste condiii, este transmis un singur bit, care indic dac nivelul
curent este superior sau inferior nivelului precedent. Aceast tehnic, numit modulare delta, este
ilustrat n fig. 2-34. La fel ca toate tehnicile de compactare care presupun schimbri mici de nivel
ntre eantioane consecutive, dac sistemul se schimb prea brusc, modularea delta poate eua, aa
cum se arat n figur. Cnd se ntmpl acest lucru, informaia se pierde.

Fig. 2-34. Modularea Delta.

SEC. 2.5

SISTEMUL TELEFONIC

129

Fig. 2-35. Multiplexarea secvenelor T1 n purttoare cu capacitate mai mare.

O mbuntire pentru PCM diferenial se obine dac se extrapoleaz cteva valori precedente
pentru a prezice noua valoare i apoi se codific diferena dintre semnalul actual i cel prevzut. Desigur, att transmitorul ct i receptorul trebuie s foloseasc acelai algoritm de predicie. O astfel de
schem se numete codificare predictiv. Aceast tehnic este util, pentru c reduce dimensiunea
datelor care trebuie codificate i, prin urmare, reduce dimensiunea datelor care trebuie transmise.
Multiplexarea prin divizare n timp permite ca mai multe purttoare T1 s fie multiplexate mpreun n purttoare de un grad mai nalt. Fig. 2-35 arat cum se poate face acest lucru. n stnga se
vd patru canale T1 multiplexate ntr-un canal T2. Multiplexarea la T2 i peste T2 se face bit cu bit i
nu octet cu octet, ca n cazul celor 24 de canale care constituie un cadru T1. Patru secvene T1 la
1.544 Mbps ar trebui s genereze 6.176 Mbps, dar T2 transmite de fapt la 6.312 Mbps. Biii suplimentari sunt folosii la ncadrare i la recuperare, n cazul n care purttoarea este pierdut. T1 i T3
sunt folosite pe scar larg de consumatori, n timp ce T2 i T4 sunt folosite numai n cadrul sistemului de telefonie, deci nu sunt foarte cunoscute.
La nivelul urmtor, apte T2 sunt combinate pentru a forma o secven T3. Apoi ase T3 sunt
grupate pentru a forma o secven T4. La fiecare pas, se adug, pentru ncadrare i recuperare, o
mic suprancrcare n cazul n care sincronizarea dintre transmitor i receptor se pierde.
Aa cum exist nenelegeri privind purttoarea de baz, ntre Statele Unite i restul lumii, tot
aa exist nenelegeri privitoare la modul n care se face multiplexarea n purttoarele de band mai
larg. Ierarhia implementat n S.U.A., care este fcut prin grupuri de 4, 7 i 6 secvene, nu s-a impus ca un standard, standardul CCITT multiplexnd 4 secvene n una singur la fiecare nivel. De
asemenea, ncadrarea i recuperarea datelor se fac diferit. Ierarhia CCITT cu 32, 128, 512, 2048 i
8192 de canale funcioneaz la viteze de 2.048, 8.848, 34.304, 139.264 i 565.148 Mbps.

SONET / SDH
La apariia fibrelor optice, fiecare companie telefonic avea propriul sistem optic TDM. Dup ce
AT&T-ul a fost divizat n 1984, companiile telefonice locale au fost obligate s se conecteze la diverse
companii de telecomunicaii pe distane mari, fiecare companie avnd sisteme TDM diferite; a devenit astfel evident necesitatea unei standardizri. n 1985, Bellcore, divizia de cercetare a RBOC, a
nceput s lucreze la un nou standard, numit SONET (Synchronous Optical NETwork, rom: reea
optic sincron). Mai trziu s-a alturat i CCITT, fapt care s-a materializat n 1989 prin standardul
SONET i printr-un set paralel de recomandri CCITT (G.707, G.708 i G.709). Recomandrile
CCITT sunt numite SDH (Synchronous Digital Hierarchy, rom: ierarhie digital sincron), dar difer
de SONET numai n mic msur. Practic, aproape tot traficul pe distane mari din Statele Unite i

132

NIVELUL FIZIC
SONET
Electric
Optic
STS-1
OC-1
STS-3
OC -3
STS-9
OC -9
STS-12
OC -12
STS-18
OC -18
STS-24
OC -24
STS-36
OC -36
STS-48
OC -48
STS-192
OC -192

SDH
Optic
STM-1
STM-3
STM-4
STM-6
STM-8
STM-12
STM-16
STM-64

CAP. 2

Rata de date (Mbps)


Total
SPE
Client
51.84
50.112
49.536
155.52
150.336
148.608
466.56
451.008
445.824
622.08
601.344
594.432
933.12
902.016
891.648
1244.16
1202.688
1188.864
1866.24
1804.032
1783.296
2488.32
2405.376
2377.728
9953.28
9621.504
9510.912

Fig. 2-37. Ratele de multiplexare pentru SONET i SDH.

2.5.5

Comutarea

Din punctul de vedere al unui inginer obinuit specialist n telefonie, sistemul telefonic se mparte n dou: domeniul exterior (buclele locale i trunchiurile, deoarece ele sunt n afara oficiilor de
comutare) i domeniul interior (comutatoarele). Tocmai am aruncat o privire asupra domeniului
exterior. Acum a venit timpul s examinm domeniul interior.
n sistemul telefonic se utilizeaz dou tehnici de comutare diferite: comutarea de circuite i comutarea de pachete. Vom face n continuare cte o scurt introducere pentru fiecare dintre cele dou
tehnici. Apoi vom studia n detaliu comutarea de circuite, acesta fiind modul de funcionare actual al
sistemul telefonic. Comutarea de pachete va fi studiat n detaliu n capitolele care urmeaz.

Comutarea de circuite
Atunci cnd formezi tu sau calculatorul tu un numr de telefon, echipamentele de comutare
din sistemul telefonic caut o cale fizic ntre telefonul tu i telefonul apelat. Aceast tehnic se
cheam comutare de circuite i este prezentat schematic n fig. 2-38(a). Fiecare dintre cele 6 dreptunghiuri reprezint un oficiu de comutare al companiei de telecomunicaii (oficiu final, oficiu de
taxare etc.). n acest exemplu, fiecare oficiu are trei linii de intrare i trei linii de ieire. Atunci cnd o
cerere trece prin oficiu, se stabilete (conceptual) o legtur ntre linia de pe care a venit cererea i
una din liniile de ieire; aceste legturi sunt reprezentate n figur de liniile punctate.
n primele zile ale telefoniei, legtura era fcut de un operator care conecta un cablu n mufele
de intrare i de ieire. De fapt, exist i o povestioar simpatic legat de invenia echipamentelor de
comutare automat a circuitelor. Aceste echipamente au fost inventate n secolul XIX de un proprietar al unei firme de Pompe Funebre din Missouri, pe nume Almon B. Strowger. Puin timp dup ce
telefonul a fost inventat, cnd cineva a murit, unul dintre supravieuitori ar fi sunat operatorul oraului i spunnd: V rog, facei-mi legtura cu o firm de Pompe Funebre. Din pcate pentru domnul Strowger, existau dou firme de Pompe Funebre n ora, iar proprietarul celeilalte era soul operatoarei telefonice a oraului. Domnul Strowger i-a dat repede seama c fie va inventa echipamentul telefonic de comutare automat, fie va renuna la afacere. A ales prima opiune. Timp de 100 de
ani, echipamentele de comutare a circuitelor au fost cunoscute n toat lumea drept cutia Strowger.
(Istoria nu a consemnat ns dac operatoarea de comutare, rmas omer, a obinut ulterior un
post de operator de informaii, rspunznd la ntrebri de genul Care este numrul de telefon al
unei firme de Pompe Funebre ?).

SEC. 2.5

SISTEMUL TELEFONIC

133

Fig. 2-38. (a) Comutare de circuite. (b) Comutare de pachete

Modelul prezentat n fig. 2-39(a) este, desigur, foarte simplificat, deoarece unele poriuni din
drumul de cupru ntre cele dou telefoane pot fi, de fapt, legturi prin microunde pe care sunt
multiplexate mii de convorbiri. n orice caz, ideea de baz este valid: odat ce apelul a fost stabilit,
exist o cale dedicat ntre cele dou capete i va continua s existe pn cnd convorbirea se termin.
Alternativa la comutarea circuitelor este comutarea de pachete, descris n fig. 2-38(b). n cazul
acestei tehnologii, se vor trimite pachete individuale la cerere, fr ca o cale dedicat s fie construit n prealabil. Fiecare pachet trebuie s-i gseasc singur drumul ctre destinaie.
O proprietate important a comutrii de circuite este nevoia de a stabili o cale de la un capt la
cellalt, nainte ca datele s poat fi transmise. Intervalul de timp dintre momentul formrii numrului i pn cnd se aude sunnd telefonul apelat poate ajunge uor la 10 sec, chiar mai mult pe distane mari sau n cazul convorbirilor internaionale. n acest interval de timp, sistemul telefonic caut
un drum prin cupru, dup cum e prezentat n fig. 2-39(a). De remarcat c, nainte ca transmisia de
date s poat ncepe, semnalul de apel trebuie s se propage pn la destinaie. Pentru multe aplicaii pe calculator (de ex. verificarea creditului la punctul de vnzare), se dorete evitarea perioadelor
lungi de setare.
Ca o consecin a cii rezervate dintre cele dou pari care vorbesc, odat ce conexiunea a fost
realizat, singura ntrziere a datelor este dat de timpul de propagare a semnalului electromagnetic, de aproximativ 5 ms la 1000 Km. Totodat, ca o consecin a prestabilirii traseului, pericolul de
congestie dispare aceasta nseamn c, odat ce apelul s-a efectuat, nu vei mai primi semnalul
ocupat. Desigur, poi primi semnalul ocupat nainte de a stabili legtura, datorit imposibilitii
de comutare sau a capacitii insuficiente a trunchiului.

134

NIVELUL FIZIC

CAP. 2

Fig. 2-39. Apariia evenimentelor n (a) comutarea de circuite.


(b) comutarea de mesaje. (c) comutarea de pachete

Comutarea de mesaje
O alternativ la strategia de comutare de circuite este comutarea de mesaje, prezentat n
fig. 2-39(b). Atunci cnd se utilizeaz acest tip de comutare, nu se stabilete de la nceput o cale
ntre apelant i apelat. n schimb, atunci cnd apelantul are de transmis un bloc de date, acesta este
memorat n primul oficiu de comutare (ruter) i este retransmis mai trziu, pas cu pas. Fiecare bloc
este recepionat n ntregime, verificat pentru a detecta eventualele erori i apoi retransmis. Dup
cum a fost menionat n cap. 1, o reea care folosete aceast tehnic se numete reea memoreazi-retransmite.
Primul sistem de telecomunicaie electromecanic se baza pe comutarea de mesaje i a fost folosit
pentru telegrame. Mesajul era perforat pe o band de hrtie la oficiul de transmisie, band care era
apoi citit i transmis pe o linie de comunicaie ctre urmtorul oficiu de pe traseu, unde era perforat pe o alt band de hrtie. Un operator de acolo rupea banda de hrtie i o citea pe unul din multele cititoare de band hrtie, cte unul pentru fiecare magistral de ieire. Un astfel de oficiu de
comutare era numit oficiu de tocare a benzilor (torn tape office). Benzile de hrtie nu mai se folosesc i nici comutarea mesajelor, deci nu vom mai discuta acest subiect n aceast carte.

SEC. 2.5

SISTEMUL TELEFONIC

135

Comutarea de pachete
n cazul comutrii de mesaje, nu exist nici o limit a dimensiunii blocului, ceea ce nseamn c
ruterele (din sistemele moderne) necesit discuri pentru memorarea unor blocuri mari. De asemenea, acest lucru nseamn c un singur bloc poate ocupa o linie ruter-ruter minute ntregi, comutarea
de mesaje nefiind util pentru traficul interactiv. Pentru a rezolva aceste probleme, a fost inventat
comutarea de pachete, aa cum a fost descris n cap. 1. Reelele cu comutare de pachete fixeaz o
limit superioar precis pentru dimensiunea blocului, permind pachetelor s fie pstrate n memoria principal a ruterului, n loc s fie salvate pe disc. Asigurndu-se faptul c nici un utilizator nu
va putea monopoliza o linie de transmisie mult timp (milisecunde), reelele cu comutare de pachete
au devenit adecvate pentru traficul interactiv. Un alt avantaj al comutrii de pachete fa de comutarea de mesaje este prezentat n fig. 2-39(b) i (c): primul pachet al unui mesaj multi-pachet poate fi
transmis mai departe nainte ca cel de-al doilea pachet s fie complet recepionat, micornd ntrzierea i mbuntind productivitatea. Din aceste motive, reelele de calculatoare folosesc, de obicei,
comutarea de pachete, ocazional, comutarea de circuite, dar niciodat comutarea de mesaje.
Comutarea de circuite i comutarea de pachete difer n multe privine. Pentru nceput, comutarea de circuite necesit construirea unui circuit ntre transmitor i receptor nainte s nceap comunicaia. Comutarea de pachete nu are nevoie de pregtiri prealabile. Primul pachet poate fi trimis
atunci cnd este disponibil.
Rezultatul unei conexiuni stabilite cu comutare de circuite este rezervarea lrgimii de band pe
tot traseul de la transmitor la receptor. Toate pachetele urmeaz aceast cale. Faptul c toate pachetele urmeaz aceeai cale nseamn c nu pot ajunge la destinaie n alt ordine dect aceea n
care au fost trimise. La comutarea cu pachete nu exist o cale, deci pachete diferite pot urma ci
diferite, n funcie de condiiile de reea din momentul n care sunt trimise. Acestea pot ajunge n
alt ordine dect cea iniial.
Comutarea cu pachete este mult mai tolerant la erori dect comutarea cu circuite. De fapt,
acesta este motivul pentru care a fost inventat. Dac un comutator se defecteaz, toate circuitele
care l folosesc se termin i nu se mai poate face trafic pe acestea. n cazul comutrii cu pachete,
pachetele pot fi redirecionate astfel nct s poat ocoli comutatoarele defecte.
De asemenea, rezervarea unei ci ofer posibilitatea rezervrii de lime de band. Dac limea
de band e rezervat, atunci cnd un pachet ajunge la destinaie el este transmis imediat mai departe. n cazul comutrii de pachete, limea de band nu este rezervat, i deci pachetele ar putea atepta pn s fie trimise mai departe.
Prin rezervarea limii de band se asigur c nu poate s apar congestie cnd sosete un pachet
(doar dac apar mai multe pachete dect sunt ateptate). Pe de alt parte, cnd se ncearc stabilirea
unui circuit, exist posibilitatea unui eec datorat congestiei. Deci, congestia poate interveni la momente diferite n cazul comutrii de circuite (la stabilirea circuitului) i n cazul comutrii de pachete
(la transmisia pachetele).
Dac un circuit a fost rezervat pentru un anumit utilizator i nu exist trafic, limea de band a
circuitului e irosit, i nu poate fi folosit pentru alt trafic. Comutarea de pachete nu irosete lime
de band, deci este mai eficient dintr-o perspectiv de ansamblu. nelegerea acestui compromis este
crucial pentru nelegerea diferenei dintre comutarea de circuite i comutarea de pachete. Compromisul este ntre serviciul garantat cu resurse irosite i serviciul negarantat cu resurse neirosite.
Comutarea de pachete folosete transmisia de tip memoreaz-i-trimite. Un pachet e salvat n
memoria unui ruter, apoi trimis ctre urmtorul ruter. n cazul comutrii de circuite, biii curg continuu prin fir. n cazul comutrii de pachete, transmisia memoreaz-i-trimite adaug o ntrziere.

136

NIVELUL FIZIC

CAP. 2

O alt diferen este transparena complet a comutrii de circuite. Transmitorul i receptorul


pot folosi orice vitez de transfer, orice format sau orice metod de formare a cadrului. Compania
de telecomunicaii nu cunoate aceste lucruri i nici nu este interesat de ele. n cazul comutrii de
pachete, compania de telecomunicaie determin parametrii de baz. O analogie grosier ar fi o
comparaie ntre osea i calea ferat. n cazul celei dinti, utilizatorul determin mrimea, viteza i
natura vehiculului; n cazul celei de-a doua, acest lucru l face societatea de cale ferat. Aceast
transparen face posibil coexistena vocii, a faxurilor i a datelor n sistemul telefonic.
O ultim diferen ntre comutarea de circuite i comutarea de pachete se refer la algoritmul de
taxare. La comutarea de circuite, acesta a fost bazat de la nceput pe distan i timp. De obicei, pentru telefoanele mobile distana nu conteaz, excepie fcnd convorbirile internaionale, iar timpul
are doar un rol minor (de exemplu un abonament cu 2000 de minute gratuite cost mai mult dect
unul cu 1000 de minute gratuite, iar uneori convorbirile n timpul nopii i n weekend sunt mai ieftine dect n mod normal). La comutarea de pachete, timpul de conectare nu conteaz, dar volumul
de trafic da. Pentru utilizatorii simpli, distribuitorii de Internet taxeaz o anumit sum lunar pentru
c e mai puin de lucru pentru ei i mai uor de neles de ctre clieni, dar reelele de infrastructur
taxeaz reelele regionale pe baza volumului de trafic. Diferenele sunt prezentate n fig. 2-40.
Criteriu
Realizarea conectrii
Cale fizic dedicat
Fiecare pachet urmeaz aceiai cale
Pachetele ajung n ordine
Defectarea unui comutator e fatal
Banda de frecven disponibil
Cnd poate s apar congestia
Banda de frecven eventual risipit
Transmisia memoreaz i transmite
Transparen
Taxarea

Comutarea de circuite
Necesar
Da
Da
Da
Da
Fix
La momentul setrii
Da
Nu
Da
Pe minut

Comutarea de pachete
Nu e necesar
Nu
Nu
Nu
Nu
Dinamic
La fiecare pachet
Nu
Da
Nu
Pe pachet

Fig. 2-40. Comparaie ntre reelele cu comutare de circuite i cu comutare de pachete.

Datorit faptului c att comutarea de circuite ct i comutarea de pachete sunt foarte importante, vom reveni la ele n curnd i vom prezenta n detaliu diversele tehnologii folosite.

SEC. 2.9

PROBLEME

159

2.8 REZUMAT
Nivelul fizic st la baza tuturor reelelor. Natura impune dou limite fundamentale asupra unui
canal, iar acestea determin lrgimea de band. Este vorba despre limita Nyquist, care se aplic asupra canalelor fr zgomot, i limita Shannon, pentru canale cu zgomot.
Mediile de transmisie pot fi ghidate sau neghidate. Principalele medii ghidate sunt cablul torsadat, cablul coaxial i fibra optic. Mediile neghidate includ undele radio, microundele, undele n infrarou i razele laser care se propag prin aer. Un sistem de transmisie readus n actualitate este
comunicaia prin satelit, n special sistemele LEO.

Elementul cheie pentru majoritatea reelelor pe arii geografic largi este sistemul telefonic. Componentele sale principale sunt buclele locale, trunchiurile i comutatoarele. Buclele locale sunt circuite analogice de cablu torsadat, care necesit folosirea modemurilor pentru transmisia datelor digitale. ADSL ofer viteze de pn la 50 Mbps prin divizarea buclei locale n mai multe canale virtuale i
modularea fiecruia separat. Buclele locale fr fir reprezint o noua direcie de dezvoltare de urmrit, n special LMDS.
Trunchiurile sunt digitale i pot fi multiplexate n mai multe moduri, printre care: FDM, TDM i
WDM. Att comutarea de circuite ct i comutarea de pachete reprezint tehnologii importante.
Pentru aplicaiile mobile, sistemul de telefonie fix (cu fir) nu este adecvat. Radioul celular este
folosit tot mai mult pentru transmisia de voce, iar n curnd va fi folosit frecvent i pentru schimbul
de date. Prima generaie de mobile a fost analogic, dominat de AMPS. A doua generaie a fost
digital, cu D-AMPS, GSM i CDMA ca opiuni majore. A treia generaie va fi digital i bazat pe
CDMA de band larg.
Un sistem alternativ pentru accesul la reea este sistemul de televiziune prin cablu, care a evoluat
gradat de la o anten colectiv la un sistem hibrid fibra opticcoax. Potenial, acesta ofer lrgime
de band foarte mare, dar lrgimea de band real disponibil depinde semnificativ de numrul de
utilizatori activi la un moment dat i de ceea ce fac ei.

2.9 PROBLEME
1.

Calculai coeficienii Fourier pentru funcia f(t) = t , (0 t 1).

2.

Un canal de 4 KHz, fr zgomot, este eantionat la fiecare 1 msec. Care este rata maxim de
transfer a datelor?

3.

Canalele de televiziune au o lime de 6 MHz. Ci bii/sec pot fi transmii dac se folosesc


semnale digitale pe patru niveluri? Considerai cazul unui canal fr zgomot.

4.

Dac un semnal binar este transmis pe un canal de 3 KHz al crui raport semnal-zgomot este de
20dB, care este rata maxim de transfer a datelor ce se poate realiza?

5.

Ce raport semnal-zgomot este necesar pentru a pune o purttoare T1 pe o linie de 50 KHz?

6.

Care este diferena dintre o stea pasiv i un repetor activ ntr-o reea pe fibr optic?

7.

Care este lrgimea de band existent n 0,1 microni de spectru la o lungime de und de 1 micron?

8.

Se dorete s se transmit prin fibr optic o secven de imagini de pe ecranul calculatorului.


Ecranul are 480 x 640 pixeli, fiecare pixel avnd 24 bii. Exist 60 imagini ecran pe secund. Ce
lime de band este necesar i care este lungimea de und necesar pentru aceast band la
1,30 microni?

9.

Teorema lui Nyquist este adevrat i pentru fibra optic sau numai pentru cablul de cupru?

10. n fig. 2-6 banda din partea stng este mai ngust dect celelalte. De ce?

160

NIVELUL FIZIC

CAP. 2

11. Deseori, antenele radio funcioneaz cel mai bine atunci cnd diametrul antenei este egal cu
lungimea de und a undei radio. Antenele rezonabile au ntre 1 cm i 5 m n diametru. Ce domeniu de frecven acoper acestea?
12. Atenuarea multi-ci este maximizat atunci cnd dou raze sosesc cu un defazaj de 180 grade.
Ct de mare trebuie s fie diferena de drum pentru a maximiza atenuarea n cazul unei legturi
prin microunde de 1 GHz avnd 50 km lungime?
13. O raz laser de 1 mm lime este urmrit de un detector de 1 mm lime aflat la 100 m distan, pe acoperiul unei cldiri. Care este limita maxim a deviaiei unghiulare (n grade) a laserului pentru care raza poate fi captat de detector ?
14. Cei 66 de satelii de joas altitudine din proiectul Iridium sunt mprii n 6 coliere n jurul Pmntului. La altitudinea la care sunt folosii, perioada de rotaie este de 90 minute. Care este intervalul mediu pentru timpii mori (de inactivitate) n cazul unui emitor staionar?
15. Se considera un satelit la altitudinea sateliilor geostaionari, dar al crui plan orbital este nclinat fa de planul ecuatorului cu un unghi . Un utilizator staionar se afl pe suprafaa pmntului la latitudinea nordic . Este adevrat c acestui utilizator i se pare c satelitul este nemicat pe cer? Dac nu, descriei micarea pe care o percepe.
16. Cte coduri de oficiu final erau nainte de 1984, atunci cnd fiecare oficiu final era identificat
dup codul su de zon, format din 3 cifre, combinat cu primele trei cifre ale numrului local ?
Codurile de zon ncepeau cu o cifra din intervalul 2-9, avea a doua cifr un 0 sau un 1 i se puteau termina cu orice cifr. Primele dou cifre din numrul local erau ntotdeauna din intervalul
2-9. A treia cifr putea fi oricare.
17. Folosind numai datele din text, care este numrul maxim de telefoane pe care sistemul existent
n SUA le poate suporta fr a se schimba numerotaia i fr a se aduga echipament adiional? Ar putea fi atins acest numr n realitate? Pentru simplificarea ipotezei, un calculator sau
un fax este numrat tot ca un telefon. Presupunei c exista un singur dispozitiv pentru o linie de
abonat.
18. Un sistem telefonic simplu este alctuit din dou oficii finale i un singur oficiu de taxare, la care
fiecare oficiu final este conectat printr-un trunchi duplex de 1 MHz. Un telefon obinuit este folosit pentru a face 4 apeluri ntr-o zi lucrtoare de 8 ore. Durata medie a unui apel este de 6 minute.
10% dintre apeluri sunt de distan lung (adic traverseaz oficiul de taxare). Care este numrul
maxim de telefoane pe care l poate suporta un oficiu final? (presupunei 4 KHz pe circuit)
19. O companie regional de telefoane are 10 milioane de abonai. Fiecare dintre telefoanele acestora este conectat la un oficiu central printr-un cablu torsadat de cupru. Lungimea medie a acestor cabluri este de 10 km. Ct de mult reprezint cuprul din valoarea buclelor locale? Presupunei c seciunea transversal a fiecrui fir este de 1 mm diametru, greutatea specific a cuprului
este 9,0 i cuprul se vinde cu 3 dolari pe kg.
20. O conduct de petrol este un sistem simplex, half duplex, full duplex sau nici una dintre variantele menionate?

SEC. 2.9

PROBLEME

161

21. Costul unui microprocesor rapid a sczut ntr-att nct este posibil s se includ cte unul n
fiecare modem. Cum afecteaz aceasta gestiunea erorilor liniei telefonice?
22. O diagram-constelaie a unui modem, similar celei din fig. 2-25, are puncte la urmtoarele
coordonate: (1,1), (1,-1), (-1,1) i (-1,-1). Ci bii pe secund poate atinge un modem cu aceti
parametri, la 1200 baud ?
23. O diagram-constelaie a unui modem, similar celei din fig. 2-25, are puncte n (0,1) i (0,2).
Modemul folosete modulaie n faz sau modulaie n amplitudine?
24. ntr-o diagram-constelaie, toate punctele sunt situate pe un cerc centrat n origine. Ce fel de
modulaie se folosete ?
25. Cte frecvene folosete un modem full-duplex QAM-64?
26. Un sistem ADSL care folosete DMT aloc 3/4 dintre canalele de date disponibile pentru legtura de flux descendent. Se folosete o modulaie QAM-64 pe fiecare canal. Care este capacitatea legturii de flux descendent?
27. n exemplul de LMDS cu patru sectoare din fig. 2-30, fiecare sector are propriul su canal de 36
Mbps. Potrivit teoriei cozilor, dac un canal este 50% plin, timpul de ateptare va fi egal cu timpul de transfer descendent. n aceste condiii, ct dureaz s se transfere o pagin Web de 5 KB
? Ct timp dureaz s se transfere aceeai pagin pe o linie ADSL de 1 Mbps ? Dar cu un modem de 56 Kbps ?
28. Zece semnale, fiecare necesitnd 4000 Hz, sunt multiplexate n acelai canal utiliznd FDM.
Care este limea de band minim necesar pentru canalul multiplexat? Presupunem c benzile suplimentare (de gard) au limea de 400 Hz.
29. De ce a fost stabilit timpul de eantionare PCM la 125 sec?
30. Care este procentul de suprancrcare pe o purttoare T1? Mai exact, ce procent din cei 1.544
Mbps nu este pus la dispoziia utilizatorului final?
31. Comparai rata maxim de transfer al datelor pe un canal de 4 KHz, fr zgomot, care folosete:
a) codificare analogic (de ex. QPSK) cu 2 bii pe eantion;
b) sistemul PCM T1.
32. Dac un sistem cu purttoarea T1 se desincronizeaz i pierde tactul, el ncearc s se resincronizeze folosind primul bit din fiecare cadru. Cte cadre vor trebui inspectate, n medie, pentru a
se resincroniza cu o probabilitate de eec de 0,001?
33. Care este diferena, dac exist vreuna, ntre blocul de demodulare a unui modem i blocul de
codificare a unui codec? (n definitiv, ambele convertesc semnale analogice n semnale digitale.)
34. Un semnal este transmis digital pe un canal de 4 KHz, fr zgomot, cu un eantion la fiecare 125
s. Ci bii sunt de fapt transmii pe secund pentru fiecare dintre aceste metode de codificare:
a) Standardul CCITT de 2,048 Mbps;
b) DPCM cu o valoare relativ a semnalului pe 4 bii;
c) Modulaia delta.

162

NIVELUL FIZIC

CAP. 2

35. Un semnal pur sinusoidal de amplitudine A este codificat folosind modulaia delta, cu x eantioane/secund. Un semnal de ieire de +1 corespunde unei schimbri a semnalului cu +A/8 iar
un semnal de ieire de -1 corespunde unei schimbri a semnalului cu -A/8. Care este cea mai
mare frecven care poate fi urmrit fr erori cumulative?
36. Ceasurile SONET au o rat de deviaie de aproximativ 1/109. Ct timp este necesar pentru ca
deviaia s egaleze limea unui bit? Care sunt implicaiile acestui calcul?
37. n fig. 2-37 rata de transfer a datelor utilizatorului pentru OC-3 a fost stabilit la 148,608 Mbps.
Artai cum poate fi obinut acest numr din parametrii SONET OC-3.
38. Pentru a fi integra rate de transmisie a datelor mai mici dect STS-1, SONET are un sistem de
fluxuri pariale virtuale (VT, eng. Virtual Tributaries). O VT este o ncrctur util parial care poate fi inserat ntr-un cadru STS-1 i combinat cu alte ncrcturi pariale pentru a completa un cadru de date. VT1.5 folosete 3 coloane, VT2 folosete 4 coloane, VT3 folosete 6 coloane, iar VT6 folosete 12 coloane dintr-un cadru STS-1. Care dintre VT poate integra:
a) un serviciu DS-1 (1.544 Mbps) ?
b) serviciul european CEPT-1 (2.048 Mbps) ?
c) un serviciu DS-2 (6.312 Mbps) ?
39. Care este diferena esenial dintre comutarea de mesaje i comutarea de pachete ?
40. Care este limea de band disponibil utilizatorului ntr-o conexiune OC-12c?
41. Se dau trei reele cu comutare de pachete, coninnd fiecare cte n noduri. Prima reea
are o topologie stea cu un comutator central, cea de-a doua este un inel (bidirecional), iar
cea de-a treia este interconectat complet, avnd cte o legtur de la fiecare nod ctre
toate celelalte noduri. Care sunt lungimile cilor, msurate n salturi (ntre noduri), pentru
cazul cel mai bun, pentru cazul mediu i pentru cazul cel mai defavorabil?
42. Comparai ntrzierea n transmisia unui mesaj de x bii pe o cale de k salturi (ntre noduri)
dintr-o reea cu circuite comutate i ntr-o reea cu comutare de pachete (puin aglomerat).
Timpul de stabilire a circuitului este S sec, ntrzierea de propagare este d sec/salt, dimensiunea
pachetului este de p bii i rata de transfer a datelor este b bii/sec. n ce condiii reeaua cu comutare de pachete are o ntrziere mai mic?
43. Presupunem c x bii de date ale utile trebuie transmii pe o cale de k salturi (ntre noduri), ntro reea cu comutare de pachete, ca o serie de pachete; fiecare pachet conine p bii de date i h
bii pentru antet, cu x >> (p+h). Rata de transfer a liniei este de b bps i ntrzierea de propagare este neglijabil. Ce valoare a lui p minimizeaz ntrzierea total?
44. ntr-un sistem tipic de telefonie mobil cu celule hexagonale, este interzis s se refoloseasc
banda de frecvene a unei celule ntr-o celul adiacent. Dac sunt disponibile n total de 840
frecvene, cte frecvene se pot folosi ntr-o anumit celul?
45. Aranjamentul real a celulelor este rareori att de regulat precum cel din fig. 2-41. Pn i formele
celulelor individuale sunt de obicei neregulate. Dai un motiv plauzibil pentru acest fapt.

SEC. 2.9

PROBLEME

163

46. Facei o estimare sumar a numrului de microcelule PCS de 100 m diametru, care ar fi necesare pentru a acoperi San Francisco (120 km2).
47. Uneori, atunci cnd un utilizator traverseaz grania dintre dou celule, apelul curent se termin brusc, dei toate emitoarele i receptoarele funcioneaz perfect. De ce?
48. D-AMPS ofer o calitate a vocii sensibil mai slab dect GSM. Este adevrat c acest fapt se
datoreaz cerinei ca D-AMPS s pstreze compatibilitatea cu AMPS, n timp ce GSM nu a
avut astfel de constrngeri? Dac nu, care este cauza ?
49. Calculai numrul maxim de utilizatori pe care D-AMPS i poate suporta simultan ntr-o singur
celul. Facei acelai calcul pentru GSM. Explicai diferena.
50. S presupunem c A, B i C transmit simultan bii 0 folosind sistemul CDMA cu secvenele de
felii din fig. 2-45(b). Care este secvena de felii rezultat?
51. n discuia despre ortogonalitatea secvenelor de felii CDMA, s-a afirmat c dac S T = 0
atunci i S T = 0. Demonstrai acest fapt.
52. Considerai un alt mod de a privi proprietatea de ortogonalitate a secvenelor de felii CDMA:
fiecare bit dintr-o pereche de secvene se poate potrivi sau nu. Exprimai proprietatea de ortogonalitate n termeni de potriviri i nepotriviri.
53. Un receptor CDMA primete urmtoarele felii : (-1 +1 3 +1 -1 -3 +1 +1). Folosind secvenele de felii definite n fig. 2-45 (b), care dintre staii au transmis i ce bii a transmis fiecare?
54. La nivelul inferior, sistemul telefonic este construit n form de stea, cu toate buclele locale
dintr-un cartier convergente ctre un oficiu final. Din contr, televiziunea prin cablu este alctuit dintr-un singur cablu lung, cu un traseu erpuit pe deasupra tuturor caselor din acelai cartier. Presupunem c n viitor cablul TV va fi din fibr optic de 10 Gbps n loc de cupru. Ar putea
acesta fi folosit pentru a simula modelul telefonic n care fiecare s aib propria sa linie ctre
oficiul final? Dac da, cte case cu un telefon pot fi conectate la o singur fibr optic?
55. Un sistem de TV prin cablu are 100 de canale comerciale, fiecare din acestea alternnd programele cu publicitatea. Aceast organizare seamn cu TDM sau cu FDM ?
56. O companie de cablu decide s ofere acces Internet prin cablu ntr-un cartier cu 5000 de case.
Compania folosete un cablu coaxial i o alocare de spectru care ofer o lime de band de
100 Mbps pentru flux descendent pentru fiecare cablu. Pentru a atrage clienii, compania decide s garanteze cel puin 2 Mbps lime de band pentru flux descendent pentru fiecare cas,
n orice moment. Descriei modul n care trebuie s acioneze compania de cablu pentru a
oferi aceast garanie.
57. Utiliznd alocarea spectral ilustrat n fig. 2-48 i informaiile date n text, ci Mbps aloc un
sistem de cablu pentru fluxul ascendent i ci pentru cel descendent ?
58. Ct de repede poate un utilizator de cablu s primeasc date dac reeaua este n rest inactiv ?
59. Multiplexarea fluxurilor multiple de date STS-1, numite fluxuri pariale (eng: Tributaries), joac
un rol important n SONET. Un multiplexor 3:1 multiplexeaz trei fluxuri pariale STS-1 primi-

164

NIVELUL FIZIC

CAP. 2

te la intrare ntr-un flux de ieire STS-3. Multiplexarea este fcut octet cu octet, adic primii
trei octei de ieire sunt primii octei ai fluxurilor pariale 1, 2 respectiv 3. Urmtorii octei de ieire alctuiesc al doilea grup de fluxuri 1, 2 i 3, i aa mai departe. Scriei un program care s
simuleze acest multiplexor 3:1. Programul va conine 5 procese. Procesul principal creeaz patru
alte procese, cte unul pentru fiecare dintre cele 3 fluxuri pariale STS-1 i unul pentru multiplexor. Fiecare proces de tip flux parial citete un cadru STS-1 din fiierul de intrare ca pe o
succesiune de 810 bii i i trimite cadrul octet cu octet procesului multiplexor. Procesul multiplexor recepioneaz octeii i furnizeaz la ieire un cadru STS-3 (tot octet cu octet) prin afiarea pe ecran. Pentru comunicaia ntre procese folosii conducte (eng: pipe).

3
NIVELUL LEGTUR DE DATE

n acest capitol vom studia arhitectura nivelului 2, nivelul legtur de date. Acest studiu se ocup de algoritmii de obinere a unei comunicaii eficiente i sigure, ntre dou maini adiacente la
nivelul legturii de date. Prin adiacen nelegem c cele dou maini sunt conectate fizic printr-un
canal de comunicaie care se manifest conceptual ca un fir (de exemplu, un cablu coaxial, o linie
telefonic sau un canal de comunicaie fr fir, de tip punct la punct). Calitatea esenial a unui
canal care l face asemntor unui fir este aceea c biii sunt livrai n exact aceeai ordine n care
sunt transmii.
La nceput ai putea crede c aceast problem este att de simpl, nct nu exist programe de
analizat - maina A pune biii pe fir i maina B i preia. Din pcate, circuitele de comunicaie produc uneori erori. n plus, ele au numai o rat finit a datelor i exist o ntrziere a propagrii,
nenul, ntre momentul n care un bit este emis i momentul n care acesta este recepionat. Aceste
limitri au implicaii importante pentru eficiena transferului de date. Protocoalele utilizate pentru
comunicaie trebuie s ia n considerare toi aceti factori. Aceste protocoale reprezint subiectul
capitolului de fa.
Dup o introducere n principalele aspecte ale proiectrii nivelului legtur de date, vom ncepe
studiul protocoalelor examinnd natura erorilor, cauzele producerii lor i cum pot fi ele detectate i
corectate. Apoi vom studia o serie de protocoale din ce n ce mai complexe, fiecare dintre ele rezolvnd ct mai multe dintre problemele prezente la acest nivel. Vom ncheia cu un studiu al modelrii i corectitudinii protocoalelor i vom da cteva exemple de protocoale ale legturii de date.

165

166

NIVELUL LEGTUR DE DATE

CAP. 3

3.1 ASPECTE ALE PROIECTRII NIVELULUI


LEGTUR DE DATE
Nivelul legtur de date are un numr de funcii specifice pe care trebuie s le ndeplineasc.
Aceste funcii includ:
1. Furnizarea unei interfee bine-definite ctre nivelul reea
2. Tratarea erorilor de transmisie
3. Reglarea fluxului cadrelor n aa fel, nct receptorii leni s nu fie inundai de ctre emitori rapizi.
Pentru a ndeplini aceste scopuri, nivelul legtur de date primete pachete de la nivelul reea, pe
care le ncapsuleaz n cadre n vederea transmiterii. Fiecare cadru conine un antet, un cmp de
informaie util pentru pachet i ncheiere, dup cum se vede n fig. 3-1. Gestionarea cadrelor reprezint esena a ceea ce face nivelul legtur de date. In seciunile urmtoare vom examina in detaliu
toate aspectele menionate anterior.

Fig. 3-1. Relaia dintre pachete i cadre.

Cu toate c acest capitol se refer numai la nivelul legtur de date i la protocoalele legturii de
date, multe dintre principiile pe care le vom studia aici, cum ar fi controlul erorilor i controlul fluxului, se regsesc i n protocoalele de transport, i n alte protocoale. n realitate, n multe reele, aceste
funcii se gsesc doar la nivelurile superioare, nu i la nivel legtur de date. Oricum, indiferent de
nivelul la care se gsesc, principiile sunt aproximativ aceleai, deci nu conteaz prea mult unde le
studiem. La nivelul legturii de date ele apar de obicei n forma cea mai simpl i cea mai pur, fcnd din acest nivel un loc foarte potrivit studierii detaliate a acestor principii.

3.1.1

Servicii oferite nivelului reea

Funcia nivelului legtur de date este s ofere servicii nivelului reea. Principalul serviciu este
transferul datelor de la nivelul reea al mainii surs la nivelul reea al mainii destinaie. La nivelul
reea al mainii surs exist o entitate, s-i spunem proces, care trimite bii ctre nivelul legtur de
date, pentru a fi transmii la destinaie. Funcia nivelului legtur de date este s transmit biii spre
maina destinaie, pentru ca acolo s fie livrai nivelului reea, aa cum se arat n fig. 3-2(a). Transmisia efectiv urmeaz calea din fig. 3-2(b), dar este mai uor de neles n termenii a dou procese

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

167

ale nivelului legtur de date care comunic utiliznd un protocol al legturii de date. Din acest motiv, pe parcursul acestui capitol, vom folosi n mod implicit modelul din fig. 3-1(a).

Fig. 3-2. (a) Comunicaie virtual. (b) Comunicaie efectiv.

Nivelul legtur de date poate fi proiectat s ofere diferite servicii. Serviciile efective oferite pot
varia de la sistem la sistem. Trei posibiliti de baz, oferite n mod curent, sunt:
1. Serviciu neconfirmat fr conexiune.
2. Serviciu confirmat fr conexiune.
3. Serviciu confirmat orientat-conexiune.
S le analizm pe rnd pe fiecare dintre acestea.
Serviciul neconfirmat fr conexiune const din aceea c maina surs trimite cadre independente
ctre maina destinaie, fr ca maina destinaie s trebuiasc s confirme primirea lor. n acest caz,
nu sunt necesare stabilirea i desfiinarea unei conexiuni logice. Dac un cadru este pierdut datorit
zgomotului de pe linie, la nivelul legtur de date nu se face nici o ncercare pentru recuperarea lui.
Aceast clas de servicii este adecvat atunci cnd rata de erori este foarte sczut, nct recuperarea
este lsat n sarcina nivelurilor superioare. De asemenea, este adecvat pentru traficul de timp real,
cum ar fi cel de voce, unde a primi date cu ntrziere este mai ru dect a primi date eronate. Majoritatea LAN-urilor utilizeaz la nivelul legturii de date servicii neconfirmate fr conexiune.
Urmtorul pas n ceea ce privete sigurana este serviciul confirmat fr conexiune. Atunci cnd
este oferit acest serviciu, nc nu se utilizeaz conexiuni, dar fiecare cadru trimis este confirmat individual. n acest mod, emitorul tie dac un cadru a ajuns sau nu cu bine. Dac nu a ajuns ntr-un
interval de timp specificat, poate fi trimis din nou. Acest serviciu este folositor pentru canale nesigure, cum ar fi sistemele fr fir.
Poate c merit s subliniem c asigurarea confirmrii la nivelul legturii de date este doar o optimizare, niciodat o cerin. Nivelul reea poate ntotdeauna s trimit un mesaj i s atepte s fie
confirmat. Dac confirmarea nu apare n timp util, atunci emitorul poate retrimite ntregul mesaj.
Problema cu aceast strategie este aceea c, de obicei, cadrele au o lungime maxim impus de
hardware, iar pachetele nivelului reea nu au aceasta limitare. Dac pachetul mediu este spart n, s
zicem, 10 cadre i 20% din totalul cadrelor sunt pierdute, transmiterea acestuia poate lua foarte mult
timp. n cazul n care cadrele individuale sunt confirmate i retransmise, pachetele ntregi vor fi
transmise mult mai rapid. Pe canale sigure, precum fibra optic, costul suplimentar implicat de un

168

NIVELUL LEGTUR DE DATE

CAP. 3

astfel de protocol al legturii de date poate fi nejustificat, dar pe canale fr fir, costul este pe deplin
justificat datorit nesiguranei acestora.
Revenind la serviciile noastre, cel mai sofisticat serviciu pe care nivelul legtur de date l pune la
dispoziia nivelului reea este serviciul orientat-conexiune. n cazul acestui serviciu, mainile surs i
destinaie stabilesc o conexiune nainte de a transfera date. Fiecare cadru trimis pe conexiune este
numerotat i nivelul legtur de date garanteaz c fiecare cadru trimis este ntr-adevr recepionat.
Mai mult, garanteaz c fiecare cadru este recepionat exact o dat i toate cadrele sunt recepionate
n ordinea corect. n schimb, n cazul serviciului fr conexiune, este posibil ca, datorit unei confirmri pierdute, un cadru s fie transmis de mai multe ori i, prin urmare, recepionat de mai multe
ori. Spre deosebire de acesta, serviciul orientat conexiune furnizeaz proceselor de la nivelul reea
echivalentul unui flux de bii sigur.
Atunci cnd este utilizat serviciul orientat conexiune, transferurile au trei faze distincte. n
prima faz este stabilit conexiunea, ambele pri iniializnd variabile i contoare, utilizate
pentru a ine evidena cadrelor care au fost recepionate i a celor care nu au fost. n a doua
faz, sunt transmise unul sau mai multe cadre. n a treia i ultima faz, conexiunea este desfiinat, elibernd variabilele, tampoanele i alte resurse utilizate la meninerea conexiunii.
S considerm un exemplu tipic: o subreea WAN format din rutere conectate prin linii
telefonice punct-la-punct, nchiriate. Cnd un cadru ajunge la un ruter, hardware-ul verific
absena erorilor (folosind tehnici pe care le vom studia mai trziu n acest capitol), i trimite
cadrul programelor nivelului legtur de date (care se pot afla ntr-un cip de pe
adaptorul de reea). Programele nivelului legtur de date verific dac acesta este cadrul ateptat i, dac este aa, trimit pachetul din cmpul de informaie util ctre programele de dirijare. Programele de dirijare aleg linia de ieire corespunztoare i trimit pachetul napoi, ctre
programele nivelului legtur de date, care apoi l transmit. Fluxul dintre dou rutere este reprezentat n fig. 3-3.

Fig. 3-3. Plasarea protocolului legtur de date.

Programul de dirijare dorete de obicei ca operaia s fie corect executat, ceea ce presupune
conexiuni secveniale sigure pe fiecare linie punct-la-punct. El nu vrea s fie deranjat prea des de
pachete care s-au pierdut pe drum. Este sarcina protocolului legturii de date, prezentat n dreptun-

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

169

ghiul punctat, s fac liniile de comunicaie nesigure s par perfecte sau, cel puin, suficient de bune. Aceast proprietate este foarte important pentru legturile fr fir, care sunt, prin natura lor,
foarte nesigure. Ca o remarc, cu toate c am prezentat copii ale programelor nivelului legtur de
date n fiecare ruter, de fapt exist o singur copie, care trateaz toate liniile, utiliznd tabele i structuri de date diferite pentru fiecare dintre ele.

3.1.2

ncadrarea

n vederea furnizrii unui serviciu nivelului reea, nivelul legtur de date trebuie s utilizeze serviciul furnizat de ctre nivelul fizic. Sarcina nivelului fizic este s primeasc un flux de bii i s ncerce
s-l trimit la destinaie. Nu se garanteaz c acest flux de bii nu conine erori. Numrul de bii recepionai poate fi mai mic, egal cu, sau mai mare dect numrul de bii transmii i pot avea valori diferite. Este la latitudinea nivelului legtur de date s detecteze i, dac este necesar, s corecteze erorile.
Abordarea uzual pentru nivelul legtur de date este s sparg irul de bii n cadre discrete i s
calculeze suma de control pentru fiecare cadru. (Algoritmii pentru suma de control vor fi discutai
mai trziu n acest capitol.) Atunci cnd un cadru ajunge la destinaie, suma de control este recalculat. Dac noua sum de control este diferit de cea coninut n cadru, nivelul legtur de date tie
c a aprut o eroare i face operaiile necesare pentru a o rezolva (de exemplu, elimin cadrul eronat
i probabil trimite napoi un raport de eroare).
Spargerea irului de bii n cadre este mai dificil dect pare la prima vedere. O cale pentru a realiza aceast ncadrare este inserarea de intervale de timp ntre cadre, aa cum inserm spaii ntre
cuvinte ntr-un text normal. Totui, reelele dau rareori garanii referitoare la timp, aa c este posibil ca aceste intervale s fie comprimate sau ca n timpul transmisiei s fie inserate alte intervale.

Fig. 3-4. Un ir de caractere. (a) Fr erori. (b) Cu o eroare.

Deoarece este prea periculos s ne bizuim pe timp pentru a marca nceputul i sfritul fiecrui
cadru, au fost elaborate alte metode. n aceast seciune vom analiza patru metode:
1. Numrarea caracterelor.
2. Indicatori cu inserare de octei.
3. Indicatori de nceput i de sfrit, cu inserare de bii.
4. Violarea codificrilor la nivel fizic.

170

NIVELUL LEGTUR DE DATE

CAP. 3

Fig. 3-5. (a) Cadru delimitat de octei indicatori. (b) Patru exemple de secvene de octei nainte i
dup inserare

Prima metod de ncadrare utilizeaz un cmp din antet pentru a specifica numrul de caractere
din cadru. Atunci cnd nivelul legtur de date de la destinaie primete contorul de caractere, tie
cte caractere urmeaz i unde este sfritul cadrului. Aceast tehnic este prezentat n fig. 3-4 (a)
pentru patru cadre de dimensiune de 5, 5, 8 i 8 caractere.
Problema cu acest algoritm este c valoarea contorului poate fi alterat de erori de transmisie.
De exemplu, dac contorul de caractere din al doilea cadru din fig. 3-4(b) din 5 devine 7, destinaia
va pierde sincronizarea i va fi incapabil s localizeze nceputul cadrului urmtor. Chiar dac suma
de control este incorect i destinaia tie c a primit cadru eronat, nu exist nici o posibilitate de a
determina unde ncepe urmtorul cadru. Nu ajut nici trimiterea unui cadru napoi la surs, cernd
o retransmisie, deoarece destinaia nu tie peste cte caractere s sar pentru a ncepe retransmisia.
Din acest motiv, metoda contorizrii caracterelor este rar utilizat.
A doua metod de ncadrare nltur problema resincronizrii dup o eroare, prin aceea c fiecare cadru ncepe i se termin cu o secvena special de octei. Iniial, octeii ce indicau nceputul,
respectiv sfritul erau diferii, dar n ultimii ani s-a trecut la utilizarea unui singur octet, numit octet
indicator, att ca indicator de nceput, ct i de sfrit, aa cum se prezint in fig. 3-5(a). n acest fel,
dac receptorul pierde sincronizarea, acesta poate cuta octetul indicator pentru a gsi sfritul cadrului. Doi octei indicatori consecutivi indic sfritul unui cadru i nceputul celui care urmeaz.
O problem serioas cu aceast metod apare atunci cnd se transmit date binare, cum ar fi un
obiect sau numere n virgul mobil. Se poate ntmpla ca n date s apar octetul folosit ca indicator. Aceast situaie interfereaz cu procesul de ncadrare. O cale de rezolvare a acestei probleme
este ca nivelul legtur de date al emitorului s insereze un octet special (ESC) naintea fiecrei
apariii accidentale a indicatorului n date. Nivelul legtur de date al receptorului va elimina acest
octet special nainte de a pasa datele nivelului reea. Aceast tehnic poart numele de inserare de
octei (eng.: byte stuffing) sau inserare de caractere (eng.: character stuffing) . Deci, un octet indica-

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

171

tor utilizat pentru ncadrare poate fi difereniat de unul prezent n date prin faptul c este sau nu
precedat de un octet special.
Bineneles, urmtoarea ntrebare este: Ce se ntmpl dac un octet special apare n mijlocul datelor? Rspunsul este c pe lng el se insereaz nc un octet special.
Deci, un singur octet special face parte dintr-o secven special, iar un octet special dublu indica
faptul ca un singur octet de acest tip a aprut in cadrul datelor. Cteva exemple sunt prezentate in
fig. 3-5(b). n toate cazurile, secvena de octei obinut dup eliminarea octeilor inserai este exact
secvena original.
Schema de inserare de octei prezentat n fig. 3-5 reprezint o uoar simplificare a schemei utilizate n cadrul protocolului PPP, pe care majoritatea calculatoarelor casnice l folosesc pentru a comunica cu furnizorul de servicii Internet. Vom discuta despre PPP mai trziu n acest capitol.
Un dezavantaj major al utilizrii acestei metode de ncadrare este acela c este limitat la utilizarea caracterelor de 8 bii. Nu toate codurile utilizeaz caractere de 8 bii. De exemplu, UNICODE
folosete caractere pe 16 bii. Datorit dezvoltrii reelelor, dezavantajele inserrii de coduri de caractere n mecanismul de ncadrare au devenit din ce n ce mai evidente, aa c a trebuit dezvoltat o
nou tehnic, care s permit caractere de dimensiune variabil.
Noua tehnic permite cadrelor de date s conin un numr arbitrar de bii i permite coduri de
caractere cu un numr arbitrar de bii per caracter. Funcioneaz astfel: fiecare cadru ncepe i se
termin cu un ablon special pe bii, 01111110, numit octet indicator (flag). De fiecare dat cnd
nivelul legtur de date al emitorului identific cinci de unu consecutivi n date, insereaz automat
un bit 0 n irul de bii de rezultai. Aceast inserare de bii (bit stuffing) este similar inserrii de
caractere, n care un octet escape este inserat n irul de caractere de ieire, nainte de fiecare octet
indicator din date.
Atunci cnd receptorul primete o succesiune de cinci bii 1, urmai de un bit 0, extrage automat
(adic terge) bitul 0. La fel ca i inserarea de caractere, care este complet transparent pentru nivelul reea din ambele calculatoare, aa este i inserarea de bii. Dac datele utilizator conin ablonul
indicator, 01111110, acest indicator este transmis ca 011111010, dar n memoria receptorului este
pstrat ca 01111110. Fig. 3-6 d un exemplu de inserare de bii.

Fig. 3-6. Inserare de bii. (a) Datele originale. (b) Datele aa cum apar pe linie.
(c) Datele aa cum sunt stocate n memoria receptorului dup extragerea biilor inserai.

n cazul inserrii de bii, graniele dintre dou cadre pot fi recunoscute fr ambiguitate datorit
ablonului indicator. Astfel, dac receptorul pierde evidena a ceea ce primete, tot ceea ce are de
fcut este s caute la intrare secvenele indicator, deoarece acestea pot s apar numai la marginile
cadrului i niciodat n interiorul datelor.
Ultima metod de ncadrare este aplicabil reelelor n care codificarea pe mediul fizic conine o
anumit redundan. De exemplu, unele LAN-uri codific un bit de date utiliznd doi bii fizici. De
obicei, un bit 1 este reprezentat de o tranziie sus-jos i un bit 0 de o tranziie jos-sus. Aceasta nseamn c fiecare bit de date are o tranziie n mijloc, receptorului fiindu-i uor s localizeze frontie-

172

NIVELUL LEGTUR DE DATE

CAP. 3

rele biilor. Combinaiile sus-sus i jos-jos nu sunt utilizate pentru date, dar sunt utilizate pentru delimitarea cadrelor in unele protocoale.
Ca observaie final asupra ncadrrii, multe protocoale de legtur de date utilizeaz, pentru o
mai mare siguran, o combinaie de contor de caractere cu una dintre celelalte metode. La sosirea
unui cadru, pentru a localiza sfritul acestuia, este utilizat cmpul contor. Cadrul este acceptat ca
valid doar dac n poziia respectiv exist delimitatorul corespunztor i dac suma de control este
corect. Altfel, irul de intrare este scanat pentru a detecta urmtorul delimitator.

3.1.3

Controlul erorilor

Problema marcrii nceputului i sfritului fiecrui cadru fiind rezolvat, ne vom ndrepta atenia ctre problema urmtoare: cum s ne asigurm c toate cadrele ajung pn la urm la nivelul
reea de la destinaie i n ordinea corect. S presupunem c emitorul trimite cadrele de ieire
fr s verifice dac au ajuns corect. Aa ceva se poate accepta n cazul serviciilor neconfirmate fr
conexiune, dar nu n cel al serviciilor sigure, orientate conexiune.
Modul uzual de a asigura o transmitere sigur este de a furniza emitorului o reacie invers
(eng.: feedback) despre ceea ce se ntmpl la cellalt capt al liniei. De obicei protocolul i cere
receptorului s trimit napoi cadre de control speciale, purtnd confirmri pozitive sau negative
despre cadrele sosite. Dac emitorul recepioneaz o confirmare pozitiv despre un cadru, el tie
c acel cadru a ajuns cu bine. Pe de alt parte, o confirmare negativ nseamn c ceva a mers prost
i cadrul trebuie retransmis.
O complicaie n plus vine de la posibilitatea ca defectele de echipament s determine dispariia
complet a unui cadru (de exemplu ntr-o rafal de zgomot). n acest caz, receptorul nu va reaciona n nici un fel, din moment ce nu are nici un motiv s reacioneze. Trebuie s fie clar c un protocol n care emitorul trimite un cadru i apoi ateapt o confirmare, pozitiv sau negativ, va rmne agat pentru totdeauna dac un cadru este complet pierdut datorit, de exemplu, nefuncionrii echipamentului.
Aceast posibilitate a determinat introducerea contoarelor de timp (ceasurilor) la nivelul legturii de date. Atunci cnd emitorul trimite un cadru, pornete de obicei i un contor de timp. Contorul de timp este setat s expire dup un interval suficient de lung pentru ca acel cadru s poat ajunge la destinaie, s fie prelucrat acolo i confirmarea s se propage napoi ctre emitor. n mod
normal, cadrul va fi corect recepionat i confirmarea va sosi nainte ca timpul s expire, caz n care
contorul va fi anulat.
Dar, dac fie cadrul, fie confirmarea se pierd, intervalul de timp expir, n acest caz, emitorul fiind atenionat c a aprut o problem. Soluia evident este retransmiterea cadrului. Dar, atunci
cnd cadrele pot fi transmise de mai multe ori, exist pericolul ca receptorul s accepte acelai cadru
de dou sau mai multe ori i s-l trimit de mai multe ori nivelului reea. Pentru a evita aceast situaie este necesar s atribuim numere de secven cadrelor de ieire, aa nct receptorul s poat face
distincie ntre cadrele retransmise i cele originale.
ntreaga problematic a gestiunii ceasurilor i numerelor de secven, astfel nct fiecare cadru
s ajung la nivelul reea de la destinaie o singur dat nici mai mult, nici mai puin, reprezint o
parte important a obligaiilor nivelului legtur de date. Mai trziu, n acest capitol, urmrind o
serie de exemple de complexitate din ce n ce mai mare, vom studia n detaliu cum este realizat
aceast gestiune.

SEC. 3.2

3.1.4

DETECTAREA I CORECTAREA ERORILOR

173

Controlul fluxului

Un alt aspect important de proiectare care apare la nivelul legtur de date (i, desigur, i la nivelurile superioare) este cum trebuie procedat cu un emitor care dorete n mod sistematic s transmit cadre mai repede dect poate s accepte receptorul. Aceast situaie poate s apar uor atunci
cnd emitorul ruleaz pe un calculator rapid (sau mai puin ncrcat) i receptorul ruleaz pe o
main lent (sau foarte ncrcat). Emitorul continu s transmit cadre la o rat nalt pn
cnd receptorul este complet inundat. Chiar dac transmisia este fr erori, la un anumit punct receptorul nu va mai fi capabil s trateze cadrele care sosesc i va ncepe s piard unele dintre ele.
Bineneles, trebuie fcut ceva pentru a evita aceast situaie.
Exist dou abordri des utilizate. In cazul celei dinti, controlul fluxului bazat pe reacie (feedback-based flow control), receptorul acord emitorului permisiunea de a mai transmite date, sau
cel puin comunic emitorului informaii despre starea sa. n cea de-a doua, controlul fluxului bazat pe rat (rate-based flow control), protocolul dispune de un mecanism integrat care limiteaz rata
la care emitorul poate transmite, fr a folosi informaii de la receptor. n acest capitol vom studia
scheme de control al fluxului bazat pe reacie, deoarece la nivelul legtur de date nu se utilizeaz
controlul fluxului bazat pe rat. Vom studia acest tip de control al fluxului n cap. 5.
Sunt cunoscute diferite scheme de control al fluxului, dar cele mai multe dintre ele utilizeaz acelai principiu de baz. Protocolul conine reguli bine definite despre momentul cnd emitorul poate trimite urmtorul cadru. Deseori aceste reguli interzic trimiterea cadrelor nainte ca receptorul s
o permit, implicit sau explicit. De exemplu, cnd se stabilete o conexiune, receptorul trebuie s
spun: "Acum poi s-mi trimii n cadre, dar dup ce au fost trimise, s nu trimii altele pn cnd nu
i spun s continui". Vom examina detaliile n cele ce urmeaz.

180

NIVELUL LEGTUR DE DATE

CAP. 3

3.3 PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE


Pentru a face introducerea n subiectul protocoalelor, vom ncepe prin a analiza trei protocoale de
complexitate din ce n ce mai mare. Pentru cititorii interesai, un simulator pentru aceste protocoale i
pentru cele care urmeaz este disponibil prin Web (vezi prefaa). nainte de a analiza protocoalele,
este util s explicitm unele dintre ipotezele care stau la baza modelelor de comunicaie. Pentru nceput, considerm c la nivelul fizic, nivelul legtur de date i nivelul reea exist procese independente
care comunic transferndu-i mesaje n ambele sensuri. n multe cazuri, procesele de la nivelul fizic
i de legtur de date se vor executa pe un procesor dintr-un cip special de intrare/ieire al reelei, iar
codul nivelului reea n CPU. Sunt posibile i alte implementri (de exemplu toate cele trei procese
ntr-un singur cip de intrare/ieire; nivelurile fizic i legtur de date ca proceduri apelate de procesul
nivelului reea). n orice caz, tratarea celor trei niveluri ca procese separate va face discuiile conceptuale mai clare i de asemenea va scoate n eviden independena nivelurilor.
O alt presupunere cheie este c maina A vrea s trimit un lung ir de date mainii B, folosind
un serviciu sigur, orientat pe conexiune. Mai trziu, vom considera cazul n care B vrea de asemenea
s-i transmit simultan date lui A. Presupunem c A are tot timpul date gata de transmis i nu ateapt niciodat ca aceste date s fie produse. n schimb, atunci cnd nivelul legtur de date al lui A
cere date, nivelul reea este totdeauna capabil s i le furnizeze imediat. (i aceast restricie va fi
abandonat mai trziu.)
Presupunem de asemenea c mainile nu se defecteaz. Adic, aceste protocoale trateaz erorile
de transmisie, dar nu i erorile generate de defectarea sau reiniializarea calculatoarelor.
n ceea ce privete nivelul legtur de date, pachetul care trece de la nivelul reea, prin interfa,
ctre el este constituit din date pure, fiecare bit al acestora trebuind s fie trimis la nivelul reea destinaie. Faptul c nivelul reea destinaie poate interpreta o parte din pachetul de date ca antet nu
prezint interes pentru nivelul legtur de date.
Atunci cnd accept un pachet, nivelul legtur de date l ncapsuleaz ntr-un cadru,
adugndu-i un antet i o ncheiere de legtur de date (vezi fig. 3-1). Deci un cadru se compune
dintr-un pachet de date, cteva informaii de control (antetul), i suma de control (n ncheiere)
Apoi cadrul este transmis ctre alt nivel legtur de date. Vom presupune c exist proceduri de
bibliotec adecvate pentru transmitea i recepionarea unui cadru: to_physical_layer i, respectiv,
from_physical_layer. Echipamentul de transmisie calculeaz i adaug suma de control (crend astfel
o ncheiere), astfel nct programele nivelului legtur de date nu trebuie s se preocupe de aceasta.
De exemplu, ar putea fi utilizat algoritmul polinomial discutat mai devreme n acest capitol.
Iniial, receptorul nu are nimic de fcut. Doar st ateptnd s se ntmple ceva. n exemplele de
protocoale din acest capitol artm c nivelul legtur de date ateapt s se produc un eveniment
prin apelul de procedur wait_for_event (&event). Aceast procedur red controlul numai atunci
cnd s-a ntmplat ceva (adic atunci cnd sosete un cadru). La revenire, variabila event spune ce sa ntmplat. Mulimea de evenimente posibile nu este aceeai pentru diferitele protocoale ce vor fi
descrise i va fi definit separat, pentru fiecare protocol n parte. De reinut c, ntr-o situaie mai
realist, nivelul legtur de date nu va sta pur i simplu n ateptarea unui eveniment, aa cum am
sugerat, ci va primi o ntrerupere, care l va determina s se opreasc, indiferent ce fcea n acel
moment, i s se ocupe de cadrul care sosete. Cu toate acestea,, pentru simplitate, vom ignora toate
detaliile activitilor paralele din cadrul nivelului legtur de date i vom presupune c este tot timpul dedicat numai canalului nostru.
Cnd un cadru ajunge la receptor, echipamentul calculeaz suma de control. Dac aceasta este
incorect (n cazul unei erori de transmisie), atunci nivelul legtur de date este informat corespunztor (event = cksum_err). Dac un cadru ajunge nealterat, nivelul legtur de date este de asemenea informat (event = frame_arrival), aa c poate primi cadrul pentru inspecie folosind
from_physical_layer. De ndat ce nivelul de legtur de date a primit un cadru nealterat, verific
informaiile de control din antet i dac totul este n regul, pachetul este transmis nivelului reea. n
nici un caz antetul nu este transmis nivelului reea.
Exist un motiv serios pentru care nivelului reea nu trebuie s i se transmit niciodat vreo parte
din antet: separarea complet a protocoalelor de reea de cele de legtur de date. Att timp ct

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

181

nivelul reea nu tie nimic despre protocolul nivelului legtur de date sau despre formatul cadrului,
acestea pot fi schimbate, fr s fie necesar schimbarea programelor nivelului reea. Furnizarea
unei interfee rigide ntre nivelul reea i nivelul legtur de date simplific considerabil proiectarea
programelor, deoarece protocoalele de comunicaie de la niveluri diferite pot evolua independent.
#define MAX_PKT 1024
typedef
typedef
typedef
typedef

/* determin dimensiunea n octei a pachetului */

enum {false, true} boolean;


unsigned int seq_nr;
struct {unsigned char data[MAX_PKT];} packet;
enum {data, ack, nak} frame_kind;

typedef struct {
frame_kind kind;
seq_nr seq;
seq_nr ack;
packet info;
} frame;

/* tip boolean
/* numere de secven sau de ack
/* definiia pachetului
/* definiia tipurilor de cadre

*/
*/
*/
*/

/* la acest nivel sunt transportate cadre


/* ce fel de cadru este acesta?
/* numr de secven
/* numr de confirmare
/* pachetul de nivel reea

*/
*/
*/
*/
*/

/* Ateapt producerea unui eveniment; ntoarce tipul acestuia n variabila event */


void wait_for_event(event_type *event);
/* Preia un pachet de la nivelul reea, spre a-l transmite prin canal */
void from_network_layer(packet *p);
/* Livreaz nivelului reea informaia dintr-un cadru ajuns la destinaie */
void to_network_layer(packet *p);
/* Preia cadrul sosit de la nivelul fizic i l copiaz n r. */
void from_physical_layer(frame *r);
/* Livreaz cadrul nivelului fizic, pentru transmisie */
void to_physical_layer(frame *s);
/* Pornete ceasul i activeaz evenimentul timeout */
void start_timer(seq_nr k);
/* Oprete ceasul i dezactiveaz evenimentul timeout */
void stop_timer(seq_nr k);
/* Pornete un ceas auxiliar i activeaz evenimentul ack_timeout */
void start_ack_timer(void);
/* Oprete ceasul auxiliar i dezactiveaz evenimentul ack_timeout */
void stop_ack_timer(void);
/* Permite nivelului reea s provoace un eveniment network_layer_ready */
void enable_network_layer(void);
/* Interzice nivelului reea generarea unui eveniment network_layer_ready */
void disable_network_layer(void);
/* Macroinstruciunea inc este expandat n-line: l incrementeaz circular pe k */
#define inc(k) if (k ( MAX_SEQ) k = k + 1; else k = 0

Fig. 3-9. Cteva definiii necesare n protocoalele care urmeaz.


Aceste definiii se gsesc n fiierul protocol.h.

182

NIVELUL LEGTUR DE DATE

CAP. 3

Fig. 3-9 arat cteva declaraii (n C) comune multor protocoale ce vor fi discutate mai trziu.
Sunt definite cinci structuri de date: boolean, seq_nr, packet, frame_kind, frame. Un boolean este de
tip enumerativ i poate lua numai valorile true sau false. Seq_nr este un numr ntreg mic folosit pentru a numerota cadrele, astfel nct s le putem identifica. Aceste numere de secven sunt cuprinse
ntre 0 i MAX_SEQ inclusiv, aceasta din urm fiind o constant definit n fiecare protocol n care
este necesar. Un pachet este unitatea de informaie schimbat ntre nivelul reea i nivelul legtur
de date de pe aceeai main sau ntre niveluri reea similare. n modelul nostru el conine totdeauna MAX_PKT octei, dar mai realist ar fi s aib lungime variabil.
Un frame (cadru) este compus din patru cmpuri: kind, seq, ack, i info, dintre care primele trei
conin informaii de control, iar ultimul poate conine datele efective care trebuie transferate. Ansamblul acestor cmpuri de control este numit antetul cadrului (frame header).
Cmpul kind (tip) spune dac exist sau nu date n cadru, deoarece unele protocoale fac distincie ntre cadrele care conin exclusiv informaii de control i cele care conin i date. Cmpurile seq i
ack sunt utilizate pentru numere de secven i, respectiv, confirmri (acknowledgements); utilizarea
lor va fi descris n detaliu mai trziu. Cmpul info al unui cadru de date conine un singur pachet de
date; cmpul info al unui cadru de control nu este utilizat. O implementare mult mai realist va folosi un cmp info de lungime variabil, omindu-l cu totul din cadrele de control.
Din nou, este important s ne dm seama de relaia dintre un pachet i un cadru. Nivelul reea
construiete un pachet lund un mesaj de la nivelul transport i adugnd la acesta antetul nivelului
reea. Acest pachet este trimis nivelului legtur de date pentru a fi inclus n cmpul info al unui cadru care pleac. Cnd cadrul ajunge la destinaie, nivelul legtur de date extrage pachetul din cadru
i l trimite nivelului reea. n aceast manier, nivelul reea poate aciona ca i cnd mainile ar putea s schimbe direct pachete.
n fig. 3-9 sunt prezentate i cteva proceduri. Acestea sunt rutine de bibliotec ale cror detalii
sunt dependente de implementare i al cror mod intern de lucru nu ne intereseaz n continuare.
Procedura wait_for_event cicleaz, ateptnd s se ntmple ceva, aa cum am menionat mai devreme. Procedurile to_network_layer i from_network_layer sunt utilizate de nivelul de legtur de date
pentru a trimite, respectiv a accepta, pachete de la nivelul de reea. De reinut c from_physical_layer
i to_physical_layer sunt utilizate pentru trimiterea cadrelor ntre nivelurile fizic i legtur de date.
Pe de alt parte, to_network_layer i from_network_layer sunt folosite pentru a trimite pachetele ntre
nivelul legtur de date i nivelul reea. Cu alte cuvinte, to_network_layer i from_network_layer realizeaz interfaa dintre nivelurile 2 i 3, n timp ce from_physical_layer i to_physical_layer realizeaz
interfaa dintre nivelurile 1 i 2.
n cele mai multe dintre protocoale se consider c se utilizeaz un canal nesigur care, ocazional,
poate pierde cadre ntregi. Pentru a contracara efectul unor asemenea calamiti, nivelul legtur de
date care transmite trebuie s porneasc un contor de timp sau un ceas intern de fiecare dat cnd
trimite un cadru. Dac nu s-a primit un rspuns ntr-un interval de timp predefinit, la expirarea acestuia, nivelul legtur de date primete un semnal de ntrerupere.
n protocoalele noastre acest lucru este asigurat de procedura wait_for_event care ntoarce event
= timeout. Procedurile start_timer i stop_ timer sunt utilizate pentru a porni, respectiv a opri contorul de timp. Expirarea timpului este posibil numai atunci cnd contorul de timp este pornit. Este
permis explicit s se apeleze start_ timer n timp ce contorul de timp lucreaz; un astfel de apel va
reseta pur i simplu contorul de timp, determinndu-l s genereze urmtorul semnal de expirare de
timp dup ce ntregul interval de timp se va epuiza (exceptnd cazul n care este resetat sau dezactivat n acest interval timp).

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

183

Procedurile start_ack_timer i stop_ack_timer sunt folosite pentru a controla un contor de timp


auxiliar, utilizat pentru a genera confirmri n anumite condiii. Procedurile enable_network_layer i
disable_network_layer sunt utilizate n protocoalele mai sofisticate, n care nu mai presupunem c
nivelul de reea are tot timpul pachete de trimis. Cnd nivelul legtur de date activeaz nivelul reea, acestuia i se permite s ntrerup atunci cnd are un pachet de trimis. Indicm aceasta cu
event = network_layer_ready. Cnd un nivel reea este dezactivat, acesta nu poate provoca asemenea
evenimente. Gestionnd cu pruden activarea i dezactivarea nivelului reea, nivelul legtur de
date l poate mpiedica pe acesta s-l inunde cu pachete atunci cnd nu mai are spaiu n tampon.
Numerele de secven ale cadrelor sunt ntotdeauna de la 0 la MAX_SEQ (inclusiv), unde
MAX_SEQ difer de la protocol la protocol. Deseori este necesar ca numrul de secven s avanseze circular (adic MAX_SEQ este urmat de 0). Aceast incrementare este realizat de macroinstruciunea inc. A fost definit ca macroinstruciune, deoarece este utilizat in-line n secvena critic. Aa
cum vom vedea mai trziu, factorul care limiteaz performana reelei este adesea prelucrarea efectuat de protocol, aa c definirea operaiilor simple, ca aceasta, ca macroinstruciuni, nu afecteaz
claritatea codului, dar mbuntete performana. Mai mult, de vreme ce MAX_SEQ va avea diferite valori n diferite protocoale, definirea de macroinstruciuni face posibil includerea tuturor protocoalelor n acelai fiier binar fr conflict. Aceast posibilitate este util pentru simulator.
Declaraiile din fig. 3-9 fac parte din fiecare dintre protocoalele care urmeaz. Pentru a economisi spaiu i pentru a furniza referine convenabile, acestea au fost extrase i listate mpreun, dar
din punct de vedere conceptual ele trebuie incluse n protocoalele respective. n C, aceasta se realizeaz punnd definiiile ntr-un fiier antet special, n acest caz protocol.h, i utiliznd facilitatea #include a preprocesorului C pentru a le include n fiierele protocol.

3.3.1

Un protocol simplex fr restricii

Ca un prim exemplu vom considera cel mai simplu protocol posibil. Datele sunt transmise ntr-o
singur direcie. Cele dou niveluri reea, de transmisie i de recepie, sunt considerate tot timpul pregtite. Timpul de prelucrare poate fi ignorat. Memoria de stocare disponibil este infinit. i, cel mai
bun lucru dintre toate, canalul de comunicaie ntre niveluri legtur de date nu pierde i nu altereaz
niciodat cadrele. Acest protocol total nerealist, pe care l vom numi "utopia", este prezentat n fig. 310. Protocolul const din dou proceduri distincte, una de emisie i cealalt de recepie. Emitorul
lucreaz la nivelul legtur de date al mainii surs, iar receptorul la nivelul legtur de date al mainii
de destinaie. Nu se folosesc nici numere de secven, nici confirmri, aa c nu este nevoie de
MAX_SEQ. Singurul eveniment posibil este frame_arrival (sosirea unui cadru nealterat).
Emitorul este ntr-un ciclu infinit care doar insereaz datele pe linie ct poate de repede. Ciclul
const din trei aciuni: preluarea unui pachet de date de la nivelul reea (care este ntotdeauna serviabil), construirea unui cadru de ieire folosind variabila s i trimiterea cadrului pe drumul su. Acest
protocol utilizeaz numai cmpul info al cadrului, deoarece celelalte cmpuri se refer la erori i
secvene de control, iar n cazul nostru nu exist erori sau restricii de control.
Receptorul este la fel de simplu. Iniial el ateapt s se ntmple ceva, singura posibilitate fiind
sosirea unui cadru nealterat. n cele din urm, cadrul ajunge, iar procedura wait_for_event se ntoarce cu event setat la frame_arrival (care este oricum ignorat). Apelul rutinei from_physical_layer mut
cadrul nou sosit din zona tampon a echipamentului n variabila r. n cele din urm pachetul de date
este trimis nivelului reea i nivelul legtur de date revine la starea de ateptare a cadrului urmtor,
autosuspendndu-se pur i simplu pn la sosirea unui nou cadru.

184

NIVELUL LEGTUR DE DATE

CAP. 3

/* Protocolul 1 (utopia) asigur transmitere de date doar ntr-o direcie, de la transmitor la receptor. Canalul de comunicaie se presupune a fi fr erori, iar despre receptor
se presupune c este capabil s prelucreze infinit de repede tot ce primete de la intrare.
Deci, transmitorul nu face dect s stea ntr-o bucl, pompnd date pe linie ct de repede poate */
typedef enum {frame_arrival} event_type;
#include "protocol.h"
void sender1(void)
{
frame s;
packet buffer;

/* tampon pentru cadrul transmis */


/* tampon pentru pachetul transmis */

while (true) {
from_network_layer(&buffer);
s.info = buffer;
to_physical_layer(&s);
}
/* Tomorrow, and tomorrow, and tomorrow

/* preia ceva de transmis */


/* l copiaz n s pentru transmitere */
/* l trimite pe traseu */

Creeps in this petty pace from day to day


To the last syllable of recorded time
- Macbeth, V, v */
}
void receiver1(void)
{
frame r;
event_type event;

/* completat de rutina wait, dar neutilizat aici */

while (true) {
wait_for_event(&event);
from_physical_layer(&r);
to_network_layer(&r.info);
}
}

/* singura posibilitate este sosirea unui cadru */


/* preia cadrul sosit */
/* pred datele nivelului reea */

Fig. 3-10. Un protocol simplex fr restricii.

3.3.2

Un protocol simplu Stop-and-Wait (pas-cu-pas)

Acum vom renuna la cea mai nerealist restricie utilizat n protocolul 1: posibilitatea ca nivelul
reea receptor s prelucreze datele de intrare cu vitez infinit (sau echivalent, prezena n nivelul
legturii de date receptor a unui tampon infinit n care s fie memorate, ct timp i ateapt rndul,
toate cadrele sosite). Totui, se presupune n continuare c nu se produc erori pe canalul de comunicaie i c traficul de date este nc simplex.
Principala problem pe care trebuie s o rezolvm aici este cum s evitm ca emitorul s inunde receptorul cu date care sosesc mai rapid dect poate acesta s prelucreze. n esen, dac receptorul are nevoie de un timp t ca s execute from_physical_layer i to_network_layer, atunci emitorul trebuie s transmit la o vitez medie mai mic de un cadru la fiecare interval de timp de t. Mai
mult, dac presupunem c echipamentul receptor nu realizeaz automat memorarea n zona tam-

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

185

pon i gestiunea cozii de ateptare, atunci emitorul nu trebuie s transmit niciodat un nou cadru
pn cnd cel vechi nu a fost preluat de rutina from_physical_layer, ca nu cumva cel nou s se scrie
peste cel vechi.
n anumite situaii speciale (de exemplu, transmisie sincron i un nivel legtur de date receptor
complet dedicat prelucrrii unei singure linii de intrare) ar putea fi posibil ca emitorul s introduc
pur i simplu o ntrziere n protocolul 1, pentru a-l ncetini suficient, astfel nct s se evite inundarea receptorului. Totui, de obicei, fiecare nivel legtur de date va avea mai multe linii de luat n
considerare i intervalul de timp ntre sosirea unui cadru i nceputul prelucrrii sale poate varia considerabil. Dac cei ce proiecteaz reele pot calcula comportamentul receptorului n cazul cel mai
defavorabil, atunci pot programa emitorul s transmit att de ncet, nct, chiar dac fiecare cadru
va suferi ntrzierea maxim, nu vor exista depiri. Problema cu aceast abordare este aceea c este
prea conservatoare. Ea conduce la o utilizare a lrgimii de band care este cu mult sub optim, cu
excepia situaiei n care cazurile cel mai favorabil i cel mai defavorabil sunt aproape la fel (adic,
variaia timpului de reacie al nivelului legtur de date este mic).
/* Protocolul 2 (stop-and-wait) asigur la rndul su un flux de date unidirecional, de la
emitor la receptor. Despre canalul de comunicaie se presupune din nou c este fr
erori, ca i n protocolul 1. Totui, de data aceasta, receptorul are doar un tampon de capacitate limitat i o vitez de prelucrare finit, aa c protocolul trebuie s mpiedice
n mod explicit emitorul s inunde receptorul cu date mai repede dect le poate trata
acesta. */
typedef enum {frame_arrival} event_type;
#include "protocol.h"
void sender2(void)
{
frame s;
packet buffer;
event_type event;

/* tampon pentru cadrul trimis */


/* tampon pentru pachetul trimis */
/* singura posibilitate este sosirea unui cadru */

while (true) {
from_network_layer(&buffer);
s.info = buffer;
to_physical_layer(&s);
wait_for_event(&event);
}
}
void receiver2(void)
{
frame r, s;
event_type event;

/* preia ceva de transmis


/* l copiaz n s pentru transmitere
/* la revedere, micu cadru
/* nu continu pn nu primete semnalul

*/
*/
*/
*/

/* zone tampon pentru cadre */


/* singura posibilitate este sosirea unui cadru */

while (true) {
wait_for_event(&event);
from_physical_layer(&r);
to_network_layer(&r.info);
to_physical_layer(&s);
}
}

/* singura posibilitate este sosirea unui cadru


/* preia cadrul sosit
/* livreaz datele nivelului reea
/* trimite un cadru fictiv pentru a trezi emitorul

Fig. 3-11. Un protocol simplex stop-and-wait.

*/
*/
*/
*/

186

NIVELUL LEGTUR DE DATE

CAP. 3

O soluie mult mai general a acestei dileme este ca receptorul s furnizeze o reacie ctre emitor. Dup trimiterea unui pachet ctre nivelul su reea, receptorul trimite un mic cadru fictiv ctre
emitor care, de fapt, i d emitorului permisiunea s transmit urmtorul cadru. Dup ce a
transmis un cadru, emitorul este obligat de protocol s intre n ateptare un timp, pn cnd sosete micul cadru fictiv (deci confirmarea). Utilizarea reaciei de la receptor pentru a anuna emitorul
c poate trimite date este un exemplu de control al fluxului menionat anterior.
Protocoalele n care emitorul trimite un cadru i apoi, nainte de a continua, ateapt o confirmare, se numesc stop-and-wait (pas-cu-pas). Fig. 3-11 prezint un exemplu de protocol simplex stopand-wait. Chiar dac traficul de date este simplex, mergnd numai de la emitor la receptor, cadrele
se deplaseaz n ambele direcii. n consecin, canalul de comunicaie dintre cele dou niveluri legtur de date trebuie s permit transferul de informaie bidirecional. Totui, acest protocol impune o
alternan strict a fluxului: mai nti emitorul trimite un cadru, apoi receptorul trimite un alt cadru,
apoi emitorul trimite alt cadru .a.m.d. n acest caz este suficient un canal fizic semiduplex.
Ca i n protocolul 1, emitorul ncepe prin preluarea unui pachet de la nivelul reea, utilizarea
lui pentru construirea unui cadru i trimiterea acestuia. Numai c acum, spre deosebire de protocolul 1, emitorul trebuie s atepte pn cnd sosete un cadru de confirmare, nainte de a relua ciclul i a prelua urmtorul pachet de la nivelul reea. Nivelul legtur de date care transmite nu are
nevoie s inspecteze cadrul care sosete: nu exist dect o singur posibilitate. Cadrul primit este
ntotdeauna o confirmare.
Singura diferen dintre receiver1 i receiver2 este aceea c dup transmiterea unui pachet ctre
nivelul reea, receiver2 trimite un cadru de confirmare napoi la emitor, nainte de a intra din nou n
bucla de ateptare. Deoarece numai sosirea cadrului de ntoarcere la emitor este important, nu i
coninutul lui, receptorul nu trebuie s pun nici o informaie particular n el.

3.3.3

Un protocol simplex pentru un canal cu zgomote

S considerm situaia normal a unui canal de comunicaie care pot aprea erori. Cadrele pot fi
fie modificate, fie complet pierdute. Totui, presupunem c dac un cadru a fost modificat n tranzit,
echipamentul receptor va detecta acest lucru atunci cnd calculeaz suma de control. Dac un cadru
este modificat ntr-un asemenea mod, nct suma de control este totui corect, situaie care este
foarte puin probabil, acest protocol (i toate celelalte protocoale) pot eua (adic, trimit un pachet
incorect ctre nivelul reea).
La prima vedere s-ar prea c o variant a protocolului 2 va funciona: adugarea unui contor de
timp (ceas). Emitorul poate trimite un cadru, dar receptorul va trimite un cadru de confirmare
numai dac informaia a fost recepionat corect. Dac la receptor ajunge un cadru modificat, el va
fi eliminat. Dup un timp, emitorul va iei din ateptare i va retrimite cadrul. Acest proces va fi
repetat pn cnd cadrul va ajunge n final intact. Schema de mai sus conine o eroare fatal. Gndii-v la problem i ncercai s descoperii ce este greit nainte s citii mai departe.
Pentru a vedea ce poate merge ru, amintii-v care este sarcina proceselor nivelului legtur de
date - aceea de a asigura comunicaie fr erori, transparent, ntre procesele nivelului reea. Nivelul
reea de pe maina A d o serie de pachete nivelului su legtur de date, care trebuie s asigure o
serie identic de pachete nivelului reea de pe maina B prin nivelul su legtur de date. n particular, nivelul reea de pe B nu are nici o posibilitate s tie c un pachet a fost pierdut sau duplicat, aa
c nivelul legtur de date trebuie s garanteze c nici o combinaie de erori de transmisie, indiferent ct de puin probabile, nu poate produce un pachet duplicat care s fie transmis nivelului reea.

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

187

S considerm urmtorul scenariu:


1. Nivelul reea de pe A trimite pachetul 1 ctre nivelul su legtur de date. Pachetul este corect recepionat de B i este trimis nivelului reea de pe B. B trimite un cadru de confirmare
napoi lui A.
2. Cadrul de confirmare s-a pierdut complet. El nu va mai ajunge deloc. Viaa ar fi cu mult mai
simpl n cazul n care canalul ar altera sau pierde doar cadre de date, nu i cadre de control,
dar, din nefericire, canalul nu face discriminri.
3. Nivelul de legtur de date de pe A ateapt expirarea timpului limit. Nerecepionnd o confirmare, el presupune (incorect) c acel cadru de date a fost modificat sau pierdut i trimite
nc o dat cadrul coninnd pachetul 1.
4. Cadrul duplicat ajunge i el cu bine la nivelul legtur de date B i este trimis nivelului reea de
acolo. Dac A trimite un fiier lui B, o poriune de fiier va fi duplicat (adic, copia fiierului fcut de B va fi incorect i eroarea nu va fi detectat). Cu alte cuvinte, protocolul va eua.
n mod clar, este necesar o soluie ca receptorul s poat distinge un cadru pe care l vede pentru
prima dat de o retransmisie. Soluia evident este aceea ca emitorul s pun un numr de secven
n antetul fiecrui cadru pe care l trimite. Apoi receptorul poate verifica numrul de secven al fiecrui cadru sosit pentru a vedea dac este un cadru nou sau un duplicat ce trebuie eliminat.
Deoarece este de dorit ca un antet de cadru s fie de dimensiune mic, se pune ntrebarea urmtoare: care este numrul minim de bii necesari pentru numrul de secven? Singura ambiguitate n
acest protocol este ntre un cadru m i succesorul su m+1. n cazul n care cadrul m este pierdut sau
modificat, receptorul nu l va confirma, aa nct emitorul va ncerca s-l retransmit. Odat ce a
fost corect recepionat, receptorul va trimite o confirmare napoi la emitor. Aici este punctul n
care putem s avem necazuri. Dup cum cadrul de confirmare ajunge sau nu corect napoi la emitor, emitorul va ncerca s transmit m sau m+1.
Evenimentul care determin emitorul s nceap transmiterea lui m+2 este sosirea unei confirmri pentru m+1. Dar aceasta presupune c m a fost recepionat corect i, mai mult, confirmarea
a fost de asemenea corect recepionat de emitor (altfel emitorul nu ar fi trimis m+1, ca s nu
mai vorbim de m+2 ). n consecin, singura ambiguitate este ntre un cadru i predecesorul sau
succesorul su imediat, nu ntre ultimii doi.
Este deci suficient un numr de secven de 1 bit (0 sau 1). La fiecare moment de timp, receptorul ateapt un anumit numr de secven. Orice cadru sosit, care conine un numr de secven
greit este rejectat ca duplicat. Atunci cnd sosete un cadru cu numr de secven corect, acesta
este acceptat i transmis nivelului reea. Apoi numrul de secven ateptat este incrementat modulo
2 (adic, 0 devine 1 i 1 devine 0).
Un exemplu de astfel de protocol este prezentat n fig. 3-12. Protocoalele n care emitorul ateapt pentru o confirmare pozitiv naintea de a trece la urmtorul element de date se numesc deseori PAR (Positive Acknowledgement with Retransmision, rom.: confirmare pozitiv cu retransmitere) sau ARQ (Automatic Repeat reQuest, rom: cerere automat de repetare). Asemenea protocolului 2, i acesta transmite datele ntr-o singur direcie.
Protocolul 3 se deosebete de predecesorii si prin aceea c i emitorul i receptorul au o variabil a crei valoare este pstrat ct timp nivelul legtur de date este n starea de ateptare. Emitorul pstreaz numrul de secven al urmtorului cadru de transmis n next_frame_to_send; receptorul pstreaz numrul de secven al urmtorului cadru ateptat n frame_expected. Fiecare protocol are o scurt faz de iniializare nainte de a intra n bucla infinit.

188

NIVELUL LEGTUR DE DATE

CAP. 3

/* Protocolul 3 (par) permite un flux de date unidirecional, printr-un canal nesigur. */


#define MAX_SEQ 1
/* trebuie s fie 1 pentru protocolul 3 */
typedef enum {frame_arrival, cksum_err, timeout} event_type;
#include "protocol.h"
void sender3(void)
{
seq_nr next_frame_to_send;
frame s;
packet buffer;
event_type event;

/* numrul de secven al urmtorului cadru trimis */


/* variabil temporar */
/* tampon pentru pachetul transmis */

next_frame_to_send = 0;
/* iniializeaz numerele de secven de ieire
from_network_layer(&buffer);
/* preia primul pachet
while (true) {
s.info = buffer;
/* construiete un cadru pentru transmitere
s.seq = next_frame_to_send; /* insereaz n cadru un numr de secven */
to_physical_layer(&s);
/* l trimite pe traseu
start_timer(s.seq);
/* dac rspunsul ntrzie prea mult, timpul va expira
wait_for_event(&event);
/* frame_arrival, cksum_err, timeout
if (event == frame_arrival) {
/* preia confirmarea
from_physical_layer(&s);
if(s.ack==next_frame_to_send) {
stop_timer(s.ack);
/* oprete ceasul
from_network_layer(&buffer);
/* preia urmtorul pachet de transmis
inc(next_frame_to_send);
/* inverseaz next_frame_to_send
}
}
}
}

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

void receiver3(void)
{
seq_nr frame_expected;
frame r, s;
event_type event;
frame_expected = 0;
while (true) {
wait_for_event(&event);
if (event == frame_arrival) {
from_physical_layer((r);
if (r.seq == frame_expected) {
to_network_layer((r.info);
inc(frame_expected);
}
s.ack=1-frame_expected;
to_physical_layer(&s);
}
}
}

/* variante: frame_arrival, cksum_err


/* a sosit un cadru corect
/* preia cadrul nou sosit
/* este cel pe care l ateptam
/* transfer datele nivelului reea
/* incrementeaz numr de secven

*/
*/
*/
*/
*/
*/

/* spune care frame este confirmat */


/* nici unul dintre cmpuri nu este utilizat */

Fig. 3-12. Un protocol cu confirmare pozitiv i retransmitere.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

189

Dup transmiterea unui cadru, emitorul declaneaz contorul de timp. Dac acesta era deja
pornit, atunci va fi resetat pentru un nou interval complet. Intervalul de timp trebuie s fie ales astfel, nct s permit sosirea cadrului la receptor, prelucrarea sa de ctre receptor, chiar i n cazul cel
mai defavorabil, i propagarea cadrului de confirmare napoi la emitor. Numai atunci cnd a expirat acest interval de timp se poate spune cu siguran c s-a pierdut fie cadrul transmis, fie confirmarea sa i se poate trimite un duplicat. Dac intervalul de timp este prea mic, emitorul va transmite
cadre care nu sunt necesare. Aceste cadre nu influeneaz corectitudinea protocolului, dar i afecteaz performanele.
Dup transmiterea unui cadru i pornirea contorului de timp, emitorul ateapt s se ntmple
ceva interesant. Exist doar trei posibiliti: un cadru de confirmare ajunge intact, sosete un cadru
de confirmare eronat sau expir timpul. Dac sosete o confirmare valid, atunci emitorul preia
urmtorul pachet de la nivelul reea i l pune n tampon, scriind peste pachetul anterior. De asemenea avanseaz numrul de secven. Dac sosete un cadru modificat sau nu sosete nici un cadru,
nu se modific nici tamponul i nici numrul de secven, aa c poate fi transmis un duplicat.
Atunci cnd la receptor sosete un cadru corect, este verificat numrul de secven, pentru a vedea dac nu cumva este un duplicat. Dac nu, este acceptat, transmis nivelului reea i este generat
o confirmare. Cadrele duplicate i cele modificate nu sunt trimise ctre nivelul reea.

3.4 PROTOCOALE CU FEREASTR GLISANT


n protocoalele anterioare, cadrele cu date erau transmise ntr-o singur direcie. n cele mai
multe situaii practice, este necesar s se transmit date n ambele direcii. O modalitate de a realiza
transmisia de date full-duplex este de a avea dou canale de comunicaie separate, fiecare dintre ele
fiind utilizat pentru traficul de date simplex (n direcii diferite). Dac se face aceasta, vom avea dou
circuite fizice separate, fiecare cu un canal "direct" (eng.: forward) pentru date i un canal "invers"
(eng.: reverse) pentru confirmri. n ambele cazuri lrgimea de band a canalului invers este irosit
aproape n totalitate. Ca efect, utilizatorul pltete pentru dou circuite, dar utilizeaz doar capacitatea unuia.
O idee mai bun este s se utilizeze acelai circuit pentru date n ambele direcii. n definitiv, la
protocoalele 2 i 3 a fost deja utilizat transmiterea cadrelor n ambele sensuri i canalul invers are
aceeai capacitate ca i canalul direct. n acest model, cadrele cu date de la A la B sunt amestecate cu
cadrele de confirmare de la A la B. Uitndu-se la cmpul kind din antetul cadrului ce a sosit, receptorul poate spune dac este vorba de un cadru de date sau de confirmare.
Cu toate c ntreptrunderea cadrelor de date i control pe acelai circuit constituie o mbuntire fa de cazul utilizrii a dou circuite fizice separate, mai este posibil nc o mbuntire.
Atunci cnd sosete un cadru cu date, n locul emiterii imediate a unui cadru de control separat, receptorul st i ateapt pn cnd nivelul reea i d urmtorul pachet. Confirmarea este ataat cadrului cu date de ieire (utiliznd cmpul ack din antetul cadrului). De fapt, confirmarea este transportat pe gratis de ctre urmtorul cadru cu date de ieire. Tehnica ntrzierii confirmrii, astfel
nct s poat fi agat de urmtorul cadru de date, este cunoscut ca ataare (eng.: piggybacking).
Principalul avantaj al utilizrii tehnicii de ataare n comparaie cu utilizarea cadrelor de confirmare distincte este o mai bun utilizare a lrgimii de band disponibile. Cmpul ack din antetul ca-

190

NIVELUL LEGTUR DE DATE

CAP. 3

drului ocup doar civa bii, n timp ce un cadru separat va necesita un antet, confirmarea i o sum
de control. n plus, mai puine cadre transmise nseamn mai puine ntreruperi datorate "sosirii cadrelor" i probabil mai puine zone tampon n receptor, n funcie de modul n care sunt organizate
programele receptorului. n urmtorul protocol ce va fi examinat, cmpul de ataare ocup doar un
bit n antetul cadrului. Arareori ocup mai mult de civa bii.
Totui, tehnica de ataare introduce o complicaie care nu era prezent n cazul confirmrilor separate. Ct timp trebuie s atepte nivelul legtur de date pachetul la care s ataeze confirmarea?
Dac nivelul legtur de date ateapt mai mult timp dect perioada de timeout a emitorului, cadrul va fi retransmis, anulnd complet rolul confirmrilor. Dac nivelul legtur de date ar fi un oracol i ar putea prezice viitorul, ar putea ti cnd va sosi urmtorul pachet de la nivelul reea i ar putea decide dac s l atepte sau s trimit imediat o confirmare separat, n funcie de ct de lung
urmeaz s fie ateptarea. Desigur, nivelul legtur de date nu poate prezice viitorul, aa c trebuie
s recurgem la cteva scheme ad-hoc, cum ar fi ateptarea pentru un numr fixat de milisecunde.
Dac un nou pachet sosete repede, confirmarea este adugat n el; altfel, dac pn la sfritul
acestei perioade de timp nu a sosit un nou pachet, nivelul legtur de date trimite un cadru de confirmare separat.
Urmtoarele trei protocoale sunt protocoale bidirecionale care aparin unei clase de protocoale numite protocoale cu fereastr glisant (eng.: sliding window). Cele trei difer ntre ele n termeni de eficien, complexitate i necesar de tampoane, aa cum vom vedea mai trziu. n cadrul
acestora, ca n toate protocoalele cu fereastr glisant, fiecare cadru expediat conine un numr de
secven cuprins ntre 0 i o valoare maxim. Maximul este de obicei 2n -1, ca numrul de secven
s se ncadreze exact ntr-un cmp de n bii. Protocoalele cu fereastr glisant pas-cu-pas utilizeaz
n=1, restricionnd numerele de secven la 0 i 1, dar versiuni mai sofisticate pot utiliza o valoare
arbitrar a lui n.
Esena protocoalelor cu fereastr glisant este aceea c, la orice moment de timp, emitorul
menine o mulime de numere de secven care corespund cadrelor pe care are permisiunea s le
trimit. Se spune c aceste cadre aparin ferestrei de transmisie (eng.: sending window). Similar, receptorul menine de asemenea o fereastr de recepie (eng.: receiving window), ce corespunde mulimii de cadre care pot fi acceptate. Fereastra emitorului i fereastra receptorului nu trebuie s aib
aceleai limite minime i maxime i nici mcar aceeai dimensiune. n unele protocoale ele au dimensiune fix, dar n altele ele pot crete sau scdea pe msur ce cadrele sunt emise sau recepionate.
Chiar dac aceste protocoale dau nivelului legtur de date mai mult independen n ceea ce
privete ordinea n care poate primi sau recepiona cadre, nu am renunat la cerina ca protocolul
s livreze pachetele la nivelul reea destinaie n aceeai ordine n care acestea sunt trimise ctre
nivelul legtur de date de pe maina emitoare. Nu am modificat nici condiia impus canalului
fizic de comunicaie, care trebuie s se comporte "ca un fir", adic trebuie s trimit toate cadrele n
ordinea emiterii.
Numerele de secven din cadrul ferestrei emitorului reprezint cadre transmise sau cadre
ce pot fi transmise, dar nc neconfirmate. De fiecare dat cnd de la nivelul reea sosete un nou
pachet, acestuia i este atribuit urmtorul numr de secven, iar marginea superioar a ferestrei
este avansat cu unu. Atunci cnd sosete o confirmare, crete cu unu limita inferioar a ferestrei.
n acest mod, fereastra menine continuu o list de cadre neconfirmate. Un exemplu este prezentat n fig. 3-13.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

191

Fig. 3-13. O fereastr glisant de dimensiune 1, cu numr de secven de 3 bii.


(a) Iniial. (b) Dup ce a fost transmis primul cadru. (c) Dup ce a fost recepionat primul cadru.
(d) Dup ce a fost recepionat prima confirmare.

Deoarece cadrele din fereastra curent a emitorului pot fi pierdute sau modificate pe traseu,
emitorul trebuie s pstreze toate aceste cadre n memoria sa pentru o posibil retransmisie. Astfel, dac dimensiunea maxim a ferestrei este n, emitorul are nevoie de n tampoane pentru a pstra cadrele neconfirmate. Dac fereastra crete la dimensiunea maxim, nivelul legtur de date al
emitorului trebuie s foreze nchiderea nivelului reea pn cnd se elibereaz un tampon.
Fereastra nivelului legtur de date receptor corespunde cadrelor pe care acesta le poate accepta. Orice cadru din afara ferestrei este eliminat fr comentarii. Atunci cnd este recepionat un cadru al crui numr de secven este egal cu marginea inferioar a ferestrei, acesta este trimis nivelului reea, este generat o confirmare i fereastra se deplaseaz cu o unitate. Spre deosebire de fereastra emitorului, fereastra receptorului rmne ntotdeauna la dimensiunea iniial. De notat c
o fereastr de dimensiune 1 nseamn c nivelul legtur de date accept numai cadre ordonate, dar
pentru ferestre mari afirmaia nu mai este valabil. Nivelul reea este, dimpotriv, alimentat ntotdeauna cu date n ordine corect, indiferent de dimensiunea ferestrei nivelului legtur de date.
Fig. 3-13 prezint un exemplu cu o fereastr de dimensiune maxim 1. Iniial, nu sunt emise cadre, aa c marginile inferioar i superioar ale ferestrei emitorului sunt egale, dar o dat cu trecerea timpului, situaia evolueaz ca n figur.

3.4.1

Un protocol cu fereastr glisant de un bit

nainte de a analiza cazul general, s examinm mai nti un protocol cu fereastr glisant avnd
dimensiunea maxim a ferestrei 1. Un astfel de protocol utilizeaz metoda stop-and-wait, deoarece
emitorul transmite un cadru i ateapt confirmarea sa naintea transmiterii urmtorului cadru.
Fig. 3-14 prezint un astfel de protocol. Ca i alte protocoale, acesta ncepe prin definirea unor
variabile. Next_frame_to_send arat ce cadru ncearc s transmit emitorul. Similar, frame_ expected arat ce cadru este ateptat de receptor. n ambele cazuri singurele posibiliti sunt 0 i 1.

192

NIVELUL LEGTUR DE DATE

CAP. 3

/* Protocolul 4 (fereastr glisant) este bidirecional. */


#define MAX_SEQ 1
/* pentru protocolul 4 trebuie s fie 1 */
typedef enum {frame_arrival, cksum_err, timeout} event_type;
#include "protocol.h"
void protocol4(void)
{
seq_nr next_frame_to_send;
seq_nr frame_expected;
frame r, s;
packet buffer;
event_type event;
next_frame_to_send = 0;
frame_expected = 0;
from_network_layer(&buffer);
s.info = buffer;
s.seq = next_frame_to_send;
s.ack = 1 - frame_expected;
to_physical_layer(&s);
start_timer(s.seq);
while (true) {
wait_for_event(&event);
if (event == frame_arrival) {
from_physical_layer(&r);
if (r.seq == frame_expected) {
to_network_layer(&r.info);
inc(frame_expected);
}
if (r.ack == next_frame_to_send)
stop_timer(r.ack);
from_network_layer(&buffer);
inc(next_frame_to_send);
}
}
s.info = buffer;
s.seq = next_frame_to_send;
s.ack = 1 - frame_expected;
to_physical_layer(&s);
start_timer(s.seq);
}
}

/* doar 0 sau 1
/* doar 0 sau 1
/* variabile temporare
/* pachetul curent, care este transmis

*/
*/
*/
*/

/* urmtorul cadru pe fluxul de ieire


/* numrul de secven al cadrului ateptat
/* preia un pachet de la nivelul reea
/* pregtete trimiterea cadrului iniial
/* insereaz n cadru numrul de secven
/* confirmare ataat
/* transmite cadrul
/* pornete ceasul

*/
*/
*/
*/
*/
*/
*/
*/

/* frame_arrival, cksum_err sau timeout


/* un cadru a ajuns nedeformat
/* preia cadrul
/* trateaz fluxul de cadre sosite
/* pred pachetul nivelului reea
/* inverseaz numrul de secven ateptat

*/
*/
*/
*/
*/
*/

{ /* trateaz fluxul de cadre de ieire


/* oprete ceasul
/* preia un nou pachet de la nivelul reea
/*inverseaz numrul de secven al emitorului

*/
*/
*/
*/

/* construiete cadrul care iese


/* insereaz un numr de secven
/* numrul de secven al ultimului cadru primit
/* transmite un cadru
/* pornete ceasul

*/
*/
*/
*/
*/

Fig. 3-14.Un protocol cu fereastr glisant de 1 bit.

n mod normal, unul dintre cele dou niveluri legtur de date pornete primul trimind primul
cadru. Cu alte cuvinte, numai unul din programele nivelului legtur de date va conine apelurile
procedurilor to_physical_layer i start_timer n afara buclei principale. n eventualitatea c ambele
niveluri legtur de date pornesc simultan, apare o situaie special, care va fi discutat mai trziu.
Maina care pornete prima preia primul pachet de la nivelul reea propriu, construiete din el un
cadru i l trimite. Cnd acest cadru (sau oricare altul) sosete, nivelul legtur de date receptor verific dac nu cumva este un duplicat, exact ca n protocolul 3. Dac respectivul cadru este cel ateptat, atunci este trimis nivelului reea i fereastra receptorului este deplasat.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

193

Cmpul de confirmare conine numrul ultimului cadru recepionat fr eroare. Dac acest numr corespunde cu numrul de secven al cadrului pe care emitorul ncearc s-l transmit, emitorul tie c a terminat cu cadrul memorat n tampon i poate prelua urmtorul pachet de la nivelul su reea. Dac numrul de secven nu corespunde, el trebuie s continue s trimit acelai cadru. De fiecare dat cnd este recepionat un cadru, un alt cadru este trimis de asemenea napoi.
S examinm acum ct de fiabil este protocolul 4 la condiiile limit. S presupunem c A ncearc s trimit cadrul 0 lui B i B ncearc s trimit cadrul su 0 lui A. S presupunem c A trimite un
cadru lui B, dar timpul de expirare al lui A este puin prea scurt. n consecin, datorit expirrii repetate a timpului, A va trimite o serie de cadre identice, toate cu seq=0 i ack=1.
Atunci cnd la B sosete primul cadru corect, el va fi acceptat i frame_expected va fi setat la 1.
Toate cadrele urmtoare vor fi respinse, deoarece B ateapt cadre cu numrul de secven 1, nu 0.
Mai mult, deoarece toate duplicatele au ack=1 i B este nc n ateptarea confirmrii lui 0, B nu va
prelua un nou pachet de la nivelul su reea.
Dup sosirea fiecrui duplicat respins, B trimite lui A un cadru coninnd seq=0 i ack=0. n cele
din urm, unul dintre acestea sosete corect la A, fcndu-l pe A s nceap s trimit urmtorul pachet. Nici o combinaie de cadre pierdute sau de intervale de ceas reduse nu poate face ca protocolul s
furnizeze pachete duplicate ctre vreunul dintre nivelurile reea, s sar un pachet sau s se blocheze.

Fig. 3-15. Dou scenarii pentru protocolul 4. (a) Cazul normal. (b) Cazul special. Notaia este (seq,
ack, packet number). Un asterisc arat c nivelul reea accept un pachet.

Totui, dac ambele pri trimit simultan un pachet iniial, atunci apare o situaie special.
Aceast dificultate de sincronizare este ilustrat de fig. 3-15. n partea (a) este prezentat funcionarea normal a protocolului. n (b) este ilustrat situaia special. Dac B ateapt primul cadru de la
A nainte de a-l trimite pe al su, secvena de aciuni este cea artat n (a) i fiecare cadru este acceptat. Totui, dac A i B iniiaz comunicaia simultan, primele lor cadre se ncrucieaz i nivelurile legtur de date ajung n situaia (b). n (a) fiecare sosire de cadru aduce un nou pachet pentru
nivelul reea; nu exist duplicate. n (b) jumtate din cadre conin duplicate, chiar dac nu exist
erori de transmisie. Situaii similare pot s apar ca rezultat al expirrii premature a timpului, chiar
dac una dintre pri ncepe prima. De fapt, dac intervin mai multe expirri premature, atunci cadrele pot fi trimise de trei sau mai multe ori.

194

3.4.2

NIVELUL LEGTUR DE DATE

CAP. 3

Un protocol de revenire cu n pai (Go Back n)

Pn acum am fcut presupunerea tacit c timpul de transmisie necesar pentru ca un cadru s


ajung la receptor plus timpul de transmisie a confirmrii este neglijabil. Uneori aceast presupunere
este n mod cert fals. n aceste situaii timpul mare de transfer poate avea implicaii importante pentru eficiena utilizrii lrgimii de band. Ca exemplu, s considerm un canal de satelit de 50 Kbps cu
timpul de ntrziere datorit propagrii dus-ntors de 500 milisecunde. S ne imaginm c ncercm s
utilizm protocolul 4 pentru a trimite cadre de 1000 de bii prin satelit. La t = 0 emitorul ncepe s
trimit primul cadru. Considernd cele mai optimiste condiii (fr ateptare la receptor i un cadru
de confirmare scurt), cadrul nu poate ajunge n totalitate la receptor nainte de t = 270 milisecunde,
iar confirmarea nu poate ajunge napoi la emitor nainte de t = 520 milisecunde. Aceasta nseamn
c emitorul a fost blocat pentru 500/520 sau 96% din timp. Cu alte cuvinte, a fost utilizat doar 4%
din lrgimea de band. Evident, combinaia dintre un timp de tranziie lung, lrgime de band mare i
un cadru de lungime mic este dezastruoas din punct de vedere al eficienei.
Problema descris anterior poate fi privit ca o consecin a regulii care cere ca un emitor s
atepte o confirmare naintea trimiterii unui alt cadru. Dac relaxm aceast restricie, poate fi atins o eficien mult mai ridicat. Practic, soluia const n a permite emitorului s transmit pn la
w cadre, n loc de unul singur. Cu o alegere potrivit a lui w emitorul va putea s transmit continuu cadre pentru un timp egal cu timpul de tranzit, fr a umple fereastra. n exemplul anterior w va
fi minim 26. Emitorul ncepe emiterea cadrului 0 ca mai nainte. n momentul n care se termin
trimiterea a 26 de cadre, la t = 520, va sosi i confirmarea pentru cadrul 0. Apoi, confirmrile vor
sosi la fiecare 20 milisecunde, aa nct emitorul primete ntotdeauna permisiunea s continue
exact atunci cnd dorete. n permanen exist 25 sau 26 cadre neconfirmate. Cu alte cuvinte dimensiunea maxim a ferestrei emitorului este de 26.
Nevoia pentru o fereastr mare la emitor apare atunci cnd produsul lrgime de band x timpul de propagare dus-ntors este mare. Dac lrgimea de band este mare, chiar i pentru ntrzieri
moderate, emitorul i va termina repede fereastra. Daca ntrzierea este mare (de exemplu, canal
de satelit), emitorul i va termina fereastra chiar i pentru lrgimi de band moderate. Produsul
acestor doi factori spune de fapt care este capacitatea canalului, iar pentru a opera la eficien maxim, emitorul trebuie sa fie capabil sa o umple fr s se opreasc.
Aceast tehnic este cunoscut ca band de asamblare (eng.: pipelining). Considernd capacitatea canalului de b bii pe secund, dimensiunea cadrului de l bii i timpul de propagare dus-ntors R
secunde, timpul necesar pentru a transmite un singur cadru este l/b secunde. Dup ce a fost transmis
ultimul bit al unui cadru de date, apare o ntrziere de R/2 nainte ca biii s ajung la receptor i o
alt ntrziere de cel puin R/2 pentru sosirea confirmrii, rezultnd o ntrziere total de R. n cazul
protocoalelor pas-cu-pas, linia este ocupat pentru un timp egal cu l/b i n ateptare pentru un timp
egal cu R, rezultnd:
utilizarea liniei = l/(l+bR).
Dac l < bR, eficiena va fi mai mic de 50%. Deoarece pn la ntoarcerea confirmrii exist ntotdeauna o ntrziere nenul, n principiu poate fi folosit banda de asamblare, pentru a ine linia
ocupat tot acest interval, dar dac intervalul este mic, complexitatea suplimentar face efortul inutil.
Utilizarea benzii de asamblare n cazul unui canal de comunicaie nesigur ridic probleme serioase. Mai nti s vedem ce se ntmpl dac un cadru din mijlocul unui ir lung este modificat
sau pierdut. Multe cadre succesive vor ajunge la receptor nainte ca emitorul s observe c ceva

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

195

este greit. Atunci cnd un cadru modificat ajunge la receptor este evident c el trebuie eliminat,
dar ce trebuie s fac receptorul cu toate cadrele corecte care urmeaz? S reamintim c nivelul
legtur de date receptor este obligat s livreze pachete ctre nivelul reea n secven. n fig. 3-16,
se prezint efectele utilizrii benzii de asamblare asupra revenirii n caz de eroare. Acum le vom
examina n detaliu.

Fig. 3-16. Folosirea benzii de asamblare i revenirea din eroare. Efectul unei erori cnd (a) dimensiunea ferestrei receptoare este 1 i (b) dimensiunea ferestrei receptorului este mare.

Exist dou moduri de baz de tratare a erorilor n prezena benzii de asamblare. Un mod, numit revenire cu n pai (eng.: go back n), este ca receptorul s elimine pur i simplu cadrele care urmeaz, netrimind confirmri pentru cadrele eliminate. Aceast strategie corespunde unei ferestre
de recepie de dimensiune 1. Cu alte cuvinte, nivelul legtur de date refuz s accepte orice cadru
exceptndu-l pe urmtorul care trebuie livrat ctre nivelul reea. Dac fereastra emitorului se umple naintea expirrii contorului de timp, banda de asamblare va ncepe s se goleasc. n cele din
urm, timpul emitorului va expira i se vor retransmite toate cadrele neconfirmate, n ordine, ncepnd cu cadrul pierdut sau modificat. Dac rata erorilor este mare, aceast abordare poate risipi o
mare parte din lrgimea de band.
n fig. 3-16 (a) este prezentat protocolul de revenire cu n pai pentru cazul n care fereastra receptorului are dimensiune unu. Cadrele 0 i 1 sunt primite i confirmate corect. Cadrul 2, totui, este
alterat sau pierdut. Emitorul, care nu tie de aceast problem, continu s trimit cadre pn

196

NIVELUL LEGTUR DE DATE

CAP. 3

cnd timpul pentru cadrul 2 expir. Apoi se ntoarce la cadrul 2 i o ia de la nceput cu el, trimind
din nou cadrele 2, 3, 4 etc.
Cealalt strategie general de tratare a erorilor atunci cnd este folosit banda de asamblare se
numete repetare selectiv (eng.: selective repeat). Cnd aceasta este utilizat, un cadru incorect este
respins, dar toate cadrele corecte care l urmeaz sunt memorate. Cnd contorul de timp al emitorului expir, cel mai vechi cadru neconfirmat este retransmis. Dac acest cadru ajunge corect, receptorul poate transmite ctre nivelul reea, n ordine, cadrele pe care le-a memorat. Repetarea selectiv este deseori combinat cu utilizarea confirmrilor negative (NAK), care sunt trimise atunci cnd
se detecteaz o eroare, de exemplu cnd se primete un cadru cu suma de control incorect sau cu
numr de secven necorespunztor. Confirmrile negative simuleaz retransmisia nainte de expirarea contorului de timp corespunztor, mbuntind astfel performana.
n fig. 3-16 (b), cadrele 0 i 1 sunt recepionate corect, dar confirmarea pentru cadrul 2 este pierdut. Cnd cadrul 3 sosete la receptor, nivelul legtur de date observ c a pierdut un cadru, i
trimite o confirmare negativ pentru 2, memornd ns cadrul primit. Cnd cadrele 4, 5 ajung la receptor, sunt la rndul lor memorate de nivelul legtur de date, n loc de a fi transmise nivelului reea. n cele din urm, confirmarea negativ pentru 2 ajunge napoi la emitor, care va retransmite
cadrul 2. Cnd acesta ajunge la receptor, nivelul legtur de date are cadrele 2, 3, 4, 5, i le poate
pasa nivelului reea n ordinea corect. De asemenea, poate confirma toate cadrele pn la 5 inclusiv, aa cum se prezint n figur. Dac NAK-ul se pierde, n cele din urm contorul de timp al emitorului va expira i acesta va iniia retransmisia, dar n acest fel se pierde mai mult timp. n concluzie, utilizarea confirmrilor negative accelereaz retransmiterea unui anumit cadru.
Strategia de repetare selectiv corespunde unei ferestre a receptorului mai mare ca 1. Orice cadru din interiorul ferestrei poate fi acceptat i memorat pn cnd toate cele precedente vor fi trimise nivelului reea. Dac fereastra este mare, aceast abordare poate necesita un spaiu mare de memorie pentru nivelul legtur de date.
Aceste dou alternative reprezint compromisuri ntre lrgimea de band i spaiul ocupat de
tampoane la nivelul legtur de date. n funcie de care resurs este mai deficitar, poate fi utilizat
una sau cealalt. Fig. 3-17 prezint un protocol de tip band de asamblare n care nivelul legtur de
date receptor accept cadre ordonate; cadrele ce urmeaz dup o eroare sunt eliminate. n acest
protocol, pentru prima dat, am renunat la presupunerea c nivelul reea are o rezerv infinit de
pachete care trebuie trimise. Atunci cnd nivelul reea are un pachet pe care dorete s-l trimit,
poate produce un eveniment network_layer_ready. Totui, pentru a impune regula de control al fluxului, conform creia nu pot exista dect cel mult MAX_SEQ cadre neconfirmate, nivelul legtur
de date trebuie s poat s interzic nivelului reea s l perturbe cu mai multe. Aceast funcie este
realizat de funciile de bibliotec enable_network_layer i disable_network_layer.
Observai c n orice moment pot exista cel mult MAX_SEQ cadre i nu MAX_SEQ+1 cadre neconfirmate, chiar dac exist MAX_SEQ+1 numere de secven: 0, 1, 2, ...MAX_SEQ. Pentru a vedea de ce este necesar aceast restricie, s considerm urmtorul scenariu cu MAX_SEQ = 7.
1.
2.
3.
4.

Emitorul trimite cadrele de la 0 la 7.


O confirmare ataat pentru cadrul 7 ajunge la emitor.
Emitorul trimite alte opt cadre, din nou cu numerele de secven de la 0 la 7.
Acum ajunge o alt confirmare ataat pentru cadrul 7.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

197

/* Protocolul 5 (revenire cu n pai) permite mai multe cadre n ateptare. Emitorul poate
trimite pn la MAX_SEQ cadre fr a atepta confirmare. n plus, spre deosebire de protocoalele precedente, acesta nu presupune c nivelul reea ar avea tot timpul un nou pachet.
n schimb, nivelul reea provoac un eveniment network_layer_ready atunci cnd are de trimis un pachet */
#define MAX_SEQ 7
/* trebuie s fie 2^n - 1 */
typedef enum {frame_arrival, cksum_err, timeout, network_layer_ready} event_type;
#include protocol.h
static boolean between(seq_nr a, seq_nr b, seq_nr c)
{
/* ntoarce adevrat dac a <= b < c n mod circular i fals n caz contrar */
if (((a <= b) && (b < c)) || ((c < a) && (a <= b)) || ((b < c) && (c < a)))
return(true);
else
return(false);
}
static void send_data(seq_nr frame_nr, seq_nr frame_expected, packet buffer[])
{
/* construiete i trimite un cadru de date */
frame s;
/* variabil temporar */
s.info = buffer[frame_nr];
/* insereaz pachetul n cadru
s.seq = frame_nr;
/* insereaz numrul de secven n cadru
s.ack = (frame_expected + MAX_SEQ) % (MAX_SEQ + 1);
/* ataeaz confirmarea
to_physical_layer(&s);
/* transmite cadrul
start_timer(frame_nr);
/* pornete ceasul
}
void protocol5(void)
{
seq_nr next_frame_to_send;
/* MAX_SEQ > 1; utilizat pentru fluxul de ieire
seq_nr ack_expected;
/* cel mai vechi cadru nc neconfirmat
seq_nr frame_expected;
/* urmtorul cadru ateptat, din fluxul de intrare
frame r;
/* variabil auxiliar
packet buffer[MAX_SEQ+1];
/* zone tampon pentru fluxul de ieire
seq_nr nbuffered;
/* numr de zone tampon de ieire utilizate n prezent
seq_nr i;
/* utilizat ca index n vectorul de zone tampon
event_type event;
enable_network_layer();
/* permite evenimente network_layer_ready
ack_expected = 0;
/* urmtoarea confirmare ateptat
next_frame_to_send = 0;
/* urmtorul cadru transmis
frame_expected = 0;
/* numrul cadrului ateptat s soseasc
nbuffered = 0;
/* iniial n zonele tampon nu exist nici un pachet
while(true) {
wait_for_event(&event);
/* patru posibiliti: vezi event_type, mai sus
switch(event) {
case network_layer_ready:
/* nivelul reea are un pachet de trimis
/* accept, salveaz i transmite un nou cadru */
from_network_layer(&buffer[next_frame_to_send]);
/* preia noul pachet
nbuffered = nbuffered + 1;
/* extinde fereastra emitorului
send_data(next_frame_to_send, frame_expected, buffer);
/* transmite cadrul
inc(next_frame_to_send);
/* crete limita superioar a ferestrei emitorului
break;

*/
*/
*/
*/
*/

*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/
*/

198

NIVELUL LEGTUR DE DATE


case frame_arrival:
from_physical_layer(&r);

CAP. 3

/* a sosit un cadru de date sau de control */


/* preia de la nivelul fizic cadrul sosit */

if (r.seq == frame_expected) {

/* cadrele sunt acceptate doar n ordine */


to_network_layer(&r.info);
/* pred pachetul nivelului reea */
inc(frame_expected);/* crete limita inferioar a ferestrei emitorului*/
}
/* Confirmarea lui n implic n-1, n-2 etc. Verific acest lucru. */
while (between(ack_expected, r.ack, next_frame_to_send)) {
/* trateaz confirmarea ataat */
nbuffered = nbuffered - 1;
/* un cadru mai puin n zonele tampon */
stop_timer(ack_expected);
/* cadrul a sosit intact; oprete ceasul */
inc(ack_expected);
/* contract fereastra emitorului */
}
break;
case cksum_err: break;
/* cadrele eronate sunt pur i simplu ignorate */
case timeout:
/* necaz; retransmite toate cadrele neconfirmate */
next_frame_to_send = ack_expected;
/* ncepe retransmiterea de aici */
for (i=1; i <= nbuffered; i++) {
send_data(next_frame_to_send, frame_expected, buffer);/* retransmite 1 cadru */
inc(next_frame_to_send);
/* pregtete transmiterea urmtorului */
}
}
if (nbuffered < MAX_SEQ)
enable_network_layer();
else
disable_network_layer();
}
}

Fig. 3-17. Un protocol cu fereastr glisant utiliznd revenirea cu n pai.

ntrebarea este: toate cele opt cadre aparinnd celui de al doilea lot au ajuns corect ori s-au
pierdut n totalitate (considernd respingerile care urmeaz unei erori ca pierderi)? n ambele cazuri
receptorul va trimite cadrul 7 ca o confirmare, deci emitorul nu are posibilitatea s tie. Din acest
motiv, numrul maxim de cadre neconfirmate trebuie limitat la MAX_SEQ.
Chiar dac protocolul 5 nu pstreaz cadrele sosite dup o eroare, problema memorrii nu dispare. Deoarece un emitor poate avea de retransmis la un moment de timp viitor toate cadrele neconfirmate, el trebuie s pstreze toate cadrele transmise pn cnd va fi sigur c au fost acceptate
de receptor. Cnd sosete o confirmare pentru cadrul n, cadrele n-1, n-2 .a.m.d. sunt confirmate
automat. Aceast proprietate este foarte important atunci cnd unele dintre cadrele purttoare de
confirmri au fost pierdute sau modificate. De fiecare dat, cnd sosete o confirmare, nivelul legtur de date verific s vad dac unele tampoane pot fi eliberate. Dac tampoanele pot fi eliberate
(adic exist spaiu disponibil n fereastr), atunci nivelul reea anterior blocat poate primi permisiunea s produc alte evenimente network_layer_ready.
n cazul acestui protocol, presupunem c exist ntotdeauna trafic n direcia invers de care s se
poat ataa confirmrile. n caz contrar, confirmrile nu pot fi trimise. Protocolul 4 nu are nevoie de
aceast presupunere deoarece acesta trimite napoi un cadru de fiecare dat cnd recepioneaz
unul. n protocolul urmtor, vom rezolva aceast problem ntr-o manier elegant.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

199

Fig. 3-18. Simularea prin program a contoarelor de timp multiple.

Deoarece protocolul 5 are mai multe cadre neconfirmate, este evident c necesit mai multe
contoare de timp, cte unul pentru fiecare cadru neconfirmat. Timpul fiecrui cadru expir independent de toate celelalte. Toate aceste contoare pot fi simulate uor prin program, utiliznd un
singur ceas fizic care produce ntreruperi periodice. Contoarele de timp active formeaz o list nlnuit, n fiecare nod existnd informaii despre cte semnale de ceas mai sunt pn la expirarea timpului, cadrul care este cronometrat i un pointer ctre urmtorul nod.
Ca o ilustrare a modului n care pot fi implementate contoarele de timp, s considerm exemplul
din fig. 3-18(a). S presupunem c impulsurile de ceas sunt la fiecare 100 ms. Iniial timpul real este
10:00:00.0; exist trei timpi de expirare, la 10:00:00.5, 10:00:01.3 i 10:00:01.9. La fiecare impuls de ceas
produs de echipament, timpul real este actualizat i contorul de impulsuri de la captul listei este decrementat. Atunci cnd contorul de impulsuri de ceas devine zero, se produce o expirare de timp i
nodul este scos din list, ca n fig. 3-18 (b). Chiar dac aceast organizare cere ca lista s fie parcurs
cnd este apelat start_timer sau stop_ timer, nu va necesita multe operaii la fiecare impuls de ceas. n
protocolul 5, ambele rutine au un parametru indicnd pentru ce cadru se face contorizarea timpului.

3.4.3

Un protocol cu repetare selectiv

Protocolul 5 funcioneaz bine dac erorile sunt rare, dar dac linia este slab, se pierde mult din
lrgimea de band cu retransmiterea cadrelor. O alt strategie de tratare a erorilor este ca receptorul s accepte i s numeroteze cadrele care urmeaz dup un cadru deteriorat sau pierdut. Un astfel
de protocol nu elimin cadre doar pentru c un cadru anterior a fost deteriorat sau pierdut.
n acest protocol, att emitorul ct i receptorul menin o fereastr de numere de secven acceptabile. Dimensiunea ferestrei emitorului ncepe de la 0 i crete pn la un maxim predefinit
MAX_SEQ. Spre deosebire de aceasta, fereastra receptorului are dimensiunea fix MAX_SEQ. Receptorul are un tampon rezervat pentru fiecare numr de secven din cadrul ferestrei. Fiecare tampon are un bit asociat (arrived - sosit) care ne spune dac tamponul este plin sau gol. De fiecare dat
cnd sosete un cadru, numrul su de secven este verificat de funcia between, pentru a vedea dac face parte din fereastr. Dac da, i dac nu a fost deja recepionat, este acceptat i memorat.
Aceast aciune are loc fr s se verifice dac conine sau nu urmtorul pachet ateptat de nivelul
reea. Desigur cadrul trebuie pstrat la nivelul legtur de date i nu trebuie trimis ctre nivelul reea
dect atunci cnd toate cadrele cu numere mai mici au fost deja livrate nivelului reea n ordinea
corect. Un protocol utiliznd acest algoritm este prezentat n fig. 3 -19.

200

NIVELUL LEGTUR DE DATE

CAP. 3

/* Protocolul 6 (repetare selectiv) accept cadrele n afara secvenei, dar pred pachetele n ordine nivelului reea. Fiecrui cadru neconfirmat i este asociat un ceas. La expirarea timpului este retransmis doar acest cadru i nu toate cele neconfirmate, ca n protocolul 5. */
#define MAX_SEQ 7
/* trebuie s fie 2^n - 1 */
#define NR_BUFS ((MAX_SEQ + 1)/2)
typedef enum {frame_arrival, cksum_err, timeout, network_layer_ready, ack_timeout}
event_type;
#include "protocol.h"
boolean no_nak = true;
/* nc nu a fost trimis nici o confirmare negativ */
seq_nr oldest_frame = MAX_SEQ + 1;
static boolean between(seq_nr a, seq_nr b, seq_nr c)
{
/* La fel ca between din protocolul 5, dar mai scurt i mai neclar. */
return ((a <= b) && (b < c)) || ((c < a) && (a <= b)) || ((b < c) && (c < a));
}
static void send_frame(frame_kind fk, seq_nr frame_nr, seq_nr frame_expected, packet
buffer[])
{
/* construiete i trimite un cadru de date, de ack sau de nak */
frame s;
/* variabil temporar */
s.kind = fk;
/* kind == data, ack sau nak */
if (fk == data) s.info = buffer[frame_nr % NR_BUFS];
s.seq = frame_nr;
/* are sens doar pentru cadrele de date */
s.ack = (frame_expected + MAX_SEQ) % (MAX_SEQ + 1);
if (fk == nak) no_nak = false;
/* un nak per cadru, te rog */
to_physical_layer(&s);
/* transmite cadrul */
if (fk == data) start_timer(frame_nr % NR_BUFS);
stop_ack_timer();
/* nu este nevoie de un cadru de ack separat */
}
void protocol6(void)
{
seq_nr ack_expected;
/* limita inferioar a ferestrei emitorului */
seq_nr next_frame_to_send;
/* limita superioar a ferestrei emitorului + 1*/
seq_nr frame_expected;
/* limita inferioar a ferestrei receptorului */
seq_nr too_far;
/* limita superioar a ferestrei receptorului + 1*/
int i;
/* indicele zonei tampon */
frame r;
/* variabil temporar */
packet out_buf[NR_BUFS];
/* zone tampon pentru fluxul de ieire */
packet in_buf[NR_BUFS];
/* zone tampon pentru fluxul de intrare */
boolean arrived[NR_BUFS];
/* hart de bii de intrare */
seq_nr nbuffered;
/* cte zone tampon de ieire sunt folosite n prezent */
event_type event;
enable_network_layer();
/* iniializeaz */
ack_expected = 0;
/* urmtoarea confirmare ateptat n fluxul de intrare */
next_frame_to_send = 0;
/* numrul urmtorului cadru transmis */
frame_expected = 0;
too_far = NR_BUFS;
nbuffered = 0;
/* iniial zonele tampon nu conin nici un pachet */
for (i = 0; i < NR_BUFS; i++) arrived[i] = false;
while(true) {
wait_for_event();
/* cinci variante: vezi event_type, mai sus */

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

201

switch(event) {
case network_layer_ready:
/* accept, salveaz i trimite un nou cadru */
nbuffered = nbuffered + 1;
/* extinde fereastra */
from_network_layer(&out_buf[next_frame_to_send % NR_BUFS]); /* preia un nou pachet */
send_frame(data, next_frame_to_send, frame_expected, out_buf); /* trimite cadrul */
inc(next_frame_to_send);
/* avanseaz limita superioar a ferestrei */
break;
case frame_arrival:
/* a sosit un cadru de date sau de control */
from_physical_layer(&r);
/* preia cadrul sosit de la nivelul fizic */
if (r.kind == data) {
/* A sosit un cadru nedeteriorat */
if ((r.seq != frame_expected) && no_nak)
send_frame(nak, 0, frame_expected, out_buf);
else start_ack_timer();
if (between(frame_expected, r.seq, too_far) && (arrived[r.seq%NR_BUFS]==false)) {
/* Cadrele pot fi acceptate n orice ordine */
arrived[r.seq%NR_BUFS] = true;
/* marcheaz tamponul ca fiind plin */
in_buf[r.seq%NR_BUFS] = r.info;
/* introduce datele n tampon */
while (arrived[frame_expected % NR_BUFS]) {
/* Pred cadrele i avanseaz fereastra */
to_network_layer(&in_buf[frame_expected % NR_BUFS]);
no_nak = true;
arrived[frame_expected % NR_BUFS] = false;
inc(frame_expected);
/* avanseaz limita inferioar a ferestrei receptorului */
inc(too_far);
/* avanseaz limita superioar a ferestrei receptorului */
start_ack_timer();
/* pentru a stabili dac e necesar ack separat */
}
}
}
if ((r.kind==nak)&&between(ack_expected, (r.ack+1)%(MAX_SEQ+1),next_frame_to_send))
send_frame(data, (r.ack+1)%(MAX_SEQ+1), frame_expected, out_buf);
while (between(ack_expected, r.ack, next_frame_to_send)) {
nbuffered = nbuffered - 1;
/* trateaz ack ataat */
stop_timer(ack_expected % NR_BUFS);
/* cadrul a ajuns intact */
inc(ack_expected);
/* avanseaz marginea inferioar a ferestrei emitorului */
}
break;
case cksum_err:
if (no_nak) send_frame(nak, 0, frame_expected, out_buf);
/* cadru deteriorat */
break;
case timeout:
send_frame(data, oldest_frame, frame_expected, out_buf);
/* a expirat timpul */
break;
case ack_timeout:
send_frame(ack, 0, frame_expected, out_buf);
/* timpul asociat
confirmrii pozitive a expirat; trimite ack */
}
if (nbuffered ( NR_BUFS) enable_network_layer();
else disable_network_layer();
}
}

Fig. 3-19. Un protocol cu fereastr glisant utiliznd repetarea selectiv.

202

NIVELUL LEGTUR DE DATE

CAP. 3

Recepia nesecvenial introduce anumite probleme ce nu sunt prezente n protocoalele n care


cadrele sunt recepionate numai n ordine. Putem ilustra problemele foarte uor cu un exemplu. S
presupunem c avem un numr de secven pe trei bii i deci emitorul poate transmite pn la
apte cadre nainte s fie necesar s atepte o confirmare. Iniial ferestrele emitorului i receptorului arat ca n fig. 3-20(a). Emitorul trimite acum cadrele de la 0 la 6. Fereastra receptorului i
permite s accepte orice cadru cu numr de secven ntre 0 i 6 inclusiv. Toate cele apte cadre sosesc corect, deci receptorul le confirm avansndu-i fereastra pentru a permite recepia cadrelor 7,
0, 1, 2, 3, 4 sau 5, aa cum arat fig. 3-20 (b). Toate cele 7 tampoane sunt marcate ca fiind goale.
n acest punct se produce dezastrul, din cauza unui fulger care lovete linia telefonic, nlturnd
toate confirmrile. Emitorul ajunge n cele din urm la timeout i retransmite cadrul 0. Atunci
cnd acest cadru sosete la receptor, este fcut o verificare pentru a vedea dac se ncadreaz n
fereastra receptorului. Din pcate, n fig. 3-20(b) cadrul 0 este n interiorul noii ferestre i deci va fi
acceptat. Receptorul trimite o confirmare ataat pentru cadrul 6, deoarece au fost recepionate
cadrele de la 0 la 6.

Fig. 3-20. (a) Situaia iniial cu o fereastr de dimensiune 7. (b) Dup ce apte cadre au fost trimise
i recepionate, dar neconfirmate. (c) Situaia iniial cu o fereastr de dimensiune patru. (d) Dup
ce patru cadre au fost trimise i recepionate, dar neconfirmate.

Emitorul este fericit s afle c toate cadrele transmise au ajuns corect, deci i avanseaz fereastra i trimite apoi imediat cadrele 7, 0, 1, 2, 3, 4 i 5. Cadrul 7 va fi acceptat de receptor i pachetul
su va fi trimis direct nivelului reea. Imediat dup aceea, nivelul legtur de date receptor verific s
vad dac are un cadru 0 corect, descoper c l are i trimite pachetul coninut n el nivelului reea.
n consecin, nivelul reea primete un pachet incorect i protocolul eueaz.
Esena problemei este aceea c dup ce receptorul i avanseaz fereastra, noul interval de numere de secven corecte se suprapune peste cel vechi. Ca urmare, urmtoarea serie de cadre pot s
fie sau duplicate (dac toate confirmrile sunt pierdute) sau unele noi (dac toate confirmrile au
fost recepionate). Receptorul nu are nici o posibilitate de a distinge cele dou cazuri.
Pentru a iei din aceast dilem, trebuie s ne asigurm c atunci cnd receptorul i deplaseaz fereastra, nu exist nici o suprapunere peste cea anterioar. Pentru a asigura c nu exist suprapunere,
dimensiunea maxim a ferestrei trebuie s fie de cel mult jumtate din intervalul numerelor de secven, aa cum se face n fig. 3-20 (c) i fig. 3-20 (d). De exemplu, dac pentru numerele de secven sunt
utilizai 4 bii, acestea vor lua valori de la 0 la 15. n orice moment trebuie s existe numai opt cadre.
Astfel, dac receptorul tocmai a acceptat cadrele de la 0 la 7 i avanseaz fereastra pentru a permite
acceptarea cadrelor de la 8 la 15, poate spune cu certitudine dac urmtoarele cadre sunt retransmisii
(de la 0 la 7) sau sunt unele noi (de la 8 la 15). n general, dimensiunea ferestrei pentru protocolul 6 va
fi (MAX_SEQ+1)/2. Deci, pentru numere de secven pe 4 bii, dimensiunea ferestrei este 4.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

203

O ntrebare interesant este: cte tampoane trebuie s aib receptorul? n nici un caz el nu va
accepta cadre ale cror numere de secven sunt sub limita minim a ferestrei, sau cadre ale cror
numere de secven depesc limita maxim a acesteia. n consecin, numrul de tampoane necesare este egal cu dimensiunea ferestrei, nu cu intervalul de valori al numerelor de secven. n exemplul anterior, cu numere de secven pe 4 bii, sunt necesare 8 tampoane, numerotate de la 0 la 7.
Atunci cnd sosete cadrul i, acesta este pus n tamponul i mod 8. De notat c, dei i i
(i+8) mod 8 concureaz pentru acelai tampon, nu vor fi n aceeai fereastr simultan, deoarece
aceasta ar implica o dimensiune a ferestrei de cel puin 9.
Pentru acelai motiv, numrul de contoare de timp necesare este egal cu numrul de tampoane,
nu cu dimensiunea spaiului secvenelor. Efectiv, exist un contor de timp asociat fiecrui tampon.
Atunci cnd contorul expir, coninutul tamponului este retransmis.
n protocolul 5, s-a presupus n mod implicit c acel canal este puternic ncrcat. Cnd sosete un
cadru, nu se trimite imediat o confirmare. Confirmarea este ataat la urmtorul cadru de date de
ieire. Dac traficul invers este slab, confirmarea va fi reinut o perioad mare de timp. Dac traficul
este intens ntr-o direcie i inexistent n cealalt direcie, atunci sunt trimise numai MAX_SEQ cadre
i apoi protocolul se blocheaz, de aceea am presupus c exista ntotdeauna trafic n direcia invers.
Aceast problem este rezolvat n protocolul 6. Dup sosirea unei secvene de cadre cu date, este pornit un contor de timp auxiliar, prin start_ack_timer. Dac pn la expirarea acestui contor nu a
aprut trafic n sens invers, atunci este trimis un cadru de confirmare separat. O ntrerupere datorat
contorului auxiliar se numete eveniment ack_timeout. Cu acest artificiu, fluxul de trafic unidirecional este acum posibil, deoarece absena cadrelor de date n sens invers, pe care pot fi ataate confirmri, nu mai este un obstacol. Exist numai un contor auxiliar i dac start_ack_timer este apelat n
timpul funcionrii contorului, acesta este resetat la un interval complet de timp de confirmare.
Este esenial ca timpul de expirare asociat contorului auxiliar s fie mult mai scurt dect cel utilizat pentru cadrele de date de ieire. Aceast condiie este impus pentru a ne asigura c o confirmare pentru un cadru corect recepionat sosete nainte ca timpul emitorului s expire i acesta s
retransmit cadrul.
Protocolul 6 utilizeaz pentru tratarea erorilor o strategie mai eficient dect protocolul 5. De fiecare dat cnd receptorul are motiv s suspecteze c a aprut o eroare, trimite napoi la emitor
un cadru cu o confirmare negativ (NAK). Un asemenea cadru reprezint o cerere pentru retransmiterea cadrului specificat n NAK. Exist dou cazuri n care receptorul ar trebui s fie suspicios: a
sosit un cadru modificat sau a sosit un alt cadru dect cel ateptat (un posibil cadru pierdut). Pentru
a preveni producerea cererilor multiple de retransmisie a aceluiai cadru pierdut, receptorul va ine
minte dac un NAK a fost deja trimis pentru un anumit cadru. Variabila no_nak din protocolul 6 are
valoarea adevrat dac nici un NAK nu a fost trimis pentru frame_expected. Dac NAK a fost modificat sau pierdut, nu se ntmpl nimic, deoarece emitorul va ajunge, pn la urm, la timeout i va
retransmite cadrul lips. Dac un cadru greit sosete dup ce un NAK a fost transmis i pierdut,
no_nak va fi adevrat i va fi pornit contorul de timp auxiliar. La expirarea acestuia, va fi trimis un
ACK pentru resincronizarea emitorului cu starea curent a receptorului.
n unele situaii, timpul necesar pentru ca un cadru s se propage la destinaie, s fie prelucrat i
s se recepioneze confirmarea este (aproape) constant. n aceste condiii, emitorul i poate ajusta
contorul de timp s fie puin mai mare dect intervalul de timp normal ateptat ntre emiterea unui
cadru i recepionarea confirmrii sale. Totui, dac acest timp variaz puternic, emitorul trebuie
s aleag ntre fixarea intervalului la o valoare mic (riscnd retransmisii inutile) i fixarea la o valoare mare (rmnnd n ateptare timp ndelungat dup producerea unei erori).

204

NIVELUL LEGTUR DE DATE

CAP. 3

n ambele cazuri se irosete lrgime de band. Dac traficul n sens invers este sporadic, timpul
dinaintea confirmrii va avea valori neregulate, fiind scurt cnd exist trafic n sens invers i lung cnd
nu exist. Variaia timpului de prelucrare la receptor poate fi, de asemenea, o problem. n general,
atunci cnd deviaia standard a intervalului de confirmare este mic, n comparaie cu intervalul nsui, intervalul de timp poate fi strmt i NAK-urile nu sunt utile. Altfel, contorul de timp trebuie s
fie setat "larg" i NAK-urile pot accelera apreciabil retransmisia cadrelor eronate sau pierdute.
Strns legat de problema expirrii timpului i NAK-urilor este problema determinrii cadrului
care a cauzat expirarea timpului. n protocolul 5 acesta este ntotdeauna ack_expected, deoarece este
ntotdeauna cel mai vechi. n protocolul 6 nu este uor s se determine cel care a produs expirarea
timpului. S presupunem c au fost transmise cadrele de la 0 la 4, nsemnnd c lista cadrelor neconfirmate este 0, 1, 2, 3, 4, n ordinea de la cel mai vechi la cel mai nou. Acum s ne imaginm c expir
timpul pentru 0, este transmis 5 (un nou cadru), expir timpul pentru 1, expir timpul pentru 2 i
este transmis 6 (un alt cadru nou). n acest moment, lista cadrelor neconfirmate este 3, 4, 0, 5, 1, 2, 6,
de la cel mai vechi la cel mai nou. Dac tot traficul de rspuns (mai precis, cadrele cu confirmri)
este pierdut pentru un timp, expirarea timpului pentru cele apte cadre neconfirmate se va produce
n aceast ordine. Pentru a nu face ca exemplul s fie mai complicat dect este deja, nu am prezentat
administrarea contoarelor de timp. n schimb, am presupus c, la expirarea timpului, variabila
oldest_frame este setat astfel, nct s indice cadrul pentru care a trecut timpul.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

209

3.6 EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE


n urmtoarele seciuni vom examina cteva protocoale larg folosite pentru legtura de date.
Primul dintre ele, HDLC, este un protocol clasic orientat pe bit ale crui variante sunt folosite de
decenii ntregi n multe aplicaii. Cel de-al doilea, PPP, este protocolul de nivel legtur de date folosite pentru conectarea calculatoarelor casnice la Internet.

3.6.1

HDLC - Controlul de nivel nalt al legturii de date

n aceast seciune vom examina un grup de protocoale strns legate, puin mai vechi, dar care
sunt nc foarte utilizate. Ele sunt toate derivate din protocolul pentru legtura de date utilizat n
lumea mainframe-urilor IBM, numit SDLC (Synchronous Data Link Control, rom.: protocolul de
control sincron al legturii de date). Dup ce a dezvoltat SDLC, IBM l-a supus examinrii ANSI i
ISO pentru acceptare ca standard SUA i, respectiv, internaional. ANSI a modificat protocolul,
astfel nct acesta a devenit ADCCP (Advanced Data Communication Control Procedure, rom.:
procedur de control avansat al comunicaiilor de date), iar ISO l-a modificat i a produs HDLC
(High-level Data Link Control, rom.: control de nivel nalt al legturii de date). CCITT a adoptat i
modificat HDLC pentru al su LAP (Link Access Procedure, rom.: procedur de acces la legtur)
care este parte a standardului pentru interfaa de reea X.25, dar, mai trziu l-a modificat din nou,
rezultnd LAPB, n scopul de a-l face mai compatibil cu o versiune ulterioar de HDLC. Un lucru
frumos n ceea ce privete standardele este c sunt multe, dintre care poi alege. n plus, dac nu i
place nici unul dintre ele, poi atepta modelul care va aprea anul viitor.
Aceste protocoale se bazeaz pe aceleai principii. Toate sunt orientate pe bii i folosesc inserarea de bii pentru transparena datelor. Ele difer doar n puncte minore, i totui suprtoare. Discuia care urmeaz, despre protocoalele orientate pe bii, intenioneaz a fi o introducere general.
Pentru detaliile specifice fiecrui protocol, consultai definiia corespunztoare.
Toate protocoalele orientate pe bii folosesc structura de cadru prezentat n fig. 3-24. Cmpul
Adres este primul ca importan pentru liniile cu terminale multiple, unde el este folosit pentru a

210

NIVELUL LEGTUR DE DATE

CAP. 3

identifica unul dintre terminale. Pentru liniile punct-la-punct, el este folosit uneori pentru a deosebi
comenzile de rspunsuri.

Fig. 3-24. Format de cadru pentru protocoalele orientate pe bii.

Cmpul Control este folosit pentru numere de secven, confirmri i alte scopuri, dup cum se
va arta n continuare.
Cmpul Date poate conine informaii arbitrare. Poate avea lungime arbitrar, cu toate c eficiena sumei de control scade odat cu creterea lungimii cadrului, datorit creterii probabilitii de
apariie a erorilor n rafal.
Cmpul Suma de Control este o variant CRC (Cyclic Redundancy Code - cod ciclic redundant),
folosind tehnica prezentat in Sec. 3-2.2.
Cadrul este delimitat cu o alt secven indicator (01111110). Pe liniile punct-la-punct inactive
secvenele indicator sunt transmise continuu. Un cadru minim conine trei cmpuri i are n total 32
de bii, excluznd indicatorii de la capete.
Exist trei tipuri de cadre: Informaie, Supervizor i Nenumerotat. Coninutul cmpului Control
pentru fiecare dintre aceste trei tipuri este prezentat n fig. 3-25. Acest protocol folosete o fereastr
glisant, cu un numr de secven reprezentat pe 3 bii. n fereastr pot fi pstrate, la un moment
dat, pn la apte cadre neconfirmate. Cmpul Secven din fig. 3-25(a) este numrul de secven al
cadrului. Cmpul Urmtor este o confirmare ataat. Oricum, toate protocoalele ader la convenia
c, n loc s ataeze numrul ultimului cadru recepionat corect, s foloseasc numrul primului cadru nerecepionat (adic urmtorul cadru ateptat). Opiunea pentru ultimul cadru primit sau urmtorul cadru recepionat este arbitrar; nu are importan ce convenie este utilizat, dac este folosit cu consecven.
Bii

(a)

Secven

P/F

Urmtor

(b)

Tip

P/F

Urmtor

(c)

Tip

P/F

Modificator

Fig. 3-25. Cmpul Control pentru (a) un cadru de informaie, (b) un cadru de supervizare,
(c) un cadru nenumerotat.

Bitul P/F nseamn Test/Final (eng.: Poll/Final). El este folosit atunci cnd un calculator (sau un
concentrator) interogheaz un grup de terminale. Cnd este folosit ca P, calculatorul invit terminalul s trimit date. Toate cadrele trimise de terminal, cu excepia celui final, au bitul P/F setat pe P.
Pentru cadrul final bitul este setat la F.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

211

n cteva dintre protocoale, bitul P/F este folosit pentru a fora cealalt main s trimit imediat
un cadru Supervizor, n loc s atepte fluxul invers la care s se ataeze informaia despre fereastr.
Bitul are de asemenea cteva utilizri minore referitoare la cadrele nenumerotate.
Numeroasele tipuri de cadre Supervizor sunt difereniate prin cmpul Tip. Tipul 0 este un cadru
de confirmare (numit oficial RECEIVE READY) folosit pentru a indica urmtorul cadru ateptat.
Cadrul este folosit atunci cnd nu exist flux invers care s poat fi folosit pentru ataare.
Tipul 1 este un cadru de confirmare negativ (oficial numit REJECT). Este folosit pentru a indica detecia unei erori de transmisie. Cmpul Urmtor indic primul cadru din secven ce nu a fost
recepionat corect (deci cadrul ce trebuie retransmis). Transmitorului i se cere s retransmit toate
cadrele neconfirmate, ncepnd cu Urmtor-ul. Aceast strategie este similar mai degrab protocolului 5 dect protocolului 6.
Tipul 2 este RECEIVE NOT READY. El confirm toate cadrele, cu excepia lui Urmtor, exact
ca RECEIVE READY, dar spune transmitorului s opreasc transmisia. RECEIVE NOT
READY este destinat s semnaleze anumite probleme temporare aprute la receptor, cum ar fi
lipsa zonelor tampon, i nu ca o alternativ la controlul fluxului cu fereastr glisant. Cnd problema
a fost rezolvat, receptorul trimite un RECEIVE READY, REJECT sau anumite cadre de control.
Tipul 3 este SELECTIVE REJECT. El cere retransmiterea, ns doar pentru cadrul specificat.
Din acest punct de vedere este mai apropiat de protocolul 6 dect de protocolul 5 i de aceea este
folositor atunci cnd dimensiunea ferestrei transmitorului este jumtate sau mai puin din dimensiunea spaiului secvenei. Astfel, dac receptorul dorete s pstreze cadre care erau n afara secvenei pentru posibila folosire ulterioar, el poate s foreze retransmiterea oricrui cadru, folosind
SELECTIVE REJECT. HDLC i ADCCP permit acest tip de cadru, dar SDLC i LAPB nu l permit (adic nu exist Selective Reject) i cadrele de tipul 3 nu sunt definite.
Cea de-a treia clas o reprezint cadrul Nenumerotat. El este folosit uneori n scopuri de control,
dar poate fi folosit i pentru transportul datelor atunci cnd se recurge la un serviciu nesigur, neorientat pe conexiune. Diversele tipuri de protocoale orientate pe bii difer considerabil aici, spre deosebire de celelalte dou tipuri, unde erau aproape identice. Pentru a indica tipul cadrului sunt disponibili cinci bii, dar nu sunt folosite toate cele 32 de posibiliti.
Toate protocoalele furnizeaz o comand, DISC (DISConnect), care permite ca o main s
anune c se va opri (de exemplu pentru ntreinere preventiv). De asemenea exist o comand ce
permite ca o main, care tocmai s-a reconectat, s-i anune prezena i s foreze resetarea tuturor
numerelor de secven la zero. Aceast comand poart numele de SNRM (Set Normal Response
Mode - stabilete modul normal de rspuns). Din nefericire, modul normal de rspuns numai
normal nu este. Este un mod neechilibrat (adic asimetric) n care unul din capetele liniei este
master iar cellalt este slave. SNRM dateaz din timpurile cnd comunicaia datelor presupunea un
terminal neinteligent comunicnd cu un calculator gazd puternic, ceea ce este, evident, asimetric.
Pentru a face protocolul mai potrivit cazurilor n care cei doi parteneri sunt egali, HDLC i LAPB au
o comand suplimentar, SABM (Set Asynchronous Balanced Mode - stabilete modul asincron
echilibrat), care reseteaz linia i declar ambii parteneri ca fiind egali. De asemenea, aceste protocoale au comenzile SABME i SNRME, care sunt identice cu SABM i, respectiv, SNRM, cu excepia faptului c ele permit folosirea unui format extins pentru cadru, care utilizeaz numere de secven pe 7 bii n locul unora pe 3 bii.
A treia comand prevzut de toate protocoalele este FRMR (FRaMe Reject), folosit pentru a
indica sosirea unui cadru cu suma de control corect, dar cu semantic imposibil. Exemple de semantic imposibil sunt cadru de tipul 3 Supervizor n LAPB, un cadru mai scurt de 32 de bii, un

212

NIVELUL LEGTUR DE DATE

CAP. 3

cadru de control nepermis, confirmarea unui cadru care a fost n afara ferestrei etc. Cadrele FRMR
conin un cmp de date de 24 de bii care arat ceea ce a fost eronat la cadrul respectiv. Datele includ cmpul de control al cadrului eronat, parametrii ferestrei i o colecie de bii folosii pentru a
semnala erori specifice.
Cadrele de control pot fi pierdute sau deteriorate ca i cadrele de date, de aceea i ele trebuie
confirmate. n acest scop este furnizat un cadru special de control, numit UA (Unnumbered Acknowledgement). Deoarece poate exista un singur cadru de control neconfirmat, nu exist niciodat
ambiguiti asupra cadrului care este confirmat.
Cadrele de control rmase sunt folosite pentru iniializare, interogare i raportarea strii. Exist,
de asemenea, un cadru de control care poate conine informaii arbitrare, UI (Unnumbered Information). Aceste date nu sunt livrate nivelului reea, ci sunt destinate a fi primite chiar de nivelul legtur de date.
n ciuda utilizrii pe scar larg, HDLC este departe de a fi perfect. O discuie despre diversitatea problemelor asociate cu acest protocol poate fi gsit n (Fiorini .a., 1995).

3.6.2

Nivelul legturii de date n Internet

Internet-ul const din maini individuale (calculatoare gazd i rutere) i o infrastructur de comunicaie care le conecteaz. n cadrul unei singure cldiri sunt larg utilizate LAN-urile pentru interconectare, dar infrastructura de arie larg este construit din linii nchiriate, punct-la-punct. n
Cap. 4 vom studia LAN-urile; aici vom examina protocoalele legturii de date folosite pe liniile
punct-la-punct n Internet.
n practic, comunicaia punct-la-punct este folosit n principal n dou situaii. n primul rnd,
mii de organizaii au una sau mai multe LAN-uri, fiecare cu un anumit numr de calculatoare gazd
(calculatoare personale, staii de lucru ale utilizatorilor, servere .a.m.d.) i un ruter (sau o punte
care este funcional similar). Adeseori, ruterele sunt interconectate printr-un trunchi LAN. n mod
tipic, toate conexiunile cu lumea exterioar se fac printr-unul sau dou rutere care au linii punct-lapunct nchiriate spre rutere aflate la distan. Internet-ul este construit din aceste rutere i liniile lor
nchiriate care realizeaz subreelele de comunicaie.

Fig. 3-26. Un calculator personal lucrnd ca un calculator gazda n Internet.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

213

A doua situaie n care liniile punct-la-punct joac un rol major n Internet o reprezint milioanele de utilizatori individuali care au conexiuni de acas la Internet folosind modemuri i linii telefonice comutate. De obicei PC-ul de acas al unui utilizator apeleaz ruterul unui furnizor de servicii
Internet, i poate aciona astfel ca orice calculator gazd Internet. Aceast metod de operare nu
este diferit de aceea n care exist o linie nchiriat ntre PC i ruter, cu excepia faptului c atunci
cnd utilizatorul i termin sesiunea, conexiunea va fi nchis. n fig. 3-26 este ilustrat un PC casnic
ce apeleaz un furnizor de servicii Internet. Modem-ul este prezentat ca fiind extern, tocmai pentru
a-i accentua rolul, dar calculatoarele moderne dispun de modem-uri interne.
Att pentru conexiunea pe linie nchiriat ruter-ruter ct i pentru conexiunea comutat calculator gazd-ruter, este necesar un protocol de legtur de date punct-la-punct pentru ncadrare, controlul erorilor i pentru alte funcii ale nivelului legtur de date pe care le-am studiat n acest capitol. Cel folosit n Internet este PPP. n continuare acesta va fi prezentat n detaliu.

PPP - Point-to-Point Protocol (rom.: protocol punct-la-punct)


Internetul are nevoie de un protocol punct-la-punct care s serveasc mai multor scopuri, incluznd trafic ruter-la-ruter i trafic utilizator-la-ISP. Acest protocol este PPP (Point-to-Point Protocol,
rom.: protocolul punct-la-punct), care este definit in RFC 1661 i dezvoltat n alte cteva RFC-uri
(de exemplu RFC-urile 1662, 1663). PPP face detecia erorilor, suport mai multe protocoale, permite ca adresele IP s fie negociate n momentul conectrii, permite autentificarea i are multe alte
capabiliti.
PPP furnizeaz trei lucruri:
1. O metod de mprire n cadre care delimiteaz, fr ambiguitate, sfritul unuia i nceputul
urmtorului. Formatul cadrului permite i detecia de erori.
2. Un protocol de control al legturii pentru a obine liniile, a le testa, a negocia opiunile i pentru a elibera liniile atunci cnd nu mai este nevoie de ele. Acest protocol se numete
LCP(Link Control Protocol, rom: protocolul de control al legturii). El suport circuite sincrone i asincrone i codificri orientate att pe bit, ct i pe caracter.
3. Un mod de a negocia opiunile nivelului reea ntr-un mod independent de protocolul folosit
pentru nivelul reea. Metoda aleas este de a avea un NCP (Network Control Protocol, rom:
protocol de control al reelei) pentru fiecare nivel de reea suportat.
Pentru a vedea cum lucreaz mpreun aceste pri, s considerm un scenariu tipic n care un utilizator sun de la domiciliu un furnizor de servicii Internet pentru a transforma PC-ul su de acas
ntr-un calculator gazd Internet temporar. PC-ul apeleaz mai nti ruterul furnizorului prin intermediul unui modem. Dup ce modemul ruterului a rspuns la telefon i s-a stabilit o conexiune fizic,
PC-ul trimite ruterului o serie de pachete LCP n cmpul de informaie util (payload) al unuia sau
mai multor cadre PPP. Aceste pachete i rspunsurile lor selecteaz parametrii PPP ce vor fi utilizai.
Odat ce parametrii s-au stabilit de comun acord, mai multe pachete NCP sunt trimise pentru a
configura nivelul reea. n mod obinuit, PC-ul vrea s ruleze o suit de protocoale TCP/IP i va avea
nevoie de o adres IP. Deoarece nu exist adrese IP suficiente, fiecare furnizor de Internet ia o parte
din ele i asociaz dinamic cte una pentru fiecare PC ataat n reea, pe durata sesiunii de conectare. Dac un furnizor posed n adrese IP, el poate avea pn la n maini conectate simultan, dar numrul total de clieni poate fi de mai multe ori pe att. NCP pentru IP este folosit pentru a realiza
asocierea adreselor IP.

214

NIVELUL LEGTUR DE DATE

CAP. 3

n acest moment, PC-ul este un calculator gazd Internet i poate trimite i primi pachete IP,
exact aa cum o pot face calculatoarele conectate prin cabluri. Cnd utilizatorul termin, NCP ntrerupe conexiunea la nivelul reea i elibereaz adresa IP. Apoi LCP ntrerupe conexiunea la nivelul
legtur de date. n final, calculatorul spune modemului s nchid telefonul, elibernd conexiunea
la nivel fizic.
Formatul cadrului PPP a fost ales foarte asemntor cu formatul cadrului HDLC deoarece nu
exista nici un motiv pentru a se reinventa roata. Diferena major ntre PPP i HDLC este c primul
este mai degrab orientat pe caractere dect pe bii. n particular, PPP folosete umplerea cu caractere pe liniile comutate prin modem, astfel nct toate cadrele au un numr ntreg de octei. Nu este
posibil s se trimit un cadru constnd din 30.25 octei, aa cum era la HDLC. Cadrele PPP pot fi
transmise nu numai pe liniile telefonice comutate, ele pot fi transmise i pe linii SONET sau linii
HDLC, cu adevrat orientate pe bii (de exemplu pentru conexiuni ruter-ruter). Formatul cadrului
PPP este prezentat n fig. 3-27.

Fig. 3-27. Formatul complet de cadru PPP pentru operarea n mod nenumerotat.

Toate cadrele PPP ncep cu octetul indicator HDLC standard (01111110), pentru care se folosete umplerea cu caractere, dac apare n cadrul cmpului ce specific informaia util. Dup acesta
urmeaz cmpul Adres, care este ntotdeauna setat la valoarea binar 11111111, indicnd astfel c
toate staiile trebuie s accepte cadrul. Folosirea acestei valori evit problema necesitii de a se asocia adrese legturii de date.
Cmpul Adres este urmat de cmpul Control, a crui valoare implicit este 00000011. Aceast
valoare indic un cadru nenumerotat. Cu alte cuvinte, PPP nu ofer o transmisie sigur folosind
numere de secven i confirmri n mod implicit. n medii cu zgomote, cum ar fi reelele fr fir,
poate fi folosit transmisia sigur utiliznd numere de secven. Detaliile exacte sunt definite n RFC
1663, dar aceast facilitate este rar utilizat.
Deoarece cmpurile Adres i Control sunt ntotdeauna constante n configuraiile implicite, LCP
furnizeaz mecanismul necesar ca cele dou pri s negocieze opional omiterea amndurora i s
economiseasc astfel doi octei pe cadru.
Cel de-al patrulea cmp PPP este cmpul Protocol. Sarcina lui este s spun ce tip de pachet este
n cmpul Informaie util. Sunt definite coduri pentru LCP, NCP, IP, IPX, AppleTalk i alte protocoale. Protocoalele ce ncep cu un bit 0 sunt protocoale pentru nivelul reea. cum ar fi IP, IPX, OSI
CLNP, XNS. Acelea care ncep cu un bit 1 sunt folosite pentru a negocia alte protocoale. Acestea
includ LCP i un NCP diferit pentru fiecare protocol de reea suportat. Dimensiunea implicit a
cmpului Protocol este de 2 octei, dar ea poate fi negociat la 1 octet folosind LCP.
Cmpul Informaie util este de lungime variabil, pn la o anumit limit maxim negociat.
Dac lungimea nu este negociat folosind LCP n timpul setrii liniei, este folosit o lungime implicit de 1500 de octei. Dac este necesar, dup informaia util pot fi adugate caractere de umplere.
Dup cmpul Informaie util urmeaz cmpul Sum de control, care este n mod normal de 2
octei, dar poate fi modificat la 4 octei.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

215

n concluzie, PPP este un mecanism de ncadrare multiprotocol potrivit pentru folosirea pe linii
cu modem, linii seriale orientate pe bii HDLC, SONET i alte niveluri fizice. Suport detecia erorilor, negociere opional, compresia antetului i, opional, transmisie sigur folosind cadre HDLC.
S ne ntoarcem acum de la formatul cadrului PPP la modul n care liniile sunt stabilite (eng.:
brought up) i eliberate (eng.: brought down). Diagrama simplificat din fig. 3-28 arat fazele prin
care trece o linie atunci cnd este stabilit, folosit i eliberat. Secvena se aplic att pentru conexiunile prin modem ct i pentru conexiunile ruter-ruter.

Fig. 3-28. O diagram de faze simplificat pentru stabilirea i eliberarea unei linii.

Protocolul se iniializeaz cu linia n starea DEAD, stare care semnific faptul c nu este prezent
nici o purttoare la nivel fizic i nu exist nici o conexiune fizic. Dup ce este stabilit conexiunea
fizic, linia trece n ESTABLISH. n acest punct ncepe negocierea opional LCP care, dac reuete, conduce la AUTHENTICATE. Acum cele dou pri pot s-i verifice una alteia identitatea, dac
doresc. Cnd se intr n faza NETWORK, este invocat protocolul NCP corespunztor pentru a configura nivelul reea. Dac configurarea se face cu succes, este atins faza OPEN i poate avea loc
transportul datelor. Cnd transportul datelor este terminat, linia este trecut n faza TERMINATE
i, de aici, napoi n DEAD unde purttoarea este ntrerupt.
Nume

Direcie

Descriere

Configure-request

IR

Lista opiunilor i valorilor propuse

Configure-ack

IR

Toate opiunile sunt acceptate

Configure-nak

IR

Anumite opiuni nu sunt acceptate

Configure-reject

IR

Anumite opiuni nu sunt negociabile

Terminate-request

IR

Cerere de eliberare a liniei

Terminate-ack

IR

OK, linia este eliberat

Code-reject

IR

Primire cerere necunoscut

Protocol-reject

IR

Cerere protocol necunoscut

Echo-request

IR

Rog trimiterea acestui cadru napoi

Echo-replay

IR

Iat cadrul napoi

Discard-request

IR

Ignor cadrul (pentru testare)

Fig. 3-29. Tipurile de cadre LCP.

216

NIVELUL LEGTUR DE DATE

CAP. 3

LCP negociaz opiunile protocolului legturii de date n timpul fazei ESTABLISH. Protocolul
LCP nu se ocup chiar de opiuni, ci de mecanismul de negociere. El furnizeaz procesului iniiator
un mod de a face o propunere i procesului de rspuns un mod de a accepta sau refuza aceast propunere. De asemenea, el furnizeaz celor dou procese un mecanism de a testa calitatea liniei, de a
verifica dac aceasta este suficient de bun pentru a defini o conexiune. n fine, protocolul LCP
permite liniilor s fie eliberate atunci cnd nu mai este nevoie de ele.
n RFC 1661 sunt definite unsprezece tipuri de cadre LCP. Acestea sunt listate n fig. 3-29. Cele
patru tipuri Configure- permit iniiatorului (I) s propun valori pentru opiuni i celui care rspunde
(R) s le accepte sau s le refuze. n ultimul caz, cel care rspunde poate face o propunere alternativ sau poate anuna c nu este gata s negocieze n nici un fel anumite opiuni. Opiunile ce vor fi
negociate i valorile propuse pentru ele sunt coninute n cadrele LCP.
Codurile Terminate- sunt folosite pentru a elibera o linie atunci cnd ea nu mai este necesar. Codurile Code-reject i Protocol-reject sunt folosite de ctre cel ce rspunde pentru a spune c a primit
ceva ce nu nelege. Aceast situaie poate nsemna c a avut loc o eroare de transmisie, dar, mai degrab, nseamn c iniiatorul i cel ce rspunde folosesc versiuni diferite ale protocolului LCP. Tipurile Echo- sunt folosite pentru a testa calitatea liniei. n sfrit, Discard-request este folosit pentru depanare. Dac unul din capete are probleme cu transmiterea biilor, programatorul poate folosi acest
tip pentru testare. Dac el reuete s mearg de la un capt la cellalt, receptorul doar l rejecteaz,
fr a ntreprinde nici o aciune care ar putea genera confuzii pentru persoana care testeaz.
Opiunile care pot fi negociate includ definirea dimensiunii maxime pentru informaia util din
cadrele de date, activarea autentificrii i alegerea protocolului ce va fi folosit, activarea monitorizrii calitii liniei n timpul operaiunilor normale i selectarea diferitelor opiuni pentru comprimarea antetului.
Nu se pot spune multe despre protocoalele NCP n general. Fiecare este specific unui anumit
protocol de nivel reea i permite s se fac cereri de configurare ce sunt specifice unui anumit protocol. De exemplu, pentru IP, asocierea dinamic a adreselor este cea mai important posibilitate.

3.7 REZUMAT
Sarcina nivelului legtur de date este de a converti irurile de bii oferite de nivelul fizic n iruri
de cadre pentru a fi folosite de ctre nivelul reea. Sunt utilizate diferite metode de ncadrare, incluznd numrarea caracterelor, inserarea de octei i umplerea cu bii. Protocoalele legturii de date
pot oferi controlul erorilor pentru retransmiterea cadrelor distruse sau pierdute. Pentru a mpiedica
un emitor rapid s suprasolicite un receptor lent, protocolul legturii de date poate realiza i controlul fluxului. Mecanismul cu fereastr glisant este foarte folosit pentru a integra controlul erorilor
i controlul fluxului ntr-un mod convenabil.
Protocoalele cu fereastr glisant pot fi clasificate dup dimensiunea ferestrei emitorului i dup dimensiunea ferestrei receptorului. Cnd ambele sunt egale cu 1, protocolul este pas-cu-pas
(eng.: stop-and-wait). Cnd fereastra emitorului este mai mare ca 1, de exemplu pentru a mpiedica emitorul s blocheze un circuit cu o ntrziere mare de propagare, receptorul poate fi programat fie s elimine toate celelalte cadre cu excepia urmtorului din secven, fie s memoreze cadrele neordonate pn cnd ele vor fi necesare.

SEC. 3.8

PROBLEME

217

n acest capitol au fost prezentate o serie de protocoale. Protocolul 1 a fost conceput pentru un
mediu fr erori, n care receptorul poate face fa oricrui flux de la emitor. Protocolul 2 presupune existena unui mediu fr erori, dar introduce controlul fluxului. Protocolul 3 trateaz problema erorilor prin utilizarea numerelor de secven i a algoritmului pas-cu-pas. Protocolul 4 permite
comunicaia bidirecional i introduce conceptul de ataare (eng.: piggybacking). Protocolul 5 folosete un protocol cu fereastr glisant i revenire cu n pai (eng.: go back n). Protocolul 6 folosete
repetarea selectiv i confirmri negative.
Protocoalele pot fi modelate folosind diferite tehnici ce ajut la demonstrarea corectitudinii lor
(sau a lipsei acesteia). Modelele bazate pe automate finite i modelele bazate pe reele Petri sunt
larg utilizate n acest scop.
Multe reele folosesc la nivelul legtur de date unul dintre protocoalele orientate pe bii SDLC, HDLC, ADCCP sau LAPB. Toate aceste protocoale folosesc octei indicatori pentru delimitarea cadrelor i inserarea de bii pentru a preveni apariia octeilor indicatori n cadrul datelor. De
asemenea toate aceste protocoale folosesc fereastra glisant pentru controlul fluxului. Internet-ul
folosete PPP ca principal protocol al legturii de date pe liniile de tip punct-la-punct.

3.8 PROBLEME
1.

Un mesaj de la un nivel mai nalt este spart n 10 cadre, fiecare dintre acestea avnd 80% ans
de a ajunge nemodificat. Dac nu se face nici un control al erorilor de ctre protocolul legturii
de date, de cte ori va trebui transmis mesajul n medie pentru a-l obine ntreg la destinaie?

2.

Urmtoarea codificare a caracterelor este utilizat n cadrul unui protocol de nivel legtur de
date:
A: 01000111; B: 11100011; FLAG: 01111110; ESC: 11100000
Determinai secvena de bii transmis (n binar) pentru cadrul format din urmtoarele 4 caractere: A B ESC FLAG, cnd fiecare din metodele de ncadrare urmtoare sunt utilizate:
a) numrarea caracterelor
b) octei indicatori i inserarea de octei
c) octei indicatori de nceput i sfrit, cu inserare de bii.

3.

Urmtorul fragment de date apare n mijlocul unui ir de date pentru care este folosit algoritmul de inserare de octei descris n text: A B ESC C ESC FLAG FLAG D. Care este ieirea
dup inserare?

4.

Unul dintre colegii Dvs. de clas, Scrooge, a remarcat faptul c este ineficient folosirea a 2 octei indicatori, unul pentru nceputul cadrului, cellalt pentru sfrit. Un singur octet indicator ar
fi suficient, ctigndu-se astfel un octet. Suntei de acord?

5.

Dac n irul de bii 0111101111101111110 se insereaz bii, care este irul de ieire?

218

NIVELUL LEGTUR DE DATE

CAP. 3

6.

Cnd este utilizat inserarea de bii, este posibil ca prin pierderea, inserarea sau modificarea
unui singur bit s se provoace o eroare nedetectabil prin suma de control? Dac nu, de ce?
Dac da, de ce? Lungimea sumei de control joac vreun rol aici?

7.

Putei concepe o situaie n care un protocol cu bucl deschis (de exemplu un cod
Hamming) poate fi preferabil protocoalelor cu bucl de reacie (feedback), discutate pe
parcursul acestui capitol?

8.

Pentru a oferi o siguran mai mare dect cea pe care o poate da un singur bit de paritate, o
schem de codificare cu detecie de erori folosete un bit de paritate pentru verificarea tuturor
biilor de ordin impar i un al doilea bit de paritate pentru toi biii de ordin par. Care este distana Hamming pentru un astfel de cod?

9.

Se transmit mesaje de 16 bii folosind un cod Hamming. Ci bii de control sunt necesari pentru a asigura detectarea i corectarea de ctre receptor a erorilor de un bit? Prezentai secvena
de bii transmis pentru mesajul 1101001100110101. Presupunei c se folosete paritare par.

10. Un octet (8 bii) cu valoarea binar 10101111 trebuie codificat utiliznd un cod Hamming cu
paritate par. Care este valoarea binar dup codificare?
11. Un cod Hamming de 12 bii a crui valoare n hexazecimal este 0xE4F sosete la receptor. Care
este valoarea hexazecimal original? Presupunei ca maxim un bit este eronat.
12. Un mod de a detecta erorile este de a transmite datele ca un bloc de n rnduri a cte k bii pe
rnd i adugarea de bii de paritate pentru fiecare rnd i fiecare coloan. n colul din dreapta
jos este bitul de paritate care verific linia i coloana sa. Va detecta aceast schem toate erorile
singulare? Dar erorile duble? Dar erorile triple?
13. Un bloc de bii cu n rnduri i k coloane folosete bii de paritate vertical i orizontal pentru
detecia erorilor, S presupunem c datorit erorilor de transmisie sunt inversai exact 4 bii.
Deducei o expresie pentru exprimarea probabilitii ca eroarea s nu fie detectat.
14. Ce rest se obine prin mprirea lui x7+x5+1 la polinomul generator x3+1?
15. Secvena de bii 10011101 este transmis folosind metoda CRC descris anterior. Polinomul
generator este x3+1. Prezentai secvena de bii transmis. Se presupune c al treilea de la stnga este inversat n timpul transmisiei. Artai c aceast eroare este detectat de receptor.
16. Protocoalele legturii de date pun aproape ntotdeauna CRC-ul n partea final i nu n antet.
De ce?
17. Un canal are o rat de transmisie a biilor de 4 Kbps i o ntrziere de propagare de 20 ms. Pentru ce domeniu al dimensiunii cadrelor metoda pas-cu-pas (stop-and-wait) are o eficien de cel
puin 50%?
18. Un trunchi T1 lung de 3000 km este folosit pentru a transmite cadre de 64 de bii folosind protocolul 5. Dac viteza de propagare este de 6 sec/km, pe ci bii trebuie reprezentate numerele de secven?

SEC. 3.8

PROBLEME

219

19. n protocolul 3, este posibil ca emitorul s porneasc contorul de timp, atunci cnd acesta
merge deja? Dac da, cnd se poate ntmpla acest lucru? Daca nu, de ce este imposibil?
20. Imaginai un protocol cu fereastr glisant ce folosete suficieni bii pentru numerele de secven, astfel nct s nu apar niciodat suprapuneri. Ce relaie trebuie s existe ntre cele patru
limite ale ferestrelor i dimensiunea ferestrei?
21. Dac n procedura between din protocolul 5 este verificat condiia a b c n locul condiiei a
b < c, ar avea aceasta vreun efect asupra corectitudinii protocolului sau eficienei sale? Explicai rspunsul.
22. n protocolul 6, cnd sosete un cadru de date, este fcut o verificare pentru a se vedea dac
numrul de secven difer de cel ateptat i no_nak este adevrat. Dac ambele condiii sunt
ndeplinite, este trimis un NAK. Altfel, este pornit contorul de timp auxiliar. Presupunei c ar fi
omis clauza else. Ar afecta aceasta corectitudinea protocolului?
23. Presupunem c bucla while cu trei instruciuni din finalul protocolului 6 a fost tears din cod.
Ar afecta aceasta corectitudinea protocolului sau doar performana? Explicai rspunsul.
24. Presupunem c instruciunea case pentru erorile de sum de control a fost scoas din instruciunea switch din protocolul 6. Cum ar afecta aceasta operarea protocolului?
25. n protocolul 6 codul pentru frame_arrival are o seciune folosit pentru NAK-uri. Aceast seciune este invocat n cazul n care cadrul sosit este un NAK i este ndeplinit nc o condiie.
Indicai un scenariu n care prezena acestei condiii este esenial.
26. Imaginai-v c scriei un program la nivelul legtur de date pentru o linie folosit pentru
a primi date, dar nu i pentru a trimite. Cellalt capt folosete HDLC, cu un numr de
secven pe 3 bii i o dimensiune a ferestrei de 7 cadre. Ai dori s memorai ct mai multe cadre din secven pentru a crete eficiena, dar nu v este permis s modificai programul transmitorului. Este posibil s avei o fereastr la receptor mai mare ca 1 i totui
s existe garania c protocolul nu va eua? Dac da, care este fereastra cea mai mare care
poate fi utilizat n siguran?
27. Considerai operarea protocolului 6 pe o linie fr erori de 1 Mbps. Dimensiunea maxim a cadrului este 1000 bii. Pachetele noi sunt generate la un interval de aproape o secund. Intervalul de
expirare a timpului este de 10 ms. Dac ar fi eliminate confirmrile speciale pentru contorul de
timp, ar putea aprea expirri de timp inutile. De cte ori ar trebui transmis n medie un mesaj?
28. n protocolul 6, MAX_SEQ = 2n-1. Dei aceast condiie este evident necesar pentru a utiliza
eficient biii din antet, nu s-a demonstrat c ea este i esenial. Ar funciona protocolul corect
pentru MAX_SEQ = 4 de exemplu?
29. Cadrele de 1000 de bii sunt transmise pe un canal printr-un satelit geostaionar de 1 Mbps a
crui ntrziere de propagare de la Pmnt este de 270 milisecunde. Confirmrile sunt
ntotdeauna ataate cadrelor de date. Antetele sunt foarte scurte. Sunt folosite numere de
secven pe 3 bii. Care este utilizarea maxim realizabil a canalului pentru:

220

NIVELUL LEGTUR DE DATE

CAP. 3

a) Pas-cu-pas (stop-and-wait);
b) Protocolul 5;
c) Protocolul 6.
30. Calculai fraciunea din lrgimea de band ce este pierdut datorit suprancrcrii (antete i
retransmisie) pentru protocolul 6 pe un canal de satelit de 50 Kbps, foarte ncrcat cu cadre de
date constnd din 40 de bii antet i 3960 bii de date. Presupunei o ntrziere de la Pmnt la
satelit de 270 milisecunde. Cadrele ACK nu apar niciodat. Cadrele NAK sunt de 40 de bii.
Rata de erori pentru cadrele de date este de 1% i rata de erori pentru cadrele NAK este neglijabil. Numerele de secven sunt pe 8 bii.
31. Se consider un canal prin satelit fr erori, de 64 Kbps, folosit pentru a transmite cadre de date
de 512 octei ntr-o singur direcie, cu confirmri foarte scurte ce se ntorc pe cealalt cale. Care este productivitatea maxim pentru dimensiuni ale ferestrei de 1, 7, 15 i 127? Presupunei o
ntrziere de la Pmnt la satelit de 270 milisecunde.
32. Un cablu lung de 100 km funcioneaz la rata de transmisie de date T1. Viteza de propagare pe
cablu este 2/3 din viteza luminii. Ci bii ncap pe cablu?
33. Se presupune c se modeleaz protocolul 4 utiliznd modelul automatelor finite. Cte stri exist pentru fiecare main? Cte stri exist pentru canalul de comunicaie? Dar pentru un sistem
complet (dou maini i canalul)? Se ignor erorile de sum de control.
34. Determinai o secven executabil pentru reeaua Petri din fig. 3-23 corespunztoare secvenei
de stri (000), (01A), (01-), (010), (01A) n fig. 3-21. Explicai n cuvinte ce reprezint secvena
respectiv.
35. Date fiind regulile de tranziie ACB, BAC, CDE i ECD, desenai reeaua Petri descris de ele. Folosind reeaua Petri, desenai graful finit al strilor accesibile din starea iniial ACD.
Ce concept bine-cunoscut din tiina calculatoarelor folosete acest model de reguli de tranziie?
36. PPP se bazeaz pe HDLC, care folosete inserarea de bii pentru a mpiedica octeii indicatori
accidentali din interiorul informaiei utile s provoace confuzii. Dai cel puin un motiv pentru
care PPP folosete n locul acesteia inserarea de octei.
37. Care este suprancrcarea minim n transmiterea unui pachet IP folosind PPP? Luai n considerare doar suprancrcarea introdus de PPP nsui, nu i suprancrcarea produs de antetul IP.
38. Scopul acestui exerciiu este implementarea unui mecanism de detectare a erorilor folosind
algoritmul standard CRC prezentat n text. Scriei dou programe, generator i verificator. Programul generator citete de la intrarea standard mesaje de n bii ca iruri de 1 i 0, ca o linie de
text ASCII. A doua linie este polinomul generator pe k bii, citit tot ca text ASCII. La ieire,
programul va afia la ieirea standard (standard output) o linie de text ASCII cu n+k caractere
0 i 1, reprezentnd mesajul de transmis. Apoi afieaz polinomul, aa cum l-a citit. Programul
verificator citete ieirea programului generator i afieaz un mesaj care indic dac aceasta este corect sau nu. Se va scrie apoi un program, altereaz, care inverseaz un bit din prima linie
depinznd de unul din parametri cu care a fost apelat (bitul cel mai din stnga se consider bitul
1), dar copiaz restul corect. Tastnd:

SEC. 3.8

PROBLEME

221

generator < fiier | verificator


ar trebui s vedei c mesajul este corect, dar tasnd:
generator < fiier | altereaz argument | verifica
ar trebui s primii un mesaj de eroare.
39. Scriei un program care s simuleze comportamentul unei reele Petri. Programul trebuie s
citeasc regulile de tranziie i o list de stri corespunznd nivelului legtur al reelei ce emite
un nou pachet sau accept un pachet. Din starea iniial, de asemenea citit de pe mediul de intrare, programul trebuie s aleag tranziiile permise i s le execute aleator, verificnd dac un
calculator gazd accept dou mesaje fr ca un alt calculator gazd s emit unul nou ntre ele.

4
SUBNIVELUL DE ACCES LA MEDIU

Aa cum am artat n Cap. 1, reelele pot fi mprite n dou categorii: cele care utilizeaz conexiuni punct-la-punct i cele care utilizeaz canale cu difuzare (broadcast channels). Acest capitol se
ocup de reelele cu difuzare (broadcast networks) i de protocoalele lor.
n orice reea cu difuzare, una dintre probleme este determinarea utilizatorului cu drept de acces
la canal n cazul n care exist mai muli utilizatori concureni. Pentru a lmuri lucrurile, s considerm o teleconferin n care ase persoane, vorbind de la ase telefoane diferite, sunt conectate astfel
nct fiecare i poate auzi pe ceilali i poate vorbi cu ei. Este foarte probabil ca atunci cnd cineva se
oprete din vorbit, doi sau mai muli s nceap s vorbeasc simultan, ceea ce va duce la haos. ntr-o
ntlnire fa-n-fa, haosul este evitat prin mijloace externe - de exemplu, prin ridicarea minii pentru a cere permisiunea de a vorbi. Cnd este disponibil un singur canal de comunicaie, este mult
mai greu s determini cine urmeaz s ia cuvntul. Sunt cunoscute multe protocoale de rezolvare a
acestei probleme i ele constituie coninutul acestui capitol. n literatura de specialitate, canalele cu
difuzare sunt uneori numite canale multiacces (multiaccess channels), sau canale cu acces aleator
(random access channels).
Protocoalele folosite pentru a determina cine urmeaz ntr-un canal multiacces aparin unui
subnivel al nivelului legtur de date, numit subnivelul MAC (Medium Access Control, rom: controlul accesului la mediu). Subnivelul MAC este important mai ales pentru reelele de tip LAN Local
Area Network (le vom numi prescurtat LAN-uri), care utilizeaz aproape toate un canal multiacces
ca baz pentru comunicaie. Din contr, reelele de tip WAN Wide Area Network (le vom numi
WAN-uri) utilizeaz legturi punct-la-punct, cu excepia reelelor prin satelit. Datorit faptului c
LAN-urile i canalele multiacces sunt att de strns legate, n acest capitol vom discuta la modul
general att despre LAN-uri ct i despre reele prin satelit i alte reele cu difuzare. Deoarece canalele multiaccess i reelele locale sunt subiecte att de apropiate, n acest capitol vom discuta mai

223

224

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

multe subiecte legate de reelele locale n general, incluznd i subiecte care nu sunt strict specifice
subnivelului MAC.
Tehnic vorbind, subnivelul MAC reprezint partea de jos a nivelului legtur de date, deci logic
ar fi fost s l fi studiat nainte de a trece n revist toate protocoalele punct-la-punct din cap. 3. Dar,
pentru majoritatea oamenilor, nelegerea protocoalelor care implic mai multe pri este mai uoar dup ce au neles bine protocoalele care implic numai dou pri. Pentru acest motiv am deviat
puin de la stilul de prezentare strict ascendent al ierarhiei reelelor.

4.1 PROBLEMA ALOCRII CANALULUI


Tema central a acestui capitol o reprezint modul de alocare a unui singur canal cu difuzare ntre mai muli utilizatori concureni. Mai nti vom arunca o privire de ansamblu asupra schemelor
statice i dinamice de alocare. Apoi vom studia civa algoritmi specifici.

4.1.1

Alocarea static a canalului n reelele LAN i MAN

Modul tradiional de alocare a unui singur canal, cum ar fi cablul telefonic, ntre mai multi utilizatori concureni este multiplexarea cu diviziunea frecvenei (FDM Frequency Division Multiplexing). Dac exist N utilizatori, banda de transmisie este mprit n N pri egale (vezi fig. 2-24),
fiecrui utilizator fiindu-i alocat una dintre acestea. Deoarece fiecare utilizator are o band de frecven proprie, nu exist interferene ntre utilizatori. Atunci cnd exist doar un numr mic i constant de utilizatori, fiecare avnd un trafic ncrcat (i bazat pe utilizarea zonelor tampon), cum ar fi,
de exemplu, oficiile de comutare ale companiilor de telecomunicaie, FDM este un mecanism de
alocare simplu i eficient.
Cu toate acestea, atunci cnd numrul emitorilor este mare i variaz n permanen, sau cnd
traficul este de tip rafal, FDM prezint cteva probleme. Dac spectrul benzii este mprit n N
regiuni i sunt mai puin de N utilizatori care vor s comunice, o bun parte din band se va risipi.
Dac sunt mai mult de N utilizatori care vor s comunice, unii dintre ei nu o vor putea face, din lips
de spaiu n banda de transmisie, chiar dac exist utilizatori care au primit cte o parte din band i
transmit sau recepioneaz mesaje extrem de rar.
Chiar dac presupunem c numrul utilizatorilor ar putea fi meninut n vreun fel constant la valoarea N, divizarea singurului canal disponibil n subcanale statice este, evident, ineficient. Principala problem este c atunci cnd unii utilizatori sunt inactivi, bucata lor de band se pierde pur i simplu. Ei nu o folosesc, dar nici alii nu au voie s o utilizeze. Mai mult, n majoritatea sistemelor de
calcul, traficul de date este extrem de difereniat (sunt uzuale raporturi de 1000:1 ntre traficul de
vrf i cel mediu). n consecin, majoritatea canalelor vor fi libere n cea mai mare parte a timpului.
Performanele slabe ale alocrii FDM statice pot fi uor observate dintr-un simplu calcul fcut cu
ajutorul teoriei cozilor. S lum, pentru nceput, ntrzierea medie, T, pentru un canal cu capacitatea
C bps, la o rat a sosirilor de cadre/sec. Fiecare cadru are o lungime dat de o funcie de densitate
de probabilitate exponenial cu media de 1/ bii/cadru. Cu aceti parametri, rata sosirilor este
cadre/sec, iar viteza de servire este C cadre-sec. Din teoria cozilor poate fi demonstrat c pentru
timpi Poisson de sosire i de servire, vom avea

SEC. 4.1

PROBLEMA ALOCRII CANALULUI

T=

225

1
C

De exemplu, dac C este 100 Mbps, lungimea medie a cadrului, 1/, este de 10.000 de bii, iar rata sosirilor, , este 5.000 cadre/sec, atunci T = 200 s. Trebuie remarcat c dac ignoram ntrzierea
dat de teoria cozilor i am fi vrut s determinm doar ct timp va dura s trimitem un cadru de
10.000 de bii ntr-o reea de 100 Mbps, am fi obinut rspunsul (incorect) de 100 s. Rezultatul, astfel calculat, este corect doar cnd nu exist competiie pentru canal.
Acum s divizm canalul n N subcanale independente, fiecare cu o capacitate de C/N bps. Rata
medie a intrrilor pe fiecare subcanal va fi acum de /N. Recalculnd T vom obine:

TFDM =

1
N
=
= NT
(C / N ) ( / N ) C

(4-1)

ntrzierea medie la FDM este de N ori mai mare dect n cazul n care toate cadrele ar fi fost,
printr-o scamatorie, aranjate n ordine ntr-o mare coad central.
Exact aceeai logic utilizat la FDM se poate aplica i la multiplexarea cu diviziunea timpului
(TDM - Time Division Multiplexing). Fiecrui utilizator i este alocat static fiecare a N-a cuant.
Dac un utilizator nu i folosete timpul alocat, acesta rmne nefolosit. Acelai lucru se ntmpl i
dac divizm reelele n mod fizic. Revenind la exemplul anterior, dac am nlocui reeaua de 100
Mbps cu zece reele de 10 Mbps fiecare i dac am aloca static fiecreia cte un utilizator, ntrzierea
medie ar sri de la 200 s la 2 ms.
Deoarece nici una dintre metodele statice de alocare a canalului nu funcioneaz bine n condiii
de trafic n rafal, vom studia n continuare metodele dinamice.

4.1.2

Alocarea dinamic a canalului n reelele LAN i MAN

nainte de a ncepe prezentarea numeroaselor metode de alocare a canalului, care fac obiectul
acestui subcapitol, merit s formulm cu atenie problema alocrii. La baza ntregii activiti din
acest domeniu stau cteva ipoteze-cheie, descrise n continuare.
1.

2.

3.

4.

Modelul staiilor. Acest model const din N staii independente (calculatoare, telefoane,
dispozitive de comunicare personal etc.), fiecare avnd un program sau un utilizator care
genereaz cadre de transmis. Staiile sunt uneori denumite terminale. Probabilitatea de generare a unui cadru ntr-un interval de lungime t este t, unde este o constant (rata sosirilor de cadre noi). Odat ce a fost generat un cadru, staia se blocheaz i nu mai face nimic pn la transmiterea cu succes a cadrului.
Ipoteza canalului unic. Exist un singur canal accesibil pentru toate comunicaiile. Toate
staiile pot transmite prin el i pot recepiona de la el. n ceea ce privete partea de hardware, toate staiile sunt echivalente, dei protocolul software le poate acorda prioriti diferite.
Ipoteza coliziunii. Dac dou cadre sunt transmise simultan, ele se suprapun, iar semnalul
rezultat va fi neinteligibil. Acest eveniment se numete coliziune. Toate staiile pot detecta
coliziuni. Un cadru care a intrat n coliziune cu un alt cadru trebuie retransmis ulterior. Nu
exist alte erori n afara celor generate de coliziuni.
Timp continuu. Transmisia cadrelor poate surveni n orice moment. Nu exist un ceas comun, care s mpart timpul n intervale discrete.

226

SUBNIVELUL DE ACCES LA MEDIU

5.

6.

7.

CAP. 4

Timp discret. Timpul este mprit n intervale discrete (cuante). Transmisia cadrelor pornete ntotdeauna la nceputul unei cuante. O cuant poate conine 0, 1, sau mai multe cadre, corespunztor unei cuante de ateptare, unei transmisiuni efectuate cu succes sau, respectiv, unei coliziuni.
Detecia purttoarei. Staiile pot afla dac un canal este liber sau nu nainte de a ncerca s-l
utilizeze. Dac el este deja ocupat, nici o staie nu va mai ncerca s l utilizeze pn cnd nu
se va elibera.
Nedetecia purttoarei. Staiile nu pot afla starea canalului nainte de a ncerca s l utilizeze.
Ele pur i simplu ncep s transmit. Abia dup aceea vor putea determina dac transmisia
s-a efectuat cu succes sau nu.

Este momentul s discutm puin despre aceste ipoteze. Prima dintre ele spune c staiile sunt
independente, iar cadrele sunt generate cu o frecvena constant. De asemenea, se presupune implicit c transmisia fiecrei staii este controlat de un singur program sau de un singur utilizator, deci
atta timp ct staia este blocat, ea nu va genera noi cadre. Modelele mai sofisticate permit existena staiilor multiprogramate, care pot genera noi cadre n timp ce staia este blocat, dar analiza
acestor staii este mult mai complex.
Ipoteza canalului unic este de fapt inima problemei. Nu exist mijloace externe de comunicare.
Staiile nu pot ridica minile pentru a cere profesorului permisiunea de a vorbi.
Ipoteza coliziunii este, de asemenea, o ipotez de baz, dei n unele sisteme (ntre care remarcm sistemele cu spectru larg de transmisie) ea este relaxat, cu rezultate surprinztoare. De asemenea, unele LAN-uri, cum ar fi cele de tip token-ring, utilizeaz un mecanism de eliminare a conflictelor, care elimin coliziunile.
Exist dou ipoteze alternative despre timp. ntr-una din ele timpul este continuu, iar n cealalt
este discret. Unele sisteme consider timpul ntr-un fel, altele n cellalt fel, aa c le vom discuta i
analiza pe amndou. Evident, pentru un sistem dat, numai una dintre ipoteze este valabil.
n mod similar, o reea poate avea sau nu faciliti de detecie a purttoarei. Reelele LAN au n
general detecie de purttoare, dar reelele prin satelit nu (datorit ntrzierii mari de propagare).
Staiile din reelele cu detecie de purttoare i pot termina transmisia prematur, dac descoper c
au intrat n coliziune cu o alt transmisie. De notat c aici nelesul cuvntului purttoare se refer
la semnalul electric de pe cablu i nu are nimic de a face cu vreun alt tip de purttoare.

4.2 PROTOCOALE CU ACCES MULTIPLU


Sunt cunoscui muli algoritmi de alocare a unui canal cu acces multiplu. n seciunile care urmeaz vom studia un eantion reprezentativ al celor mai interesani algoritmi i vom da exemple de
utilizare a lor.

4.2.1

ALOHA

n anii '70, Norman Abramson i colegii si de la Universitatea din Hawaii au elaborat o nou i
elegant metod de rezolvare a problemei alocrii canalului. De atunci, munca lor a fost continuat
de muli cercettori (Abramson, 1985). Dei realizarea lui Abramson, numit sistemul ALOHA,

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

227

utiliza difuzarea prin radio de la sol, ideea de baz se poate aplica la orice sistem n care utilizatori ce
nu pot fi localizai concureaz la utilizarea unui unic canal partajat.
Vom discuta dou versiuni ale protocolului ALOHA: ALOHA pur i ALOHA cuantificat. Ele
difer prin faptul c timpul este sau nu divizat n intervale discrete, n care trebuie s se potriveasc
orice cadru. ALOHA pur nu cere sincronizare de timp global, pe cnd ALOHA cuantificat cere.

ALOHA pur
Ideea de baz ntr-un sistem ALOHA este simpl: utilizatorii sunt lsai s transmit ori de cte
ori au date de trimis. Bineneles c vor exista coliziuni, iar cadrele intrate n coliziune vor fi distruse.
Oricum, datorit proprietii de reacie a difuzrii, un emitor poate afla oricnd dac mesajul su a
fost distrus, ascultnd canalul, la fel ca i ceilali utilizatori. ntr-o reea LAN, reacia este imediat;
ntr-o reea prin satelit, exist o ntrziere de 270 ms nainte ca emitorul s afle dac transmisia s-a
ncheiat cu succes. n cazul n care cadrul trimis a fost distrus, emitorul ateapt un interval oarecare de timp i l trimite din nou. Timpul de ateptare trebuie s fie aleatoriu, altfel aceleai cadre vor
intra n coliziune iar i iar, blocndu-se reciproc la nesfrit. Sistemele n care mai muli utilizatori
partajeaz un canal comun ntr-un mod care poate duce la conflicte sunt cunoscute sub numele de
sisteme cu conflicte (contention systems).
n fig. 4-1 este prezentat o schi de generare a cadrelor ntr-un sistem ALOHA. Am ales s
reprezentm cadre de aceeai lungime, pentru c productivitatea sistemelor ALOHA este maximizat n cazul n care avem cadre de lungime uniform, fa de cazul n care avem cadre de lungime variabil.

Fig. 4-1. n ALOHA pur, cadrele sunt transmise la momente complet arbitrare.

Ori de cte ori dou cadre ncearc s ocupe canalul n acelai timp, se va produce o coliziune i
amndou vor fi denaturate. Dac primul bit al unui nou cadru se suprapune cu ultimul bit al unui
cadru aproape terminat, amndou cadrele vor fi total distruse i amndou vor trebui retransmise
mai trziu. Suma de control nu poate (i nu trebuie) s disting ntre o pierdere total i o ratare la
musta. Ceea ce este ru este ru.
O ntrebare foarte interesant este: care este eficiena unui canal ALOHA? Cu alte cuvinte, ce
fraciune din cadrele transmise nu intr n coliziune n aceste circumstane haotice? S considerm
mai nti o colectivitate infinit de utilizatori interactivi stnd n faa calculatoarelor (staiilor) lor.
Un utilizator este ntotdeauna ntr-una din cele dou stri: introduce caractere sau ateapt. Iniial,
toi utilizatorii sunt n prima stare, scriind. Cnd termin o linie, utilizatorul se oprete din scris, ateptnd un rspuns. Atunci staia transmite pe canal un cadru coninnd linia i verific dac trans-

228

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

misia s-a efectuat cu succes. Dac da, utilizatorul vede rspunsul i se apuc din nou de scris. Dac
nu, utilizatorul continu s atepte, iar cadrul va fi transmis n mod repetat, pn cnd transmisia se
va ncheia cu succes.
S numim interval de cadru timpul necesar pentru a transmite un cadru standard, de lungime
fix (adic lungimea cadrului mprit la rata biilor). Vom presupune c populaia infinit de utilizatori genereaz cadre noi conform unei distribuii Poisson cu media de N cadre pe interval de cadru
(ipoteza populaiei infinite este necesar pentru a ne asigura c N nu descrete pe msur ce utilizatorii se blocheaz). Dac N > 1, utilizatorii genereaz cadre cu o rat mai mare dect capacitatea de
transmisie a canalului i aproape fiecare cadru va suferi o coliziune. Pentru o productivitate rezonabil ar trebui ca 0 < N < 1.
n plus fa de noile cadre, staiile mai genereaz i copii ale cadrelor care au suferit anterior coliziuni. S presupunem n continuare c probabilitatea de a avea k ncercri de transmisie pe interval
de cadru, incluznd i retransmisiile, are de asemenea o distribuie Poisson, cu media G pe interval
de cadru. Evident, G N. La ncrcare redus (adic N 0), vor fi puine coliziuni, deci puine retransmisii, aa c G N. La ncrcare mare vor fi multe coliziuni, deci G > N. Orice ncrcare am
avea, productivitatea este chiar ncrcarea dat, G, nmulit cu probabilitatea ca o transmisie s se
ncheie cu succes - adic S = GP0, unde P0 este probabilitatea ca un cadru s nu sufere coliziuni.

Fig. 4-2. Perioada vulnerabil pentru cadrul umbrit.

Un cadru nu va suferi coliziuni dac nici un alt cadru nu va fi emis n intervalul de un cadru socotit de la nceputul lui, aa cum se arat n fig. 4-2. n ce condiii cadrul umbrit va ajunge ntreg? Fie t
timpul necesar emisiei unui cadru. Dac un alt utilizator a generat un cadru ntre t0 i t0 + t, sfritul
acelui cadru va intra n coliziune cu nceputul cadrului umbrit. De fapt, soarta cadrului umbrit era
deja pecetluit chiar nainte de transmisia primului bit, dar cum n ALOHA pur, o staie nu ascult
canalul nainte de transmisie, nu are cum s tie c un alt cadru se afl deja n curs de transmisie.
Similar, orice alt cadru care ncepe ntre t0 + t i t0 + 2t va nimeri peste sfritul cadrului umbrit.
Probabilitatea ca ntr-un interval de cadru dat s fie generate un numr k de cadre este modelat
de distribuia Poisson:

Pr[ k ] =

G k e G
k!

(4-2)

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

229

deci probabilitatea generrii a zero cadre este doar e-G. ntr-o perioad de timp ct dou intervale de
cadru, media numrului de cadre generate este 2G. Astfel, probabilitatea ca nici o transmisie s nu
nceap n timpul perioadei de timp vulnerabile este dat de P0 = e-2G.
Lund S = GP0, obinem:
S = Ge 2G

Fig. 4-3. Productivitatea n funcie de traficul oferit pentru sistemele ALOHA.

Relaia dintre traficul oferit i productivitate este prezentat n fig. 4-3. Productivitatea maxim
este obinut la G = 0.5, cu S = 1/2e, adic aproximativ 0.184. Cu alte cuvinte, cea mai bun performan la care putem spera este o utilizare a canalului de 18 procente. Acest rezultat nu este prea
ncurajator, dar, n situaia aceasta n care fiecare utilizator transmite la dorin, cu greu ne-am fi
putut atepta la o performan de sut la sut.

ALOHA cuantificat
n 1972, Roberts a publicat o metod de dublare a capacitii unui sistem ALOHA (Roberts,
1972). Propunerea lui era s se mpart timpul n intervale discrete, fiecare interval corespunznd
unui cadru. Aceast abordare cere ca utilizatorii s cad de acord asupra mrimii cuantelor. O cale
de a obine sincronizarea ar fi ca o staie special s emit un bip la nceputul fiecrui interval, ca
un tact de ceas.
n metoda lui Roberts, care a devenit cunoscut sub numele de ALOHA cuantificat (slotted
ALOHA), n contrast cu metoda lui Abramson - ALOHA pur (pure ALOHA), unui calculator nu i
este permis s emit ori de cte ori este apsat tasta Return. El este nevoit s atepte nceputul
urmtoarei cuante. Astfel, protocolul ALOHA pur este transformat din continuu n discret. Deoarece acum perioada vulnerabil este njumtit, probabilitatea ca n intervalul cadrului nostru de
test s nu mai apar un alt trafic este e-G, ceea ce conduce la:
S = Ge G

(4-3)

Aa cum reiese din fig. 4-3, ALOHA cuantificat prezint un maxim la G = 1, cu o productivitate
de S = 1/e, adic aproximativ 0.368, dublu fa de ALOHA pur. Dac sistemul opereaz la G = 1,
probabilitatea unei cuante neutilizate este 0.368 (din ecuaia 4-2). Cea mai bun performan la care
ne putem atepta de la ALOHA cuantificat este: 37% din cuante neutilizate, 37% cadre transmise
cu succes i 26% coliziuni. Lucrul cu valori mai mari ale lui G reduce numrul cuantelor neutilizate,
dar l mrete exponenial pe cel al coliziunilor. Pentru a vedea cum se explic rapida cretere a nu-

230

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

mrului coliziunilor odat cu G, s considerm transmisia unui cadru de test. Probabilitatea ca el s


evite o coliziune este e-G, adic probabilitatea ca toi ceilali utilizatori s nu transmit n acest interval. Probabilitatea unei coliziuni este deci 1 - e-G. Probabilitatea ca o transmisie s se efectueze exact
din k ncercri (adic dup k - 1 coliziuni, urmate de un succes) este

Pk = e G (1 e G ) k 1
Numrul de transmisii prognozat pentru fiecare apsare a tastei Return, E, este deci

E=

kP = ke
k

k =1

(1 e G ) k 1 = e G

k =1

Ca urmare a dependenei exponeniale a lui E fa de G, creteri mici ale ncrcrii canalului pot
reduce drastic performanele sale.
ALOHA cuantificat este important pentru un motiv care poate nu este evident la prima vedere.
A fost conceput n anii `70, a fost folosit n cteva sisteme experimente timpurii, apoi a fost aproape
uitat. Cnd a fost inventat accesul la Internet prin cablu a aprut dintr-o dat problema alocrii unui
singur canal ntre utilizatori multipli aflai n concuren astfel nct ALOHA cuantificat a fost scos
de la naftalin pentru a salva situaia. S-a ntmplat frecvent ca protocoale perfect valide s fie date
uitrii din motive politice (de exemplu, deoarece o mare companie vrea ca toat lumea s fac lucrurile aa cum zice ea), dar la ani distan o persoan inteligent descoper c un protocol de mult
uitat rezolva o anumit problem curent. Din acest motiv, n acest capitol vom studia un numr de
protocoale elegante care nu sunt actualmente folosite la scar larg, dar care ar putea foarte simplu
s fie utile n aplicaiile viitorului, dac suficieni ingineri de reea sunt contieni de existena lor.
Desigur, vom studia mai multe protocoale aflate n folosin curent.

4.2.2

Protocoale cu acces multiplu i detecie de purttoare

Cu ALOHA cuantificat se poate atinge un grad de utilizare a canalului de pn la 1/e. Acest lucru nu este surprinztor, dac ne gndim c staiile transmit cnd doresc, fr a fi atente la ceea ce
fac celelalte staii i, n consecin, vor exista numeroase coliziuni. Oricum, n reelele locale, staiile
pot detecta ce fac celelalte staii i i pot adapta comportamentul n mod corespunztor. Astfel de
reele pot obine un grad de utilizare mult mai bun dect 1/e. n aceast seciune vom discuta cteva protocoale pentru mbuntirea a performanei.
Protocoalele n care staiile ascult pentru a detecta o purttoare (adic o transmisie) i acioneaz corespunztor se numesc protocoale cu detecie de purttoare (carrier sense protocols).
Kleinrock i Tobagi (1975) au analizat n detaliu cteva protocoale de acest tip. n continuare vom
prezenta cteva versiuni ale protocoalelor cu detecie de purttoare.

CSMA persistent i nepersistent


Primul protocol cu detecie de purttoare pe care l vom studia n acest material se numete
CSMA 1-persistent (Carrier Sense Multiple Access, rom: acces multiplu cu detecie de purttoare).
Atunci cnd o staie are date de transmis, mai nti ascult canalul pentru a vedea dac nu cumva
transmite altcineva n acel moment. n cazul n care canalul este ocupat, staia ateapt pn la eliberarea sa. Atunci cnd staia detecteaz canalul liber, transmite un cadru. Dac se produce o coliziune,
staia ateapt o perioad aleatorie de timp i o ia de la nceput. Protocolul se cheam 1-persistent,
pentru c probabilitatea ca o staie s transmit atunci cnd gsete canalul liber este egal cu 1.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

231

ntrzierea de propagare are o influen important asupra performanei protocolului. Exist o


oarecare ans ca, imediat dup ce o staie ncepe s transmit, o alt staie s devin pregtit de
transmisie i s asculte canalul. Dac semnalul primei staii nu a ajuns nc la cea de-a doua, aceasta
din urm va detecta canalul liber i va ncepe la rndul ei s emit, rezultnd o coliziune. Cu ct este
mai mare ntrzierea de propagare, cu att acest efect devine mai important, iar performana protocolului scade.
Chiar dac ntrzierea de propagare ar fi zero, tot s-ar mai produce coliziuni. Dac dou staii
devin gata de transmisie n timpul transmisiunii unei a treia staii, amndou vor atepta politicos
pn la sfritul ei, dup care vor ncepe s transmit simultan, producndu-se o coliziune. Dac ele
nu ar fi att de nerbdtoare, s-ar produce mai puine coliziuni. Chiar i aa, acest protocol este
semnificativ mai bun dect ALOHA pur, ntruct ambele staii au bunul sim s nu interfereze cu
cadrul celei de-a treia staii. Intuitiv, acest fapt va conduce la o performan mai bun dect
ALOHA pur. Acelai lucru este valabil i pentru ALOHA cuantificat.

Fig. 4-4. Comparaie ntre utilizrile canalului n funcie de ncrcare,


pentru diferite protocoale cu acces aleator.

Un al doilea protocol cu detecie de purttoare este CSMA nepersistent (nonpersistent CSMA).


n acest protocol, o ncercare contient de transmisie este mai puin lacom dect n cel anterior.
nainte de a emite, staia ascult canalul. Dac nimeni nu emite, ncepe ea s emit. Dac ns canalul este ocupat, staia nu rmne n continuu n ascultare, pentru a-l ocupa imediat dup detectarea
sfritului transmisiei precedente. n schimb, ateapt o perioad aleatorie de timp i apoi repet
algoritmul. Intuitiv, acest algoritm ar trebui s conduc la o utilizare mai bun a canalului, dar i la
ntrzieri mai mari dect la CSMA 1-persistent.
Ultimul protocol este CSMA p-persistent (p-persistent CSMA). El se aplic la canalele
cuantificate i funcioneaz dup cum urmeaz. Cnd o staie este gata s emit, ea ascult canalul.
Dac acesta este liber, staia va transmite cu o probabilitate p. Cu probabilitatea q = 1 p, staia va
atepta urmtoarea cuant. Dac aceast cuant este de asemenea liber, va transmite sau va
atepta din nou, cu probabilitile p i respectiv q. Acest proces este repetat pn cnd cadrul este
transmis sau pn cnd o alt staie ncepe s transmit. n ultimul caz, staia se comport ca i cnd
s-ar fi produs o coliziune (adic ateapt o perioad aleatorie de timp i pornete iar). Dac iniial
staia detecteaz canalul ocupat, ateapt cuanta urmtoare i aplic algoritmul de mai sus. Fig. 4-4

232

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

z canalul ocupat, ateapt cuanta urmtoare i aplic algoritmul de mai sus. Fig. 4-4 arat productivitatea n funcie de traficul oferit pentru toate cele trei protocoale, precum i pentru ALOHA pur i
ALOHA cuantificat.

CSMA cu detecia coliziunii


Protocoalele CSMA persistent i nepersistent reprezint n mod cert o mbuntire fa de
ALOHA, pentru c au grij ca nici o staie s nu nceap s transmit atunci cnd canalul este ocupat. O alt mbuntire este abandonarea transmisiei ndat ce se detecteaz o coliziune. Cu alte
cuvinte, dac dou staii gsesc canalul liber i ncep s transmit simultan, amndou vor detecta
coliziunea aproape imediat. Dect s i termine de transmis cadrele, care oricum sunt iremediabil
denaturate, staiile i vor termina brusc transmisia imediat dup detectarea coliziunii. Terminnd
repede cu cadrele distruse, se salveaz timp i lrgime de band. Acest protocol, cunoscut sub numele de CSMA/CD (Carrier Sense Multiple Access with Collision Detection, rom: acces multiplu cu
detecia purttoarei i a coliziunii), este des ntrebuinat n LAN-uri n subnivelul MAC. n particular, este baza popularului Ethernet LAN, astfel nct merit efortul s l analizm n detaliu.
CSMA/CD, ca i multe alte protocoale de LAN, utilizeaz modelul conceptual din fig. 4-5. n
momentul marcat cu t0, o staie oarecare i termin de transmis cadrul. Acum orice alt staie care
are de transmis un cadru poate ncerca s transmit. Dac dou sau mai multe staii se decid s
transmit simultan, se va produce o coliziune. Coliziunile pot fi detectate urmrind puterea sau limea impulsului semnalului recepionat i comparndu-le cu semnalul transmis.

Fig. 4-5. CSMA/CD se poate afla ntr-una din urmtoarele stri: conflict,
transmisie sau inactiv.

Dup ce o staie a detectat o coliziune, i abandoneaz transmisia, ateapt o perioad de timp


oarecare i ncearc din nou, dac nici o alt staie nu a nceput s transmit ntre timp. De aceea,
modelul nostru pentru CSMA/CD va fi alctuit alternativ din perioade de timp cu transmisii i perioade de timp de conflict, avnd i perioade de ateptare, cnd toate staiile tac (de exemplu, din
lips de activitate).
S privim acum mai ndeaproape detaliile algoritmului de tratare a conflictelor. S presupunem
c dou staii ncep s transmit simultan, exact la momentul t0. Ct timp le va lua ca s-i dea seama
c s-a produs o coliziune? Rspunsul la aceast ntrebare este vital pentru determinarea mrimii
perioadei de conflict, deci i a ntrzierii i a productivitii. Timpul minim de detectare a coliziunii
este chiar timpul necesar propagrii semnalului de la o staie la alta.
Bazndu-ne pe acest raionament, am putea crede c o staie care nu detecteaz nici o coliziune
ntr-o perioad de timp egal cu timpul de propagare pe toat lungimea cablului, perioad msurat
de la nceputul transmisiei, poate fi sigur c a ocupat canalul. Prin ocupat nelegem c toate cele-

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

233

lalte staii tiu c ea transmite i nu vor interfera cu ea. Aceast concluzie este greit. S considerm
cazul cel mai defavorabil, descris n urmtorul scenariu. Fie timpul de propagare a semnalului ntre
staiile cele mai ndeprtate. La t0, o staie ncepe s transmit. La t0 + ( - ), cu o clip nainte ca
semnalul s ajung la cea mai ndeprtat staie, aceasta ncepe la rndul ei s transmit. Bineneles,
ea detecteaz coliziunea aproape instantaneu i se oprete, dar scurta rafal de zgomot produs de
coliziune nu se va ntoarce la staia de origine dect dup 2 - . Cu alte cuvinte, n cel mai ru caz, o
staie nu poate fi sigur c a ocupat canalul dect dup ce a transmis timp de 2 fr a detecta vreo
coliziune. Din acest motiv vom modela intervalul de conflict ca un sistem ALOHA cuantificat, cu
dimensiunea cuantei 2. Pe un cablu coaxial de 1 km, 5 s. Simplificnd, vom presupune c fiecare cuant conine un singur bit. Bineneles c, odat ce canalul a fost ocupat, o staie poate transmite cu orice rat dorete, nu neaprat doar 1 bit la 2 sec.
Este important s nelegem c detecia coliziunii este un proces analogic. Echipamentul staiei
trebuie s asculte cablul n timp ce transmite. Dac ceea ce recepioneaz este diferit fa de ceea ce
transmite, nseamn c se produce o coliziune. Aadar, codificarea semnalului trebuie s permit
detectarea coliziunilor (de exemplu, o coliziune a dou semnale de 0 voli poate fi imposibil de detectat). Din acest motiv, de obicei se utilizeaz codificri speciale.
Este de asemenea important de observat c o staie care transmite trebuie s monitorizeze continuu semnalul, s asculte zgomotele care pot indica o coliziune. Din acest motiv, CSMA/CD cu un
singur canal este n mod inerent un sistem jumtate-duplex (half-duplex). Este imposibil ca o staie
s transmit i s primeasc cadre simultan datorit faptului c logica primirii cadrelor este activ,
verificnd coliziunile n timpul fiecrei transmisiuni.
Pentru a evita orice nenelegere, e bine s notm c nici un protocol al subnivelului MAC nu garanteaz o livrare corect a cadrelor. Chiar i n absena coliziunilor, receptorul poate s nu fi copiat
corect cadrul din diverse motive (de exemplu, lips de spaiu n zona tampon, sau o ntrerupere ratat).

CDMA Acces multiplu cu divizarea codului


D-AMPS i GSM sunt sisteme convenionale. Amndou folosesc FDM i TDM pentru a mpri spectrul n canale i canalele n intervale de timp. Mai exist totui un al treilea tip, CDMA
(Code Division Multiple Acces, rom: acces multiplu cu divizarea codului) care funcioneaz complet
diferit. Cnd CDMA a fost propus prima dat, industria i-a rspuns cu aceeai atitudine cu care regina Isabella i-a rspuns lui Columb cnd acesta i-a propus s ajung n India navignd n direcia
opus. Totui, prin insistena unei singure companii, Qualcomm, CDMA s-a maturizat ntr-att nct
nu este doar acceptat, ci este acum vzut ca fiind cea mai bun soluie tehnic disponibil i de baz
pentru sistemele mobile de generaia a treia. De asemenea, n SUA se folosete pe scar larg n
sistemele de generaia a doua, concurnd cu D-AMPS. Spre exemplu, Sprint PCS folosete CDMA,
iar AT&T Wireless folosete D-AMPS. CDMA este descris n standardul internaional IS-95 i uneori este referit cu acest nume. Numele de marc cdmaOne este de asemenea folosit.
CDMA e complet diferit de AMPS, D-AMPS i GSM. n loc s se mpart domeniul de frecvene disponibil n cteva sute de canale mici, CDMA permite fiecrei staii s transmit tot timpul n
tot spectrul. Mai multe transmisii simultane sunt separate folosind teoria codrii. CDMA renun la
ideea c toate cadrele care intr n coliziune sunt total bruiate. n schimb, mai multe semnale recepionate vor fi sumate liniar.
nainte de a prezenta algoritmul, s considerm analogia cu o sal de ateptare a unui aeroport
cu mai multe perechi de oameni discutnd. TDM ar nsemna c toi oamenii sunt n centrul ncperii, dar vorbesc pe rnd. FDM ar nsemna c fiecare om este ntr-un col, fiecare vorbete n acelai
timp cu ceilali, dar independent de ei. CDMA ar nsemna c fiecare persoan este n centrul nc-

146

NIVELUL FIZIC

CAP. 2

perii, toi vorbesc n acelai timp, dar fiecare pereche de vorbitori converseaz ntr-o limb diferit.
Cei ce vorbesc n francez ascult doar ceea ce este n francez, ignornd orice nu este n limba francez. Astfel, cheia CDMA este posibilitatea de a extrage semnalul dorit i de a respinge restul de
semnale. O descriere simplificat a CDMA este prezentat mai jos.
n CDMA durata fiecrui bit este divizat n m intervale scurte numite felii (eng.: chips). n mod
normal sunt 64 sau 128 de felii pe bit, dar n exemplul de mai jos vom folosi doar opt pentru simplificare. Fiecare staie are un cod unic pe m bii numit secven de felii (chip sequence). Pentru a transmite un bit 1, o staie trimite propria secven de felii. Pentru a transmite un bit 0, trimite
complementul fa de unu al secvenei sale de felii. Nici un alt ablon nu este permis. Deci, pentru
m=8, dac staiei A i este asociat secvena 00011011, ea trimite un bit 1 trimind 0001011 i un bit
0 trimind 11100100.
Creterea cantitii de informaie de trimis de la b bii/sec la mb felii/sec se poate face doar dac
lrgimea de band disponibil crete de m ori, fcnd din CDMA o form de comunicaie cu spectru
larg, (presupunnd c nu se fac schimbri n tehnicile de modulaie sau codificare). Dac avem o
band de 1MHz pentru 100 de staii, folosind FDM fiecare ar avea 10 KHz i ar trimite 10Kbps
(presupunnd un bit pe Hz). Cu CDMA, fiecare staie folosete toat banda de 1 MHz, deci rata
feliilor este de 1 Mega pe secund. Cu mai puin de 100 de felii pe bit, lrgimea de band efectiv
pentru fiecare staie este mai mare la CDMA dect la FDM, iar problema alocrii canalului este de
asemenea rezolvat.

Fig.2-45. Secvenele de felii binare pentru patru staii. (b) Secvenele de felii bipolare.
(c) ase exemple de transmisii. (d) Recuperarea semnalului staiei C

SEC. 2.6

SISTEMUL DE TELEFONIE MOBIL

147

Din motive pedagogice, este mai convenabil folosirea unei notaii bipolare, cu 0 binar reprezentat
ca -1 i 1 binar reprezentat ca +1. Vom scrie secvenele de felii n paranteze, deci un bit 1 pentru staia
A devine (-1 -1 -1 +1 +1 -1 +1 +1). n fig. 2-45(a) sunt prezentate secvenele de felii binare asociate
celor patru staii luate ca exemplu. n fig. 2-45(b) ele sunt prezentate n notaia noastr bipolar.
Fiecare staie are propria sa secven de felii. Vom folosi simbolul S pentru a indica vectorul de
m felii pentru staia S, i S pentru negaia sa. Toate secvenele de felii sunt ortogonale pe perechi,
prin aceasta nelegnd c produsul scalar normat al oricror dou secvene distincte de achii S i T
(notat ca ST) este 0. Se cunoate cum se genereaz asemenea secvene de felii ortogonale, folosind
metoda codurilor Walsh. n termeni matematici, ortogonalitatea secvenelor de felii poate fi exprimat dup cum urmeaz:

ST

1 m
SiTi = 0
m i=1

(2-4)

Altfel spus, toate perechile care se pot forma sunt diferite ntre ele. Aceast proprietate de ortogonalitate se va dovedi crucial mai trziu. De notat c dac ST=0 atunci i S T =0. Produsul scalar normat al oricrei secvene de felii cu ea nsi este 1:

SS =

1 m
1 m 2 1 m
=
S
S
S i = (1) 2 = 1
i i m
m i =1
m i =1
i =1

Acest lucru se ntmpl deoarece fiecare din cei m termeni ai produsului scalar este 1 deci suma
este m. De asemenea se observ c S S = -1.
n timpul fiecrui interval de bit, o staie poate s transmit un 1 emind propria secven de felii, sau poate transmite un 0 emind complementul secvenei sale de felii, sau poate s nu transmit
nimic. Pentru moment, vom presupune c toate staiile sunt sincronizate n timp, deci toate secvenele de felii ncep n acelai moment.
Cnd dou sau mai multe staii transmit simultan, semnalele lor bipolare se adun liniar. De
exemplu, dac ntr-un interval de felie trei staii emit +1 i una -1, rezultatul este +2. Putem privi
aceasta ca pe o adunare de tensiuni: trei staii emit +1 volt i o staie emite -1volt, rezultnd 2 voli.
n fig. 2-45(c) avem ase exemple de una sau mai multe staii transmind simultan. n primul
exemplu, C transmite un bit de 1, deci avem doar secvena de felii a lui C. n al doilea exemplu, att
B ct i C transmit bii de 1, deci vom obine suma secvenelor lor de felii bipolare, i anume:
(-1 -1 +1 -1 +1 +1 +1 -1) + (-1 +1 -1 +1 +1 +1 -1 -1) = (-2 0 0 0 +2 +2 0 -2).
n cel de al treilea exemplu, staia A emite un 1 iar staia B emite un 0. Celelalte tac. n al patrulea exemplu, A i C emit cte un bit 1, n timp ce B emite un 0. n al cincilea exemplu, toate cele 4
staii emit cte un bit 1. n final, n ultimul exemplu, A, B i D emit cte un bit 1, n timp ce C emite
un bit 0. S notm c fiecare dintre cele ase secvene, S1 S6, date n fig. 2-45(c), reprezint durata
unui singur bit.
Pentru a reface irul de bii al unei staii individuale, receptorul trebuie s cunoasc dinainte secvena de felii a staiei. El face recuperarea calculnd produsul scalar normat ntre secvena de felii
recepionat (suma liniar a tuturor staiilor care au transmis) i secvena de felii a staiei al crei ir
de bii ncearc s-l refac. Dac secvena de felii recepionat e S i receptorul ncearc s asculte
de la o staie a crei secven de felii e C, atunci va calcula doar produsul scalar normat SC.

148

NIVELUL FIZIC

CAP. 2

Pentru a vedea de ce se ntmpl aa, imaginai-v dou staii A i C, ambele transmind un bit
1 n acelai timp n care B transmite un bit 0. receptorul primete suma S=A+ B +C i calculeaz:
SC= (A+ B +C) C = AC + B C + CC=0+0+1=1

Primii doi termeni dispar, deoarece toate perechile de secvene de felii au fost alese cu grij pentru a fi ortogonale, ca n ecuaia (2-4). Acum ar trebui s fie clar de ce aceast proprietate trebuie
impus secvenelor de felii.
Un alt mod de a gndi relativ la aceast situaie este de a ne imagina toate cele trei secvene de
felii sosite separat, n loc s fie nsumate. Atunci receptorul ar calcula produsul scalar cu fiecare n
parte i ar aduna rezultatele. Datorit proprietii de ortogonalitate, toate produsele scalare n afar
de CC ar fi 0. Adunndu-le i apoi fcnd produsul lor scalar, este de fapt acelai lucru cu calculul
produselor scalare, i adunarea acestora.
Pentru a concretiza procesul de decodificare, s considerm din nou cele ase exemple din fig. 245(c), ilustrat din nou n 2.45(d). S presupunem c receptorul e interesat de extragerea bitului trimis de staia C din fiecare din cele ase sume S1 S6. Se calculeaz acest bit prin nsumarea perechilor de produse ntre vectorul S recepionat i vectorul C din figura2-45(b), lund apoi 1/8 din rezultat
(pentru c n acest caz m=8). Aa cum am artat, de fiecare dat este decodificat bitul corect. Este
ca i cum s-ar fi vorbit franceza.
ntr-un sistem CDMA ideal, fr zgomote, capacitatea (adic numrul de staii) poate fi mrit
orict de mult, aa cum i capacitatea unui canal Nyquist fr zgomote poate fi mrit orict de mult,
prin utilizarea unui numr tot mai mare de bii pe eantion. n practic, limitrile fizice reduc considerabil capacitatea. La nceput, am presupus c toate feliile sunt sincronizate n timp. n realitate,
aceasta este imposibil de realizat. Ceea ce se poate face este ca emitorul i receptorul s se sincronizeze prin expedierea de ctre emitor a unei secvene de felii cunoscute, suficient de lung pentru
ca receptorul s o poat localiza. Astfel, toate celelalte transmisii (nesincronizate) sunt percepute ca
un zgomot aleator. Dac ele nu sunt prea numeroase, algoritmul fundamental de decodificare funcioneaz, totui, destul de bine. Exist mult teorie referitoare la suprapunerea secvenei de felii peste nivelul de zgomot (Pickholtz, i alii 1982). Aa cum v putei atepta, cu ct secvena de felii este
mai lung, cu att este mai mare probabilitatea detectrii ei corecte n prezena zgomotului. Pentru
o mai mare siguran, secvena de bii poate folosi un cod corector de erori. Secvenele de felii nu
folosesc niciodat coduri corectoare de erori.
O presupunere implicit n discuia anterioar este c nivelurile de putere ale tuturor staiilor
sunt aceleai cu cele percepute de receptor. Protocolul CDMA este folosit n mod obinuit pentru
sistemele fr fir cu o staie de baz fix i multe staii mobile la distane variabile de aceasta. Nivelurile de putere, recepionate la staia de baz depind de ct de departe sunt emitorii. n acest caz, o
euristic bun este ca fiecare staie mobil s emit ctre staia de baz la un nivel complementar de
putere fa de cel primit de la staia de baz. Altfel spus, o staie mobil care recepioneaz un semnal slab va folosi mai mult putere dect una care primete un semnal puternic. De asemenea, staia
de baz d comenzi explicite ctre staiile mobile pentru a-i crete/descrete puterea de transmisie.
De asemenea, am presupus c receptorul tie cine este emitorul. n principiu, dat fiind suficient putere de calcul, receptorul poate asculta toi emitorii n acelai timp, prin rularea algoritmului de decodificare pentru fiecare dintre ei n paralel. n viaa real, este de ajuns s spunem c e mai
uor de zis dect de fcut. De asemenea, CDMA are muli ali factori care complic soluia i care
au fost comentai n aceast scurt introducere. Totui, CDMA este o schem inteligent care este
rapid introdus pentru comunicaii mobile fr fir. n mod normal, opereaz ntr-o band de 1.25
MHz (fa de 30 KHz pentru D-AMPS i 200 KHz pentru GSM), dar suport n aceeai band mai
muli utilizatori dect oricare dintre celelalte sisteme. n practic, lrgimea de band disponibil
pentru fiecare utilizator este cel puin la fel de bun ca la GSM i deseori mult mai bun.
Inginerii care doresc s neleag foarte bine CDMA ar trebui s citeasc (Lee i Miller, 1998). O
schem alternativ de mprtiere, n care mprtierea se face n timp, i nu n frecven, este descris n (Crespo et al., 1995). nc o schem este descris n (Sari et al., 2000). Toate aceste referine
necesit ceva cunotine n ingineria comunicaiilor.

238

4.2.5

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Protocoale cu acces multiplu cu divizarea frecvenei

O abordare diferit a problemei alocrii canalului o reprezint mprirea acestuia n subcanale


utiliznd FDM, TDM, sau amndou, i alocarea lor dinamic dup necesiti. Astfel de metode
sunt frecvent utilizate n LAN-urile cu fibr optic pentru a permite ca transmisiuni diferite s utilizeze lungimi de und (adic frecvene) diferite n acelai timp. n aceast seciune vom examina un
astfel de protocol (Humblet .a., 1992).
O cale simpl de construire a unui LAN cu fibr optic este utilizarea unui cuplor pasiv de tip
stea (vezi fig. 2-10). Dou fibre de la fiecare staie intr ntr-un cilindru de sticl. O fibr este pentru
transmisia ctre cilindru iar cealalt pentru transmisia de la cilindru. Emisia de lumin de la oricare
din staii ilumineaz cilindrul i poate fi detectat de toate celelalte staii. Stelele pasive pot cupla
pn la sute de staii.
Pentru a permite transmisiuni multiple simultane, spectrul este divizat n canale (benzi de frecven), ca n fig. 2-24. n acest protocol, WDMA (Wavelength Division Multiple Access, rom: acces
multiplu cu divizarea frecvenei), fiecrei staii i sunt asociate dou canale. Un canal ngust este folosit drept canal de control pentru semnalizarea ctre staie, iar unul larg pentru ca staia s poat
trimite cadre de date prin el.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

239

Fig. 4-10. Acces multiplu cu divizarea frecvenei.

Fiecare canal este mprit n cuante de timp, ca n fig. 4-10. Fie m numrul de cuante ale canalului de control i n + 1 numrul de cuante ale canalului de date, dintre care n sunt pentru date i ultima este utilizat de staie pentru a-i raporta starea (n principal, care dintre cuantele ambelor canale sunt libere). Pe ambele canale secvena de cuante se repet la infinit, cu cuanta 0 marcat special pentru ca cei care iau parte mai trziu la transmisie s o poat detecta. Toate canalele sunt sincronizate de un unic ceas global.
Protocolul suport trei clase de trafic: (1) trafic orientat pe conexiune, cu rat constant de date
(cum este semnalul video necomprimat), (2) trafic orientat pe conexiune, cu rat variabil de date
(cum este transferul de fiiere) i (3) trafic de datagrame, cum sunt pachetele UDP. Pentru cele dou
protocoale orientate pe conexiune, ideea este c dac A vrea s comunice cu B, trebuie s insereze
mai nti un cadru CONNECTION REQUEST (cerere conectare) ntr-o cuant liber de pe canalul
de control al lui B. Dac B accept, comunicaia se poate desfura pe canalul de date al lui A.
Fiecare staie are doi emitori i doi receptori, dup cum urmeaz:
1.
2.
3.
4.

Un receptor cu lungime de und fix pentru ascultarea propriului canal de control.


Un emitor reglabil pentru comunicarea pe canalul de control al altei staii.
Un emitor cu lungime de und fix pentru emisia cadrelor de date.
Un receptor reglabil pentru selectarea emitorului de ascultat.

Cu alte cuvinte, fiecare staie i ascult propriul canal de control pentru cererile care sosesc, dar
trebuie s se regleze pe frecvena emitorului pentru a primi datele. Reglarea frecvenei este realizat cu un interferometru Fabry-Perot sau Mach-Zehnder, care elimin prin filtrare toate frecvenele, cu excepia celei dorite.
S urmrim acum modul n care staia A stabilete un canal de comunicaie de clas 2 cu staia B
pentru, s zicem, un transfer de fiiere. Mai nti, A i regleaz receptorul de date pe frecvena canalului de date al lui B i ateapt cuanta de stare. Aceast cuant precizeaz care cuante de control

240

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

sunt ocupate i care sunt libere. De exemplu, n fig. 4-10 se observ c din cele opt cuante de control
ale lui B, 0, 4 i 5 sunt libere. Restul sunt ocupate (fapt indicat prin cruciulie).
A i alege una din cele trei cuante de control, s zicem 4, i i insereaz mesajul CONNECT
REQUEST n ea. Cum B i ascult permanent canalul de control, vede cererea i o aprob acordnd cuanta 4 lui A. Aceast decizie este anunat n cuanta de stare a canalului de control. Atunci
cnd A vede anunul, va ti c s-a stabilit o conexiune unidirecional. Dac A cerea o conexiune
bidirecional, B ar fi trebuit s repete acelai algoritm cu A.
Este posibil ca n timp ce A cuta s ocupe cuanta 4 de control a lui B, C s fac acelai lucru. Nici
o staie nu o va obine i amndou vor observa eecul urmrind cuanta de stare din canalul de date al
lui B. Ele vor atepta n continuare un interval de timp aleatoriu, dup care vor ncerca din nou.
n acest moment, fiecare staie are o cale fr conflicte pentru trimiterea de scurte mesaje de
control ctre cealalt. Pentru a realiza transferul de fiiere, A va trimite ctre B un mesaj de control,
spunnd, de exemplu, Te rog uit-te la urmtoarea cuant 3 cu date de ieire de la mine. n ea se
afl un cadru de date pentru tine. Cnd B primete mesajul de control, i va regla receptorul pe
canalul de ieire al lui A pentru a citi cadrul de date. Bazndu-se pe un protocol de nivel mai nalt, B
poate utiliza acelai mecanism pentru a trimite napoi o confirmare, dac dorete.
De notat c apare o problem cnd A i C au conexiuni ctre B i fiecare i spune s se uite la cuanta 3. B va alege una dintre ele la ntmplare, iar cealalt transmisie va fi pierdut.
La trafic constant este utilizat o variant a acestui protocol. Atunci cnd A cere o conexiune, ea
spune n acelai timp ceva de genul: este n regul dac i voi trimite cte un cadru n fiecare cuant
3? Dac B poate accepta (adic nu i-a luat nici un angajament pentru cuanta 3), este stabilit o conexiune cu lrgime de band garantat. Dac nu, A poate ncerca din nou cu o alt propunere, n
funcie de cuantele de ieire libere.
Traficul de clas 3 (datagrame) utilizeaz o alt variant. n loc s scrie un mesaj CONNECTION REQUEST n cuanta de control pe care tocmai a gsit-o (4), va scrie un mesaj DATA FOR
YOU N SLOT 3 (n cuanta 3 se afl date pentru tine). Dac B este liber n timpul urmtoarei cuante 3 de date, transmisiunea va reui. Altfel, cadrul de date se va pierde. n acest fel nu vom avea
niciodat nevoie de conexiuni.
Sunt posibile mai multe variante ale ntregului protocol. De exemplu, n loc s i asigurm fiecrei staii propriul canal de control, toate staiile pot partaja un singur canal de control. Fiecrei staii
i este asociat un bloc de cuante n fiecare grup, multiplexnd astfel mai multe canale virtuale ntr-un
singur canal fizic.
De asemenea ne putem descurca cu un singur emitor reglabil i un singur receptor reglabil pe
staie, diviznd canalul fiecrei staii n m cuante de control, urmate de n + 1 cuante de date. Dezavantajul const n faptul c emitorii trebuie s atepte mai mult pentru a obine o cuant de control, iar cadrele de date consecutive vor fi separate din cauza informaiilor de control de pe canal.
Au fost propuse numeroase alte protocoale WDMA, care se deosebesc prin detalii. Unele au un
singur canal de control, altele au mai multe. Unele iau n considerare ntrzierea de propagare, altele
nu; unele consider timpul de reglare a frecvenei ca fcnd parte explicit din model, altele l ignor.
De asemenea protocoalele se deosebesc prin complexitatea prelucrrii, productivitate i scalabilitate.
Cnd sunt folosite un numr ridicat de frecvene sistemul poate fi numit DWDM (Dense Wavelength
Division Multiplexing - acces multiplu dens cu divizarea frecvenei). Pentru mai multe informaii, vezi
(Bogineni .a., 1993; Chen, 1994; Goralski, 2001; Kartopoulos, 1999; Levine i Akyildiz, 1995).

244

4.3

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

ETHERNET

Am terminat acum discuia noastr general despre protocoalele de alocare a canalelor n teorie,
deci este timpul s vedem cum se aplic aceste principii sistemelor reale n particular, LAN-urilor.
Dup cum am discutat n seciunea 1.5.3, IEEE a standardizat un numr de reele locale i metropolitane sub numele de IEEE 802. Cteva au supravieuit, dar nu multe, dup cum am vzut n fig. 138. Unii dintre cei care cred n rencarnare se gndesc c Charles Darwin s-a ntors ca membru al
IEEE Standards Association pentru a elimina reelele neadaptate. Cei mai importani dintre supravieuitori sunt: 802.3 (Ethernet) i 802.11 (LAN fr fir). n ceea ce privete 802.15 (Bluetooth) i
802.16 (MAN fr fir), este prea devreme pentru a ne pronuna. V sftuim s consultai ediia a 5-a
a acestei cri ca s aflai. Att 802.3 i 802.11 au niveluri fizice diferite i subniveluri MAC diferite,
dar ele converg asupra aceluiai subnivel logic de control al conexiunii (LLC) (definit n 802.2), astfel
nct au aceeai interfa cu nivelul de reea.
Am introdus Ethernetul n Sec.1.5.3 i nu vom mai repeta aici aceleai informaii. n continuare
ne vom concentra asupra detaliilor tehnice ale Ethernetului, protocoalele i realizrile recente n
Ethernet-ul de mare vitez (gigabit). Din moment ce Ethernet i IEEE 802.3 sunt aproape identice,
cu excepia a dou detalii minore pe care le vom discuta n curnd, muli oameni folosesc termenii
Ethernet i IEEE 802.3 ca sinonime, astfel nct i noi vom face acelai lucru. Pentru mai multe
informaii despre Ethernet, vezi (Bradley i Riley, 1999; Seifert, 1998; Spurgeon, 2000).

4.3.1

Cablarea Ethernet

ntruct numele Ethernet se refer la cablu (eterul), s pornim discuia noastr de aici. n mod
obinuit, sunt utilizate patru tipuri de cabluri, dup cum se arat n fig. 4-13.
Nume
10Base5

Cablu
coaxial gros

10Base2
10Base-T
10Base-F

coaxial subire
perechi torsadate
Fibr optic

Seg. maxim
500 m

Noduri / seg.
100

185 m
100 m
2000 m

30
1024
1024

Avantaje
Cablul original, n prezent ieit
din uz
Nu este nevoie de hub
Cel mai ieftin sistem
Cel mai bun ntre cldiri

Fig. 4-13. Cele mai obinuite tipuri de cablare Ethernet.

Din punct de vedere istoric, cablul 10Base5, numit popular i Ethernet gros (thick Ethernet), a
fost primul. El se aseamn cu un furtun galben de grdin cu semne la fiecare 2.5 metri pentru a
arta unde vin conectorii (Standardul 802.3 nu impune de fapt cabluri de culoare galben, dar sugereaz acest lucru). Conexiunile cu el sunt fcute n general utiliznd conectori-vampir (vampire
taps), la care un pin este introdus cu mare grij pn n miezul cablului coaxial. Notaia 10Base5
nseamn c funcioneaz la 10 Mbps, utilizeaz semnalizare n banda de baz i poate suporta segmente de pn la 500 metri. Primul numr reprezint viteza n Mbps. Apoi urmeaz cuvntul Base (uneori BASE) pentru a indica transmisia n banda de baz. Exista mai demult o variant n
banda larg, 10Broad36, dar nu s-a impus pe pia i a disprut. n fine, dac mediul de transmisie
este cablul coaxial, lungimea sa apare rotunjit n uniti de 100m dup Base.
Istoric vorbind, al doilea tip de cablu a fost 10Base2, sau Ethernet subire (thin Ethernet), care,
spre deosebire de Ethernet gros ca un furtun de grdin, se ndoaie uor. Conexiunile cu el sunt
fcute utiliznd conectori standard industriali BNC pentru a forma jonciuni n T, mai curnd dect
conectori-vampir. Acetia sunt mai uor de folosit i mai siguri. Ethernetul subire este mult mai
ieftin i mai uor de instalat, dar el poate suporta lungimi ale cablului de maxim 185 de metri pe segment, fiecare segment putnd trata numai 30 de calculatoare.
Detectarea ntreruperilor de cablu, a conectorilor proti sau a conectorilor desprini poate fi o
problem major pentru ambele medii de transmisie. Din acest motiv au fost dezvoltate tehnici
care s le detecteze. n esen, n cablu este injectat un impuls cu o form cunoscut. Dac impulsul
ntlnete un obstacol sau ajunge la captul cablului, va fi generat un ecou care este trimis napoi.
Msurnd cu grij timpul scurs ntre emiterea impulsului i recepionarea ecoului, este posibil

SEC. 4.3

ETHERNET

245

localizarea originii ecoului. Aceast tehnic este numit reflectometrie n domeniul timp (time domain reflectometry).
Problemele asociate cu gsirea ntreruperilor de cablu au condus sistemele ctre un alt tip de
model de cablare, n care toate staiile au un cablu care duce la un concentrator (hub). De obicei,
aceste fire sunt perechi torsadate ale companiei de telefoane, deoarece majoritatea cldirilor cu birouri sunt deja cablate n acest fel i, n mod normal, exist o mulime de perechi disponibile. Aceast strategie se numete 10Base-T. Concentratorii nu pot ine ntr-o memorie tampon traficul pe care
l transfer. Vom discuta mai trziu n acest capitol o versiune mbuntit a acestei idei (comutatoarele), care au mecanisme de pstrare a traficului primit ntr-o memorie tampon.
Aceste trei strategii de cablare sunt ilustrate n fig. 4-14. Pentru 10Base5, n jurul cablului este
prins strns un transiver (transceiver), astfel nct conectorul su face contact cu miezul cablului.
Transiverul conine partea de electronic care se ocup cu detecia purttoarei i cu detecia
coliziunilor. Atunci cnd este detectat o coliziune, transiverul trimite pe cablu un semnal nepermis
special, pentru a se asigura c i celelalte transivere i dau seama c s-a produs o coliziune.

Fig. 4-14. Trei tipuri de cablare 802.3. (a) 10Base5. (b) 10Base2. (c)10Base-T.

La 10Base5, un cablu de transiver (transceiver cable) conecteaz transiverul cu o plac de interfa din calculator. Cablul transiverului poate avea pn la 50 de metri lungime i conine cinci perechi torsadate izolate individual. Dou dintre perechi sunt pentru datele de intrare i respectiv datele de ieire. Alte dou sunt pentru semnalele de control de intrare i de ieire. A cincea pereche, care
nu este ntotdeauna folosit, permite calculatorului s alimenteze electronica transiverului. Pentru a
reduce numrul de transivere necesare, unele transivere permit s le fie ataate pn la opt calculatoare nvecinate.
Cablul transiverului se termin la placa de interfa din interiorul calculatorului. Placa de interfa conine un cip controlor care transmite cadre ctre transiver i recepioneaz cadre de la acesta.
Controlorul este responsabil cu asamblarea datelor n formatul de cadru corespunztor, precum i
cu calculul sumelor de control pentru cadrele trimise i verificarea lor pentru cadrele primite. Unele
cipuri controlor gestioneaz i un set de zone tampon pentru cadrele primite, o coad de zone tampon pentru transmisie, transferurile DMA cu calculatoarele gazd i alte aspecte legate de administrarea reelei.

246

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

La 10Base2, conexiunea cu cablul se face printr-un conector BNC pasiv cu jonciune n T. Electronica transiverului este pe placa controlorului i fiecare staie are ntotdeauna propriul transiver.
La 10Base-T, nu exist nici un cablu, ci doar un concentrator - o cutie plin de electronic. Adugarea sau ndeprtarea unei staii este mai simpl n aceast configuraie, iar ntreruperile cablului
pot fi detectate uor. Dezavantajul lui 10base-T este acela c dimensiunea maxim a cablului care
pleac de la concentrator este de numai 100 de metri, poate chiar 150 de metri, dac sunt folosite
perechi torsadate de foarte bun calitate (categoria 5). De asemenea, un concentrator mare cost
mii de dolari. Totui, 10Base-T devine tot mai popular datorit uurinei de ntreinere. O versiune
mai rapid de 10Base-T (100Base-T) va fi discutat mai trziu n acest capitol.
A patra opiune de cablare pentru 802.3 este 10Base-F, care folosete fibre optice. Aceast alternativ este scump datorit costului conectorilor i a terminatorilor, dar are o imunitate excelent la
zgomot i este metoda care este aleas atunci cnd transmisia se face ntre cldiri sau concentratoare
aflate la distane mari. Sunt permise distante de kilometri. Ofer de asemenea o securitate bun,
deoarece interceptarea traficului de pe o fibr de sticl este mult mai dificil dect ascultarea traficului pe cablul de cupru.
Fig. 4-15 arat diferite moduri de cablare a unei cldiri. n fig. 4-15(a), un singur cablu este erpuit din camer n camer, fiecare staie fiind conectat direct la el n punctul cel mai apropiat. n
fig. 4-15(b), o coloan vertical suie de la parter pn la acoperi, cu cabluri orizontale conectate
direct la ea la fiecare etaj prin amplificatoare speciale (repetoare). n unele cldiri, cablurile orizontale sunt subiri, iar coloana este groas. Cea mai general topologie este cea de arbore, ca n fig. 415(c), deoarece o reea cu dou ci ntre unele perechi de staii poate suferi din cauza interferenei
dintre cele dou semnale.

Fig. 4-15. Topologii de cablu. (a) Liniar. (b) Coloan. (c) Arbore. (d) Segmentat.

Fiecare versiune de 802.3 are o lungime maxim admis de cablu pe segment. Pentru a permite
reele mai mari, mai multe cabluri pot fi conectate prin repetoare (repeaters), aa cum se arat n fig.
4-15(d). Un repetor este un dispozitiv de nivel fizic. El recepioneaz, amplific i retransmite semnale n ambele direcii. n ceea ce privete programarea, o serie de segmente de cablu conectate prin
repetoare nu prezint nici o diferen fa de un singur cablu (cu excepia unei oarecare ntrzieri
introduse de repetoare). Un sistem poate conine segmente de cablu multiple i repetoare multiple,
dar dou transivere nu pot fi la o distan mai mare de 2,5 km i nici o cale ntre oricare dou
transivere nu poate traversa mai mult de 4 repetoare.

SEC. 4.3

4.3.2

ETHERNET

247

Codificarea Manchester

Nici una din versiunile lui 802.3 nu folosete o codificare binar direct, cu 0 voli pentru un bit 0
i 5 voli pentru un bit 1, deoarece aceasta conduce la ambiguiti. Dac o staie trimite irul de bii
00010000, altele l-ar putea interpreta fals ca 10000000 sau 01000000 ntruct nu pot distinge diferena ntre un emitor inactiv (0 voli) i un bit 0 (0 voli). Aceast problem poate fi rezolvat prin
utilizarea valorilor +1V pentru 1 i 1V pentru 0. Totui, aceast soluie nu rezolv problema receptorului care va eantiona semnalul cu o frecven uor diferit de cea pe care emitorul o folosete
ca s-l genereze. Ceasurile diferite pot duce la o desincronizare ntre emitor i receptor n ceea ce
privete graniele biilor, n special dup un ir lung de 0 consecutivi sau de 1 consecutivi.
Ceea ce le trebuie receptorilor este un mijloc de a determina fr dubii nceputul, sfritul i jumtatea fiecrui bit fr ajutorul unui ceas extern. Dou astfel de abordri se numesc codificarea
Manchester (Manchester encoding) i codificarea Manchester diferenial (differential Manchester
encoding). n cazul codificrii Manchester, fiecare perioad a unui bit este mprit n dou intervale egale. Un bit 1 este trimis stabilind un voltaj ridicat n timpul primului interval i sczut n cel de-al
doilea. Un 0 binar este trimis exact invers: nti nivelul sczut iar apoi cel ridicat. Aceast strategie
asigur c fiecare perioad a unui bit are o tranziie la mijloc, uurnd sincronizarea ntre emitor i
receptor. Un dezavantaj al codificrii Manchester este acela c necesit o lrgime de band dubl
fa de codificarea binar direct, deoarece impulsurile au durata pe jumtate. Codificarea
Manchester este prezentat n fig. 4-16(b).

Fig. 4-16. (a) Codificare binar. (b) Codificare Manchester.


(c) Codificare Manchester diferenial.

Codificarea Manchester diferenial, prezentat n fig. 4-16(c), este o variant a codificrii


Manchester clasice. n aceasta, un bit 1 este indicat prin absena tranziiei la nceputul unui interval.
Un bit 0 este indicat prin prezena unei tranziii la nceputul intervalului. n ambele cazuri, exist i o
tranziie la mijloc. Strategia diferenial necesit un echipament mai complex, dar ofer o mai bun
imunitate la zgomot. Toate sistemele 802.3 n banda de baz folosesc codificarea Manchester datorit simplitii sale. Semnalul nalt este de +0.85 voli iar semnalul sczut este de -0.85 voli, dnd o
valoare n curent continuu de 0 voli. Ethernet nu folosete codificarea Manchester diferenial, dar
alte LAN-uri (de exemplu: 802.5 - LAN-urile de tip jeton pe inel) o folosesc.

248

4.3.3

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Protocolul subnivelului MAC Ethernet

Structura cadrului original DIX (DEC, Intel, Xerox) este prezentat n fig. 4-17(a). Fiecare cadru ncepe cu un Preambul (Preamble) de 8 octei, fiecare octet coninnd ablonul de bii
10101010. Codificarea Manchester a acestui ablon furnizeaz o und dreptunghiular de 10 MHz
timp de 6.4 s pentru a permite ceasului receptorului s se sincronizeze cu cel al emitorului. Ceasurile trebuie s rmn sincronizate pe durata cadrului, folosind codificarea Manchester pentru a
detecta graniele biilor.
Cadrul conine dou adrese, una pentru destinaie i una pentru surs. Standardul permite adrese pe 2 i pe 6 octei, dar parametrii definii pentru standardul n banda de baz de 10 Mbps folosesc
numai adrese pe 6 octei. Bitul cel mai semnificativ al adresei destinaie este 0 pentru adresele obinuite i 1 pentru adresele de grup. Adresele de grup permit mai multor staii s asculte de la o singur adres. Cnd un cadru este trimis la o adres de grup, toate staiile din grup l recepioneaz. Trimiterea ctre un grup de staii este numit multicast (trimitere multipl). Adresa avnd toi biii 1
este rezervat pentru broadcast (difuzare). Un cadru coninnd numai bii de 1 n cmpul destinaie
este distribuit tuturor staiilor din reea. Diferena dintre trimitere multipl i difuzare este suficient
de important ca s merite a fi repetat: un cadru de trimitere multipl este trimis unui grup de staii
selectate pe Ethernet; un cadru de difuzare este trimis tuturor staiilor de pe Ethernet. Deci, trimiterea multipl este mai selectiv, dar implic gestiunea grupurilor. Difuzarea este mai imprecis dar
nu necesit nici un fel de gestiune de grup.

Fig. 4-17. Formatul cadrelor. (a) DIX Ethernet. (b) IEEE 802.3.

O alt trstur interesant a adresrii este utilizarea bitului 46 (vecin cu cel mai semnificativ bit)
pentru a distinge adresele locale de cele globale. Adresele locale sunt stabilite de fiecare administrator de reea i nu au semnificaie n afara reelei locale. n schimb, adresele globale sunt asignate de
IEEE pentru a se asigura c oricare dou staii din lume nu au aceeai adres global. Cu 48 - 2 = 46
bii disponibili, exist aproximativ 71013 adrese globale. Ideea este c orice staie poate adresa n
mod unic orice alt staie specificnd numai numrul corect pe 48 de bii. Este sarcina nivelului reea
s-i dea seama cum s localizeze destinatarul.
n continuare urmeaz cmpul Tip (Type), care i spune receptorului ce s fac cu cadrul.
Numeroase protocoale de nivel reea pot fi folosite simultan pe aceeai main, astfel nct, atunci
cnd un cadru Ethernet ajunge, nucleul trebuie s tie cui s-i trimit cadrul. Cmpul Tip specific
procesul cruia i este destinat cadrul.

SEC. 4.3

ETHERNET

249

Apoi urmeaz datele, pn la 1500 de octei. Aceast limit a fost aleas oarecum arbitrar la
momentul n care standardul DIX a fost solidificat, n special din cauza consideraiei c un transiver
are nevoie de suficient RAM ca s conin un cadru ntreg i RAM era scump n 1978. O valoare
mai mare pentru aceast limit ar fi nsemnat mai mult RAM, deci un transiver mai scump.
n afar de faptul c exist o lungime maxim a cadrelor, exist i o lungime minim a cadrelor.
Dei un cmp de date de 0 octei este uneori util, el poate duce la o situaie problem. Cnd un
transiver detecteaz o coliziune, el trunchiaz cadrul curent, ceea ce nseamn c fragmente rzlee
de cadre i bii rtcii apar mereu pe cablu. Pentru a facilita distingerea cadrelor valide de reziduuri,
Ethernet cere ca toate cadrele valide s aib cel puin 64 de octei, incluznd adresa destinaiei i
suma de control. Dac poriunea de date dintr-un cadru este mai mic de 46 de octei, se folosete
cmpul de completare pentru a se ajunge la lungimea minim necesar.
Un alt motiv (i mai important) de a avea o lungime minim a cadrului este de a preveni situaia
n care o staie termin transmisia unui cadru scurt nainte ca primul bit s ajung la captul cel mai
ndeprtat al cablului, unde poate intra n coliziune cu un alt cadru. Aceast problem este ilustrat
n fig. 4-18. La momentul 0, staia A, aflat la un capt al reelei, expediaz un cadru. S notm cu
timpul de propagare al cadrului pn la cellalt capt. Exact nainte de sosirea cadrului la cellalt
capt (adic la momentul - ), cea mai ndeprtat staie fa de A, staia B, ncepe s transmit.
Cnd B observ c primete mai mult putere dect emite, tie c a aprut o coliziune, prin urmare
abandoneaz transmisia i genereaz o rafal de 48 de bii de zgomot pentru a avertiza toate celelalte staii. Aproximativ la momentul 2, emitorul observ apariia zgomotului i i abandoneaz la
rndul su transmisia. Apoi ateapt un timp aleatoriu nainte de a ncerca din nou.

Fig. 4-18. Detectarea coliziunii poate dura 2.

Dac o staie ncearc s transmit un cadru foarte scurt, este posibil s apar o coliziune, dar
transmisia se termin nainte ca zgomotul produs s se ntoarc la momentul 2. Emitorul va ajunge incorect la concluzia c transmisia cadrului s-a ncheiat cu succes. Pentru a preveni apariia acestei situaii, transmisia fiecrui cadru trebuie s ia mai mult de 2. Pentru un LAN la 10 Mbps cu o
lungime maxim de 2500 metri i patru repetoare (conform specificaiei 802.3), durata unei cltorii
dus-ntors (incluznd i timpul necesar propagrii prin cele 4 repetoare) a fost calculat la aproximativ 50 s n cel mai defavorabil caz inclusiv timpul trecerii prin repetoare, care n mod sigur nu este
zero. Prin urmare, transmisia unui cadru minim trebuie s dureze cel puin 50 s pentru a se transmite. La 10 Mbps, un bit dureaz 100 ns, astfel nct cel mai mic cadru trebuie s aib 500 de bii
pentru o funcionare garantat. Pentru a aduga un oarecare spaiu de siguran, acest numr a fost

250

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

mrit la 512 bii, adic 64 de octei. Cadrele cu mai puin de 64 de octei utili sunt completate pn la
64 de octei folosind cmpul de completare.
Pe msur ce viteza reelelor crete, lungimea minim a cadrului trebuie s creasc sau lungimea
maxim a cablului trebuie s scad proporional. Pentru un LAN de 2500 de metri opernd la 1
Gbps, dimensiunea minim a cadrului ar trebui s fie de 6400 de octei. Alternativ, dimensiunea
minim a cadrului ar putea fi de 640 octei, iar distana maxim ntre dou staii de 250 de metri.
Aceste restricii devin din ce n ce mai neplcute pe msur ce ne ndreptm spre reele cu viteze de
ordinul gigabiilor.
Ultimul cmp la 802.3 este Suma de control (Checksum). Aceasta este de fapt un cod de dispersie
pe 32 de bii (32-bit hash-code) a datelor. Dac anumii bii de date sunt recepionai eronat (datorit zgomotului de pe cablu), suma de control va fi aproape sigur greit i va fi detectat o eroare.
Algoritmul sumei de control este un control cu redundan ciclic de tipul celui discutat n cap. 3. El
realizeaz doar detectarea erorilor i nu are legtur cu corectarea lor.
Cnd IEEE a standardizat Ethernetul, comitetul a decis dou schimbri la formatul DIX, dup
cum se vede n fig. 4-17(b). Prima a fost reducerea preambulului la 7 octei, folosind ultimul octet ca
un delimitator de cadru iniial (Start of Frame) pentru compatibilizarea cu 802.4 i 802.5. A doua
schimbare a constat n transformarea cmpului tip ntr-un cmp lungime. Desigur, acum receptorul nu mai tia ce s fac cu un cadru care sosea, dar aceast problem a fost rezolvat prin adugarea unui mic antet poriunii de date, pentru a oferi aceast informaie. Vom discuta formatul poriunii de date cnd ajungem la controlul legturilor logice, mai trziu n acest capitol.
Din pcate, la momentul publicrii lui 802.3, se utilizau deja dispozitive hardware i aplicaii software pentru DIX Ethernet, astfel nct productorii i utilizatorii nu prea erau entuziati s converteasc cmpul tip n cmpul lungime. n 1997 IEEE a capitulat i a declarat c ambele standarde
erau acceptabile. Din fericire, toate cmpurile tip folosite nainte de 1997 erau mai mari de 1500.
Prin urmare, orice numr s-ar afla n acea poziie care este mai mic sau egal cu 1500 poate fi interpretat ca lungime, iar orice numr mai mare dect 1500 poate fi interpretat ca tip. Acum IEEE
poate susine c fiecare i folosete standardul i toat lumea poate s i vad de treab fcnd ce
fceau i nainte, fr s aib remucri.

4.3.4

Algoritmul de regresie exponenial binar

S vedem acum algoritmul prin care se genereaz timpii aleatorii atunci cnd apare o coliziune.
Modelul este cel din fig. 4-5. Dup o coliziune, timpul este mprit n intervale discrete, a cror lungime este egal cu timpul de propagare dus-ntors prin mediu n cazul cel mai defavorabil (2). Pentru a se potrivi cu cea mai lung cale permis de 802.3 (2.5 km i patru repetoare), mrimea cuantei
a fost fixat la 512 intervale de bit, adic 51.2 s dup cum a fost menionat anterior.
Dup prima coliziune, fiecare staie ateapt fie 0, fie 1 cuante nainte s ncerce din nou. Dac
dou staii intr n coliziune i fiecare alege acelai numr aleatoriu, vor intra din nou n coliziune.
Dup a doua coliziune, fiecare ateapt la ntmplare 0, 1, 2 sau 3 cuante. Dac se produce o a treia
coliziune (probabilitatea este de 0.25), atunci, data viitoare, numrul de cuante ateptate va fi ales
aleatoriu din intervalul de la 0 la 23 - 1.
n general, dup i coliziuni, se ateapt un numr aleatoriu de cuante ntre 0 i 2i - 1. Oricum, dup un numr de 10 coliziuni, intervalul de ateptare este ngheat la un maxim de 1023 de cuante.

SEC. 4.3

ETHERNET

251

Dup 16 coliziuni, controlorul arunc prosopul i raporteaz eec calculatorului. Recuperarea ulterioar din situaia de eroare cade n sarcina nivelurilor superioare.
Acest algoritm, numit algoritmul de regresie exponenial binar (binary exponential backoff
algorithm), a fost conceput s se poat adapta dinamic la numrul staiilor care ncearc s transmit. Dac intervalul de generare aleatorie a fost pentru toate coliziunile 1023, ansa ca 2 staii s intre
n coliziune pentru a doua oar este neglijabil, dar timpul mediu de ateptare dup o coliziune ar fi
de sute de cuante, introducnd o ntrziere semnificativ. Pe de alt parte, dac fiecare staie ateapt mereu sau zero sau o cuant, atunci dac 100 de staii ar ncerca s transmit deodat, ele ar intra
n coliziune iar i iar, pn cnd 99 dintre ele aleg 0 i una 1 sau invers. Aceasta ar putea dura ani de
zile. Lsnd intervalul de generare aleatorie s creasc exponenial pe msur ce apar tot mai multe
coliziuni, algoritmul asigur o ntrziere minim cnd se ciocnesc numai cteva staii, dar garanteaz
de asemenea c ciocnirea este rezolvat ntr-un interval rezonabil atunci cnd este vorba de mai
multe staii. Limitarea intervalului la 1023 de cuante previne creterea peste msura a ntrzierilor.
Aa cum am artat pn acum, CSMA/CD nu ofer confirmri. Cum simpla absen a coliziunilor nu garanteaz c biii nu au fost modificai de zgomotul de pe cablu, pentru o comunicaie
sigur, destinaia trebuie s verifice suma de control i, dac este corect, s trimit napoi ctre
surs un cadru de confirmare. n mod normal, din punct de vedere al protocolului, aceast confirmare ar fi doar un alt cadru de date i ar trebui s lupte pentru timp de canal, ca orice cadru de
date. Totui, cu o simpl modificare a algoritmului de tratare a conflictelor s-ar permite o confirmare rapid a recepionrii cadrului (Tokoro i Tamaru, 1977): prima cuant de conflict care urmeaz unei transmisii cu succes ar trebui rezervat pentru staia destinaie. Din nefericire, standardul nu ofer aceast posibilitate.

Aa procedeaz antrenorul unui boxer cnd hotrte ca acesta s abandoneze lupta.

SEC. 4.3

4.3.6

ETHERNET

253

Ethernetul comutat

Pe msur ce la Ethernet sunt adugate tot mai multe staii, traficul va crete. n cele din urm,
LAN-ul se va satura. O cale de ieire din aceast situaie este mrirea vitezei, s zicem, de la 10
Mbps la 100 Mbps. Dar, odat cu creterea n importan a aplicaiilor multimedia, chiar un
Ethernet de 100 Mbps sau 1-Gbps poate deveni saturat.

Fig. 4-20. Un LAN 802.3 comutat.

Din fericire, este posibil o soluie diferit, mai puin drastic: un Ethernet comutat ca cel din fig.
4-20. Inima acestui sistem este un comutator care conine o plac de baz (similar unui fund de
sertar backplane) de mare vitez i, n general, loc pentru 4 pn la 32 de plci de reea plug-in,

k staii gata de transmisie

254

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

fiecare avnd ntre 1 i 8 conectori. Cel mai des, fiecare conector are o conexiune prin perechi torsadate de tip 10Base-T cu un singur calculator gazd.
Atunci cnd o staie dorete s transmit un cadru 802.3, trimite un cadru standard ctre comutator. Placa plug-in care primete cadrul verific dac el este destinat pentru una din celelalte staii
conectate la aceeai plac. Dac da, cadrul este copiat acolo. Dac nu, cadrul este trimis prin placa
de baz a comutatorului (backplane) ctre placa staiei destinaie. Placa de baz a comutatorului
ruleaz n mod obinuit la peste 1 Gbps folosind protocolul proprietar.
Ce se ntmpl dac dou calculatoare legate la aceeai plac plug-in transmit cadre n acelai
timp? Depinde de cum a fost construit placa. O posibilitate este ca toate porturile de pe plac s fie
legate mpreun pentru a forma un LAN local pe plac. Coliziunile din acest LAN pe plac vor fi
detectate i tratate la fel ca orice alt coliziune dintr-o reea CSMA/CD - cu retransmisii utiliznd
algoritmul de regresie binar. Cu acest tip de plac plug-in este posibil o singur transmisie pe plac
la un moment dat, dar toate plcile pot transmite n paralel. Astfel concepute, fiecare dintre plci i
formeaz propriul domeniu de coliziune (collision domain), independent de celelalte.
La cellalt tip de plac plug-in, fiecare port de intrare utilizeaz un registru tampon, astfel nct
cadrele care vin sunt stocate n memoria RAM inclus n plac, pe msur ce sosesc. Aceast concepie permite tuturor porturilor de intrare s recepioneze (i s transmit) cadre n acelai timp,
pentru operare duplex integral (full duplex), n paralel. Odat ce un cadru a fost recepionat n ntregime, placa poate verifica dac el este destinat pentru un alt port de pe aceeai plac, sau pentru
un port aflat la distan. n primul caz, el poate fi transmis direct la destinaie. n cel de-al doilea, el
trebuie transmis prin placa de baz a comutatorului ctre placa corespunztoare. n acest mod, fiecare port este un domeniu de coliziune separat, deci nu se mai produc coliziuni. Adesea, productivitatea ntregului sistem poate fi mbuntit astfel cu un ordin de mrime fa de 10Base-5, care are
un singur domeniu de coliziune pentru ntreg sistemul.
ntruct comutatorul st i ateapt cadre standard Ethernet pe fiecare port de intrare, putem folosi unele porturi drept concentratori. n fig. 4-20, portul din colul din dreapta sus este conectat nu
la o singur staie, ci la un concentrator cu 12 porturi. Pe msur ce cadrele sosesc la concentrator,
ele concureaz pentru canale n mod obinuit, cu apariie de coliziuni i algoritm de regresie binar.
Cadrele transmise cu succes ajung la comutator, unde sunt tratate ca orice cadru de intrare: sunt
ndreptate ctre linia de ieire corect prin placa de baz de vitez mare. Concentratoarele sunt mai
ieftine dect comutatoarele, dar, datorit preurilor n scdere ale comutatoarelor, ele ies treptat din
uz. Totui, mai exist concentratoare rmase motenire.

4.3.7

Ethernet-ul rapid

La nceput, 10 Mbps preau raiul pe pmnt, la fel cum modemurile 1200-bps preau divine utilizatorilor modemurilor acustice de 300 bps. Totui, noutatea s-a uzat rapid. Ca un fel de corolar al
Legii lui Parkinson (Munca se dilat astfel nct s ocupe tot timpul aflat la dispoziie), se prea c
datele se dilat pentru a umple lrgimea de band disponibil. Pentru a crete viteza, diverse grupuri
industriale au propus dou noi LAN-uri optice bazate pe dou inele. Una era numit FDDI (Fiber
Distributed Data Interface, rom: Interfa de Date Distribuit pe Fibr), cealalt se numea canal de
fibr (Fibre Channel). Pentru a scurta o poveste lung, amndou au fost folosite ca i reele de coloan vertebral i nici una nu a reuit s ajung n birourile utilizatorilor finali. n ambele cazuri ma

Este denumit fibre channel i nu fiber channel; autorul documentului era englez

SEC. 4.3

ETHERNET

255

nagementul staiilor era prea complicat, ceea ce ducea la cip-uri complexe i preuri ridicate. Lecia
care trebuia nvat de aici era KISS (Keep it simple, Stupid, rom: Las lucrurile simple, prostule).
n orice caz, eecul LAN-urilor optice n a se impune pe pia a lsat un gol n care au nflorit o
varietate de Ethernet-uri la viteze de peste 10 Mbps. Multe instalaii aveau nevoie de mai mult lrgime de band i prin urmare aveau numeroase LAN-uri de 10 Mbps conectate printr-un labirint de
repetoare, puni, rutere i pori, dei administratorilor de reea li se prea mai degrab c erau conectate cu gum de mestecat i resturi de srm.
n acest mediu IEEE a reconvocat comitetul 802.3 n 1992 cu instruciuni de a produce un LAN
mai rapid. O propunere a fost aceea de a pstra 802.3 exact cum era, dar s-l fac s mearg mai
repede. O alt propunere era s-l refac total astfel nct s i ofere o mulime de noi proprieti,
cum ar fi trafic n timp real i voce digitizat, dar s pstreze vechiul nume (din raiuni de marketing). Dup ceva confruntri, comitetul a decis s pstreze 802.3 aa cum era, dar s-l fac mai rapid.
Cei care susinuser propunerea nfrnt au fcut ceea ce orice indivizi din industria de calculatoare
ar fi fcut n aceste circumstane s-au detaat i au format propriul lor comitet care a standardizat
LAN-ul (n ceea ce va fi versiunea 802.12). ncercarea lor a euat lamentabil.
Comitetul 802.3 a decis s continue cu un Ethernet ameliorat din trei motive principale:
1.
2.
3.

Nevoia de a fi compatibil retroactiv cu LAN-urile Ethernet existente;


Teama c un nou protocol ar putea avea consecine negative neprevzute;
Dorina de a termina treaba nainte ca tehnologia s se schimbe.

Munca a fost fcut rapid (dup standardele comitetului), iar rezultatul, 802.3u, a fost aprobat
oficial de IEEE n iunie 1995. Din punct de vedere tehnic, 802.3u nu este un standard nou, ci o adugire la standardul 802.3 existent (pentru a accentua compatibilitatea cu versiunile anterioare). Din
moment ce toat lumea l denumete Ethernet rapid (Fast Ethernet), n loc de 802.3u, l vom denumi i noi la fel.
Ideea de baz din spatele Ethernetului rapid era simpl: pstreaz vechile formate de cadre, interfeele i regulile procedurale, dar reduce durata bitului de la 100 ns la 10 ns. Din punct de vedere
tehnic, ar fi fost posibil s copieze fie 10Base-5 sau 10Base-2 i s detecteze n continuare coliziunile
la timp pur i simplu reducnd lungimea maxim a cablului cu un factor de 10. Totui, avantajele
cablrii 10Base-T erau att de copleitoare, nct Ethernetul rapid este bazat n ntregime pe acest
design. Prin urmare, toate sistemele de Ethernet rapid folosesc concentratoare i comutatoare; cabluri multipunct cu conectori vampir sau BNC nu sunt permise.
Totui, rmn cteva alegeri de fcut, dintre care cea mai important este ce tip de cabluri s fie
suportate. Un concurent era cablul torsadat categoria 3. Argumentul pro era c practic fiecare birou
n lumea occidental are cel puin patru cabluri rsucite categoria 3 (sau mai mult) care l conecteaz
cu un centru de conexiuni telefonice la cel mult 100 m distan. Uneori exist dou astfel de cabluri.
Prin urmare, folosind cablurile torsadate categoria 3 ar fi fcut posibil conectarea calculatoarelor de
birou la Ethernet fr s fie necesar recablarea cldirii, un avantaj enorm pentru multe organizaii.
Principalul dezavantaj al cablurilor torsadate categoria 3 este incapacitatea lor de a transmite
semnale de 200 megabaud (100Mbps cu codificare Manchester) pe o lungime de 100 de metri, care
este distana maxim de la calculator la concentrator specificat pentru 10Base-T (vezi fig. 4-13).
Dimpotriv, cablurile torsadate categoria 5 fac fa uor distanelor de 100 m, iar fibra face fa unor
distane mult mai mari. Compromisul la care s-a ajuns a fost s permit toate trei posibilitile, dup
cum reiese din fig. 4-21, ca s se mbunteasc soluia de categorie 3 pentru a-i oferi capacitatea
adiional de transportare de care avea nevoie.

256
Nume
100Base-T4
100Base-TX
100Base-FX

SUBNIVELUL DE ACCES LA MEDIU


Cablu
Cablu torsadat
Cablu torsadat
Fibr de sticl

Segment maxim
100 m
100 m
2000 m

CAP. 4

Avantaje
Folosete UTP categoria 3
Full duplex la 100 Mbps (UTP Cat 5)
Full duplex la 100 Mbps; distane lungi

Fig. 4-21. Cablarea original a Ethernet-ului rapid.

Schema de categorie 3 UTP, numit 100Base-T4, folosete o vitez de semnalizare de 25MHz,


cu numai 25% mai rapid dect Ethernetul standard de 20MHz (amintii-v de codificarea
Manchester care, dup cum reiese din fig. 4-16, necesit dou rotaii de ceas pentru fiecare dintre cei
10 milioane de bii pe secund). Totui, pentru a obine lrgimea de band necesar, 100Base-T4
necesit patru perechi rsucite. Deoarece cablarea telefonic standard include de decenii patru perechi torsadate per cablu, majoritatea birourilor sunt capabile s fac fa. Desigur, nseamn s renuni la telefonul din birou, dar acesta este un pre mic pentru un e-mail mai rapid.
Din cele patru perechi torsadate una merge ntotdeauna ctre concentrator, una vine de la concentrator, iar celelalte dou sunt comutabile n direcia transmisiunii curente. Codificarea Manchester
nu poate fi folosit din cauza cerinelor de lrgime de band, dar date fiind ceasurile moderne i distanele scurte, nici nu mai este necesar. n plus, sunt trimise semnale ternare, astfel nct n timpul
unei singure rotaii de ceas cablul poate conine un 0, un 1 sau un 2. Avnd trei perechi torsadate n
direcia nainte i cu semnalizare ternar, exist 27 de simboluri posibile, i deci se pot trimite 4 bii
cu o oarecare redundan. Transmiterea a 4 bii n fiecare dintre cele 25 de milioane de rotaii de ceas
pe secund ofer cei 100Mbps necesari. n plus, exist ntotdeauna un canal invers de 33.3Mbps care
folosete perechea torsadat rmas. Aceast schem, cunoscut ca i 8B/6T (8 bii mapai pe 6 trii),
nu este cea mai elegant din lume, dar funcioneaz cu cablarea existent.
Pentru cablarea de categorie 5, designul 100Base-TX este mai simplu deoarece cablurile fac fa
frecvenelor de ceas de 125MHz. Numai 2 perechi torsadate sunt folosite una ctre concentrator, i
alta dinspre el. Codificarea binar direct nu este folosit, ci n locul ei se afl o schem numit 4B/5B.
Este preluat din FDDI i este compatibil cu el. Fiecare grup de cinci rotaii de ceas, avnd fiecare
una dintre cele dou valori ale semnalului, genereaz 32 de combinaii. 16 dintre acestea sunt folosite
pentru a transmite grupurile de bii 0000, 0001, 0010, ...., 1111. Din restul de 16, unele sunt folosite n
scopuri de control, cum ar fi marcarea granielor cadrelor. Combinaiile folosite au fost alese cu grij,
astfel nct s ofere suficiente tranziii pentru a menine sincronizarea ceasului. Sistemul 100Base-TX
este integral duplex: simultan, staiile pot transmite date la 100Mbps i pot primi date la 100Mbps.
Deseori oamenii se refer la 100Base-TX i la 100Base-T4 cu denumirea comun 100Base-T.
Ultima opiune, 100Base-Fx, folosete dou linii de fibr multimod, una pentru fiecare direcie,
astfel nct sistemul este, de asemenea, integral duplex, cu 100Mbps n fiecare direcie. n plus, distana dintre o staie i concentrator poate ajung pn la 2 km.
n 1997, comitetul a adugat, la cerere, un nou tip de cablu, 100Base-T2, permind Ethernetului
rapid s funcioneze peste dou perechi de cablu de categoria 3 deja existente. Totui, este nevoie de
un procesor complicat de semnale digitale pentru a face fa schemelor de codificare, aa c aceast
opiune este destul de scump. Pn acum nu prea a fost utilizat, datorit complexitii, costului, i
faptului c multe cldiri de birouri au fost deja recablate cu categoria 5 UTP.
100Base-T face posibile dou tipuri de sisteme de interconectare: concentratoare i comutatoare,
dup cum reiese din fig. 4-20. ntr-un concentrator, toate liniile care sosesc (sau cel puin toate liniile
care ajung la o plac de extensie logic, formeaz un singur domeniu de coliziune. Toate regulile
standard pot fi aplicate, incluznd algoritmul de regresie exponenial binar, astfel nct sistemul

SEC. 4.3

ETHERNET

257

funcioneaz exact ca Ethernetul de mod veche. n particular, o singur staie poate s transmit la
un moment dat. Cu alte cuvinte, concentratoarele au nevoie de comunicaii semi-duplex.
ntr-un comutator, fiecare cadru care sosete este inut ntr-o memorie tampon ntr-o plac de
extensie i transmis printr-o plac de baz de mare vitez de la placa surs la placa destinaie, dac
este nevoie. Aceast plac de baz a comutatorului nu a fost standardizat, i nici nu trebuie s fie,
din moment ce este cu desvrire ascuns n interiorul comutatorului. Conform experienelor precedente este foarte probabil c vnztorii de comutatoare vor intra ntr-o concuren acerb pentru
a produce plci de baz tot mai rapide i pentru a mbunti performana sistemului. Deoarece
cablurile 100Base-FX sunt prea lungi pentru algoritmul normal de coliziune, ele trebuie s fie conectate la comutatoare, astfel nct fiecare este un domeniu de coliziune distinct. Concentratoarele nu
sunt permise n 100Base-FX.
Ca observaie final, practic toate comutatoarele pot face fa unui mix de staii 10 Mbps i 100
Mbps, pentru a facilita modernizarea. Pe msur ce un site obine tot mai multe staii de 100 Mbps,
tot ceea ce trebuie s fac este s cumpere numrul necesar de plci de extensie noi i s le insereze
n comutator. De fapt, standardul nsui ofer o cale astfel nct dou staii s negocieze automat
viteza optim (10 sau 100Mbps) i modul de comunicaie (semi-duplex sau duplex integral). Majoritatea produselor de Ethernet rapid folosesc aceast caracteristic pentru a se autoconfigura.

4.3.8

Ethernetul Gigabit

De-abia se uscase cerneala pe standardul Ethernetului rapid cnd comitetul 802 a nceput s lucreze la un Ethernet i mai rapid (1995). A fost numit imediat Ethernet gigabit (Gigabit Ethernet) i
a fost ratificat de IEEE n 1998 sub numele 802.3z. Aceast notaie sugereaz c Ethernetul gigabit
va fi sfritul liniei, n afar de cazul n care cineva inventeaz rapid o nou liter dup z. Vom discuta mai jos cteva dintre caracteristicile de baz ale Ethernetului gigabit. Mai multe informaii pot fi
gsite n (Seifert, 1998). Scopurile comitetului 802.3z erau practic aceleai cu ale comitetului 802.3u:
s fac Ethernetul de 10 ori mai rapid, astfel nct s rmn totui compatibil cu toate versiunile
anterioare. n particular, Ethernetul gigabit trebuia s ofere suport pentru transferul fr confirmare
a datagramelor att pentru difuzare ct i pentru trimitere multipl, s foloseasc aceeai schem de
adresare de 48 de bii care era deja n uz, i s menin acelai format al cadrelor, inclusiv dimensiunile minime i maxime ale acestora. Standardul final a reuit s ndeplineasc toate aceste scopuri.

Fig. 4-22. (a) Un Ethernet cu dou staii. (b) Un Ethernet cu mai multe staii.

258

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Toate configuraiile Ethernetului gigabit sunt punct-la-punct mai degrab dect multipunct, ca i
n standardul original 10 Mbps, acum onorat cu denumirea de Ethernet clasic. n cea mai simpla
configuraie Ethernet, ilustrat n fig. 4-22(a), dou calculatoare sunt conectate direct unul cu altul.
Situaia mai frecvent este totui aceea n care exist un concentrator sau un comutator conectat la
mai multe calculatoare, i la alte concentratoare sau comutatoare adiionale, ca n fig. 4-22(b). n
ambele configuraii, fiecare cablu individual de Ethernet conecteaz exact dou sisteme nici mai
multe, nici mai puine.
Ethernetul Gigabit suport dou moduri diferite de operare: modul duplex integral i modul
semi-duplex. Modul normal este cel duplex integral, care permite traficul n ambele direcii n acelai timp. Acest mod este folosit atunci cnd exist un comutator central la care sunt conectate calculatoarele (sau alte comutatoare) de la periferie. n aceast configuraie, toate liniile sunt prevzute
cu spaii tampon astfel nct fiecare calculator i fiecare comutator sunt libere s transmit cadre
oricnd doresc. Emitorul nu trebuie s verifice canalul ca s vad dac este utilizat de altcineva,
deoarece conflictele sunt imposibile. Pe linia dintre un calculator i un comutator, calculatorul este
singurul emitor posibil ctre acel comutator i transmisia va reui chiar i n cazul n care comutatorul transmite n acelai timp un cadru ctre calculator, deoarece linia este duplex. Din moment ce
conflictele sunt imposibile, protocolul CSMA/CD nu este utilizat, astfel nct lungimea maxim a
cablului este determinat de argumente referitoare la intensitatea semnalului, i nu de considerente
referitoare la durata maxim a propagrii zgomotului unei ciocniri ctre emitor. Comutatoarele
sunt libere s amestece i s potriveasc vitezele. Autoconfigurarea este suportat la fel ca n
Ethernetul rapid.
Cellalt mod de operare, semi-duplex, este folosit cnd calculatoarele sunt conectate la un concentrator mai degrab dect la un comutator. Un concentrator nu stocheaz cadrele care vin ntr-un
spaiu tampon. n loc s fac asta, el conecteaz electric toate liniile n interior, simulnd cablul multipunct folosit n Ethernetul clasic. n acest fel, exist posibilitatea s apar coliziuni, astfel nct standardul CSMA/CD este necesar. Din cauz c un cadru de lungime minim (adic de 64 de octei)
poate fi transmis acum de 100 de ori mai rapid dect n Ethernetul clasic, distana maxim este de 100
de ori mai mic adic de 25 de metri, pentru a menine proprietatea esenial c emitorul mai
transmite nct atunci cnd zgomotul ajunge napoi la el, chiar i n cel mai ru caz. Cu un cablu lung
de 2500 de metri, emitorul unui cadru de 64 de octei la 1Gbps va fi terminat de mult nainte ca
drumul parcurs de cadru s fie mcar o zecime din ct are de mers fr s mai socotim i returul.
Comitetul 802.3z a considerat c o raz de 25 de metri este inacceptabil i a adugat dou caracteristici standardului pentru a mri raza. Prima caracteristic, numit extinderea de ctre purttor,
se refer practic la a spune dispozitivului hardware s realinieze cadrul, mrindu-l pn la 512 octei.
Din moment ce aceast completare este adugat de dispozitivul hardware emitor i este nlturat de dispozitivul hardware receptor, partea software nu este contient de existena sa, i prin urmare nu trebuie s sufere modificri. Desigur, transmiterea a 512 octei de lrgime de band pentru a
transmite 46 octei de date ale utilizatorului (ncrctura propriu-zis a cadrului de 64 de octei) are
o eficien de transmitere de 9%.
A doua caracteristic, denumit cadre n rafal (frame bursting), permite unui transmitor s
trimit o secven concatenat de cadre multiple ntr-o singur transmisie. Dac rafala total este
mai mic de 512 octei, dispozitivul hardware o completeaz din nou pn la 512 octei. Dac sunt
destule cadre care ateapt s fie transmise, aceast schem este foarte eficient i este preferat
extinderii de ctre purttor. Aceste noi caracteristici extind raza la 200 de metri, ceea ce probabil
este suficient pentru majoritatea birourilor.

SEC. 4.3

259

ETHERNET

Ca s fim sinceri, este destul de greu s ne imaginm o organizaie trecnd prin toate dificultile
cumprrii i instalrii plcilor de Ethernet gigabit pentru a obine o performan ridicat, i apoi
conectnd calculatoarele printr-un concentrator pentru a simula Ethernetul clasic cu toate coliziunile sale. Dei concentratoarele sunt oarecum mai ieftine dect comutatoarele, plcile de Ethernet
gigabit sunt totui scumpe. S faci economii prin cumprarea unui concentrator ieftin i astfel s
reduci performana noului sistem este o prostie. Totui, compatibilitatea cu versiunile anterioare
este sacr n industria calculatoarelor, astfel nct comitetul 802.3z a trebuit s se conformeze.
Ethernetul gigabit suport att cablarea cu cupru ct i cablarea cu fibr, precum este descris n
fig. 4-23. Semnalizarea la nivelul de 1Gbps sau n jurul acestei viteze, nseamn c sursa de lumin
trebuie s fie nchis i deschis n mai puin de 1ns. LED-urile pur i simplu nu pot lucra att de rapid, astfel nct este nevoie de lasere. Dou lungimi de und sunt permise: 0.85 microni (scurt) i 1.3
microni (lung). Laserele de 0.85 microni sunt mai ieftine dar nu funcioneaz pe fibra mono-mod.
Nume

Cablu

1000Base-SX
1000Base-LX
1000Base-CX
1000Base-T

Fibr de sticl
Fibr de sticl
2 perechi de STP
4 perechi de UTP

Segment
maxim
550 m
5000 m
25 m
100 m

Avantaje
Fibr multimod (50 i 62,5 microni)
Mono-mod (10) sau multimod (50 i 62,5 )
Pereche torsadat ecranat
UTP Categoria 5

Fig. 4-23. Cablarea pentru Ethernet gigabit.

Sunt permise trei diametre de fibr: 10, 50 i 62,5 microni. Prima este pentru mono-mod i celelalte dou sunt pentru multimod. Nu toate cele ase combinaii sunt permise, totui, iar distana maxim depinde de combinaia folosit. Numerele date n fig. 4-23 se refer la cazul cel mai fericit. n
particular, 5000 de metri pot fi obinuii numai dac lasere de 1,3 microni opereaz pe fibr de 10
microni mono-mod, dar aceasta este cea mai bun alegere pentru structurile vertebrale din campusuri i este de ateptat s fie popular, dei este i cea mai scump alegere.
Opiunea 1000Base-CX folosete cabluri de cupru scurte i protejate. Problema sa este c se afl
n concuren cu versiunea cu fibr de nalt performan prezentat mai sus i cu versiunea ieftin
UTP de mai jos. Este destul de puin probabil s fie folosit la scar larg, n cele din urm.
Ultima opiune se refer la smocuri de patru cabluri UTP de categoria 5 lucrnd mpreun. Deoarece aceste cabluri sunt deja instalate n multe cazuri, este probabil c acest Ethernet gigabit va fi
cel adoptat de clienii cu buzunare strmte.
Ethernetul gigabit folosete reguli noi de codificare pe fibre. Codificarea Manchester la 1 Gbps
ar ave anevoie de un semnal de 2 Gbaud, care a fost considerat foarte dificil i de asemenea foarte
risipitor n ceea ce privete banda. A fost aleas n loc o nou schem, numit 8B/10B, bazat pe
canale de fibr. Fiecare octet de 8 bii este codificat pe fibr ca 10 bii, de unde i denumirea de
8B/10B. Din moment ce exist 1024 cuvinte de cod de ieire pentru fiecare octet de intrare, exista un
oarecare spaiu de alegere n ceea ce privete cuvintele care s fie permise. Urmtoarele dou reguli
au fost folosite pentru a lua o decizie:
1.
2.

Nici un cuvnt de cod nu poate avea mai mult de patru bii identici la rnd;
Nici un cuvnt de cod nu poate avea mai mult de ase de 0 sau ase de 1.

Aceste alegeri urmreau s pstreze destule transmisiuni pe flux pentru a se asigura c receptorul rmne sincronizat cu emitorul, i de asemenea pentru a pstra numrul de 0-uri i de 1-uri pe
fibr pe ct posibil egale ntre ele. n plus, pentru muli octei de intrare exist dou cuvinte de cod

260

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

care pot fi atribuite. Cnd codificatorul are de fcut o alegere, va alege ntotdeauna varianta care va
egaliza numrul de 0 i 1 transmii pn la momentul respectiv. Accentul este pus pe echilibrarea 0urilor i 1-urilor pentru a pstra componenta continu a semnalului la un nivel ct mai sczut cu putin i pentru a-i permite s treac nemodificat prin transformatoare. Dei cercettorii n domeniul
calculatoarelor nu sunt prea ncntai de faptul c proprietile transformatoarelor le dicteaz schemele de codificare, aa se ntmpl n via uneori.
Ethernetul gigabit care folosete 1000Base-T utilizeaz o schem diferit de codificare deoarece
sincronizarea datelor pe un cablu de cupru ntr-un interval de 1ns este prea dificil. Aceast soluie
folosete patru cabluri torsadate de categorie 5 pentru a permite unui numr de 4 simboluri s fie
transmise n paralel. Fiecare simbol este codificat folosind unul din cele cinci niveluri de voltaj.
Aceast schem permite ca un singur simbol s fie codificat 00, 01, 10, 11 sau cu o valoare special n
scop de control. Prin urmare, exist doi bii de date per pereche torsadat, sau 8 bii de date per ciclu
de ceas. Ceasul funcioneaz la 125 MHz, permind operarea la 1 Gbps. Motivul pentru care sunt
permise cinci niveluri de voltaj n loc de patru este necesitatea de a avea combinaii rmase disponibile n scopuri de control i delimitare.
O vitez de 1 Gbps este destul de mare. De exemplu, dac un receptor este ocupat cu o alt sarcin chiar pentru 1 ms i nu golete spaiul tampon de pe vreo linie, pn atunci este posibil s se fi
acumulat chiar i 1953 cadre, n acel interval de 1 ms. De asemenea, dac un calculator care folosete Ethernet gigabit transmite date unui calculator care folosete Ethernet clasic, este foarte probabil
ca memoria tampon a celui din urm s fie epuizat, iar cadrele urmtoare s fie pierdute. Ca o consecin a acestor dou observaii, Ethernetul gigabit suport fluxuri de control (ca i Ethernetul rapid, dei cele dou sunt diferite).
Flux de control nseamn c un capt trimite un cadru special de control ctre cellalt capt,
spunndu-i s ia o pauz pentru o anumit perioad de timp. Cadrele de control sunt n general cadre Ethernet avnd tipul 0x8808. Primii doi octei din cmpul de date dau comanda; urmtorii octei
ofer parametrii, dac exist vreunul. Pentru fluxul de control sunt folosii cadre PAUSE, n care
parametrii specific lungimea pauzei, n uniti de durat minim a cadrului. Pentru Ethernetul
gigabit unitatea de timp este de 512 ns, permind pauze de maxim 33,6 ms.
Imediat dup ce Ethernetul gigabit a fost standardizat, comitetul 802 s-a plictisit i i dorea s
treac napoi la treab. IEEE le-a spus s nceap s lucreze la un Ethernet de 10-gigabit. Dup ce
au cutat ndelung o liter care s-i urmeze lui z, au abandonat aceast abordare i au trecut la sufixe
din dou litere. S-au apucat de treab i standardul a fost aprobat de IEEE n 2002 ca 802.3ae. Oare
ct de departe poate fi Ethernetul de 100-gigabit?

4.3.9

IEEE 802.2: Controlul legturilor logice

Acum este momentul s ne ntoarcem la discuiile anterioare i s comparm ce am nvat n


acest capitol cu ce am studiat n capitolul precedent. n cap. 3 am vzut cum dou calculatoare pot
comunica sigur printr-o linie nesigur folosind diferite protocoale de legturi de date. Aceste protocoale ofereau controlul erorilor (prin mesaje de confirmare) precum i controlul fluxului de date
(folosind o fereastr glisant).
Dimpotriv, n acest capitol nu am vorbit deloc despre comunicaii stabile. Tot ceea ce ofer
Ethernetul, ca i celelalte protocoale 802, este un serviciu datagram de tipul best-effort (cea mai
bun ncercare). Uneori, acest serviciu este adecvat. De exemplu, n cazul transportrii pachetelor

SEC. 4.3

ETHERNET

261

IP, nu sunt cerute i nici mcar nu sunt ateptate garanii. Un pachet IP poate s fie inserat ntr-un
cmp de informaie util 802 i trimis ncotro o fi. Dac se pierde, asta e.
Totui, exist i sisteme n care este de dorit un protocol de legtur de date cu control al erorilor
i al fluxului. IEEE a definit un astfel de protocol care poate funciona peste Ethernet i peste celelalte protocoale 802. Mai mult, acest protocol, numit LLC (Logical Link Control, rom: controlul
legturilor logice), ascunde diferenele ntre diferitele tipuri de reele 802, oferind un singur format
i o singur interfa pentru nivelul reea. Formatul, interfaa i protocolul sunt bazate ndeaproape
pe protocolul HDLC, pe care l-am studiat n cap. 3. LLC formeaz jumtatea superioar a nivelului
legtur de date, avnd nivelul MAC dedesubt, dup cum se vede n fig. 4-24.

Fig. 4-24. (a) Poziia LLC. (b) Formatul protocoalelor.

Utilizarea tipic a LLC este prezentat n continuare. Nivelul reea de pe calculatorul emitor
trimite un pachet ctre LLC, folosind primitivele de acces LLC. Subnivelul LLC adaug apoi un
antet LLC, coninnd numere care indic secvena i mesajul de confirmare. Structura rezultat este
inserat apoi n cmpul de informaie util al unui cadru 802 i apoi transmis. Cnd cadrul ajunge la
receptor se desfoar procesul invers.
LLC ofer trei opiuni de servicii: servicii pentru datagrame nesigure, confirmarea serviciului de
datagrame, i un serviciu sigur orientat spre conexiuni. Antetul LLC conine trei cmpuri: un punct
de acces de destinaie, un punct de acces surs i un cmp de control. Punctul de acces spune din
partea crui proces a sosit cadrul i unde trebuie transportat, nlocuind cmpul tip DIX. Cmpul
de control conine numere de secven i de confirmare, n stilul lui HDLC (vezi fig. 3-24), dar nu
identic cu acesta. Aceste cmpuri sunt folosite n principal atunci cnd este necesar o conexiune
stabil la nivelul legtur de date, caz n care ar fi folosite protocoale similare cu cele discutate n
cap. 3. Pentru Internet, ncercrile de a transmite pachete IP fr garanii sunt suficiente, astfel nct
nu este nevoie de confirmri la nivelul LLC.

4.3.10 Retrospectiva Ethernetului


Ethernetul funcioneaz deja de 20 de ani i nc nu exist competitori serioi, aa c probabil va
mai funciona nc muli ani. Puine arhitecturi CPU, sisteme de operare sau limbaje de programare au
dominat scena pentru dou sau trei decenii. Evident, Ethernetul a fcut ceva cum trebuie. Ce anume?
Probabil c motivul principal al longevitii sale este c Ethernetul este simplu i flexibil. Din
punct de vedere practic simplu nseamn: stabil, ieftin, i uor de ntreinut. Odat ce conectorii
vampir au fost nlocuii de conectori BNC, eecurile au devenit extrem de rare. Oamenii ezit s
nlocuiasc ceva ce merge perfect tot timpul, mai ales cnd tiu c o grmad de lucruri din industria

262

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

calculatoarelor merg foarte prost, astfel nct multe dintre aa numitele mbuntiri funcioneaz
semnificativ mai prost dect versiunea pe care au nlocuit-o.
Simplu nseamn de asemenea ieftin. Ethernetul subire i cablarea cu cabluri torsadate sunt relativ ieftine. Plcile de reea nu sunt nici ele scumpe. Doar cnd au fost introduse concentratoarele i
comutatoarele au fost necesare investiii substaniale, dar n momentul n care acestea au aprut n
peisaj, Ethernetul era deja solid stabilit.
Ethernetul este uor de ntreinut. Nu trebuie instalat nici un software (n afara driver-elor) i nu
exist tabele de configuraii care s trebuiasc administrate (i astfel s fie un prilej de greeli). De
asemenea, adugarea unor noi staii nu nseamn nimic mai mult dect introducerea unui cablu n
placa lor de reea.
Un alt aspect este faptul c Ethernetul se integreaz uor cu TCP/IP, care a devenit dominant. IP
este un protocol fr conexiune, ceea ce se potrivete perfect cu Ethernetul, care nici el nu este orientat pe conexiune. De exemplu, IP se potrivete mult mai greu cu ATM, care este orientat spre
conexiune i aceast nepotrivire este un dezavantaj serios n impunerea ATM.
n cele din urm, Ethernetul a fost capabil s evolueze n anumite aspecte cruciale. Vitezele au
crescut cu cteva ordine de mrime, au fost introduse concentratoarele i comutatoarele, iar aceste
schimbri nu au necesitat schimbarea interfeelor software. Dac un vnztor din domeniul reelelor
v arat o instalaie ampl i v spune am aceast nou reea fantastic pentru Dvs. Tot ce trebuie
s facei este s v aruncai tot hardware-ul i s v rescriei tot software-ul, atunci are o problem.
FDDI, Canal de fibr i ATM au fost toate mai rapide dect Ethernetul cnd au fost introduse, dar
erau incompatibile cu Ethernetul, mult mai complexe i mai dificil de administrat. n cele din urm
Ethernetul le-a ajuns din urm n ceea ce privete viteza, astfel nct, rmase fr nici un avantaj, au
murit n tcere cu excepia ATM care este folosit n interiorul sistemului de telefonie.

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

285

4.7. COMUTAREA LA NIVELUL LEGTURII DE DATE


Multe organizaii au mai multe LAN-uri i doresc s le conecteze. LAN-urile pot fi conectate
prin dispozitive numite puni (bridges), care opereaz la nivelul legturii de date. Punile examineaz adresele de la nivelul legturii de date pentru a face rutarea. ntruct ele nu trebuie sa examineze
cmpurile cu informaie util ale cadrelor pe care le ruteaz, ele pot transporta pachete IPv4 (utilizate acum n Internet), IPv6 (vor fi utilizate n Internet n viitor), AppleTalk, ATM, OSI, sau orice alt
fel de pachete. Spre deosebire de puni, ruterele examineaz adresele din pachete i fac rutarea pe
baza acestora. Dei aceasta pare o departajare clar ntre puni i rutere, cteva mbuntiri de ultim ora, precum apariia Ethernetului comutat, au complicat i mai mult lucrurile, cum vom vedea
mai trziu. n capitolele care urmeaz ne vom ocupa de puni i comutatoare, n special pentru conectarea diferitelor LAN-uri 802. Pentru o tratare cuprinztoare a punilor, comutatoarelor i a altor
subiecte nrudite, vezi (Perlman,1992).
nainte de a intra n tehnologia punilor, merit s aruncm o privire asupra ctorva situaii obinuite n care acestea sunt folosite. Vom meniona ase motive pentru care o singur organizaie poate ajunge s aib LAN-uri multiple. n primul rnd, multe universiti i departamente ale unor corporaii au propriile lor LAN-uri, n principal pentru a-i conecta calculatoarele personale, staiile de
lucru i serverele. Deoarece scopurile departamentelor difer, departamente diferite vor alege

286

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

LAN-uri diferite, separat de ceea fac alte departamente. Mai devreme sau mai trziu, este nevoie de
interaciune, deci este nevoie de puni. n acest exemplu, LAN-urile multiple au aprut datorit autonomiei proprietarilor lor.
n al doilea rnd, organizaia poate fi rspndit geografic n mai multe cldiri separate aflate
la distane considerabile. Poate fi mai ieftin soluia cu LAN-uri separate n fiecare cldire, conectate prin puni i legturi n infrarou, dect soluia cu ntinderea unui singur cablu coaxial pe ntreaga suprafa.

Fig. 4-39. LAN-uri multiple conectate printr-o coloan vertebral pentru a trata
un trafic total mai mare dect capacitatea unui singur LAN.

n al treilea rnd, pentru a face fa traficului, poate fi necesar spargerea unei entitai care din
punct de vedere logic constituie un singur LAN n LAN-uri separate. La multe universiti, de
exemplu, mii de staii de lucru sunt disponibile pentru profesori i studeni. Fiierele sunt inute de
obicei pe servere i sunt ncrcate pe mainile utilizatorilor la cerere. Dimensiunea mare a acestui
sistem mpiedic punerea tuturor staiilor de lucru pe un singur LAN - lrgimea de band total necesar este mult prea mare. n schimb sunt folosite LAN-uri multiple conectate prin puni, dup
cum este artat n fig. 4-39. Fiecare LAN conine un grup de staii de lucru cu propriul su server de
fiiere, astfel nct cea mai mare parte a traficului este limitat la un singur LAN i astfel nu se ncarc suplimentar coloana vertebral.
Merit amintit faptul c dei figurm LAN-urile ca avnd acces la un acelai mediu de comunicaie ca n fig. 4-39 (abordarea clasic), ele sunt cel mai frecvent implementate cu noduri sau, n zilele
noastre, mai ales cu comutatoare. Oricum, un mediu de transmisie comun cu numeroase maini
conectate la el i un nod care conecteaz maini sunt identice din punct de vedere funcional. n ambele cazuri, toate mainile aparin aceluiai domeniu de coliziuni i toate utilizeaz protocolul
CSMA/CD pentru a trimite cadre. Cum am vzut i mai nainte i cum vom vedea din nou n curnd,
LAN-urile comutate sunt diferite.
n al patrulea rnd, exist anumite situaii n care un singur LAN ar fi potrivit n ceea ce privete
traficul, dar distana fizic ntre cele mai ndeprtate calculatoare este prea mare (de exemplu, mai
mult de 2.5 km pentru Ethernet). Chiar dac este uor de ntins cablul, reeaua nu ar funciona din
cauza ntrzierilor excesiv de mari pentru propagarea dus/ntors a semnalelor. Singura soluie este

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

287

partiionarea LAN-ului i instalarea de puni ntre segmente. Folosind punile, poate fi mrit distana fizic total acoperit.
n al cincilea rnd, trebuie considerat problema siguranei. Pe un singur LAN, un nod defect,
care trimite tot timpul un ir continuu de date alterate, va compromite LAN-ul. Punile pot fi inserate n puncte critice pentru a preveni ca un singur nod care funcioneaz defectuos s afecteze ntregul sistem. Spre deosebire de un repetor, care doar copiaz ceea ce vede, o punte poate fi programat s exercite un anumit control privind ceea ce trimite mai departe i ceea ce nu trimite.
n al aselea (i ultimul) rnd, punile pot contribui la securitatea organizaiei. Cele mai multe interfee LAN au un mod transparent de lucru (promiscuous mode), n care toate cadrele sunt transferate calculatorului, nu numai cele care sunt adresate acestuia. Spionilor i bgreilor le place acest
lucru. Prin inserarea punilor n diferite locuri i prin grija de a nu transmite traficul de date sensibile,
este posibil izolarea unor pri din reea, astfel nct datele s nu ajung n minile cui nu trebuie.
Ideal ar fi ca punile s fie perfect transparente, aceasta nsemnnd c ar fi posibil mutarea unei
maini de pe un segment de cablu pe un altul fr a schimba nimic n hardware, n software, sau n
tabelele de configurare. De asemenea, ar trebui s fie posibil ca o maina de pe oricare segment s
comunice cu maini n oricare alt segment fr a ine seam de tipul LAN-urilor folosite n cele dou
segmente sau n segmentele dintre ele. Acest el este uneori atins, dar nu totdeauna.

4.7.1

Puni de la 802.x la 802.y

Dup ce am vzut de ce sunt necesare punile, s ne ntoarcem la felul n care funcioneaz acestea.
Fig. 4-40 ilustreaz funcionarea unei puni simple, dublu-port. Gazda A intr-un LAN fr fir (802.11)
are un pachet de trimis ctre gazda fix B ntr-un Ethernet (802.3) la care LAN-ul fr fir este conectat.
Acest pachet coboar la subnivelul LLC i dobndete un antet LLC (figurat cu negru). Apoi trece la
subnivelul MAC i i este ataat un antet 802.11 (ca de altfel i o ncheiere, care nu este figurat).
Aceast structur este transmis apoi prin aer i ajunge n cele din urm la staia de la baz; aceasta
observ c trebuie s trimit structura ntr-un LAN Ethernet. Apoi ajunge la puntea care conecteaz
reeaua 802.11 de reeaua 802.3 la nivelul fizic i i continu drumul spre nivelurile superioare.

Fig. 4-40. Funcionarea unei puni de LAN de la 802.11 la 802.3.

288

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

n subnivelul MAC din punte, antetul 802.11 este ndeprtat. Pachetul simplu (cu antetul LLC)
este predat subnivelului LLC din punte. n acest exemplu, pachetul este destinat unei subreele
802.3 conectat la punte, astfel nct i face drum pe partea 802.3 a punii i pleac mai departe n
Ethernet. De notat c o punte conectnd k LAN-uri diferite va avea k subniveluri MAC diferite i k
niveluri fizice diferite, cte unul pentru fiecare tip.
Pn acum, din cte am vzut, transmiterea unui pachet de la un LAN la altul pare simpl, nsa
nu este cazul. n aceast seciune vom scoate n eviden cteva din dificultile ntlnite atunci cnd
se ncearc construirea unei puni ntre LAN-uri 802 diferite (i MAN-uri). Ne vom concentra atenia asupra 802.3, 802.11 i 802.16, dar mai sunt i altele cu seturile lor unice de probleme.
Pentru nceput, fiecare dintre LAN-uri folosete un format de cadru diferit (vezi fig. 4-41). Fa
de diferenele dintre Ethernet, token bus i token ring, care apreau datorita egourilor marilor corporaii i din cauza motivelor istorice, n acest caz, diferenele sunt bine argumentate. De exemplu,
cmpul Durat la 802.11 este acolo datorit protocolului MACAW i nu are nici un sens n
Ethernet. Prin urmare, orice transfer ntre LAN-uri diferite cere reformatare, ceea ce consum timp
de procesor, necesit o nou calculare a sumei de control i introduce posibilitatea erorilor nedetectate datorat biilor eronai n memoria punii.
O a dou problem este c LAN-urile interconectate nu funcioneaz neaprat la aceeai rat de
transfer. Atunci cnd se transmite un ir lung de cadre concatenate de la un LAN rapid la unul mai
lent, puntea nu va putea transmite cadrele n ritmul n care sosesc. De exemplu, dac un gigabit
Ethernet vars bii ntr-un 11-Mb 802.11b LAN la vitez maxim, puntea va trebui s memoreze
traficul, n sperana ca va avea memorie suficienta. Punile care conecteaz trei sau mai multe LANuri au o problem similar n cazul n care mai multe LAN-uri ncearc s alimenteze acelai LAN
de ieire n acelai moment chiar dac toate LAN-urile au aceeai vitez.

Fig. 4-41. Formatele cadrelor IEEE 802. Desenul nu este la scar.

O a treia, i potenial cea mai serioas problem dintre toate, este c diferite LAN-uri 802 au o lungime maxim de cadru diferit. O problem evident apare atunci cnd un cadru lung trebuie transmis
unui LAN care nu l poate accepta. La acest nivel, mprirea cadrului iese din discuie. Toate protocoalele presupun recepionarea total sau deloc a cadrelor. Nu exist posibilitatea de reasamblare a cadrelor din uniti mai mici. Aceasta nu nseamn c asemenea protocoale nu ar putea fi inventate. Ele pot fi
i au fost. Doar c nici un protocol legtur de date nu are aceast caracteristic, aa c punile nu trebuie s se ating de informaia util din cadru. Fundamental, nu exist nici o soluie. Cadrele care sunt prea
lungi pentru a fi transmise trebuie eliminate. Cam att n ceea ce privete transparena.
Un alt punct este securitatea. 802.11 i 802.16 suport criptarea la nivelul legturii de date.
Ethernet nu suport. Aceasta nseamn c diversele servicii de criptare disponibile la reelele fr fir
sunt pierdute cnd traficul trece printr-o reea Ethernet. nc i mai ru, dac o staie fr fir utili-

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

289

zeaz criptare la nivelul legturii de date, nu exist nici o modalitate de a decripta datele cnd ajung
n Ethernet. Dac o staie fr fir nu utilizeaz criptarea, traficul acesteia este expus de-a lungul legturii prin aer. n ambele situaii exist o problem.
O soluie la problema securitii ar fi criptarea la un nivel superior, dar n acest fel o staie 802.11
trebuie s afle dac vorbete cu o alt staie ntr-o reea 802.11 (nsemnnd c folosete criptare la
nivelul legturii de date) sau nu (nsemnnd c nu folosete). Forarea unei staii s fac o alegere
distruge transparena.
Punctul final este calitatea serviciilor. Att 802.11 ct i 802.16 o ofer n forme diverse, primul
folosind modul PCF i ultimul folosind conexiuni cu rat de transfer constant. Ethernet-ul nu ofer
nimic n acest sens, aa c traficul de la oricare dintre ceilali va pierde din calitate atunci cnd trece
printr-o reea Ethernet.

4.7.2

Interconectarea local a reelelor

Capitolul anterior s-a ocupat de problemele ntmpinate la conectarea printr-o singur punte a
dou LAN-uri IEEE 802 diferite. Oricum, n organizaiile mari cu multe LAN-uri, numai simpla
interconectare a acestora ridic mai multe probleme, chiar i dac toate LAN-urile sunt Ethernet.
Ideal, ar trebui s fie posibil s te duci i s cumperi puni proiectate dup standardul IEEE, s le
conectezi i totul s funcioneze perfect, instantaneu. Nu ar trebui s fie nevoie de modificri de hardware, de modificri de software, de setarea adreselor, de ncrcarea tabelelor sau parametrilor, de
nimic altceva. Se conecteaz numai cablurile i funcioneaz. Mai mult, funcionarea LAN-urilor
existente nu ar trebui s fie afectat n nici un fel de puni. Cu alte cuvinte punile ar trebui s fie
complet transparente (invizibile pentru hardware i software). Destul de surprinztor, chiar au reuit. Haidei s vedem cum se realizeaz aceast magie.
O punte transparent opereaz n mod transparent (promiscuous mode), acceptnd orice cadru
transmis pe oricare dintre LAN-urile la care este ataat. De exemplu, s considerm configuraia
din fig. 4-42. Puntea B1 este conectat la LAN-urile 1 i 2, iar puntea B2 este conectat la LAN-urile
2, 3 i 4. Un cadru destinat lui A de la LAN 1 care ajunge la puntea B1 poate fi eliminat imediat,
pentru c este deja pe LAN-ul care trebuie, dar un cadru care ajunge de la LAN 1 pentru C sau F
trebuie transmis.

Fig. 4-42. O configuraie cu patru LAN-uri i dou puni.

La sosirea unui cadru, o punte trebuie s decid dac s l elimine sau s l transmit mai departe,
iar dac l transmite, ctre ce LAN s l trimit. Aceast decizie este luat cutnd adresa destinaiei
ntr-o tabel de dispersie meninut n interiorul punii. Tabelul poate s includ fiecare destinaie
posibil i crei linii de ieire (de fapt, crui LAN) i aparine. De exemplu, tabelul lui B2 ar include
A ca aparinnd lui LAN 2, din moment ce tot ce trebuie s tie B2 este ctre care LAN s trimit
cadrele destinate lui A. Nu prezint interes faptul c ulterior vor avea loc mai multe transmisii.

290

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

La prima conectare a punilor, toate tabelele de dispersie sunt vide. Nici una dintre puni nu tie
unde se afl destinaiile, astfel nct toate folosesc algoritmul de inundare: orice cadru care vine pentru o destinaie necunoscut este trimis ctre toate LAN-urile la care este conectat puntea, cu excepia celui din care a venit. Cu trecerea timpului, punile afl unde se gsesc destinaiile, dup cum
este descris n cele ce urmeaz. Odat ce o destinaie este cunoscut, cadrele destinate ei sunt puse
pe LAN-ul care trebuie, n loc s fie inundate.
Algoritmul folosit de punile transparente se numete nvare regresiv (backward learning). Dup cum a fost menionat anterior, punile lucreaz n mod transparent (promiscuous), astfel nct
toate vd fiecare cadru trimis pe oricare dintre LAN-urile lor. Uitndu-se la adresa sursei, ele pot
afla care calculator este accesibil pe care LAN. De exemplu, dac puntea B1 din fig. 4-38 vede un
cadru din LAN 2 venind de la C, tie c staia C trebuie s fie accesibil prin LAN 2 i creeaz o intrare n tabela de dispersie, n care noteaz c pentru cadrele care merg la C ar trebui s foloseasc
LAN 2. Orice cadru ulterior adresat lui C care vine din LAN 1 va fi transmis mai departe, pe cnd
un cadru pentru C venit din LAN 2 va fi abandonat.
Topologia se poate schimba dup cum calculatoarele i punile sunt n funciune sau nu, sau mutate de colo-colo. Pentru a trata topologii dinamice, de cte ori se creeaz o intrare n tabela de dispersie, n ea este notat timpul de sosire a cadrului. De cte ori sosete un cadru a crui destinaie se
afl deja n tabel, intrarea sa este adus la zi cu timpul curent. Astfel, timpul asociat fiecrei intrri
arat ultimul moment n care a fost primit un cadru de la respectivul calculator.
Periodic, un proces din punte scaneaz tabela de dispersie i cur toate intrrile mai vechi de
cteva minute. n acest fel, dac un calculator este scos din LAN-ul su, plimbat prin cldire i reinstalat n alt parte, n cteva minute va reveni la funcionarea normal, fr vreo intervenie manual. Acest algoritm semnific de asemenea c dac un calculator este inactiv pentru cteva minute,
orice trafic trimis spre el va trebui inundat, pn cnd calculatorul respectiv va trimite un cadru.
Procedura de dirijare pentru un cadru sosit depinde de LAN-ul din care sosete (LAN-ul surs)
i de LAN-ul n care se afl destinaia sa (LAN-ul destinaie), dup cum urmeaz:
1.
2.
3.

Dac LAN-ul surs este acelai cu LAN-ul destinaie, abandoneaz cadrul.


Dac LAN-ul surs i cel destinaie sunt diferite, transmite cadrul.
Dac LAN-ul destinaie nu este cunoscut, folosete inundarea.

Acest algoritm trebuie aplicat pentru fiecare cadru care sosete. Exist cipuri VLSI speciale care
realizeaz cutarea i actualizarea n tabela de dispersie, doar n cteva microsecunde.

4.7.3

Puni cu arbore de acoperire

Pentru a mri sigurana, unele locaii folosesc dou sau mai multe puni n paralel ntre perechi
de LAN-uri, aa cum este artat n fig. 4-43. Totui, acest aranjament introduce i unele probleme
suplimentare, ntruct creeaz bucle n topologie.
Un simplu exemplu al acestor probleme poate fi vzut n fig. 4-43, observnd modul n care este
tratat cadrul F cu destinaie necunoscut. Fiecare punte, urmnd regulile obinuite pentru tratarea
destinaiilor necunoscute, folosete inundarea care, n acest exemplu, nu nseamn dect copierea
cadrului pe LAN 2. Puin dup aceea, puntea 1 vede F2, un cadru cu destinaie necunoscut, pe care
l copiaz pe LAN 1, genernd F3 (care nu este artat n figur). La fel, puntea 2 copiaz F1 pe
LAN1 genernd F4 (care nu este artat). Acum puntea 1 trimite F4 i puntea 2 copiaz F3. Acest
ciclu se continu la nesfrit.

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

291

Fig. 4-43. Dou puni transparente paralele.

Soluia acestei probleme este ca punile s comunice unele cu altele i s suprapun peste topologia
actual un arbore de acoperire care ajunge la fiecare LAN. De fapt, n interesul construirii unei topologii fictive fr bucle, sunt ignorate cteva conexiuni posibile ntre LAN-uri. De exemplu, n fig. 444(a) apar nou LAN-uri interconectate prin zece puni. Aceast configuraie poate fi rezumat ntrun graf cu LAN-urile drept noduri. Un arc leag oricare dou LAN-uri care sunt conectate de o punte.
Graful poate fi redus la un arbore de acoperire renunnd la arcurile figurate ca linii punctate n
fig. 4-44(b). Folosind acest arbore de acoperire, exist un singur drum de la fiecare LAN la fiecare
alt LAN. Odat ce punile s-au neles asupra arborelui de acoperire, toat transmiterea dintre
LAN-uri urmrete arborele de acoperire. Din moment ce exist un drum unic de la fiecare surs la
fiecare destinaie, buclele sunt imposibile.
Pentru a construi arborele de acoperire, punile trebuie s aleag mai nti o punte care va reprezenta rdcina arborelui. Ele fac aceast alegere prin emiterea de ctre fiecare punte a numrului de
serie, instalat de fabricant, garantat ca fiind unic n ntreaga lume. Puntea cu cel mai mic numr serial devine rdcin. Apoi se construiete un arbore de drumuri minime de la rdcin la fiecare punte i LAN. Acest arbore este un arbore de acoperire. Dac o punte sau un LAN cade, trebuie calculat un nou arbore de acoperire.

Fig. 4-44. (a) LAN-uri interconectate. (b) Arbore de acoperire pentru


LAN-uri. Liniile punctate nu fac parte din arborele de acoperire.

292

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Rezultatul acestui algoritm este c se stabilete un drum unic de la fiecare LAN la rdcin, i
astfel la fiecare alt LAN. Dei arborele acoper toate LAN-urile, nu neaprat toate punile sunt prezente n arbore (pentru a evita buclele). Dup ce a fost stabilit arborele de acoperire, algoritmul continu s ruleze pentru a detecta automat schimbri n topologie i a actualiza arborele. Algoritmul
distribuit, folosit pentru construirea arborelui de acoperire, a fost inventat de Perlman i este descris
n detaliu n (Perlman, 1992). Acesta este standardizat n IEEE 802.1D.

4.7.4

Puni aflate la distan

Punile sunt de cele mai multe ori folosite pentru conectarea a dou (sau mai multe) LAN-uri
aflate la distan unele de altele. De exemplu, o companie poate avea fabrici n mai multe orae,
fiecare dintre acestea cu propriul su LAN. Ideal ar fi ca toate aceste LAN-uri s fie interconectate
pentru ca sistemul n ntregime s funcioneze ca un mare LAN.
Acest el poate fi atins punnd cte o punte fiecrui LAN i conectnd punile n perechi cu linii
punct-la-punct (de exemplu linii nchiriate de la o companie de telefoane). Un sistem simplu, cu trei
LAN-uri, este prezentat n fig. 4-45. Aici se aplic algoritmul de dirijare obinuit. Cel mai simplu este
s se priveasc cele trei linii punct-la-punct ca LAN-uri fr gazde. Adic, un sistem obinuit de ase
LAN-uri interconectate prin patru puni. Nimic din ce am studiat pn acum nu spune c un LAN
trebuie s aib gazde.
Pe liniile punct-la-punct pot fi folosite diverse protocoale. O posibilitate este alegerea unui protocol de legtur de date punct-la-punct standard, cum ar fi PPP, punnd cadre MAC complete n
cmpul de informaie util. Aceast strategie funcioneaz cel mai bine dac LAN-urile sunt identice
i singura problem este transmiterea cadrelor la LAN-ul care trebuie. Alt posibilitate este eliminarea antetului i a ncheierii cadrelor MAC la puntea surs, punnd ceea ce a mai rmas n cmpul de
informaie util al protocolului punct-la-punct. Un nou antet i o nou ncheiere MAC pot fi apoi
generate la puntea destinaie. Un dezavantaj al acestei abordri este c suma de control care ajunge
la puntea destinaie nu este cea calculat de gazda surs, existnd posibilitatea ca erori cauzate de
bii eronai n memoria unei puni s nu fie detectai.

Fig. 4-45. Puni aflate la distan folosite pentru a interconecta LAN-uri ndeprtate.

4.7.5

Repetoare, Noduri, Puni, Comutatoare, Rutere i Pori

Pn acum n aceasta carte am vzut a mulime de feluri de a transfera cadre i pachete de pe un


segment de cablu pe altul. Am amintit de repetoare, noduri, puni, comutatoare, rutere i pori. Toa-

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

293

te aceste dispozitive sunt utilizate n mod curent, dar ele difer mai mult sau mai puin unul de altul.
Deoarece sunt att de multe, merit sa le analizm mpreun pentru a vedea asemnrile i diferenele dintre ele.
Pentru nceput, aceste dispozitive opereaz la niveluri diferite, cum este ilustrat n fig. 4-46(a).
Nivelul conteaz pentru c diferitele dispozitivele folosesc segmente diverse din informaie pentru a
decide cum s comute. ntr-un scenariu tipic, utilizatorul creeaz date pentru a fi trimise ctre o maina aflat la distan. Aceste date sunt trimise nivelului transport, unde li se adaug un antet, de
exemplu un antet TCP, i se transmite rezultatul mai jos ctre nivelul reea. Nivelul reea adaug
propriul antet pentru a forma un pachet pentru nivelul reea, de exemplu un pachet IP. n fig. 446(b) observm pachetul IP colorat in gri. Apoi pachetul ajunge la nivelul legturii de date, care i
adaug propriul antet i suma de control (CRC) i trimite cadrul rezultat ctre nivelul fizic pentru
transmisie, de exemplu intr-un LAN.
Acum s ne uitm la dispozitivele de comutare i s vedem legtura lor cu pachetele i cadrele.
La cel mai de jos nivel, nivelul fizic, se afl repetoarele. Acestea sunt dispozitive analogice ce sunt
conectate intre dou segmente de cablu. Un semnal ce apare pe unul din aceste cabluri este amplificat i trimis pe cellalt cablu. Repetoarele nu neleg cadrele, pachetele sau antetele. Ele neleg doar
tensiuni electrice. Ethernetul clasic, de exemplu, a fost proiectat sa permit folosirea a patru repetoare n scopul de a extinde lungimea maxim a cablului de la 500 de metri la 2500 de metri.

Fig. 4-46. (a) Corespondena dintre niveluri i dispozitive. (b) Cadre, pachete i antete

n continuare ajungem la noduri. Un nod are un numr de linii de intrare pe care le unete din
punct de vedere electric. Cadrele care ajung la nod pe oricare linie sunt trimise afar pe toate celelalte liniile. Dac dou cadre ajung n acelai timp se vor ciocni la fel ca i atunci cnd ar fi transmise
pe un cablul coaxial. Cu alte cuvinte un nod formeaz un singur domeniu de coliziune. Toate liniile
ce intr n nod trebuie s lucreze la aceeai vitez. Nodurile difer de repetoare prin faptul ca (de
obicei) nu amplific semnalele pe care le primesc i sunt proiectate pentru a suporta multe plci de
extensie cu mai multe intrri; totui, diferenele nu sunt semnificative. Ca i repetoarele, nodurile nu
examineaz adresele 802 i nici nu le utilizeaz n vreun fel. Un nod este artat n fig. 4-47(a).
Acum vom aborda nivelul legturii de date, unde gsim punile i comutatoarele. Tocmai am
studiat punile. O punte conecteaz dou sau mai multe LAN-uri aa cum este artat n fig. 4-47(b).
Cnd un cadru ajunge, software-ul din punte extrage adresa destinaie din cadru i caut n tabela sa
vad unde s trimit cadrul. Pentru Ethernet, aceast adres este adresa destinaie de 48 de bii prezentat n fig. 4-17. Asemntor unui nod, o punte moderna are placi de extensie, de obicei pentru
patru sau opt intrri de un anumit tip. O plac de extensie pentru Ethernet nu poate manevra, sa

294

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

zicem, cadre token ring, pentru c nu tie unde s gseasc adresa destinaie n antetul cadrului. Oricum, o punte poate avea placi de extensie pentru diferite tipuri de reele i diferite viteze. Spre deosebire de nod, la punte fiecare linie se afl n propriul domeniu de coliziune.

Fig. 4-47. (a) Un nod. (b) O punte. (c) Un comutator.

Comutatoarele sunt similare cu punile deoarece amndou ruteaz cadre pe baza adreselor. De
fapt, muli oameni folosesc aceste dou denumiri fr a face o distincie clar intre termeni. Principala diferen este aceea c un comutator este cel mai adesea folosit pentru a conecta calculatoare
individuale, aa cum este artat n fig. 4-47(c). Ca o consecin, cnd gazda A n fig. 4-47(b) dorete
sa trimit un cadru ctre gazda B, puntea primete cadrul dar nu l ia n considerare. Din contr,
dup cum se vede n fig. 4-47(c), comutatorul trebuie sa retransmit cadrul de la A la B deoarece nu
exist alt drum pentru ca acest cadru s ajung. ntruct fiecare port al comutatorului este de obicei
conectat la un singur calculator, comutatorul trebuie s aib loc pentru mai multe placi de extensie
dect punile care trebuie s conecteze numai reele. Fiecare plac de extensie are un spaiu tampon
pentru cadrele recepionate. Deoarece fiecare port se afl n propriul domeniu de coliziune, comutatoarele nu pierd niciodat cadre din cauza coliziunilor. Totui, dac un comutator primete cadre
mai repede dect le poate retransmite, este posibil ca n scurt timp sa nu mai aib memorie tampon
liber i sa nceap s arunce din cadrele primite.
Pentru a relaxa puin problema, comutatoarele moderne ncep sa retransmit cadre imediat ce
antetul destinaie ajunge, dar nainte ca restul cadrului sa ajung (bineneles asigurndu-se ca linia
de ieire este disponibila). Aceste comutatoare nu utilizeaz tehnica de memorare i retransmitere.
Cteodat ele sunt menionate drept comutatoare cu transmitere de fragmente (cut-through
switches). De obicei acest tip de comutator este implementat n ntregime n hardware, n timp ce
tradiionalele puni conin un CPU ce face comutare cu memorare i retransmitere la nivel software.
Dar deoarece toate punile i comutatoarele moderne conin circuite integrate speciale pentru comutare, diferenele dintre comutatoare i puni in mai mult de probleme de marketing dect de
probleme tehnice.
Pn acum, am vzut repetoare i noduri, care sunt foarte asemntoare, precum i puni i comutatoare, care sunt de asemenea foarte asemntoare ntre ele. Acum trecem mai departe la
rutere, care sunt i ele diferite de cele menionate mai sus. Cnd un pachet ajunge la un ruter, antetul i sfritul cadrului sunt eliminate i pachetul localizat n informaia utila a cadrului (nnegrit n
fig. 4-46) trece ctre software-ul de rutare. Acest software folosete antetul pachetului pentru a alege
o linie de ieire. Pentru un pachet IP, antetul pachetului va conine adrese de 32 de bii (IPv4) sau

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

295

adrese de 128 de bii (IPv6), n nici un caz adrese 802 de 48 de bii. Software-ul de rutare nu vede
adresele cadrelor i nici mcar nu tie daca pachetul a venit de pe un LAN sau de pe o linie punct la
punct. n cap. 5 vom studia ruterele i rutarea.
Mai sus cu un nivel gsim porile de transport (gateways). Acestea conecteaz doua calculatoare
ce utilizeaz diferite protocoale de transport orientate pe conexiune. De exemplu, s presupunem c
un calculator care utilizeaz protocolul TCP/IP orientat pe conexiune, trebuie s discute cu un calculator care folosete protocolul ATM orientat pe conexiune. Poarta de transport poate copia pachete
de la o conexiune la alta, refcnd pachetele dup necesitai.
n ncheiere, porile la nivelul aplicaie neleg formatul i coninutul datelor i traduc mesajul de
la un format la altul. De exemplu, o poart de pota electronic poate traduce mesaje Internet n
mesaje SMS pentru telefoane mobile.

4.7.6

LAN-uri virtuale

La nceputul dezvoltrii reelelor locale de calculatoare, cabluri groase galbene erpuiau prin
conductele de cablu ale multor cldiri de birouri. Acestea conectau toate calculatoarele pe la care
treceau. Adesea erau mai multe cabluri conectate la coloana vertebral central (ca n fig. 4-39) sau
la un nod central. Nu se acorda nici o importan corespondenei ntre calculatoare i LAN-uri. Toi
oamenii din birouri alturate erau conectai la acelai LAN idiferent dac aparineau sau nu aceleiai organizaii. Poziionarea fizic a calculatoarelor domina logica.
Totul s-a schimbat odat cu apariia lui 10Base-T i a nodurilor n anii 1990. Cldirile au fost
recablate (cu costuri considerabile) pentru a scoate vechile cabluri galbene, instalndu-se n loc
cabluri cu perechi de fire torsadate de la fiecare birou pn la locurile de conectare central de la
captul fiecrui coridor sau pn la camera unde se afla calculatorul principal, aa cum este ilustrat n fig. 4-48.

Fig. 4-48. O cldire cu reea centralizata ce folosete noduri i un comutator.

296

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Dac vicepreedintele care se ocupa de cablare era vizionar, se instalau cabluri cu perechi de fire
torsadate de categoria a cincea; dac acesta era un statistician era utilizat cablu de telefon existent
(categoria 3) (pentru a fi nlocuit civa ani mai trziu cnd a aprut Ethernet-ul rapid).
Folosindu-se noduri (i mai trziu, comutatoare) Ethernet, era adesea posibil configurarea LANurilor din punct de vedere logic mai mult dect din punct de vedere fizic. Daca o companie dorete k
LAN-uri, cumpr k noduri. Alegnd cu grij ce conectoare vor fi introduse n nod, ocupanii LANului pot fi alei din punct de vedere organizaional fr a se da prea mare importan amplasrii geografice. Bineneles, dac doi oameni aparinnd aceluiai departament lucreaz n cldiri diferite, cel
mai probabil acetia sunt conectai n noduri diferite i astfel n LAN-uri diferite. Cu toate acestea,
situaia se prezint mult mai bine dect n cazul LAN-urilor bazate pe amplasare geografic.
Conteaz cine este conectat i n ce LAN? Oricum, n toate organizaiile, toate LAN-urile sunt n
cele din urm interconectate. Pe scurt, rspunznd la ntrebare: adesea conteaz. Dintr-o multitudine de motive administratorii de reea i doresc s grupeze utilizatorii n LAN-uri pentru a reflecta
structura organizatoric mai degrab dect structura fizic a cldirii. O problem este securitatea.
Orice interfa de reea poate fi configurat n mod transparent, copiind tot traficul care sosete pe
canalul de comunicaie. Multe departamente, cum ar fi cele de cercetare, patente i contabilitate,
dein informaii pe care nu doresc s le fac cunoscute n afara departamentului. n situaii ca acestea, punerea tuturor oamenilor din departament ntr-o singur reea local fr a permite vreunui
fel de trafic s ias din aceast reea este o soluie bun. Totui, administratorul va vrea sa aud despre astfel de aranjamente doar dac toi oamenii din fiecare departament sunt localizai in birouri
adiacente, fr birouri interpuse ntre acestea.
Poate s apar i o a doua problem. Unele reele locale sunt utilizate mai intensiv dect altele i
poate fi benefic separarea acestora la anumite momente. De exemplu, dac persoanele de la cercetare ruleaz tot felul de experimente dichisite care din cnd n cnd scap de sub control i le satureaz reeaua local, persoanele de la contabilitate s-ar putea s nu fie foarte entuziasmate n a dona
capacitatea departamentului lor pentru a ajuta.
O a treia problem este difuzarea. Cele mai multe reele locale suport difuzarea i multe protocoale de nivel superior folosesc aceast facilitate n mod extensiv. Spre exemplu, atunci cnd un utilizator dorete s trimit un pachet ctre o adres IP x, cum tie staia sa ce adres MAC s pun in cadru?
Vom studia aceast ntrebare n cap. 5, dar, pe scurt, rspunsul este c va difuza un cadru care conine
ntrebarea: A cui este adresa IP x? Apoi ateapt un rspuns. i exist multe alte exemple de utilizare a
difuzrii. Pe msur ce din ce n ce mai multe reele locale sunt interconectate, numrul cadrelor de
difuzare recepionate de fiecare main tinde s creasc liniar cu numrul de maini.
O alt problem legat de difuzare apare din cnd n cnd, atunci cnd o plac de reea se defecteaz i ncepe s transmit un ir nesfrit de cadre de difuzare. Rezultatul acestei furtuni de difuzri (broadcast storm) este c (1) ntreaga capacitate a reelei locale este ocupat de aceste cadre i
(2) c toate mainile din toate reele locale interconectate cu aceasta sunt paralizate doar prin procesarea i ignorarea tuturor cadrelor difuzate.
La prima vedere s-ar putea prea c furtunile de difuzri pot fi limitate n spaiu prin separarea
reelelor locale prin puni i comutatoare, dar dac scopul este s se ating transparen (de ex o
main poate fi mutat intr-o reea local diferit fr ca nimeni s observe acest lucru), atunci punile trebuie s nainteze toate cadrele de difuzare.
Dup ce am vzut de ce companiile ar dori s aib mai multe reele locale cu ntindere limitat,
haidei s ne ntoarcem la problema decuplrii topologiei logice de cea fizic. S presupunem c un
utilizator este mutat n cadrul companiei de la un departament la altul fr s i schimbe biroul, sau

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

297

c i schimb biroul fr a-i schimba departamentul. Folosind o cablare bazat pe hub-uri, mutarea
utilizatorului n reeaua local corect presupune ca administratorul de reea s mearg n centrul de
cablare i s mute conectorul pentru calculatorul utilizatorului respectiv dintr-un hub n alt hub.
n multe companii, schimbrile organizaionale au loc tot timpul, nsemnnd c administratorii
de sistem petrec o mulime de timp scond cabluri de undeva i punndu-le n alt parte. De asemenea, n unele cazuri, este posibil ca schimbrile s nu poat fi fcute deloc, pentru c perechea
torsadat de la maina utilizatorului este prea departe de hub-ul potrivit (de ex. n alt cldire).
Ca rspuns la cerinele utilizatorilor pentru o flexibilitate sporit, comercianii de echipamente
de reea au nceput s lucreze la o modalitate de a recabla cldiri n ntregime doar cu ajutorul software-ului.. Conceptul rezultat este numit VLAN (Virtual LAN, rom: reea local virtual) i a fost
standardizat de ctre comitetul 802. Acum este utilizat n multe organizaii. Haidei s aruncm o
privire asupra lui. Pentru informaii suplimentare despre VLAN-uri, vezi (Breyer and Riley, 1999;
and Seifert, 2000).
VLAN-urile se bazeaz pe comutatoare dedicate, cu toate c pot avea nite hub-uri la periferie,
ca n fig. 4-48. Pentru configurarea unei reele bazate pe VLAN-uri, administratorul de reea decide
cte VLAN-uri vor exista, ce calculatoare vor aparine fiecrui VLAN i cum se vor numi VLANurile. De cele mai multe ori, VLAN-urile sunt denumite (informal) cu nume de culori, pentru c
este apoi posibil tiprirea de diagrame color cu dispunerea fizic a mainilor, figurnd membrii
VLAN-ului rou n rou, membrii VLAN-ului verde n verde i aa mai departe. n acest fel, att
dispunerea logic, ct i cea fizic, sunt vizibile ntr-o singur figur.
Ca un exemplu, s considerm cele patru reele locale din fig. 4-49(a), n care opt dintre maini
aparin VLAN-ului G (gri) i apte aparin VLAN-ului A (alb). Cele patru reele locale sunt conectate cu dou puni, B1 i B2. Dac este folosit cablare centralizat cu fire torsadate, pot fi de asemenea prezente 4 hub-uri (care nu sunt prezentate n figur), dar la nivel logic un cablu cu mai muli
conectori i un hub sunt acelai lucru. Prezentarea lor n modul n care sunt figurai aici face figura
mai puin ncrcat. De asemenea, termenul de punte tinde s fie folosit n zilele noastre mai ales n
cazurile cnd exist mai multe maini pe fiecare port, ca n aceast figur, dar n rest termenii punte i comutator sunt interschimbabili. Fig. 4-49(b) prezint aceleai maini i aceleai acelai
VLAN-uri folosind comutatoare cu un singur calculator pe fiecare port.

Fig. 4-49. (a) Patru reele fizice organizate n dou VLAN-uri, gri i alb, de ctre dou puni
(b) Aceleai 15 maini organizate n doua VLAN-uri cu comutatoare

298

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Pentru a asigura funcionarea corect a VLAN-urilor, trebuie create tabele de configurare n


comutatoare sau n puni. Aceste tabele stabilesc care VLAN este accesibil pe fiecare dintre porturi
(linii). Atunci cnd un cadru este recepionat de la, s spunem, VLAN-ul gri, acesta trebuie naintat
ctre toate porturile marcate cu G. Acest lucru este valabil att pentru traficul direcionat, ct i pentru cel cu destinaie multipl i cu difuzare.
Observai faptul c un port poate fi marcat cu mai multe culori de VLAN-uri. Acest lucru poate
fi vzut clar n fig. 4-49(a). S presupunem c maina A difuzeaz un cadru. Puntea B1 recepioneaz cadrul i observ c acesta este provenit de la o staie din VLAN-ul gri, deci l va nainta ctre
toate porturile marcate cu G (cu excepia portului de unde a venit). Din moment ce B1 are numai
dou alte porturi i ambele sunt marcate cu G, cadrul va fi trimis pe ambele porturi.
n cazul lui B2 povestea este diferit. Aici puntea tie c nu exist maini gri in reeaua local 4,
deci cadrul nu va fi naintat acolo. Acesta va merge numai ctre reeaua local 2. Dac unul dintre
utilizatorii din reeaua local 4 i va schimba departamentul i va fi mutat n VLAN-ul gri, atunci
tabela din interiorul lui B2 va trebui actualizat pentru a reeticheta portul cu GA n loc de A. Dac
maina F devine gri, atunci portul ctre reeaua local 2 trebuie etichetat cu G n loc de GA.
Acum s presupunem c toate mainile att din reeaua local 2 ct i din reeaua local 4 devin
gri. Atunci nu numai c porturile lui B2 ctre reelele 2 i 4 vor fi marcate cu G, dar i portul lui B1
ctre B2 trebuie de asemenea reetichetat de la GA la G, din moment ce cadrele albe care ajung la
B1 din reelele 1 i 3 nu mai sunt naintate ctre B2. n fig. 4-49(b) aceti situaie rmne n picioare,
numai c aici toate porturile care ajung la cte o singur main sunt etichetate cu o singur culoare
deoarece acolo exist un singur VLAN.
Pn acum am presupus ca punile i comutatoarele tiu cumva ce culoare are un cadru recepionat. Cum tiu acest lucru? Exist trei metode folosite:
1.
2.
3.

Fiecrui port i este asociat o culoare de VLAN


Fiecrei adrese MAC i este asociat o culoare de VLAN
Fiecrui protocol de nivel 3 sau fiecrei adrese IP i este asociat o culoare de VLAN

Cu prima metod, fiecare port este etichetat cu o culoare de VLAN. Totui, aceast metod funcioneaz doar dac toate mainile de pe un port aparin aceluiai VLAN. n fig. 4-49(a), acest lucru
este valabil n cazul lui B1 pentru portul ctre reeaua 3, dar nu i pentru portul ctre reeaua 1.
n cazul celei de-a doua metode, puntea sau comutatorul are o singur tabel ce conine adresa
MAC pe 48 de bii a fiecrui maini conectate la el, mpreun cu VLAN-ul cruia i aparine maina
respectiv. n aceste condiii, este posibil combinarea mai multor VLAN-uri pe o singur reea local fizic, cum este cazul reelei 1 din fig. 4-49(a). Cnd un cadru este recepionat, tot ce trebuie s
fac puntea sau comutatorul este s extrag adresa MAC i s caute intrarea corespunztoare din
tabel, pentru a gsi VLAN-ul de unde a fost recepionat cadrul.
Cea de-a treia metod presupune ca puntea sau comutatorul s examineze cmpul ncrcare util al cadrului cu scopul de a clasifica, de exemplu, toate mainile IP ca aparinnd unui VLAN i
toate mainile AppleTalk ca aparinnd altuia. Pentru cel dinti, adresa IP poate fi de asemenea
utilizat pentru identificarea mainii. Aceast strategie este foarte util atunci cnd mai oricare din
mai multe maini sau calculatoare portabile pot fi cuplate n mai multe staii de ancorare. Din moment ce fiecare staie de ancorare are propria adres MAC, doar cunoaterea staiei de ancorare
folosite nu spune nimic despre VLAN-ul cruia i aparine laptop-ul.
Singura problem cu aceast abordare este c nu respect una dintre regulile de baz n reele ce
calculatoare: independena nivelurilor. Nu este treaba nivelului legtur de date ce este n cmpul de

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

299

ncrcare util al cadrului. Acest nivel nu ar trebui s examineze aceste cmp i cu att mai puin s ia
decizii pe baza coninutului acestuia. O consecin a utilizrii acestei abordri este aceea c o modificare a unui protocol de nivel 3 (de exemplu o trecere de la IPv4 la IPv6) va duce la nefuncionarea
comutatorului. Din nefericire, exist pe pia comutatoare care funcioneaz n acest fel.
Desigur, nu este nimic n neregul n rutarea bazat pe adrese IP aproape tot cap. 5 este dedicat rutrii IP dar s combini nivelurile nseamn s o caui cu lumnarea. Un productor de comutatoare poate desconsidera acest argument susinnd c toate comutatoarele comercializate de el
neleg att IPv4, ct i IPv6, deci totul este n regul. Dar ce se va ntmpla atunci cnd va aprea
IPv7? Productorul probabil c va rspunde: cumprai comutatoare noi, este asta att de ru?

Standardul IEEE 802.1Q


Dac ne gndim mai bine, ceea ce conteaz cu adevrat este VLAN-ul cadrului nsui, nu
VLAN-ul mainii care l-a trimis. Dac ar exista o modalitate de identificare a VLAN-ului n antetul
cadrului, atunci necesitatea de a examina cmpul ncrcare ar disprea. Pentru un model nou de
reea local, cum ar fi 802.11 sau 802.16, ar fi fost destul de uor s fie adugat numrul VLAN-ului
n antet. De fapt, cmpul identificator de conexiune din 802.16 este oarecum similar cu spiritul identificatorilor de VLAN. Dar ce s facem cu Ethernetul, care este tehnologia dominant de reele locale
i care nu are cmpuri goale disponibile care s poat fi utilizate pentru identificatorul de VLAN?
Comitetul IEEE 802 a confruntat aceast problem n 1995. Dup multe discuii, a fcut inimaginabilul i a modificat cadrul Ethernet. Noul format a fost publicat n standardul IEEE 802.1Q,
lansat n 1998. Noul format conine marcajul pentru VLAN; l vom examina n curnd. Nu n mod
surprinztor, schimbarea a ceva att de bine mpmntenit cum este Ethernetul nu este n ntregime
trivial. O serie de ntrebri care ne vin n gnd sunt:
1.
2.
3.

Trebuie s aruncm cteva sute de milioane de plci de reea Ethernet?


Dac nu, cine genereaz noul cmp?
Ce se ntmpl cu cadrele care au deja lungimea maxim?

Desigur, comitetul 802 a fost contient (n mod dureros) de aceste probleme i a trebuit s ofere
soluii, ceea ce a i fcut.
Cheia pentru gsirea soluiei este s realizm c identificatorii de VLAN sunt utilizai efectiv
numai de puni i de comutatoare i nu de ctre mainile utilizatorilor. Prin urmare, n fig. 4-49 nu
este esenial ca identificatorii s fie prezeni pe liniile ce pornesc de la staii, att timp ct sunt prezeni pe liniile ce interconecteaz punile. Prin urmare, pentru a folosi VLAN-uri, punile i comutatoarele trebuie s fie contiente de existena acestora, dar aceasta era deja o cerin. Acum introducem necesitatea suplimentar ca acestea s implementeze 802.1Q, iar cele noi deja fac acest lucru.
La ntrebarea dac trebuie aruncate toate plcile Ethernet, rspunsul este nu. Aducei-v aminte: comisia 802.3 nu a putut convinge oamenii s schimbe cmpul tip intr-un alt cmp numit lungime. Va putei imagina reacia acestora la anunul ca toate plcile Ethernet au fost scoase din uz.
Oricum, n momentul n care noile placi Ethernet vor aprea pe pia, se spera c acestea vor suporta 802.1Q i se vor putea integra n totalitate n VLAN-uri.
Aa c, daca cel care genereaz mesajul nu introduce cmpurile pentru VLAN, atunci cine o va
face? Rspunsul este c prima punte sau comutator ce suporta VLAN la care ajunge un cadru, adaug cmpurile, i la ultimul le scoate. Dar cum tie care cadru aparine crui VLAN ? Ei bine, prima
punte sau primul comutator poate atribui un numr VLAN unui port, se poate uita la adresa MAC,
sau s examineze informaia util. Pn cnd toate plcile Ethernet vor n conformitate cu 802.1Q,

300

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

suntem oarecum tot n punctul din care am plecat. Marea speran este c de la nceput toate plcile
gigabit Ethernet vor fi n conformitate cu 802.1Q i pe msur ce oamenii vor trece la gigabit
Ethernet , 802.1Q va fi introdus automat. n ce privete problema cadrelor mai mari de 1518 octei,
802.1Q ridic limita la 1522 octei.
n timpul procesului de tranziie, multe reele vor avea ca maini perimate (de obicei Ethernet
clasic sau rapid) care nu suporta VLAN i maini (de obicei gigabit Ethernet) care suporta. Situaia
este artat n fig. 4-50, unde simbolurile umbrite suport VLAN iar celelalte nu. Pentru a simplifica
problema, presupunem c toate comutatoarele suporta VLAN. Chiar dac nu este cazul, primul
comutator ce suport VLAN poate aduga marcaje bazate pe adrese MAC sau IP.

Fig. 4-50. Tranziia de la un Ethernet perimat la un Ethernet ce suport VLAN.


Simbolurile umbrite suport VLAN; cele goale nu.

n aceasta figur, plcile Ethernet ce suport VLAN genereaz direct cadre marcate (de exemplu 802.1Q), i comutrile ulterioare se folosesc de aceste marcaje. Pentru a face aceast comutare,
comutatoarele trebuie sa tie n prealabil care VLAN poate fi accesat i pe ce port. tiind c un cadru aparine unui VLAN gri , nu ajut prea mult faptul ca un cadru aparine unui VLAN gri, pn
cnd comutatorul tie care porturi sunt conectate la mainile din VLAN-ul gri. Aa c, comutatorul
are nevoie de o tabela indexat de VLAN care s spun ce porturi sa foloseasc i care suporta
VLAN sau nu.
Cnd un PC perimat trimite un cadru ctre un comutator ce suporta VLAN, comutatorul construiete un nou cadru marcat bazat pe cunotinele sale despre VLAN-ul care l-a trimis (folosind
portul, adresa MAC sau adresa IP). Din acel punct, nu mai conteaz dac cel care trimite este o main legacy (perimat). Similar, un comutator care trebuie s trimit un cadru marcat ctre o main
perimat (legacy) trebuie s reconstruiasc cadrul n forma veche nainte de a-l furniza.
Haidei s privim formatul cadrului 802.1Q. Este schiat n fig. 4-51. Singura schimbare este adugarea unei perechi de cmpuri a cate 2 octei. Primul este identificatorul protocolului VLAN. El
are ntotdeauna valoarea 0x8100. ntruct acest numr este mai mare de 1500, toate plcile Ethernet
interpreteaz acest numr ca tip nu ca lungime. Ce face o placa mai veche cu un asemenea cadru
este o problem deoarece asemenea cadre nu ar trebui trimise ctre acestea.

SEC. 4.7.

COMUTAREA LA NIVELUL LEGTURII DE DATE

301

Fig. 4-51. Formatul cadrelor Ethernet 802.3 motenite i 802.1Q.

Al doilea cmp de 2 octei conine trei sub-cmpuri. Sub-cmpul principal este identificatorul
VLAN ce ocupa cei mai puin semnificativi 12 octei. Aceasta este problema principala: crui VLAN
aparine fiecare cadru? Cmpul Prioritate de 3 bii nu are nici o legtur cu VLAN-ul, dar ntruct
schimbarea antetului Ethernet este un eveniment foarte rar care s-ar desfura pe parcursul a trei
ani i ar implica 100 de oameni, de ce nu am pune alte informaii folositoare n el? Acest cmp face
posibila distingerea intre traficul n timp real implementat hard i cel implementat soft i de traficul
intens pentru o mai buna calitate a serviciilor n Ethernet. Este nevoie de voce prin Ethernet (ca sa
fim impariali, IP a avut un cmp similar mai mult de un sfert de secol i nu a fost folosit niciodat).
Ultimul bit, CFI (Canonical Format Indicator, rom: indicator de format canonic) ar fi trebuit sa
fie numit CEI (Corporate Ego Indicator, rom: indicator de ego al corporaiei). Originar era folosit
s indice adresele MAC n format little-indian sau big-indian ns aceast obinuin s-a pierdut datorit controverselor. n zilele noastre prezena lui indic faptul c informaiile utile conin un 802.5
cadru prestabilit (freezed-dried, rom: ngheat i uscat) care este transportat de o reea Ethernet care
sper s gseasc la destinaie un LAN 802.5. Tot acest aranjament, nu are nici o legtura cu VLANurile. ns politica comitetului de standarde este foarte asemntoare cu politica obinuit: dac
votezi n favoarea bitului meu, votez i eu n favoarea bitului tu.
Aa cum am precizat mai sus, cnd un cadru marcat ajunge la un comutator ce suporta VLAN,
comutatorul folosete, ca un index intr-o tabela identificatorul VLAN, pentru a gsi la ce port sa trimit. Dar de unde vine tabela? Este construita manual, ne-am ntors de unde am plecat: configurarea
manuala a punilor. Frumuseea punilor transparente este faptul c acestea sunt montate i pornite
(plug-and-play) i nu au nevoie de configurare manual. Ar fi pcat s se piard aceast facilitate. Din
fericire, punile care suport VLAN se pot autoconfigura pe baza marcajelor care vin. Dac un cadru
marcat, cum ar fi VLAN 4, ajunge la portul 3, aparent cteva calculatoare de pe portul 3 aparin
VLAN-ului 4. Standardul 802.1Q explica cum s construieti dinamic tabelele, n marea majoritate a
cazurilor referindu-se la pri apropiate din algoritmul lui Perlman standardizat n 802.1D.
nainte de a prsi subiectul referitor la rutarea n VLAN, merita s facem o ultima observaie.
Muli oameni n lumea Internetului i a Ethernetului susin fanatic reelele neorientate pe conexiune
i se opun cu violen conexiunilor la nivelul legturii de date. n momentul de fa, VLAN-urile introduc ceva ce este surprinztor de asemntor cu o conexiune. Pentru a utiliza corect VLAN-uri,
fiecare cadru are un nou identificator special care este utilizat pe post de index ntr-o tabel din comutator, pentru a gsi destinaia cadrului. Este exact acelai principiu de funcionare ce apare la reelele
orientate pe conexiune. n reelele neorientate pe conexiune adresa destinaie este folosit la rutare i
nu exista identificatori de conexiune. Alte aspecte privind comunicarea vor fi tratate n cap. 5.

302

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

4.8 REZUMAT
Anumite reele au un singur canal care este folosit pentru toate comunicaiile. n aceste reele,
problema principal de proiectare este alocarea acestui canal ntre staiile concurente care doresc s
l foloseasc. Au fost pui la punct numeroi algoritmi de alocare a canalului. Un rezumat al unora
dintre cele mai importante metode de alocare a canalului este prezentat n fig. 4-52.
Metod
FDM
WDM
TDM
ALOHA pur
ALOHA cuantificat
CSMA 1-persistent
CSMA nepersistent
CSMA p-persistent
CSMA/CD
Hart de bii (bit map)
Numrare binar invers
Parcurgere arborescent
Divizarea lungimii de und
MACA, MACAW
Ethernet
FHSS
DSSS
CSMA/CA

Descriere
Dedic o band de frecven fiecrei staii
O schem dinamic FDM pentru fibr optic
Dedic o cuant de timp fiecrei staii
Transmisie nesincronizat n orice moment
Transmisie aleatoare n cuante de timp bine definite
Acces multiplu standard cu detectarea purttoarei
ntrziere aleatoare cnd canalul este ocupat
CSMA cu probabilitatea de persisten p
CSMA cu oprire n cazul detectrii unei coliziuni
Utilizeaz o hart de bii pentru planificare de tip rulare prin rotaie
Urmtoarea este staia pregtit cu cel mai mare numr
Reduce conflictele prin activare selectiv
Schem FDM dinamic pentru fibre optice
Protocoale LAN fr fir
CSMA/CD cu algoritm cu regresie exponenial binar
Frequency hopping spread spectrum
Direct sequence spread spectrum
Acces multiplu cu sesizarea purttoarei cu evitarea coliziunilor

Fig. 4-52. Metode i sisteme de alocare a canalului pentru un canal obinuit.

Cele mai simple scheme de alocare sunt FDM i TDM. Acestea sunt eficiente atunci cnd numrul de staii este mic i traficul continuu, oarecum echilibrat. Amndou sunt larg folosite n aceste
condiii, de exemplu pentru a diviza banda de legtur utilizat pentru trunchiuri telefonice.
Dac numrul staiilor este mare i variabil, iar traficul de tip rafal, atunci FDM i TDM nu
sunt alegeri bune. Ca alternativ a fost propus protocolul ALOHA, cu sau fr cuantificare i control. ALOHA i numeroasele sale variante i derivate a fost pe larg discutat, analizat i folosit n
sisteme reale.
Atunci cnd starea canalului poate fi detectat, staiile pot evita nceperea unei transmisii ct
timp transmite alt staie. Aceast tehnic, detectarea purttoarei, a condus la o diversitate de protocoale care pot fi folosite pe LAN-uri i MAN-uri.
Exist o clas de protocoale care elimin total conflictele, sau cel puin le reduce considerabil.
Numrarea binar invers elimin complet conflictele. Protocolul de parcurgere arborescent le
reduce mprind dinamic staiile n dou grupuri disjuncte, unuia permindu-i-se s transmit iar
celuilalt nu. Acesta ncearc s fac mprirea astfel, nct transmisia s-i fie permis unei singure
staii dintre cele pregtite s trimit.
LAN-urile fr fir au propriile lor probleme i soluii. Cea mai mare problem este cauzat de
staii ascunse, astfel nct CSMA nu funcioneaz. O clas de soluii, tipizat de MACA i MACAW,
intenioneaz s stimuleze transmisiile n jurul destinaiei, pentru a mbunti funcionarea CSMA.

SEC. 4.9

PROBLEME

303

FHSS i DSSS sunt de asemenea utilizate. IEEE 802.11 combin CSMA i MACAW pentru a produce CSMA/CA.
Ethernetul este forma dominanta pentru reele locale. Acesta utilizeaz CSMA/CD pentru alocarea canalului. Versiunile vechi foloseau cabluri ce erpuiau de la o maina la alta, dar acum sunt
utilizate perechi de fire torsadate ce se conecteaz n noduri i comutatoare. Vitezele au crescut de
la 10 Mbps la 1 Gbps i cresc n continuare.
LAN-urile fr fir sunt din ce n ce mai comune, 802.11 dominnd acest domeniu. Nivelul su fizic permite cinci moduri de transmisie diferite, incluznd infrarou, o varietate de spread spectrum
schemes, i un sistem FDM multicanal. Poate opera cu cte o staie de baz n fiecare celul, dar
poate opera i fr nici. Protocolul este o versiune de MACAW cu sesizarea virtual a purttoarei.
MAN-urile fr fir au nceput deja s apar. Acestea sunt sisteme de band larg care utilizeaz unde radio pentru a nlocui ultimele poriuni n conexiunile telefonice. Sunt folosite tehnici tradiionale
de modulaie de band ngust. Calitatea serviciilor este important, cu 802.16 definindu-se patru
clase i anume: vitez de transmisie constant, dou viteze de transmisie variabile i o vitez de
transmisie cu cea mai bun ncercare (eng. best efforts).
Sistemul Bluetooth este de asemenea fr fir dar este adresat mai mult ctre sistemele desktop,
pentru conectarea ctilor i a altor echipamente la calculatoare fr a utiliza fire. Se intenioneaz
de asemenea conectarea perifericelor, cum ar fi faxurile la telefoane mobile. Ca i 802.11, acesta
folosete FHSS n banda ISM. Datorit nivelului de zgomot din multe medii i datorit necesitaii
unei interaciuni n timp real, diferite protocoale nglobeaz mecanisme complicate pentru urmrirea i corecia erorilor.
Avnd att de multe LAN-uri diferite, este necesar o metod de a le interconecta. Punile i
comutatoarele sunt folosite n acest scop. Algoritmul cu arbore de acoperire este folosit pentru a
construi puni plug-and-play. O noua dezvoltare n domeniul interconectrii LAN-urilor este
VLAN, care separ topologia logic a LAN-urilor de topologia fizic. Un nou format pentru cadrele
Ethernet (802.1Q) a fost introdus pentru a oferi o modalitate mai simpl de introducere a VLANurilor n organizaii.

4.9 PROBLEME
1.

Pentru aceast problema folosii o formula din acest capitol, ns nainte de a ncepe rezolvarea
problemei scriei formula. Cadrele ajung aleator la un canal de 100 Mbps pentru transmitere.
Dac n momentul cnd un cadru ajunge avem canalul ocupat, acesta i ateapt rndul ntr-o
coad. Dimensiunea cadrului este distribuita exponential cu o medie de 10.000 bii/cadru. Pentru fiecare din urmtoarele rate de sosire, precizai ntrzierea medie a unui cadru, incluznd
timpul ct acesta st n coad i timpul ct dureaz transmisia.
a) 90 cadre/sec.
b) 900 cadre/sec.
c) 9000 cadre/sec.

304

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

2.

Un grup de N staii folosesc n comun un canal ALOHA pur de 56 Kbps. Fiecare staie emite n
medie un cadru de 1000 de bii la fiecare 100 sec, chiar dac cel precedent nu a fost nc trimis
(de exemplu, staiile folosesc zone tampon). Care este valoarea maxim a lui N?

3.

Comparai ntrzierea unui canal ALOHA pur cu aceea a unui canal ALOHA cuantificat la
ncrcare mic. Care dintre ele este mai mic? Motivai rspunsul.

4.

Zece mii de staii de rezervare a biletelor de avion concureaz pentru folosirea unui singur canal
ALOHA cuantificat. O staie obinuit face 18 cereri/or. O cuant este de 125 s. Care este ncrcarea total aproximativ a canalului?

5.

O populaie mare de utilizatori ALOHA genereaz 50 cereri/sec, inclusiv originalele i retransmisiile. Timpul este cuantificat n uniti de 40 ms.
a) Care este ansa de succes a primei ncercri?
b) Care este probabilitatea unui numr de exact k coliziuni urmate de un succes?
c) Cte ncercri de transmisie ne ateptm s fie necesare?

6.

Msurtorile fcute asupra unui canal ALOHA cuantificat, cu un numr infinit de utilizatori,
arat c 10% din cuante sunt nefolosite.
a) Care este ncrcarea canalului, G?
b) Care este productivitatea?
c) Canalul este subncrcat sau suprancrcat?

7.

ntr-un sistem cuantificat ALOHA cu o populaie infinit, numrul mediu de cuante pe care o
statie le ateapt ntre o coliziune i retransmisia ei, este 4. Reprezentai curba ntrzierii n
funcie de productivitate, pentru acest sistem.

8.

Cat timp o staie s trebuie s atepte n cel mai ru caz nainte de a putea transmite cadre intrun LAN ce folosete:
a) protocolul de baz harta de bii?
b) protocolul lui Mok i Ward cu permutare virtual a numerelor staiilor?

9.

Un LAN folosete versiunea lui Mok i Ward pentru numrtoarea invers binar. La un anumit moment, cele zece staii au numerele virtuale de staie 8, 2, 4, 5, 1, 7, 3, 6, 9 i 0. Urmtoarele trei staii care trebuie s emit sunt 4, 3 i 9, n aceast ordine. Care sunt noile numere virtuale de staie dup ce toate cele trei i-au terminat transmisiile?

10. aisprezece staii concureaz pentru folosirea unui canal comun folosind protocolul cu parcurgere arborescent adaptiv. Dac toate staiile ale cror adrese sunt numere prime devin brusc
simultan disponibile, cte intervale de bit sunt necesare pentru a rezolva conflictul?
11. O colecie de 2n staii folosesc protocolul cu parcurgere arborescent adaptiv pentru a arbitra
accesul la un cablu comun. La un moment dat, dou dintre ele devin disponibile. Care este numrul minim, maxim i mediu de cuante pentru a parcurge arborele dac 2n >> 1?
12. LAN-urile fr fir pe care le-am studiat foloseau protocoale ca MACA n loc de CSMA/CD. n
ce condiii ar fi posibil s foloseasc CSMA/CD?
13. Care sunt caracteristicile comune ale protocoalelor de acces la canal WDMA i GSM?

SEC. 4.9

PROBLEME

305

14. ase staii , de la A la F, comunica utiliznd protocolul MACA. Este posibil ca doua transmisii
sa aib loc simultan? Explicai rspunsul.
15. O cldire cu 7 etaje are 15 birouri alturate pe fiecare etaj. Fiecare birou conine o priz de
perete pentru un terminal pe peretele din fa, astfel nct prizele formeaz o reea rectangular n plan vertical, cu o distan de 4 m ntre prize, att pe orizontal ct i pe vertical. Presupunnd c este posibil s se monteze cte un cablu direct ntre orice pereche de prize, pe orizontal, vertical sau diagonal, cti metri de cablu sunt necesari pentru conectarea tuturor
prizelor folosind:
a) O configuraie stea cu un singur ruter n mijloc?
b) Un LAN 802.3?
c) O reea de tip inel (fr fir central)?
16. Care este viteza (n bauds) a unui LAN 802.3 standard de 10 Mbps?
17. Schiai codificarea Manchester pentru irul de bii: 0001110101.
18. Schiai codificarea Manchester diferenial pentru irul de bii din problema precedent. Presupunei c linia este iniial n stare jos.
19. Un LAN CSMA/CD de 10 Mbps (care nu e 802.3), lung de 1 km, are o vitez de propagare de
200 m/s. Cadrele de date au o lungime de 256 bii, incluznd 32 de bii de antet, suma de control i alte date suplimentare. Primul interval de bit dup o transmitere efectuat cu succes este
rezervat pentru receptor spre a ocupa canalul pentru a trimite un cadru de confirmare de 32 de
bii. Care este viteza efectiv de date, excluznd ncrcarea suplimentar i presupunnd c nu
sunt coliziuni?
20. Dou staii CSMA/CD ncearc s transmit fiecare fiiere mari (multicadru). Dup ce
este trimis fiecare cadru, ele concureaz pentru canal folosind algoritmul de regresie exponenial binar. Care este probabilitatea terminrii conflictului la runda k, i care este
numrul mediu de runde per conflict?
21. S considerm cazul unei reele CSMA/CD de 1G bps, cu un cablu mai lung de 1 km, fr
repetoare. Viteza semnalului pe cablu este de 200.000 km/s. Care este dimensiunea minim a cadrului?
22. Un pachet IP ce trebuie transmis n Internet are 60 octei cu tot cu antete. Daca LLC nu este utilizat, este nevoie s se adauge informaie de umplutur n cadrul Ethernet, i dac da, ci octei?
23. Cadrele Ethernet trebuie s aib o lungime minim de 64 de octei pentru a avea sigurana c
emitorul nc mai emite, n cazul unei coliziuni la capatul cellalt al cablului. Fast Ethernet-ul
are aceeai dimensiune minim a cadrului de 64 de octei, dar poate emite biii de zece ori mai
rapid. Cum este posibil s se menin aceeai dimensiune minim a cadrului?
24. Autorii unor cri susin c dimensiunea maxim a cadrului Ethernet este de 1518 octei n loc
de 1500 octei. Au acetia dreptate? Explicai rspunsul.

306

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

25. Specificaiile 1000Base-SX spun c ceasul ar trebui s mearg la 1250 MHz, dei Gigabit Ethernet ar trebui sa transmit 1 Gbps. Este folosit acest plus de vitez pentru a mri sigurana
transmisiei? Dac nu, specificai ce se ntmpl.
26. Cte cadre pe secund poate manevra gigabit Ethernet? Luai n considerare toate cazurile relevante. Sugestie: conteaz faptul c este o reea gigabit Ethernet.
27. Numii dou reele care permit sa aib cadre mpachetate cap-la-cap. De ce se merita s ai
aceast facilitate?
28. n fig. 4-27 sunt artate patru staii, A, B, C i D. Care dintre ultimele doua staii credei ca este
mai aproape de A i de ce?
29. Presupunnd ca un 11-Mbps LAN 802.11b transmite cadre de 64-octeti cap-la-cap printr-un
canal radio rata erorilor de 10-7 . Cte cadre pe secund vor fi distruse n medie?
30. O reea 802.16 are lungimea canalului de 20 MHz. Ci bii/sec pot fi transmii la o staie
conectat?
31. IEEE 802.16 suport patru clase de servicii. Care clas este cea mai bun alegere pentru a
transmite semnal video necomprimat?
32. Dai dou motive pentru care reelele ar trebui s utilizeze corectarea erorilor n loc de detecia
erorilor i retransmisia datelor?
33. n fig. 4-35, am vzut ca un dispozitiv Bluetooth poate fi n dou piconet-uri n acelai timp.
Exist vreun motiv ca un dispozitiv sa nu fie stpn n ambele piconet-uri n acelai timp?
34. Fig. 4-25 arat diferite protocoale de nivel fizic. Care dintre acestea este mai apropiat de
protocolul de nivel fizic al Bluetooth? Care este marea diferen dintre cele doua?
35. Bluetooth suport dou tipuri de legtur ntre un stpn i un sclav. Care sunt acestea i
la ce sunt folosite fiecare?
36. Cadrul de semnalizare la FHSS (frequency hopping spread spectrum) varianta 802.11 conine
timpul de locuire (dwell time). Credei ca la Bluetooth, cadrul de semnalizare analog, conine
de asemenea timpul de locuire (dwell time)? Discutai rspunsul.
37. Considerai LAN-urile interconectate din fig. 4-44. Presupunei c gazda a i b sunt n LAN-ul
1, c este n LAN-ul 2 i d este n LAN-ul 8. Iniial tabelele de dispersie din toate punile sunt
goale i se folosete arborele de acoperire din fig. 4-44(b). Artai cum tabelele de dispersie din
puni diferite se schimb dup fiecare din urmtoarele evenimente ce se succed : primul a, apoi
b i aa mai departe.
a) a trimite ctre d.
b) c trimite ctre a.
c) d trimite ctre c.
d) d trimite ctre LAN-ul 6.
e) d trimite ctre a.

SEC. 4.9

PROBLEME

307

38. O consecin n folosirea unui arbore de acoperire pentru a retransmite cadre intr-un LAN extins este ca unele puni nu particip la retransmiterea cadrelor. Identificai trei puni de acest fel
n fig. 4-44. Exista vreun motiv pentru a pstra aceste puni, chiar daca ele nu sunt folosite pentru retransmitere?
39. Imaginai-v ca un comutator are plci de extensie pentru patru linii de intrare. Se ntmpl
frecvent ca un cadru care ajunge pe una din aceste linii trebuie s ias pe alt linie pe aceeai
plac. Ce variante are proiectantul comutatorului pentru aceasta situaie?
40. Un comutator proiectat pentru a fi utilizat cu un Ethernet rapid are un fund de sertar care
poate transfera 10 Gbps. Cte cadre/sec poate manevra n cel mai ru caz?
41. Considerai reeaua din fig. 4-49(a). Daca maina J devine brusc alb; este nevoie de vreo
schimbare la etichetare? Dac da, ce anume?
42. Descriei pe scurt diferenele dintre comutatoarele cu memorare i retransmitere i cele cu cutthrough?
43. n ceea ce privete cadrele defecte, comutatoarele cu memorare i retransmitere au un avantaj
fata de cele cut-through. Explicai care sunt acestea.
44. Pentru a pune n funciune VLAN-uri, este nevoie de tabele de configuraie n comutatoare i
puni. Ce s-ar ntmpla daca VLAN-urile din fig. 4-49(a) ar utiliza noduri n loc de mediu partajat? Nodurile au nevoie de tabele de configurare? De ce sau de ce nu?
45. n fig. 4-50 comutatorul din domeniul final cu PC mbtrnite, figurat n dreapta este un comutator pregtit pentru VLAN. Este posibil utilizarea unui comutator vechi n acest caz? Dac
da, cum va funciona acesta? Dac nu, de ce?
46. Scriei un program care s simuleze comportamentul protocolului CSMA/CD n Ethernet cnd
exista N staii pregtite sa transmit n timp ce se transmite un cadru. Programul vostru trebuie
s prezinte timpii cnd fiecare staie ncepe sa transmit cu succes cadrul. Presupunei c un tact
de ceas apare odat la fiecare cuant de timp (51,2 microsecunde) i o detecie de coliziune i o
secven de bruiaj dureaz o cuant de timp. Toate cadrele sunt de dimensiune maxim admis.

5
NIVELUL REEA

Nivelul reea are ca sarcin preluarea pachetelor de la surs i transferul lor ctre destinaie.
Ajungerea la destinaie poate necesita mai multe salturi prin rutere intermediare de-a lungul drumului. Aceast funcie contrasteaz clar cu cea a nivelului legtur de date, care avea scopul mult mai
modest de a transfera cadre de la un capt al unui fir la cellalt. Astfel nivelul reea este cel mai sczut nivel care se ocup de transmisii capt la capt.
Pentru realizarea scopurilor propuse, nivelul reea trebuie s cunoasc topologia subreelei de
comunicaie (de exemplu mulimea tuturor ruterelor) i s aleag calea cea mai potrivit prin aceasta. De asemenea trebuie s aleag cile de urmat astfel, nct s nu ncarce excesiv unele legturi de
comunicaie sau rutere n timp ce altele sunt inactive. n fine, cnd sursa i destinaia fac parte din
reele diferite, apar probleme noi. Este sarcina nivelului reea s se ocupe de ele. n acest capitol
vom studia toate aceste aspecte i le vom exemplifica, in primul rnd folosind Internetul i protocolul
lui la nivelul reea, IP, cu toate c vom vorbi i despre reele fr fir.

5.1 CERINELE DE PROIECTARE ALE NIVELULUI REEA


Vom prezenta, n continuare, o introducere a cerinelor pe care proiectantul nivelului reea trebuie
s le rezolve. Acestea includ serviciile furnizate nivelului transport i proiectarea intern a subreelei.

309

310

NIVELUL REEA

5.1.1

CAP. 5

Comutare de pachete de tip Memoreaz-i-Retransmite (Store-and-Forward)

Dar nainte de a ncepe explicarea detaliilor nivelului reea, merit probabil sa reiniializm
contextul n care opereaz protocoalele de la nivelul reea. Acest context este prezentat n fig. 5-1.
Componentele majore ale sistemului sunt echipamentul companiei de telecomunicaii (rutere
conectate prin linii de transmisie), prezentat n interiorul ovalului umbrit, i echipamentul
clientului, prezentat n afara ovalului. Gazda H1 este conectat direct la unul dintre ruterele
companiei de telecomunicaii, A, printr-o linie nchiriat. n contrast, H2 este ntr-o reea LAN cu
un ruter, F, deinut i operat de ctre client. Acest ruter are, deasemeni, i o linie nchiriat ctre
echipamentul companiei de telecomunicaii. Am prezentat F ca fiind n afara ovalului, deoarece nu
aparine companiei de telecomunicaii, dar n termeni de construcie, software i protocoale,
probabil c nu difer fa de ruterele acesteia. Este discutabil dac aparine subreelei, dar n
contextul acestui capitol ruterele din localul clientului sunt considerate parte a subreelei deoarece
ruleaz aceeai algoritmi ca i ruterele companiei de telecomunicaii (i aici principala noastr
preocupare sunt algoritmii).

Fig. 5-1. Cadrul protocoalelor nivelului reea.

Acest echipament este folosit dup cum urmeaz. O gazd care are de transmis un pachet l
transmite celui mai apropiat ruter, fie in aceeai reea LAN, fie printr-o legtur punct la punct cu
compania de telecomunicaii. Pachetul este memorat acolo pn ajunge integral, astfel nct s
poat fi verificat suma de control. Apoi este trimis mai departe ctre urmtorul ruter de pe traseu,
pn ajunge la gazda destinaie, unde este livrat. Acest mecanism reprezint comutarea de pachete
de tip memoreaz-i-retransmite, aa cum am vzut n capitolele anterioare.

5.1.2

Servicii furnizate nivelului transport

Nivelul reea furnizeaz servicii nivelului transport la interfaa dintre cele dou niveluri. O ntrebare important este ce fel de servicii furnizeaz nivelul reea nivelului transport. Serviciile nivelului
reea au fost proiectate avnd n vedere urmtoarele scopuri:
1.
2.

Serviciile trebuie s fie independente de tehnologia ruterului.


Nivelul transport trebuie s fie independent de numrul, tipul i topologia ruterelor existente.

SEC. 5.1

3.

CERINELE DE PROIECTARE ALE NIVELULUI REEA

311

Adresele de reea disponibile la nivelul transport trebuie s foloseasc o schem de numerotare uniform, chiar n cadrul reelelor LAN i WAN.

Obiectivele fiind stabilite, proiectantul nivelului reea are o mare libertate n a scrie specificaiile
detaliate ale serviciilor oferite nivelului transport. Aceast libertate degenereaz adesea ntr-o aprig
btlie ntre dou tabere opuse. Problema central a discuiei este dac nivelul reea trebuie s furnizeze servicii orientate pe conexiune sau servicii neorientate pe conexiune.
O tabr (reprezentat de comunitatea Internet) afirm c scopul ruterului este de a transfera
pachete i nimic mai mult. n viziunea lor (bazat pe experiena a aproape 30 de ani de exploatare a
unei reele de calculatoare n funciune), subreeaua este inerent nesigur, indiferent cum ar fi proiectat. De aceea calculatoarele gazd trebuie s accepte faptul c reeaua este nesigur i s fac
controlul erorilor (i.e., detecia i corecia erorii) i controlul fluxului ele nsele.
Acest punct de vedere duce rapid la concluzia c serviciul reea trebuie s fie neorientat pe conexiune, cu dou primitive SEND PACKET i RECEIVE PACKET i cu foarte puin n plus. n particular, nu trebuie fcut nici o operaie pentru controlul ordinii sau fluxului pachetelor pentru c
oricum calculatorul gazd va face acest lucru, i, de obicei, dublarea acestor operaii aduce un ctig
nesemnificativ. n continuare, fiecare pachet va trebui s poarte ntreaga adres de destinaie, pentru
c fiecare pachet este independent de pachetele predecesoare, dac acestea exist.
Cealalt tabr (reprezentat de companiile de telefoane) afirm c subreeaua trebuie s asigure un serviciu orientat pe conexiune sigur. Ei susin c 100 de ani de experien cu sistemul telefonic
mondial reprezint un ghid excelent. n aceast perspectiv, calitatea serviciului este elementul dominant, i ntr-o subreea fr conexiuni, calitatea serviciului este dificil de obinut, n special pentru
trafic in timp real cum ar fi voce i imagine.
Aceste dou tabere sunt cel mai bine exemplificate de Internet i reele ATM. Reeaua Internet
ofer un serviciu la nivelul reea neorientat pe conexiune; reelele ATM ofer un serviciu la nivelul
reea orientat pe conexiune. Totui, este interesant de notat c cu ct garantarea calitii serviciului
devine din ce in ce mai important, Internetul evolueaz. n particular, ncepe s dobndeasc proprieti asociate normal cu serviciile orientate conexiune, aa cum vom vedea mai trziu. De fapt,
ne-am fcut o prere despre aceast evoluie in timpul studiului despre reele VLAN n Cap. 4.

5.1.3

Implementarea serviciului neorientat pe conexiune

Dup ce am vzut cele dou clase de servicii pe care nivelul reea le furnizeaz utilizatorilor si,
este momentul s vedem funcionarea intern a acestui nivel. Sunt posibile dou organizri diferite,
n funcie de tipul serviciului oferit. Dac este oferit un serviciu neorientat pe conexiune, atunci pachetele sunt trimise in subreea individual i dirijate independent de celelalte. Nu este necesar nici o
iniializare prealabil. n acest context, pachetele sunt numite frecvent datagrame (datagrams) (prin
analogie cu telegramele), iar subreeaua este numit subreea datagram (datagram subnet). Dac
este folosit serviciul orientat conexiune, atunci, nainte de a trimite pachete de date, trebuie stabilit
o cale de la ruterul surs la ruterul destinaie. Aceast conexiune este numit VC (virtual circuit,
circuit virtual), prin analogie cu circuitele fizice care se stabilesc n sistemul telefonic, iar subreeaua
este numit subreea cu circuite virtuale (virtual-circuit subnet). n aceast seciune vom studia subreele datagram; n urmtoarea seciune vom studia subreelele cu circuite virtuale.
S vedem cum funcioneaz o subreea datagram. S presupunem c procesul P1 din fig. 5-2 are
un mesaj lung pentru procesul P2. El transmite mesajul nivelului transport, cu instruciunile de livrare ctre procesul P2 aflat pe calculatorul gazd H2. Codul nivelului transport ruleaz pe calculatorul

312

NIVELUL REEA

CAP. 5

gazd H1, de obicei n cadrul sistemului de operare. Acesta insereaz la nceputul mesajului un antet
corespunztor nivelului transport i transfer rezultatul nivelului reea, probabil o alt procedur din
cadrul sistemului de operare.

Fig. 5-2. Dirijarea ntr-o subreea datagram.

S presupunem c mesajul este de patru ori mai lung dect dimensiunea maxim a unui pachet,
aa c nivelul reea trebuie s l sparg n patru pachete, 1, 2, 3, i 4 i s le trimit pe fiecare n parte
ruterului A, folosind un protocol punct-la-punct, de exemplu, PPP. Din acest punct controlul este
preluat de compania de telecomunicaii. Fiecare ruter are o tabel intern care i spune unde s trimit pachete pentru fiecare destinaie posibil. Fiecare intrare n tabel este o pereche compus din
destinaie i linia de ieire folosit pentru acea destinaie. Pot fi folosite doar linii conectate direct.
De exemplu, n fig. 5-2, A are doar dou linii de ieire ctre B i C astfel c fiecare pachet ce vine
trebuie trimis ctre unul dintre aceste rutere, chiar dac ultima destinaie este alt ruter. Tabela de
rutare iniial a lui A este prezentat n figur sub eticheta iniial.
Cum au ajuns la A, pachetele 1, 2 i 3 au fost memorate pentru scurt timp (pentru verificarea
sumei de control). Apoi fiecare a fost trimis mai departe ctre C conform tabelei lui A. Pachetul 1 a
fost apoi trimis mai departe ctre E i apoi ctre F. Cnd a ajuns la F, a fost ncapsulat ntr-un cadru
al nivelului legtur de date i trimis ctre calculatorul gazd H2 prin reeaua LAN.
Totui, ceva diferit s-a ntmplat cu pachetul 4. Cnd a ajuns la A a fost trimis ctre ruterul B,
chiar dac i el este destinat tot lui F. Dintr-un motiv oarecare, A a decis s trimit pachetul 4 pe o
rut diferit de cea urmat de primele trei. Poate c a aflat despre o congestie undeva pe calea ACE

SEC. 5.1

CERINELE DE PROIECTARE ALE NIVELULUI REEA

313

i i-a actualizat tabela de rutare, aa cum apare sub eticheta mai trziu. Algoritmul ce administreaz tabelele i ia deciziile de rutare se numete algoritm de rutare (routing algorithm). Algoritmii
de rutare sunt unele dintre principalele elemente pe care le vom studia n acest capitol.

5.1.4

Implementarea serviciilor orientate pe conexiune

Pentru serviciile orientate conexiune, avem nevoie de o subreea cu circuite virtuale. S vedem
cum funcioneaz aceasta. Ideea care se st la baza circuitelor virtuale este evitarea alegerii unei noi
ci (rute) pentru fiecare pachet trimis, ca n fig. 5-2. n schimb, atunci cnd se stabilete o conexiune,
se alege o cale ntre maina surs i maina destinaie, ca parte component a iniializrii conexiunii
i aceasta este memorat n tabelele ruterelor. Acea cale este folosit pentru tot traficul de pe conexiune, exact n acelai mod n care funcioneaz sistemul telefonic. Atunci cnd conexiunea este eliberat, este nchis i circuitul virtual. n cazul serviciilor orientate conexiune, fiecare pachet poart
un identificator care spune crui circuit virtual i aparine.

Fig. 5-3. Dirijare n cadrul unei subreele cu circuite virtuale.

De exemplu, s considerm situaia din fig. 5-3. Aici calculatorul gazd H1 a stabilit conexiunea 1
cu calculatorul gazd H2. Aceasta este memorat ca prima intrare n fiecare tabel de rutare. Prima
linie a tabelei lui A spune c dac un pachet purtnd identificatorul de conexiune 1 vine de la H1,
atunci trebuie trimis ctre ruterul C, dndu-i-se identificatorul de conexiune 1. Similar, prima intrare
a lui C dirijeaz pachetul ctre E, tot cu identificatorul de conexiune 1.
Acum s vedem ce se ntmpl dac H3 vrea, de asemenea, s stabileasc o conexiune cu H2.
Alege identificatorul de conexiune 1 (deoarece iniializeaz conexiunea i aceasta este singura conexiune) i indic subreelei s stabileasc circuitul virtual. Aceasta conduce la a doua linie din tabele.
Observai c apare un conflict deoarece dei A poate distinge uor pachetele conexiunii 1 de la H1

314

NIVELUL REEA

CAP. 5

de pachetele conexiunii 1 de la H3, C nu poate face asta. Din acest motiv, A asociaz un identificator
de conexiune diferit pentru traficul de ieire al celei de a doua conexiuni. Pentru evitarea conflictelor
de acest gen ruterele trebuie s poat nlocui identificatorii de conexiune n pachetele care pleac. n
unele contexte, aceasta se numete comutarea etichetelor (label switching).

5.1.5

Comparaie ntre subreele cu circuite virtuale i subreele datagram

Att circuitele virtuale ct i datagramele au suporteri i oponeni. Vom ncerca acum s rezumm argumentele ambelor tabere. Principalele aspecte sunt prezentate n fig. 5-4, dei cei extrem de
riguroi ar putea probabil gsi un contraexemplu pentru toate cele descrise n aceast figur.
Problem
Stabilirea circuitului
Adresare

Efectul defectrii
ruterului
Calitatea serviciului

Subreea datagram
Nu este necesar
Fiecare pachet conine adresa
complet pentru surs i destinaie
Ruterele nu pstreaz informaii
despre conexiuni
Fiecare pachet este dirijat independent
Nici unul, cu excepia pachetelor
pierdute n timpul defectrii
Dificil

Controlul congestiei

Dificil

Informaii de stare
Dirijare

Subreea cu circuite virtuale (CV)


Obligatorie
Fiecare pachet conine un numr mic de
CV
Fiecare CV necesit spaiu pentru tabela
ruterului per conexiune
Calea este stabilit la iniierea CV; toate
pachetele o urmeaz
Toate circuitele virtuale care trec prin
ruterul defect sunt terminate
Simplu, dac pentru fiecare CV pot fi alocate n avans suficiente resurse
Simplu, dac pentru fiecare CV pot fi alocate n avans suficiente resurse

Fig. 5-4. Comparaie ntre subreele datagram i subreele cu circuite virtuale.

n interiorul subreelei exist situaii n care trebuie s se aleag ntre faciliti antagoniste specifice fie circuitelor virtuale, fie datagramelor. Un astfel de compromis este acela ntre spaiul de memorie al ruterului i limea de band. Circuitele virtuale permit pachetelor s conin numere de
circuite n locul unor adrese complete. Dac pachetul tinde s fie foarte mic, atunci existena unei
adrese complete n fiecare pachet poate reprezenta o suprancrcare (overhead) important i deci o
irosire a limii de band. Preul pltit pentru folosirea intern a circuitelor virtuale este spaiul necesar pstrrii tabelei n ruter. Soluia mai ieftin este determinat de raportul ntre costul circuitelor
de comunicaie i cel al memoriei ruterului.
Alt compromis este cel ntre timpul necesar stabilirii circuitului i timpul de analiz a adresei. Folosirea circuitelor virtuale presupune existena unei faze iniiale de stabilire a cii, care cere timp i
consum resurse. Oricum, este uor s ne imaginm ce se ntmpl cu un pachet de date ntr-o subreea bazat pe circuite virtuale: ruterul folosete numrul circuitului ca un index ntr-o tabel pentru a afla unde merge pachetul. ntr-o reea bazat pe datagrame, pentru a gsi intrarea corespunztoare destinaiei se folosete o procedur de cutare mult mai complicat.
O alt problem este cea a dimensiunii spaiului necesar pentru tabela din memoria ruterului. O subreea datagram necesit o intrare pentru fiecare destinaie posibil, n timp ce o reea cu
circuite virtuale necesit o intrare pentru fiecare circuit virtual. Totui, acest avantaj este relativ iluzoriu deoarece i pachetele de iniializare a conexiunii trebuie rutate, iar ele folosesc adresele destinaie, la fel ca i datagramele.

SEC. 5.2

ALGORITMI DE DIRIJARE

315

Circuitele virtuale au unele avantaje n garantarea calitii serviciului i evitarea congestionrii


subreelei, deoarece resursele (de exemplu zone tampon, lrgime de band i cicluri CPU) pot fi
rezervate n avans, atunci cnd se stabilete conexiunea. La sosirea pachetelor, limea de band
necesar i capacitatea ruterului vor fi deja pregtite. Pentru o subreea bazat pe datagrame, evitarea congestionrii este mult mai dificil.
Pentru sistemele de prelucrare a tranzaciilor (de exemplu apelurile magazinelor pentru a verifica cumprturi realizate cu cri de credit) overhead-ul implicat de stabilirea i eliberarea unui circuit virtual poate reduce cu uurin utilitatea circuitului. Dac majoritatea traficului este de acest tip,
folosirea intern a circuitelor virtuale n cadrul subreelei nu prea are sens. Pe de alt parte, ar putea
fi de folos circuite virtuale permanente, stabilite manual i care s dureze luni sau chiar ani.
Circuitele virtuale au o problem de vulnerabilitate. Dac un ruter se defecteaz i i pierde coninutul memoriei, atunci toate circuitele virtuale care treceau prin el sunt suprimate, chiar dac acesta i revine dup o secund. Prin contrast, dac se defecteaz un ruter bazat pe datagrame vor fi
afectai doar acei utilizatori care aveau pachete memorate temporar n cozile de ateptare ale
ruterului i este posibil ca numrul lor s fie i mai mic, n funcie de cte pachete au fost deja confirmate. Pierderea liniei de comunicaie este fatal pentru circuitele virtuale care o folosesc, ns
poate fi uor compensat dac se folosesc datagrame. De asemenea, datagramele permit ruterului s
echilibreze traficul prin subreea, deoarece cile pot fi modificate parial n cursul unei secvene
lungi de pachete transmise.

372

5.4.5

NIVELUL REEA

CAP. 5

Comutarea etichetelor i MPLS

n timp ce IETF lucra la serviciile integrate i difereniate, unii dintre vnztorii de rutere cutau
metode mai bune de rutare. Munca lor s-a axat pe adugarea unei etichete n faa fiecrui pachet i
pe efectuarea rutrii mai degrab pe baza acestei etichete dect a adresei destinaie. Utilizarea etichetei ca index ntr-o tabel intern a ruterului face ca gsirea liniei de ieire corecte s se transforme ntr-o simpl cutare n tabel. Folosind aceast metod, rutarea se poate face foarte repede iar
resursele necesare pot fi rezervate pe traseu.
Bineneles, etichetarea fluxurilor n acest fel se apropie foarte mult de circuitele virtuale. X.25,
ATM, releu de cadre (eng.: frame-relay) i toate celelalte reele cu subreele cu circuite virtuale pun
i ele cte o etichet (identificatorul circuitului virtual) n fiecare pachet, o caut ntr-o tabel i
rutarea se face pe baza intrrii din tabel. n ciuda faptului c muli dintre membrii comunitii Internet au o puternic antipatie fa de rutarea orientat pe conexiune, se pare c nu se renun la
idee, de data aceasta pentru a furniza o rutare rapid i calitatea serviciilor. Totui exist diferene
fundamentale ntre modul n care se ocup Internetul de construcia rutelor i modul n care o fac
reelele orientate pe conexiune, deci n mod sigur tehnica nu este tradiionala comutare de circuite.
Noua idee de comutare este cunoscut sub mai multe denumiri, inclusiv comutarea etichetelor
(eng.: label switching) i comutarea marcajelor (eng.: tag switching). n cele din urm, IETF a nceput s standardizeze ideea sub numele de multiprotocol de comutare a etichetelor (MPLS
MultiProtocol Label Switching). n continuare o vom numi MPLS. Aceasta este descris n RFC
3031 i n multe alte RFC-uri.
Pe de alt parte, unii fac diferena ntre rutare i comutare. Rutarea este procesul de cutare a
adresei destinaie n tabel pentru a gsi unde trebuie trimis. n schimb, comutarea folosete o eti-

SEC. 5.4

CALITATEA SERVICIILOR

373

chet luat dintr-un pachet ca index ntr-o tabel de rutare. Aceste definiii sunt totui departe de a
fi universale.
Prima problem care apare este unde se pune eticheta. Din moment ce pachetele IP nu au fost
proiectate pentru circuite virtuale, n cadrul antetelor IP nu exist nici un cmp disponibil pentru
numerele circuitelor virtuale. Din acest motiv, n faa antetului IP a trebuit adugat un nou antet
MPLS. Pe o linie ruter-la-ruter folosind PPP ca protocol de ncadrare, formatul cadrului, inclusiv
antetele PPP, MPLS, IP i TCP, arat ca n fig. 5-41. ntr-un fel, MPLS este nivelul 2.5.

Fig. 5-41. Transmiterea unui segment TCP utiliznd IP, MPLS i PPP.

Antetul generic MPLS are 4 cmpuri, dintre care cel mai important este cmpul Etichet (Label)
care deine indexul. Cmpul QoS (Quality of Service; rom.: Calitatea serviciilor) precizeaz clasa de
servicii. Cmpul S se refer la memorarea mai multor etichete n reelele ierarhice (care vor fi discutate mai trziu). Dac ajunge la valoarea 0, pachetul este aruncat. Aceast facilitate previne buclarea
infinit n cazul instabilitii rutrii.
Deoarece antetele MPLS nu fac parte din pachetul format la nivelul reea i nici din cadrele nivelului legtur de date, MPLS reprezint o extindere a acestor dou nivele. Printre altele aceasta
nseamn c este posibil construirea de comutatoare MPLS care s poat ruta att pachete IP ct i
celule ATM, dup necesiti. Aceast caracteristic a dus la apariia termenului multiprotocol din
denumirea de MPLS.
Cnd un pachet mbuntit MPLS (sau o celul) ajunge la un ruter ce suport MPLS, eticheta
este folosit ca index ntr-un tabel pentru a determina linia de ieire ce va fi folosit precum i noua
etichet. Aceast schimbare de etichete se folosete n toate subreelele cu circuite virtuale deoarece
etichetele au doar semnificaie local i dou rutere diferite pot trimite pachete care nu au legtur
unul cu altul dar au aceeai etichet unui alt ruter pentru a fi transmise pe aceeai linie de ieire.
Pentru a putea fi difereniate la captul cellalt, etichetele trebuie s fie remapate la fiecare salt. Am
vzut cum funcioneaz acest mecanism n fig. 5-3. MPLS folosete aceeai tehnic.
O diferen fa de circuitele virtuale tradiionale este nivelul de agregare. n mod sigur este posibil ca fiecare flux s aib propriul set de etichete n cadrul subreelei. Totui se obinuiete mai mult
ca ruterele s grupeze mai multe fluxuri care au ca destinaie un anumit ruter sau LAN i s foloseasc pentru ele o singur etichet. Despre fluxurile care sunt grupate sub o aceeai etichet se spune c
aparin aceleiai Clase echivalente de rutare (FEC Forwarding Equivalence Class). Aceast clas
acoper nu numai pachetele care pleac, dar i clasele lor de servicii (n sensul claselor difereniate de
servicii) deoarece toate pachetele pe care le conin sunt tratate la fel din motive de expediere.
La rutarea tradiional de tip circuit virtual nu este posibil s se grupeze mai multe ci cu destinaii diferite pe acelai identificator de circuit virtual, deoarece la destinaia final nu ar mai fi posibil

374

NIVELUL REEA

CAP. 5

s se fac distincie ntre ele. Cu MPLS, pachetele conin, pe lng etichet, i adresa lor final de
destinaie, n aa fel nct, la captul rutei etichetate, antetul poate fi eliminat i rutarea poate continua n mod obinuit, folosind adresa de destinaie a nivelului reea.
O diferen major dintre MPLS i circuitele virtuale convenionale este modul n care este construit tabela de rutare. n reelele cu circuite virtuale tradiionale, cnd un utilizator dorete s stabileasc o conexiune, este lansat n reea un pachet de iniializare pentru a crea calea i intrrile tabelelor de rutare. MPLS nu funcioneaz astfel deoarece nu exist faz de iniializare pentru fiecare
conexiune (deoarece ar stopa prea mult din software-ul existent n Internet).
n schimb exist dou modaliti n care pot fi create intrrile tabelelor de rutare. n abordarea
bazat pe date, (data-driven) atunci cnd un pachet ajunge la primul ruter, acesta contacteaz
ruterul din aval, la care trebuie s ajung pachetul, i i cere s genereze o etichet pentru flux.
Aceast metod se aplic recursiv. Practic, aceasta este crearea circuitelor virtuale la cerere.
Protocoalele care realizeaz aceast rspndire au foarte mare grij s evite buclele. Ele folosesc
adeseori tehnica numit a firelor colorate (colored threads). Propagarea napoi a unei FEC poate fi
comparat cu tragerea unui fir de o singur culoare napoi n subreea. Dac un ruter ntlnete o
culoare pe care o are deja, el tie c exist o bucl i ia msuri pentru remedierea situaiei. Abordarea bazat pe date este folosit n reelele unde sub nivelul transport se gsete ATM-ul (ca n cazul
sistemului telefonic).
Cealalt modalitate, folosit n reele care nu sunt bazate pe ATM, este abordarea bazat pe
control (eng.: control-driven). Ea are mai multe variante, dintre care una funcioneaz n felul urmtor. Cnd este pornit un ruter, verific pentru ce rute el reprezint destinaia final (de exemplu ce
calculatoare gazd sunt n reeaua local). Apoi creeaz una sau mai multe clase echivalente pentru
acestea, aloc pentru fiecare cte o etichet i trimite etichetele vecinilor si. Acetia, la rndul lor,
introduc etichetele n tabelele de rutare i trimit noi etichete vecinilor lor, pn cnd toate ruterele
i-au nsuit calea. De asemenea, pentru a garanta o calitate corespunztoare a serviciilor, resursele
pot fi alocate pe msura construirii cii.
MPLS poate opera la mai multe niveluri deodat. La nivelul cel mai nalt, fiecare companie de
telecomunicaii poate fi privit ca un fel de metaruter, existnd o cale prin metarutere de la surs la
destinaie. Aceast cale poate folosi MPLS. Totui, n cadrul reelei fiecrei companii de
telecomunicaii poate fi folosit de asemenea MPLS, ducnd la un al doilea nivel de etichetare. De
fapt, un pachet poate transporta o ntreag stiv de etichete. Bitul S din fig. 5-41 permite unui ruter
care terge o etichet s afle dac au mai rmas alte etichete. Acesta are valoarea 1 pentru eticheta
de la baz i 0 pentru toate celelalte etichete. n practic, aceast facilitate este folosit n principal la
implementarea reelelor virtuale private i a tunelelor recursive.
Dei ideile care au stat la baza MPLS-ului sunt simple, detaliile sunt extrem de complicate, cu
multe variaii i optimizri, aa c nu vom mai dezvolta acest subiect. Pentru mai multe informaii,
vezi (Davie i Rekhter, 2000; Lin et al., 2002; Pepelnjak i Guichard, 2001; i Wang, 2001).

5.5 INTERCONECTAREA REELELOR


Pn n acest moment, am presupus implicit c exist o singur reea omogen, n care fiecare
main folosete acelai protocol la fiecare nivel. Din pcate, aceast presupunere este prea optimist. Exist mai multe tipuri de reele, incluznd LAN-uri, MAN-uri i WAN-uri. La fiecare nivel se

SEC. 5.5

INTERCONECTAREA REELELOR

383

din Windsor, Ontario spre Vancouver nu poate fi dirijat prin apropiatul Detroit, chiar dac aceast
rut este cea mai rapid i cea mai ieftin.
O alt diferen ntre dirijarea intern i cea extern este costul. ntr-o singur reea, se aplic n
mod normal un singur algoritm de taxare. Cu toate acestea, diferite reele pot avea administraii
diferite i o cale poate fi mai ieftin dect alta. Similar, calitatea serviciului oferit de reele diferite
poate fi diferit i acesta poate fi un motiv pentru alegerea unei ci n defavoarea alteia.

5.5.7

Fragmentarea

Fiecare reea impune o anumit dimensiune maxim pentru pachetele sale. Aceste limite au diferite cauze, printre care:
1.
2.
3.
4.
5.
6.

Hardware (de exemplu, dimensiunea unui cadru Ethernet).


Sistemul de operare (de exemplu, toate zonele tampon au 512 octei).
Protocoale (de exemplu, numrul de bii din cmpul lungime al pachetului).
Concordana cu unele standarde (inter)naionale.
Dorina de a reduce la un anumit nivel retransmisiile provocate de erori.
Dorina de a preveni ocuparea ndelungat a canalului de ctre un singur pachet.

Rezultatul tuturor acestor factori este c proiectanii de reele nu au libertatea de a alege dimensiunea maxim a pachetelor oricum ar dori. Informaia util maxim variaz de la 8 octei (celulele
ATM) la 65515 octei (pachetele IP), cu toate c dimensiunea pachetelor la nivelurile mai nalte este
deseori mai mare.
O problem evident apare cnd un pachet mare vrea s traverseze o reea n care dimensiunea
maxim a pachetului este prea mic. O soluie este s ne asigurm din capul locului c problema nu
apare. Cu alte cuvinte, inter-reeaua trebuie s utilizeze un algoritm de dirijare care evit transmiterea pachetelor prin reele n care pachetele nu pot fi manevrate. Cu toate acestea, aceast soluie nu
este de fapt nici o soluie. Ce se ntmpl dac pachetul surs original este prea mare pentru a fi manevrat de reeaua destinaie? Algoritmul de dirijare nu are cum s evite destinaia.
n esen, singura soluie a problemei este de a permite porilor s sparg pachetele n fragmente, trimind fiecare pachet ca un pachet inter-reea separat. Cu toate acestea, aa cum tie orice
printe al unui copil mic, convertirea unui obiect mare n fragmente mici este considerabil mai uoar dect procesul invers. (Fizicienii au dat chiar un nume acestui efect: legea a doua a termodinamicii.) Reelele cu comutare de pachete au, de asemenea, probleme n mbinarea fragmentelor.
Exist dou strategii opuse pentru reconstituirea pachetului original din fragmente. Prima strategie este de a face fragmentarea cauzat de o reea cu pachete mici transparent pentru toate
reelele succesive prin care pachetul trebuie s treac pe calea ctre destinaia final. Aceast opiune este prezentat n fig. 5-50(a). n aceast strategie, reeaua cu pachete mici are pori (cel mai probabil, rutere specializate) ctre celelalte reele. Cnd un pachet supradimensionat ajunge la poart,
poarta l sparge n fragmente. Fiecare fragment este adresat aceleiai pori de ieire, unde piesele
sunt recombinate. n acest mod, trecerea printr-o reea cu pachete mici a devenit transparent. Reelele urmtoare nici mcar nu sunt contiente de fragmentarea fcut. Reelele ATM, de exemplu,
au hardware special pentru a oferi fragmentarea transparent a pachetelor n celule i apoi reasamblarea celulelor n pachete. n lumea ATM, fragmentarea este numit segmentare; conceptul este
acelai, dar difer unele detalii.

384

NIVELUL REEA

CAP. 5

Fragmentarea transparent este simpl, dar are cteva probleme. Un motiv este c poarta de ieire trebuie s tie cnd a primit toate piesele, aa nct n fiecare pachet trebuie inclus fie un cmp
contor, fie un bit sfrit-de-pachet. Un alt motiv este c toate pachetele trebuie s ias prin aceeai
poart. Performanele se pot degrada nepermind ca unele pachete s urmreasc o cale ctre destinaia final i alte pachete o cale diferit. O ultim problem este timpul suplimentar necesar pentru reasamblarea i apoi refragmentarea repetat a unui pachet mare care traverseaz o serie de
reele cu pachete mici. ATM necesit fragmentare transparent.
Cealalt strategie de fragmentare este de a nu recombina fragmentele la nici o poart
intermediar. O dat ce un pachet a fost fragmentat, fiecare fragment este tratat ca i cum ar fi un
pachet original. Toate fragmentele sunt trecute printr-o poart (sau pori) de ieire, aa cum se
arat n fig. 5-50(b). Recombinarea are loc doar la gazda destinaie. Aa funcioneaz IP-ul.

Fig. 5-50. (a) Fragmentare transparent. (b) Fragmentare netransparent.

Fragmentarea netransparent are, de asemenea, unele probleme. De exemplu, necesit ca fiecare


gazd s fie capabil s fac reasamblarea. nc o problem este c atunci cnd se fragmenteaz un
pachet mare, suprancrcarea crete, deoarece fiecare fragment trebuie s aib un antet. Pe ct vreme
n prima metod aceast suprancrcare dispare de ndat ce se iese din reeaua cu pachete mici, n
aceast metod suprancrcarea rmne pentru restul cltoriei. Cu toate acestea, un avantaj al acestei
metode este c se pot folosi mai multe pori de ieire i se pot obine performane mai bune. Desigur,
dac se folosete modelul circuitelor virtuale concatenate, acest avantaj nu este de nici un folos.
Cnd un pachet este fragmentat, fragmentele trebuie numerotate astfel nct irul iniial de date
s poat fi reconstituit. O metod de numerotare a fragmentelor este bazat pe un arbore. Dac
pachetul 0 trebuie descompus, bucile sunt numite 0.0, 0.1, 0.2 etc. Dac aceste fragmente trebuie la
rndul lor, s fie fragmentate mai trziu, bucile sunt numerotate 0.0.0, 0.0.1, 0.0.2, ..., 0.1.0, 0.1.1,
0.1.2 etc. Dac n antet au fost rezervate suficiente cmpuri pentru cel mai ru caz i nu sunt generate duplicate n alt parte, aceast schem este suficient pentru a asigura c toate bucile pot fi corect reasamblate la destinaie, neavnd importan ordinea n care ajung.
Cu toate acestea, dac o singur reea pierde sau elimin pachete, apare necesitatea unor retransmisii capt-la-capt, cu efecte nefericite pentru schema de numerotare. S presupunem c un pa-

SEC. 5.5

INTERCONECTAREA REELELOR

385

chet de 1024 bii este iniial fragmentat n patru fragmente de dimensiune egal, 0.0, 0.1, 0.2 i 0.3.
Fragmentul 0.1 este pierdut, dar toate celelalte pri ajung la destinaie. n cele din urm, la surs
apare o depire de timp i aceasta retransmite pachetul original. Numai c de aceast dat intervine
legea lui Murphy i calea trece printr-o reea cu limita de 512 octei, deci sunt generate dou fragmente. Cnd noul fragment 0.1 ajunge la destinaie, receptorul va considera c toate cele patru buci au ajuns i va reconstrui pachetul incorect.
Un sistem de numerotare diferit (i mai bun) este ca protocolul de interconectare a reelelor s
defineasc o dimensiune de fragment elementar suficient de mic ca fragmentul elementar s poat
trece prin orice reea. Cnd un pachet este fragmentat, toate bucile sunt egale cu dimensiunea
fragmentului elementar, cu excepia ultimului, care poate fi mai scurt. Un pachet inter-reea poate
conine mai multe fragmente, din motive de eficien. Antetul inter-reea trebuie s ofere numrul
original al pachetului i numrul fragmentului (sau primului fragment) elementar coninut n pachet.
Ca de obicei, trebuie s existe un bit care s indice c ultimul fragment elementar coninut n pachetul inter-reea este ultimul din pachetul original.
Aceast abordare necesit dou cmpuri de secven n antetul inter-reea: numrul pachetului
original i numrul fragmentului. Exist clar un compromis ntre dimensiunea fragmentului elementar i numrul de bii din numrul fragmentului. Deoarece dimensiunea fragmentului elementar este
presupus a fi acceptabil pentru toate reelele, fragmentrile ulterioare ale unui pachet inter-reea
coninnd cteva fragmente nu cauzeaz probleme. n acest caz, limita extrem este reprezentat de
un fragment elementar de un bit sau octet, numrul de fragment fiind reprezentat de deplasamentul
bitului sau octetului n cadrul pachetului original, aa cum se arat n fig. 5-51.

Fig. 5-51. Fragmentarea cnd dimensiunea datelor elementare este 1 octet.


(a) Pachetul original, coninnd 10 octei de date. (b) Fragmente dup trecerea
printr-o reea cu dimensiunea maxim a pachetului de 8 octei.
(c) Fragmente dup trecerea printr-o poart cu dimensiunea de 5.

386

NIVELUL REEA

CAP. 5

Unele protocoale inter-reea extind aceast metod i consider ntreaga transmisie pe un circuit
virtual ca fiind un pachet gigant, aa nct fiecare fragment conine numrul absolut de octet al primului octet din fragment.

5.6 NIVELUL REEA N INTERNET


nainte de a intra n detaliile nivelului reea din Internet merit studiate principiile care au ghidat
proiectarea lui n trecut i l-au fcut succesul care este astzi. n ziua de azi, n prea multe cazuri oamenii par s le fi uitat. Aceste principii sunt enumerate i discutate n RFC 1958, care merit citit (i
ar trebui s fie obligatoriu pentru toi proiectanii de protocoale cu un examen final la sfrit).
Acest RFC se bazeaz n mare parte pe idei care se gsesc n (Clark, 19 i Saltzer, 1984). Vom rezuma ceea ce considerm a fi cele 10 principii (de la cel mai important la cel mai puin important).
1.

2.

3.

4.

5.

6.

7.

Fii siguri c funcioneaz. Nu finalizai proiectarea sau standardul pn cnd mai


multe prototipuri nu au comunicat cu succes unele cu altele. De prea multe ori proiectanii nti scriu un standard de 1000 de pagini, primesc aprobarea pentru el i apoi descoper c acest standard este eronat i nu funcioneaz. Apoi scriu versiunea 1.1 a
standardului. Nu aa se face.
Menine-l simplu. Cnd exist ndoieli, folosii soluia mai simpl. William de Occam a
enunat acest principiu (briciul lui Occam) n secolul al 14-lea. Reformulat n termeni
moderni: mpotrivii-v caracteristicilor suplimentare. Dac o caracteristic nu este absolut necesar, nu o includei, mai ales dac acelai efect poate fi obinut prin combinarea
altor caracteristici.
Facei alegeri clare. Dac exist mai multe moduri de a realiza acelai lucru, alegei
unul. A avea dou sau mai multe moduri de a rezolva un lucru nseamn s se caute necazul cu lumnarea. Standardele conin de obicei multe opiuni sau moduri sau parametri
pentru c anumite grupri importante susin c modul lor este cel mai bun. Proiectanii ar
trebui s reziste la aceast tendin. Spunei nu.
Exploatai modularitatea. Acest principiu conduce direct la ideea de a avea stive de protocoale, fiecare nivel fiind independent de toate celelalte. n acest mod, dac circumstanele cer ca un modul sau nivel s fie schimbat, celelalte nu vor fi afectate.
Ateptai-v la medii eterogene. n orice reea mare vor aprea diferite tipuri de hardware, posibiliti de transmisie i aplicaii. Pentru a le trata pe toate, proiectarea reelei
trebuie s fie simpl, general i flexibil.
Evitai opiuni sau parametri statici. Dac un parametru nu poate fi evitat (de exemplu
dimensiunea maxim a unui pachet), este mai bine ca transmitorul i receptorul s
negocieze o valoare dect s se defineasc valori fixe.
Cutai o proiectare bun; nu este necesar s fie perfect. Deseori proiectanii au un proiect
bun care nu poate trata un caz mai ciudat. Dect s strice tot proiectul, proiectanii ar trebui
s-l pstreze i s transfere povara rezolvrii acelui caz celor cu cerine ciudate.

SEC. 5.6

8.

9.

10.

NIVELUL REEA N INTERNET

387

Fii strici atunci cnd trimitei i tolerani atunci cnd recepionai. Cu alte cuvinte, trimitei numai pachete care sunt n deplin conformitate cu standardul, dar ateptai-v ca pachetele recepionate s nu fie n deplin conformitate cu standardul i ncercai s le folosii.
Gndii-v la scalabilitate. Dac sistemul trebuie s suporte milioane de gazde i efectiv miliarde de utilizatori, nu se poate accepta nici un fel de baz de date centralizat, iar ncrcarea trebuie distribuit ct mai uniform posibil folosind resursele disponibile.
Luai n considerare performanele i costurile. Dac o reea are performane slabe sau
preuri exorbitante, nu o va folosi nimeni.

S lsm acum principiile generale i s ncepem s studiem detaliile nivelului reea din Internet.
La nivelul reea, Internet-ul poate fi vzut ca o colecie de subreele sau sisteme autonome (eng.:
Autonomous Systems - AS) care sunt interconectate. Nu exist o structur real, dar exist cteva
coloane vertebrale majore. Acestea sunt construite din linii de nalt capacitate i rutere rapide. La
coloanele vertebrale sunt ataate reelele regionale (de nivel mediu), iar la aceste reele regionale
sunt ataate LAN-urile din multe universiti, companii i furnizori de servicii Internet. O schi a
acestei organizri cvasi-ierarhice este dat n fig. 5-52.

Fig. 5-52. Internet-ul este o colecie de multe reele interconectate.

Liantul care ine Internet-ul la un loc este protocolul de nivel reea, numit IP (Internet Protocol protocolul Internet). Spre deosebire de protocoalele mai vechi de nivel reea, acesta a fost proiectat
de la nceput avnd n vedere interconectarea reelelor. O metod bun de a gndi nivelul reea este
aceasta. Sarcina lui este de a oferi cel mai bun mod posibil (adic negarantat) de a transporta datagrame de la surs la destinaie, fr a ine seama dac aceste maini sunt sau nu n aceeai reea sau
dac ntre ele exist sau nu alte reele.

388

NIVELUL REEA

CAP. 5

Comunicaia n Internet funcioneaz dup cum urmeaz. Nivelul transport preia iruri de date
i le sparge n datagrame. n teorie, datagramele pot avea fiecare pn la 64 KB, dar n practic, ele
nu depesc 1500 octei (pentru a intra ntr-un cadru Ehternet) . Fiecare datagram este transmis
prin Internet, fiind eventual fragmentat n uniti mai mici pe drum. Cnd toate bucile ajung n
sfrit la maina destinaie, ele sunt reasamblate de nivelul reea n datagrama original. Datagrama
este apoi pasat nivelului transport, care o insereaz n irul de intrare al procesului receptor. Dup
cum se poate vedea n fig. 5-52 un pachet transmis de gazda 1 trebuie s traverseze ase reele
pentru a ajunge la gazda 2. n practic se trece de obicei prin mult mai mult dect ase reele.

5.6.1

Protocolul IP

Un loc potrivit pentru a porni studiul nostru despre nivelul reea n Internet este nsui formatul
datagramelor IP. O datagram IP const dintr-o parte de antet i o parte de text. Antetul are o parte
fix de 20 de octei i o parte opional cu lungime variabil. Formatul antetului este prezentat n fig.
5-53. El este transmis n ordinea big endian (cel mai semnificativ primul): de la stnga la dreapta,
ncepnd cu bitul cel mai semnificativ al cmpului Versiune. (Procesorul SPARC este de tip big
endian; Pentium este de tip little endian - cel mai puin semnificativ primul). Pe mainile de tip little
endian, este necesar o conversie prin program att la transmisie ct i la recepie.

Fig. 5-53. Antetul IPv4 (protocolul Internet).

Cmpul Versiune memoreaz crei versiuni de protocol i aparine datagrama. Prin includerea
unui cmp versiune n fiecare datagram, devine posibil ca tranziia ntre versiuni s dureze ani de
zile, cu unele maini rulnd vechea versiune, iar altele rulnd-o pe cea nou. La ora actual are loc
o tranziie de la IPv4 la IPv6, care deja dureaz de civa ani i n nici un caz nu s-a apropiat de
final (Durand, 2001; Wilijakka, 2002; and Waddington and Chang 2002). Anumite persoane
consider chiar c nu se va ntmpla niciodat (Weiser, 2001). Referitor la numerotare, IPv5 a
fost un protocol experimental de flux n timp real care nu a fost folosit pe scar larg.
Din moment ce lungimea antetului nu este constant, un cmp din antet, IHL, este pus la dispoziie pentru a spune ct de lung este antetul, n cuvinte de 32 de octei. Valoarea minim este 5, care
se aplic atunci cnd nu sunt prezente opiuni. Valoarea maxim a acestui cmp de 4 bii este 15,

SEC. 5.6

NIVELUL REEA N INTERNET

389

ceea ce limiteaz antetul la 60 de octei i, astfel, cmpul de opiuni la 40 de octei. Pentru unele opiuni, cum ar fi cea care nregistreaz calea pe care a mers un pachet, 40 de octei sunt mult prea
puini, fcnd aceast opiune nefolositoare.
Cmpul Tip serviciu este unul dintre puinele cmpuri care i-a schimbat sensul (oarecum) dea lungul anilor. A fost i este n continuare menit s diferenieze diferitele clase de servicii. Sunt
posibile diferite combinaii de fiabilitate i vitez. Pentru vocea digitizat, livrarea rapid are prioritate fa de transmisia corect. Pentru transferul de fiiere, transmisia fr erori este mai important dect transmisia rapid.
La nceput, cmpul de 6 bii coninea (de la stnga la dreapta), un cmp Preceden de trei
bii i trei indicatori, D, T i R. Cmpul Preceden reprezint prioritatea, de la 0 (normal) la 7 (pachet de control al reelei). Cei trei bii indicatori permiteau calculatorului gazd s specifice ce l
afecteaz cel mai mult din mulimea {Delay (ntrziere), Throughput (Productivitate), Reliability
(Fiabilitate)}. n teorie, aceste cmpuri permit ruterelor s aleag ntre, de exemplu, o legtur prin
satelit cu o productivitate mare i o ntrziere mare sau o linie dedicat cu o productivitate sczut i
o ntrziere mic. n practic, ruterele curente ignor adesea ntregul cmp Tip serviciu.
Pn la urm, IETF a cedat i a modificat puin cmpul pentru a-l adapta la servicii difereniate.
ase dintre bii sunt folosii pentru a indica creia dintre clasele de servicii descrise mai devreme i
aparine pachetul. Aceste clase includ patru prioriti de introducere n coad, trei probabiliti de
respingere i clasele istorice.
Lungimea total include totul din datagram - att antet ct i date. Lungimea maxim este de
65535 octei. n prezent, aceast limit superioar este tolerabil, dar n viitoarele reele cu capaciti
de gigaoctei vor fi necesare datagrame mai mari. Cmpul Identificare este necesar pentru a permite
gazdei destinaie s determine crei datagrame i aparine un nou pachet primit. Toate fragmentele
unei datagrame conin aceeai valoare de Identificare.
Urmeaz un bit nefolosit i apoi dou cmpuri de 1 bit. DF nsemn Dont Fragment (A nu se
fragmenta). Acesta este un ordin dat ruterelor ca s nu fragmenteze datagrama pentru c destinaia
nu este capabil s reasambleze piesele la loc. De exemplu, cnd un calculator pornete, memoria sa
ROM poate cere s i se trimit o imagine de memorie ca o singur datagram. Prin marcarea datagramei cu bitul DF, emitorul tie c aceasta va ajunge ntr-o singur bucat, chiar dac aceasta
nseamn c datagrama trebuie s evite o reea cu pachete mai mici pe calea cea mai bun i s aleag o rut suboptimal. Toate mainile trebuie s accepte fragmente de 576 octei sau mai mici.
MF nsemn More Fragments (mai urmeaz fragmente). Toate fragmentele, cu excepia ultimului, au acest bit activat. El este necesar pentru a ti cnd au ajuns toate fragmentele unei datagrame.
Deplasamentul fragmentului spune unde este locul fragmentului curent n cadrul datagramei.
Toate fragmentele dintr-o datagram, cu excepia ultimului, trebuie s fie un multiplu de 8 octei unitatea de fragmentare elementar. Din moment ce sunt prevzui 13 bii, exist un maxim de 8192
de fragmente pe datagram, obinndu-se o lungime maxim a datagramei de 65536 octei, cu unul
mai mult dect cmpul Lungime total.
Cmpul Timp de via este un contor folosit pentru a limita durata de via a pachetelor. Este
prevzut s contorizeze timpul n secunde, permind un timp maxim de via de 255 secunde. El
trebuie s fie decrementat la fiecare salt (hop - trecere dintr-o reea n alta) i se presupune c este
decrementat de mai multe ori cnd st la coad un timp ndelungat ntr-un ruter. n practic, el contorizeaz doar salturile. Cnd ajunge la valoarea zero, pachetul este eliminat i se trimite napoi la
gazda surs un pachet de avertisment. Aceast facilitate previne hoinreala la infinit a datagramelor,
ceea ce se poate ntmpla dac tabelele de dirijare devin incoerente.

390

NIVELUL REEA

CAP. 5

Cnd nivelul reea a asamblat o datagram complet, trebuie s tie ce s fac cu ea. Cmpul
Protocol spune crui proces de transport trebuie s o predea. TCP este o posibilitate, dar tot aa sunt
i UDP i alte cteva. Numerotarea protocoalelor este global la nivelul ntregului Internet. Protocoalele i alte numere alocate erau anterior definite n RFC 1700, dar astzi ele sunt coninute ntr-o
baz de date on-line, care se gsete la adresa www.iana.org.
Suma de control a antetului verific numai antetul. O astfel de sum de control este util pentru
detectarea erorilor generate de locaii de memorie proaste din interiorul unui ruter. Algoritmul este
de a aduna toate jumtile de cuvinte, de 16 bii, atunci cnd acestea sosesc, folosind aritmetic n
complement fa de unu i pstrarea complementului fa de unu al rezultatului. Pentru scopul acestui algoritm, se presupune c la sosire suma de control a antetului este zero. Acest algoritm este mai
robust dect folosirea unei adunri normale. Observai c suma de control a antetului trebuie recalculat la fiecare salt, pentru c ntotdeauna se schimb cel puin un cmp (cmpul timp de via), dar
se pot folosi trucuri pentru a accelera calculul.
Adresa sursei i Adresa destinaiei indic numrul de reea i numrul de gazd. Vom discuta adresele Internet n seciunea urmtoare. Cmpul Opiuni a fost proiectat pentru a oferi un subterfugiu care
s permit versiunilor viitoare ale protocolului s includ informaii care nu sunt prezente n proiectul
original, pentru a permite cercettorilor s ncerce noi idei i pentru a evita alocarea unor bii din antet
pentru informaii folosite rar. Opiunile sunt de lungime variabil. Fiecare ncepe cu un cod de un octet
care identific opiunea. Unele opiuni sunt urmate de un cmp de un octet reprezentnd lungimea
opiunii, urmat de unul sau mai muli octei de date. Cmpul Opiuni este completat pn la un multiplu de 4 octei. Iniial erau definite cinci opiuni, aa cum sunt listate n fig. 5-54, dar de atunci au mai
fost adugate i altele. Lista complet se gsete la adresa www.iana.org/assignements/ip-parameters.
Opiune
Securitate
Dirijare strict de la surs
Dirijare aproximativ de la surs
nregistreaz calea
Amprent de timp

Descriere
Menioneaz ct de secret este datagrama
Indic calea complet de parcurs
Indic o list a ruterelor care nu trebuie srite
Determin fiecare ruter s-i adauge adresa IP
Determin fiecare ruter s-i adauge adresa i o amprent de timp.

Fig. 5-54. Unele dintre opiunile IP.

Opiunea Securitate menioneaz ct de secret este informaia. n teorie, un ruter militar poate
folosi acest cmp pentru a meniona c nu se dorete o dirijare prin anumite ri pe care militarii le
consider a fi bieii ri. n practic, toate ruterele l ignor, deci singura sa funcie practic este s
ajute spionii s gseasc mai uor lucrurile de calitate.
Opiunea Dirijare strict de la surs d calea complet de la surs la destinaie ca o secven de
adrese IP. Datagrama este obligat s urmreasc aceast cale precis. Ea este deosebit de util
pentru administratorii de sistem pentru a trimite pachete de urgen atunci cnd tabelele de dirijare
sunt distruse sau pentru a realiza msurtori de timp.
Opiunea Dirijare aproximativ de la surs cere ca pachetul s traverseze o list specificat de
rutere i n ordinea specificat, dar este permis trecerea prin alte rutere pe drum. n mod normal,
aceast opiune ar putea oferi doar cteva rutere, pentru a fora o anumit cale. De exemplu, pentru
a fora un pachet de la Londra la Sydney s mearg spre vest n loc de est, aceast opiune poate
specifica rutere n New York, Los Angeles i Honolulu. Aceast opiune este foarte util atunci cnd
motive politice sau economice dicteaz trecerea prin anumite ri sau evitarea lor.

SEC. 5.6

NIVELUL REEA N INTERNET

391

Opiunea nregistreaz calea indic ruterelor de pe cale s-i adauge adresele IP la cmpul opiune. Aceasta permite administratorilor de sistem s localizeze pene n algoritmii de dirijare (De ce
pachetele de la Houston la Dallas trec mai nti prin Tokio?). Cnd reeaua ARPANET a fost nfiinat, nici un pachet nu trecea vreodat prin mai mult de nou rutere, deci 40 de octei pentru opiuni au fost destui. Aa cum s-a menionat anterior, acum dimensiunea este prea mic.
n sfrit, opiunea Amprent de timp este similar opiunii nregistreaz ruta, cu excepia faptului
c, n plus fa de nregistrarea adresei sale de 32 de bii, fiecare ruter nregistreaz i o amprent de
timp de 32 de bii. i aceast opiune este folosit n special pentru depanarea algoritmilor de dirijare.

5.6.2

Adrese IP

Fiecare gazd i ruter din Internet are o adres IP, care codific adresa sa de reea i de gazd.
Combinaia este unic: n principiu nu exist dou maini cu aceeai adres IP. Toate adresele IP
sunt de 32 de bii lungime i sunt folosite n cmpurile Adres surs i Adres destinaie ale pachetelor
IP. Este important de observat c o adres IP nu se refer de fapt la o gazd. Se refer de fapt la o
interfa de reea, deci dac o gazd este n dou reele, trebuie s foloseasc dou adrese IP. Totui
n practic, cele mai multe gazde sunt conectate la o singur reea i deci au o adres IP.
Timp de mai multe decenii, adresele IP erau mprite n cinci categorii ilustrate n fig. 5-55.
Acest model de alocare a fost denumit clase de adrese. Nu mai este folosit, dar referinele la acest
model sunt n continuare des ntlnite n literatur. Vom discuta puin mai trziu ce a nlocuit modelul claselor de adrese.

Fig. 5-55. Formatul adreselor IP.

Formatele de clas A, B, C i D permit pn la 128 reele cu 16 milioane de gazde fiecare, 16.384


reele cu pn la 64K gazde, 2 milioane de reele (de exemplu, LAN-uri) cu pn la 256 gazde fiecare (dei unele dintre acestea sunt speciale). De asemenea este suportat i trimiterea multipl
(multicast), n care fiecare datagram este direcionat mai multor gazde. Adresele care ncep cu
1111 sunt rezervate pentru o folosire ulterioar. Peste 500 000 de reele sunt conectate acum la Internet i numrul acestora crete n fiecare an. Pentru a evita conflictele numerele de reea sunt atribuite de ICANN (Internet Corporation for Assigned NAMES and Numbers Corporaia Internet

392

NIVELUL REEA

CAP. 5

pentru numere i nume atribuite). La rndul su, ICANN a mputernicit diverse autoriti regionale
s administreze pri din spaiul de adrese i acestea, la rndul lor, au mprit adrese ISP-urilor i
altor companii.
Adresele de reea, care sunt numere de 32 de bii, sunt scrise n mod uzual n notaia zecimal cu
punct. n acest format, fiecare din cei 4 octei este scris n zecimal, de la 0 la 255. De exemplu, adresa
hexazecimal C0290614 este scris ca 192.41.6.20. Cea mai mic adres IP este 0.0.0.0 i cea mai
mare este 255.255.255.255.
Valorile 0 i -1 au semnificaii speciale, aa cum se arat n fig. 5-56. Valoarea 0 nseamn reeaua curent sau gazda curent. Valoarea -1 este folosit ca o adres de difuzare pentru a desemna
toate gazdele din reeaua indicat.

Fig. 5-56. Adrese IP speciale.

Adresa IP 0.0.0.0 este folosit de gazde atunci cnd sunt pornite. Adresele IP cu 0 ca numr de
reea se refer la reeaua curent. Aceste adrese permit ca mainile s refere propria reea fr a
cunoate numrul de reea (dar ele trebuie s cunoasc clasa adresei pentru a ti cte zerouri s includ). Adresele care constau numai din 1-uri permit difuzarea n reeaua curent, n mod uzual un
LAN. Adresele cu un numr exact de reea i numai 1-uri n cmpul gazd permit mainilor s trimit pachete de difuzare n LAN-uri la distan, aflate oriunde n Internet (dei muli administratori de
sistem dezactiveaz aceast opiune). n final, toate adresele de forma 127.xx.yy.zz sunt rezervate
pentru testri n bucl local (loopback). Pachetele trimise ctre aceast adres nu sunt trimise prin
cablu; ele sunt prelucrate local i tratate ca pachete sosite. Aceasta permite trimiterea pachetelor
ctre reeaua local fr ca emitorul s-i cunoasc numrul.

Subreele
Aa cum am vzut, toate gazdele dintr-o reea trebuie s aib acelai numr de reea. Aceast
proprietate a adresrii IP poate crea probleme cnd reeaua crete. De exemplu, s considerm o
universitate care a folosit la nceput o reea de clas B pentru calculatoarele din reeaua Ethernet a
Departamentului de Calculatoare. Un an mai trziu, departamentul de Inginerie Electric a vrut
acces la Internet, deci a cumprat un repetor pentru a extinde Ethernetul Departamentului de Calculatoare n cldirea lor. Cu timpul, multe alte departamente au achiziionat calculatoare i limita
de patru repetoare per Ethernet a fost rapid atins. Era nevoie de o alt organizare.
Achiziionarea altei adrese de reea ar fi fost dificil deoarece adresele sunt insuficiente i universitatea avea deja adrese suficiente pentru peste 60,000 de staii. Problema provine de la
regula care afirm c o singur adres de clas A, B sau C se refer la o singur reea, nu la o mul-

SEC. 5.6

NIVELUL REEA N INTERNET

393

ime de reele. Cum tot mai multe organizaii s-au lovit de aceast problem, sistemul de adresare a
fost puin modificat pentru a o rezolva
Soluia este s se permit ca o reea s fie divizat n mai multe pri pentru uz intern, dar pentru
lumea exterioar s se comporte tot ca o singur reea. n ziua de azi o reea de campus tipic poate
arta ca n fig. 5-57, cu un ruter principal conectat la un ISP sau la reeaua regional i numeroase reele Ethernet mprtiate prin campus n diferite departamente. Fiecare Ehternet are
propriul ruter conectat la ruterul principal (posibil printr-un LAN coloan vertebral, dar natura conexiunii interruter nu este relevant aici)

Fig. 5-57. O reea de campus compus din mai multe LAN-uri ale diferitelor departamente

n literatura Internet, aceste pri sunt numite subreele. Aa cum am menionat n Cap. 1, aceast utilizare intr n conflict cu termenul subreea, care nseamn mulimea tuturor ruterelor i liniilor de comunicaie dintr-o reea. Din fericire, va fi clar din context care semnificaie este atribuit. n
aceast seciune, i n urmtoarea definiia folosit va fi cea nou.
Atunci cnd un pachet ajunge la ruterul principal, de unde tie acesta ctre ce subreea
(Ethernet) s-l trimit? O soluie ar fi s existe o tabel cu 65,536 nregistrri n ruterul principal
care s-i spun acestuia ce ruter s foloseasc pentru fiecare staie din campus. Aceast idee ar funciona, dar ar fi nevoie de o tabel foarte mare n ruterul principal i de mult munc manual de
ntreinere pe msur ce staiile ar fi adugate, mutate sau scoase din uz.
n locul ei a fost inventat o alt soluie. n esen, n loc s existe o singur adres de clas B, cu
14 bii pentru numrul reelei i 16 bii pentru gazd, un numr de bii din numrul gazdei sunt folosii pentru a crea un numr de subreea. De exemplu, dac o universitate are 35 de departamente, ar
putea folosi un numr de subreea de 6 bii i un numr de 10 bii pentru gazde, ceea ce ar permite
un numr de 64 de reele Ethernet, fiecare cu un maxim de 1022 de gazde (aa cum am menionat
mai devreme, 0 i -1 nu sunt disponibile). Aceast mprire ar putea fi modificat ulterior n caz c
a fost o greeal.
Pentru a se putea folosi subreele, ruterul principal trebuie are nevoie de o masc de subreea,
care indic separarea dintre numrul reea + subreea i gazd, aa cum este ilustrat n fig. 5-58.
Mtile de subreea sunt scrise de asemenea n notaie zecimal cu punct, cu adugarea unui caracter / (slash) urmat de numrul de bii din partea cu reea + subreea. Pentru exemplul din fig. 5-58,
masca de subreea poate fi scris ca 255.255.255.0 . O notaie alternativ este /22 pentru a indica c
masca subreelei are lungimea de 22 de bii.

394

NIVELUL REEA

CAP. 5

Fig. 5-58. O reea de clas B mprit n 64 de subreele

n afara reelei, mprirea n subreele nu este vizibil, astfel nct alocarea unei noi subreele nu
necesit contactarea ICANN sau schimbarea unor baze de date externe. n acest exemplu, prima subreea poate folosi adrese IP ncepnd de la 130.50.4.1, cea de-a doua poate ncepe de la 130.50.8.1,
cea de-a treia poate ncepe de la 130.50.12.1 i aa mai departe. Pentru a se nelege de ce numrul
subreelei crete cu patru, s observm c adresele binare corespunztoare sunt urmtoarele:
Subreea 1 :
Subreea 2 :
Subreea 3 :

10000010
10000010
10000010

00110010
00110010
00110010

000001|00
000010|00
000011|00

00000001
00000001
00000001

Aici, bara vertical (|) arat grania dintre numrul subreelei i numrul gazdei. La stnga se
gsete numrul de 6 bii al subreelei, la dreapta numrul de 10 bii al gazdei.
Pentru a vedea cum funcioneaz subreelele, este necesar s explicm cum sunt prelucrate pachetele IP ntr-un ruter. Fiecare ruter are o tabel ce memoreaz un numr de adrese IP de forma
(reea, 0) i un numr de adrese IP de forma (aceast-reea, gazd). Primul tip indic cum se ajunge
la reelele aflate la distan. Al doilea tip spune cum se ajunge la gazdele locale. Fiecrei tabele i
este asociat interfaa de reea care se folosete pentru a ajunge la destinaie i alte cteva informaii.
Cnd sosete un pachet IP, adresa destinaie este cutat n tabela de dirijare. Dac pachetul este
pentru o reea aflat la distan, el este trimis ruterului urmtor prin interfaa specificat n tabel.
Dac este o gazd local (de exemplu n LAN-ul ruterului), pachetul este trimis direct ctre destinaie. Dac reeaua nu este prezent, pachetul este trimis unui ruter implicit care are tabele mai extinse. Acest algoritm nseamn c fiecare ruter trebuie s memoreze numai reele i gazde, nu perechi
(reea, gazd), reducnd considerabil dimensiunea tabelelor de dirijare.
Cnd este introdus mprirea n subreele, tabelele de dirijare sunt schimbate, adugnd intrri
de forma (aceast-reea, subreea, 0) i (aceast-reea, aceast-subreea, gazd). Astfel un ruter din
subreeaua k tie cum s ajung la toate celelalte subreele i, de asemenea, cum s ajung la toate
gazdele din subreeaua k. El nu trebuie s cunoasc detalii referitoare la gazde din alte subreele. De
fapt, tot ceea ce trebuie schimbat este de a impune fiecrui ruter s fac un I logic cu masca de
subreea a reelei pentru a scpa de numrul de gazd i a cuta adresa rezultat n tabelele sale
(dup ce determin crei clase de reele aparine). De exemplu, asupra unui pachet adresat ctre
130.50.15.6 care ajunge la ruterul principal se face un I logic cu masca de subreea 255.255.252.0/22
pentru a obine adresa 130.50.12.0. Aceast adres este cutat n tabelele de dirijare pentru a se
gsi cum se ajunge la gazdele din subreeaua 3. Ruterul din subreeaua 5 este astfel uurat de munca
de a memora toate adresele de nivel legtur de date ale altor gazde dect cele din subreeaua 5.
mprirea n subreele reduce astfel spaiul tabelelor de dirijare prin crearea unei ierarhii pe trei
niveluri, alctuit din reea, subreea i gazd.

SEC. 5.6

NIVELUL REEA N INTERNET

395

CIDR - Dirijarea fr clase ntre domenii


IP este folosit intens de cteva decenii. A funcionat extrem de bine, aa cum a fost demonstrat
de creterea exponenial a Internet-ului. Din nefericire, IP devine rapid o victim a propriei populariti: i epuizeaz adresele. Acest dezastru fantomatic a generat foarte multe discuii i controverse n cadrul comunitii Internet referitor la cum s fie tratat. n aceast seciune vom descrie att
problema ct i cteva soluii propuse.
Prin 1987, civa vizionari au prezis c ntr-o zi Internet-ul poate crete pn la 100.000 de reele.
Cei mai muli experi s-au exprimat cu dispre c aceasta va fi peste decenii, dac va fi vreodat. Cea
de-a 100.000-a reea a fost conectat n 1996. Problema, expus anterior, este c Internet-ul i epuizeaz rapid adresele IP. n principiu, exist peste 2 miliarde de adrese, dar practica organizrii spaiului de adrese n clase (vezi fig. 5-55) irosete milioane din acestea. n particular, adevraii vinovai
sunt de reelele de clas B. Pentru cele mai multe organizaii, o adres de clas A, cu 16 milioane de
adrese este prea mare, iar o reea de clas C, cu 256 de adrese, este prea mic. O reea de clas B, cu
65.536 adrese, este numai bun. n folclorul Internet, aceast situaie este cunoscut ca problema
celor trei uri (ca din Goldilocks and the Three Bears).
n realitate, o adres de clas B este mult prea mare pentru cele mai multe organizaii. Studiile
au artat c mai mult de jumtate din toate reelele de clas B au mai puin de 50 de gazde. O reea
de clas C ar fi fost suficient, dar fr ndoial c fiecare organizaie care a cerut o adres de clas B
a crezut c ntr-o zi ar putea depi cmpul gazd de 8 bii. Privind retrospectiv, ar fi fost mai bine s
fi avut reele de clas C care s foloseasc 10 bii n loc de opt pentru numrul de gazd, permind
1022 gazde pentru o reea. n acest caz, cele mai multe organizaii s-ar fi decis, probabil, pentru o
reea de clas C i ar fi existat jumtate de milion dintre acestea (comparativ cu doar 16.384 reele de
clas B).
Este greu s fie nvinuii proiectanii Internetului pentru c nu au pus la dispoziie mai multe
adrese de clas B (i mai mici). n momentul n care s-a luat decizia s fie create cele trei clase,
Internetul era o reea de cercetare care conecta marile universiti din SUA (plus un numr mic de
companii i sit-uri militare care fceau cercetri n domeniul reelelor). Pe atunci nimeni nu a perceput Internetul ca fiind un sistem de comunicaie n mas care va rivaliza cu reeaua telefonic.
Fr ndoial c n acel moment cineva a spus: SUA are aproximativ 2000 de universiti i
colegii. Chiar dac toate se conecteaz la Internet i se mai conecteaz i multe universiti din
alte ri, nu o s ajungem niciodat la 16.000 pentru c nu exist attea universiti n ntreaga lume. n plus faptul c numrul gazdei este un numr ntreg de octei, mrete viteza de prelucrare
a pachetelor.
Totui, dac s-ar fi alocat 20 de bii numrului de reea pentru reele de clas B, ar fi aprut o alt problem: explozia tabelelor de dirijare. Din punctul de vedere al ruterelor, spaiul de adrese IP
este o ierarhie pe dou niveluri, cu numere de reea i numere de gazde. Ruterele nu trebuie s tie
despre toate gazdele, dar ele trebuie s tie despre toate reelele. Dac ar fi fost n folosin jumtate
de milion de reele de clas C, fiecare ruter din ntregul Internet ar fi necesitat o tabel cu o jumtate de milion de intrri, una pentru fiecare reea, spunnd care linie se folosete pentru a ajunge la
respectiva reea, mpreun cu alte informaii.
Memorarea fizic efectiv a tabelelor cu jumtate de milion de intrri este probabil realizabil,
dei costisitoare pentru ruterele critice care trebuie s menin tabelele n RAM static pe plcile I/O.
O problem mai serioas este reprezentat de creterea complexitii diferiilor algoritmi referitori
la gestiunea tabelelor, care este mai rapid dect liniar. i mai ru, o mare parte din programele i
firmware-ul ruterelor existente a fost proiectat pe vremea cnd Internet-ul avea 1000 de reele co-

396

NIVELUL REEA

CAP. 5

nectate i 10.000 de reele preau la deprtare de decenii. Deciziile de proiectare fcute atunci sunt
departe de a fi optime acum.
n plus, diferii algoritmi de dirijare necesit ca fiecare ruter s-i transmit tabelele periodic (de
exemplu protocolul vectorilor distan). Cu ct tabelele sunt mai mari, cu att este mai probabil ca
anumite pri s se piard pe drum, ducnd la date incomplete la cellalt capt i, posibil, la instabiliti de dirijare.
Problema tabelelor de dirijare ar fi putut fi rezolvat prin adoptarea unei ierarhii mai adnci. De
exemplu, ar fi mers dac s-ar fi impus ca fiecare adres s conin un cmp ar, jude/provincie,
ora, reea i gazd. Atunci fiecare ruter ar fi trebuit s tie doar cum s ajung la fiecare ar, la judeele sau provinciile din ara sa, oraele din propriul jude sau provincie i reelele din oraul su.
Din nefericire, aceast soluie ar necesita mai mult de 32 de bii pentru adrese IP i ar folosi adresele
ineficient (Liechtenstein ar fi avut tot atia bii ca Statele Unite).
Pe scurt, cele mai multe soluii rezolv o problem, dar creeaz o alta. Soluia care a fost implementat acum i care a dat Internet-ului un pic de spaiu de manevr este CIDR (Classless
InterDomain Routing - Dirijarea fr clase ntre domenii). Ideea de la baza CIDR, descris n RFC
1519, este de a aloca adresele IP rmase, n blocuri de dimensiune variabil, fr a se ine cont de
clase. Dac un sit are nevoie, s zicem, de 2000 de adrese, i este dat un bloc de 2048 adrese la o grani de 2048 de octei.
Renunarea la clase face rutarea mai complicat. n vechiul sistem cu clase, rutarea se efectua
n felul urmtor. Atunci cnd un pachet ajungea la un ruter, o copie a adresei IP era deplasat
la dreapta cu 28 de bii pentru a obine un numr de clas de 4 bii. O ramificaie cu 16 ci sorta
pachetele n A, B, C i D (dac era suportat), cu 8 cazuri pentru clasa A, patru cazuri pentru clasa
B, dou cazuri pentru clasa C i cte unul pentru D i E. Programul pentru fiecare clas masca
numrul de reea de 8, 16 sau 24 de bii i l alinia la dreapta ntr-un cuvnt de 32 de bii. Numrul de reea era apoi cutat n tabela pentru A, B sau C, de obicei indexat pentru reelele A
i B i folosind dispersia (hashing) pentru reelele C. Odat intrarea gsit, se putea gsi linia de
ieire i pachetul era retransmis.
Cu CIDR, acest algoritm simplu nu mai funcioneaz. n loc de aceasta, fiecare intrare din tabela
de rutare este extins cu o masc de 32 de bii. Din acest motiv, acum exist o singur tabel de rutare
pentru toate reelele, constituit dintr-un un vector de triplete (adres IP, masc subreea, linie de
ieire). Cnd sosete un pachet IP, mai nti se extrage adresa IP a destinaiei. Apoi (conceptual) tabela de rutare este scanat intrare cu intrare, mascnd adresa destinaie i comparnd cu intrarea din
tabel, n cutarea unei potriviri. Este posibil ca mai multe intrri (cu mti de subreea de lungimi
diferite) s se potriveasc, caz n care este folosit cea mai lung masc. Astfel, dac exist potrivire
pentru o masc /20 i pentru o masc /24, este folosit intrarea cu /24.
Pentru a accelera procesul de gsire a adreselor au fost imaginai algoritmi compleci (RuizSanchez et al., 2001). Ruterele comerciale folosesc chip-uri VLSI proprietare cu aceti algoritmi
implementai n hardware.
Pentru a face algoritmul de retransmitere mai uor de neles, s considerm un exemplu n care sunt disponibile milioane de adrese, ncepnd de la 194.24.0.0. S presupunem c Universitatea
Cambridge are nevoie de 2048 de adrese i are atribuite adresele de la 194.24.0.0 pn la
194.24.7.255, mpreun cu masca 255.255.248.0. Apoi, Universitatea Oxford cere 4096 de adrese.
Deoarece un bloc de 4096 de adrese trebuie s fie aliniat la o frontier de 4096 octei, acestea nu
pot fi numerotate ncepnd de la 194.8.0.0. n loc, se primesc adrese de la 194.24.16.0 pn la
194.24.31.255, mpreun cu o masc de 255.255.240.0. Acum Universitatea din Edinburgh cere

SEC. 5.6

397

NIVELUL REEA N INTERNET

1024 de adrese i i sunt atribuite adresele de la 194.24.8.0 pn la 194.24.11.255 i masca


255.255.252.0. Alocrile sunt rezumate n fig. 5-59.
Universitatea
Cambridge
Edinburgh
(disponibil)
Oxford

Prima adres
194.24.0.0
194.24.8.0
194.24.12.0
194.24.16.0

Ultima adres
194.24.7.255
194.24.11.255
194.24.15.255
194.24.31.255

Numr adrese
2048
1024
1024
4096

Notaie
194.24.0.0/21
194.24.8.0/22
194.24.12/22
194.24.16.0/20

Fig. 5-59. Un set de atribuiri de adrese IP.

Tabelele de dirijare din toat lumea sunt acum actualizate cu cele trei intrri atribuite. Fiecare
intrare conine o adres de baz i o masc de subreea. Aceste intrri (n binar) sunt:
Adres
C 11000010 00011000 00000000 00000000
E 11000010 00011000 00001000 00000000
O 11000010 00011000 00010000 00000000

Masc
11111111 11111111 11111000 00000000
11111111 11111111 11111100 00000000
11111111 11111111 11110000 00000000

S vedem acum ce se ntmpl cnd sosete un pachet adresat pentru 194.24.17.4, care este reprezentat ca urmtorul ir de 32 de bii :
11000010 00011000 00010001 00000100
Mai nti, se face un I logic cu masca de la Cambridge pentru a obine:
11000010 00011000 00010000 00000000
Aceast valoare nu se potrivete cu adresa de baz de la Cambridge, aa c adresei originale i se
aplic un I logic cu masca de la Edinburgh pentru a se obine:
11000010 00011000 00010000 00000000
Aceast valoare nu se potrivete cu adresa de baz de la Edinburgh, aa c se ncearc n continuare Oxford, obinndu-se:
11000010 00011000 00010000 00000000
Aceast valoare se potrivete cu adresa de baz de la Oxford. Dac n restul tabelei nu sunt
gsite potriviri mai lungi, atunci este folosit intrarea pentru Oxford i pachetul va fi trimis pe
linia corespunztoare.
Acum s privim cele trei universiti din punctul de vedere al unui ruter din Omaha, Nebraska,
care are doar patru linii de ieire: Minneapolis, New York, Dallas i Denver. Atunci cnd software-ul ruterului primete cele trei noi intrri, realizeaz c le poate combina pe toate trei ntr-o
singur intrare agregat (eng,: aggregate entry) 194.24.0.0/19 cu adresa binar i o masca de subreea urmtoare :
11000010 00000000 00000000 00000000

11111111 11111111 11100000 00000000

Aceast intrare trimite toate pachetele destinate uneia dintre cele trei universiti la New York.
Reunind cele trei intrri ruterul din Omaha i-a redus mrimea tabelei de rutare cu doi.

398

NIVELUL REEA

CAP. 5

Dac New York-ul are o singur conexiune cu Londra pentru tot traficul spre Marea Britanie,
poate folosi de asemenea o intrare agregat. Totui, dac are dou conexiuni separate pentru Londra i Edinburgh, atunci trebuie s aib trei intrri.
Ca o not final despre acest exemplu, intrarea agregat a ruterului din Omaha va trimite i pachetele ctre adresele nealocate tot spre New York. Ct timp adresele sunt cu adevrat nealocate,
aceasta nu conteaz pentru c aa ceva nu ar trebui s se ntmple. Totui, dac mai trziu sunt
alocate unei companii din California, pentru a le trata va fi nevoie de o nregistrare separat,
194.24.12.0/22.

NAT Translatarea adreselor de reea


Adresele IP sunt insuficiente. Un ISP ar putea avea o adres /16 (anterior de clas B) oferindu-i
65.534 numere de staii. Dac are mai muli clieni, are o problem. Pentru utilizatorii casnici cu
conexiuni pe linie telefonic (eng.: dial-up), o soluie ar fi s se aloce dinamic o adres IP fiecrui
calculator n momentul n care sun i se conecteaz i s o dealoce n momentul n care se termin sesiunea. n acest fel o singur adres /16 poate fi folosit pentru 65.534 utilizatori activi, ceea
ce este probabil suficient pentru un ISP cu mai multe sute de mii de utilizatori. n momentul n care
sesiunea se termin, adresa IP este alocat altui calculator care sun. Dei aceast strategie funcioneaz bine pentru un ISP cu un numr moderat de utilizatori casnici, eueaz pentru ISP-uri care
deservesc preponderent companii.
Problema este c o companie se ateapt s fie on-line n mod continuu n timpul orelor de program. Att companiile mici, cum ar fi o companie de turism compus din trei persoane, ct i mari
corporaii au mai multe calculatoare conectate de un LAN. Unele sunt calculatoarele personale ale
angajailor; altele pot fi servere Web. n general n LAN exist un ruter care este conectat cu ISP-ul
printr-o linie nchiriat pentru a avea conexiune continu. Aceast situaie impune ca fiecrui calculator s i fie asociat un IP propriu pe parcursul ntregii zile. De fapt, numrul total al calculatoarelor
companiilor care sunt clieni ai ISP-ului nu poate depi numrul de adrese IP pe care le posed
acesta. Pentru o adres /16, aceasta limiteaz numrul total de calculatoare la 65.534. Pentru un ISP
cu zeci de mii de companii cliente, aceast limit va fi repede depit.
Pentru a agrava situaia, din ce n ce mai muli utilizatori se aboneaz de acas la ADSL sau Internet prin cablu. Dou dintre facilitile oferite de aceste servicii sunt (1) utilizatorul primete o
adres IP permanent i (2) nu exist tax de conectare (doar o tax lunar), aa c muli utilizatori
ai ADSL-ului i ai Internetului prin cablu rmn conectai permanent. Aceasta contribuie la insuficiena adreselor IP. Alocarea dinamic a adreselor IP aa cum se face cu utilizatorii dial-up nu este
util pentru c numrul adreselor IP folosite la un moment dat poate fi de multe ori mai mare dect
numrul adreselor deinute de ISP.
i pentru a complica i mai mult lucrurile, muli utilizatori de ADSL i Internet prin cablu au dou sau mai multe calculatoare acas, deseori cte unul pentru fiecare membru al familiei, i toi vor
s fie online tot timpul folosind singura adres IP care le-a fost alocat de ctre ISP. Soluia este s
se conecteze toate PC-urile printr-un LAN i s se pun un ruter. Din punctul de vedere al ISP-ului,
familia este acum ca o companie cu cteva calculatoare. Bine-ai venit la Jones, Inc.
Problema epuizrii adreselor IP nu este o problem teoretic care ar putea aprea cndva n viitorul ndeprtat. A aprut aici i acum. Soluia pe termen lung este ca tot Internetul s migreze
la IPv6, care are adrese de 128 de bii. Tranziia se desfoar ncet, dar vor trece ani pn la
finalizarea procesului. n consecin, anumite persoane au considerat c este nevoie de o rezolvare
rapid pe termen scurt. Rezolvarea a venit n forma NAT (Network Address Translation

SEC. 5.6

NIVELUL REEA N INTERNET

399

Translatarea adreselor de reea), care este descris n RFC 3022 i pe care o vom rezuma mai
jos. Pentru informaii suplimentare consultai (Dutcher, 2001).
Ideea de baz a NAT-ului este de a aloca fiecrei companii o singur adres IP (sau cel mult un
numr mic de adrese) pentru traficul Internet. n interiorul companiei, fiecare calculator primete o adres IP unic, care este folosit pentru traficul intern. Totui, atunci cnd un pachet prsete compania i se duce la ISP, are loc o translatare de adres. Pentru a face posibil acest lucru,
au fost declarate ca fiind private trei intervale de adrese IP. Companiile le pot folosi intern aa cum
doresc. Singura regul este ca nici un pachet coninnd aceste adrese s nu apar pe Internet. Cele trei intervale rezervate sunt :
10.0.0.0
172.16.0.0
192.168.0.0

- 10.255.255.255/8
- 172.31.255.255/12
- 192.168.255.255/16

(16.777.216 gazde)
(1 .048.576 gazde)
(65.536 gazde)

Primul interval pune la dispoziie 16.777.216 adrese (cu excepia adreselor 0 i 1, ca de obicei) i
este alegerea obinuit a majoritii companiilor, chiar dac nu au nevoie de aa de multe adrese.

Fig. 5-60. Amplasarea i funcionarea unei uniti NAT.

Funcionarea NAT este ilustrat n fig. 5-60. n interiorul companiei fiecare main are o adres
unic de forma 10.x.y.z. Totui, cnd un pachet prsete compania, trece printr-o unitate NAT
(eng.: NAT box)care convertete adresa IP intern, 10.0.0.1 n figur, la adresa IP real a companiei,
198.60.42.12, n acest exemplu. Unitatea NAT este deseori combinat ntr-un singur dispozitiv cu un
zid de protecie (eng.: firewall), care asigur securitatea controlnd cu grij ce intr i iese din companie. Vom studia zidurile de protecie n Cap. 8. De asemenea este posibil integrarea unitii NAT
n ruterul companiei.
Pn acum am trecut cu vederea un detaliu: atunci cnd vine rspunsul (de exemplu de la un
server Web), este adresat 198.60.42.12, deci de unde tie unitatea NAT cu care adres s o nlocuiasc pe aceasta? Aici este problema NAT-ului. Dac ar fi existat un cmp liber n antetul IP, acel
cmp ar fi putut fi folosit pentru a memora cine a fost adevratul emitor, dar numai 1 bit este
nc nefolosit. n principiu, o nou opiune ar putea fi creat pentru a reine adevrata adres a

400

NIVELUL REEA

CAP. 5

sursei, dar acest lucru ar necesita schimbarea codului din protocolul IP de pe toate staiile din ntregul Internet pentru a putea prelucra noua opiune. Aceasta nu este o alternativ promitoare pentru o rezolvare rapid.
n cele ce urmeaz se prezint ceea ce s-a ntmplat cu adevrat. Proiectanii NAT au observat
c marea majoritate a pachetelor IP aveau coninut TCP sau UDP. Atunci cnd vom studia protocoalele TCP i UDP n Cap. 6, vom vedea c ambele au antete conin un port surs i un port destinaie. n continuare vom discuta doar despre porturi TCP, dar exact aceleai lucruri se aplic i la
UDP. Porturile sunt numere ntregi pe 16 bii care indic unde ncepe i unde se termin o conexiune TCP. Aceste cmpuri pun la dispoziie cmpul necesar funcionrii NAT.
Atunci cnd un proces dorete s stabileasc o conexiune TCP cu un proces de la distan, se
ataeaz unui port TCP nefolosit de pe maina sa. Acesta se numete portul surs i spune codului TCP unde s trimit pachetele care vin i aparin acestei conexiuni. Procesul furnizeaz i un
port destinaie pentru a spune cui s trimit pachetele n cealalt parte. Porturile 0-1023 sunt rezervate pentru servicii bine cunoscute. De exemplu portul 80 este folosit de serverele Web, astfel
nct clienii s le poat localiza. Fiecare mesaj TCP care pleac conine att un port surs ct i
un port destinaie. Cele dou porturi permit identificarea proceselor care folosesc conexiunea la
cele dou capete.
S-ar putea ca o analogie s clarifice mai mult utilizarea porturilor. Imaginai-v o companie cu un
singur numr de telefon principal. Atunci cnd cineva sun la acest numr, vorbete cu un operator
care ntreab ce interior dorete i apoi face legtura la acel interior. Numrul principal este analog cu
adresa IP a companiei iar interioarele de la ambele capete sunt analoage cu porturile. Porturile reprezint 16 bii suplimentari de adresare identificnd procesul care primete un pachet sosit.
Folosind cmpul Port surs rezolvm problema de coresponden. De fiecare dat cnd un pachet pleac, el intr n unitatea NAT i adresa surs 10.x.y.z este nlocuit cu adresa real a companiei. n plus, cmpul TCP Port surs este nlocuit cu un index n tabela de translatare a unitii NAT,
care are 65.536 intrri. Aceast tabel conine adresa IP iniial i portul iniial. n final, sunt recalculate i inserate n pachet sumele de control ale antetelor IP i TCP. Cmpul Port surs trebuie nlocuit pentru c s-ar putea ntmpla, de exemplu, ca staiile 10.0.0.1 i 10.0.0.2 s aib amndou conexiuni care s foloseasc portul 5000, deci cmpul Port surs nu este suficient pentru a identifica procesul emitor.
Atunci cnd la unitatea NAT sosete un pachet de la ISP, Portul surs din antetul TCP este extras
i folosit ca index n tabela de coresponden a unitii NAT. Din intrarea localizat sunt extrase i
inserate n pachet adresa IP intern i Portul surs TCP iniial. Apoi sunt recalculate sumele de control TCP i IP i inserate n pachet. Dup aceea pachetul este transferat ruterului companiei pentru
transmitere normal folosind adresa 10.x.y.z.
NAT poate fi folosit pentru rezolva insuficiena adreselor IP pentru utilizatori de ADSL i Internet prin cablu. Atunci cnd un ISP aloc fiecrui utilizator o adres, folosete adrese 10.x.y.z. Atunci
cnd pachete de la staiile utilizatorilor ies din ISP i intr n Internet trec printr-o cutie NAT care le
translateaz n adresele Internet adevrate ale ISP-ului. La ntoarcere pachetele trec prin maparea
invers. Din aceast perspectiv, pentru restul Internetului, ISP-ul i utilizatorii si ADSL/cablu arat la fel ca o mare companie.
Dei aceast schem rezolv ntr-un fel problema, multe persoane din comunitatea IP o consider un monstru pe faa pmntului. Rezumate succint, iat cteva dintre obiecii. n primul rnd,
NAT violeaz modelul arhitectural al IP-ului, care afirm c fiecare adres IP identific unic o sin-

SEC. 5.6

NIVELUL REEA N INTERNET

401

gur main din lume. ntreaga structur software a Internetului este construit pornind de la acest
fapt. Cu NAT, mii de maini pot folosi (i folosesc) adresa 10.0.0.1.
n al doilea rnd, NAT schimb natura Internetului de la o reea fr conexiuni la un fel de reea cu conexiuni. Problema este c o unitate NAT trebuie s menin informaii (corespondene)
pentru fiecare conexiune care trece prin ea. Faptul c reeaua pstreaz starea conexiunilor este o
proprietate a reelelor orientate pe conexiune, nu a celor neorientate pe conexiune. Dac o unitate NAT se defecteaz i tabela de coresponden este pierdut, toate conexiunile TCP sunt distruse. n absena NAT, cderea ruterelor nu are nici un efect asupra TCP. Procesul care transmite
ajunge la limita de timp n cteva secunde i retransmite toate pachetele neconfirmate. Cu
NAT, Internetul devine la fel de vulnerabil ca o reea cu comutare de circuite.
n al treilea rnd, NAT ncalc cea mai fundamental regul a protocoalelor pe niveluri: nivelul
k nu poate face nici un fel de presupuneri referitor la ceea ce a pus nivelul k+1 n cmpul de informaie util. Principiul de baz este s se pstreze niveluri independente. Dac mai trziu TCP este
nlocuit de TCP-2, cu un antet diferit (de exemplu porturi pe 32 de bii), NAT va eua. Ideea
protocoalelor pe niveluri este de a asigura c modificrile la un nivel nu necesit modificri la
celelalte niveluri. NAT distruge aceast independen.
n al patrulea rnd, procesele din Internet nu sunt obligate s foloseasc TCP sau UDP. Dac un utilizator de pe maina A se decide s folosesc un nou protocol de transport pentru a comunica cu un utilizator de pe maina B (de exemplu, pentru o aplicaie multimedia), introducerea
unei uniti NAT va determina eecul aplicaiei, deoarece cutia NAT nu va fi n stare s localizeze corect cmpul TCP Port surs.
n al cincilea rnd, anumite aplicaii introduc adrese IP n corpul mesajului. Receptorul extrage
aceste adrese i le folosete. De vreme ce NAT nu tie nimic despre aceste adrese, nu le poate nlocui, deci orice ncercare de a le folosi de ctre cealalt parte va eua. FTP, standardul File Transfer
Protocol (rom.: protocol de transfer de fiiere) funcioneaz n acest mod i poate eua n prezena
NAT dac nu se iau msuri speciale. n mod similar protocolul pentru telefonie Internet H.323 (care
va fi studiat n Cap. 8) are aceast proprietate i nu va funciona n prezena NAT. Ar fi posibil s se
modifice NAT-ul pentru a funciona cu H.323, dar modificarea codului unitii NAT de fiecare dat
cnd apare o aplicaie nou nu este o idee bun.
n al aselea rnd, deoarece cmpul TCP Port surs are 16 bii, o adres IP poate fi pus n coresponden cu cel mult 65.536 maini. De fapt acest numr este puin mai mic, deoarece primele 4096
porturi sunt rezervate pentru utilizri speciale. Totui dac sunt disponibile mai multe adrese IP fiecare poate trata 61.440 maini.
Acestea i alte probleme ale NAT sunt discutate n RFC 2993. n general, opozanii NAT spun
c rezolvnd problema insuficienei adreselor IP cu o soluie temporar i urt, presiunea pentru a
implementa soluia real, adic tranziia la IPv6, este redus i acesta este un lucru ru.

5.5.4

Protocoale de control n Internet

Pe lng IP, care este folosit pentru transferul de date, Internet-ul are cteva protocoale de control la nivelul reea, incluznd ICMP, ARP, RARP, BOOTP i DHCP. n aceast seciune vom
arunca o privire asupra fiecruia dintre ele.

402

NIVELUL REEA

CAP. 5

Protocolul mesajelor de control din Internet


Operarea Internet-ului este strns monitorizat de ctre rutere. Atunci cnd se ntmpl ceva
neobinuit, evenimentul este raportat prin ICMP (Internet Control Message Protocol - protocolul
mesajelor de control din Internet), care este folosit i pentru testarea Internet-ului. Sunt definite
aproape o duzin de tipuri de mesaje ICMP. Cele mai importante sunt enumerate n fig. 5-61. Fiecare tip de mesaj ICMP este ncapsulat ntr-un pachet IP.
Tipul mesajului
Destinaie inaccesibil
Timp depit
Problem de parametru
Oprire surs
Redirectare
Cerere de ecou
Rspuns ecou
Cerere de amprent de timp
Rspuns cu amprent de timp

Descriere
Pachetul nu poate fi livrat
Cmpul timp de via a ajuns la 0
Cmp invalid n antet
Pachet de oc
nva un ruter despre geografie
ntreab o main dac este activ
Da, sunt activ
La fel ca cererea de ecou, dar cu amprent de timp
La fel ca rspunsul ecou, dar cu amprent de timp

Fig. 5-61. Tipurile principale de mesaje ICMP.

Mesajul DESTINAIE INACCESIBIL (DESTINATION UNREACHABLE) este folosit


atunci cnd subreeaua sau un ruter nu pot localiza destinaia, sau un pachet cu bitul DF nu poate fi
livrat deoarece o reea cu pachete mici i st n cale.
Mesajul TIMP DEPIT (TIME EXCEEDED) este trimis cnd un pachet este eliminat datorit ajungerii contorului su la zero. Acest mesaj este un simptom al buclrii pachetelor, al unei enorme congestii sau al stabilirii unor valori prea mici pentru ceas.
Mesajul PROBLEM DE PARAMETRU (PARAMETER PROBLEM) indic detectarea
unei valori nepermise ntr-un cmp din antet. Aceast problem indic o eroare n programele IP
ale gazdei emitoare sau eventual n programele unui ruter tranzitat.
Mesajul OPRIRE SURS (SOURCE QUENCH) a fost folosit pe vremuri pentru a limita traficul gazdelor care trimiteau prea multe pachete. Cnd o gazd primea acest mesaj, era de ateptat s
ncetineasc ritmul de transmisie. Este folosit arareori, deoarece cnd apare congestie, aceste pachete au tendina de a turna mai mult gaz pe foc. Controlul congestiei n Internet este fcut acum pe
larg la nivelul transport i va fi studiat n detaliu n Cap. 6.
Mesajul REDIRECTARE (REDIRECT) este folosit atunci cnd un ruter observ c un pachet
pare a fi dirijat greit. Este folosit de ruter pentru a spune gazdei emitoare despre eroarea probabil.
Mesajele CERERE ECOU (ECHO REQUEST) i RSPUNS ECOU (ECHO REPLY) sunt
folosite pentru a vedea dac o anumit destinaie este accesibil i activ. Este de ateptat ca la recepia mesajului ECOU, destinaia s rspund printr-un mesaj RSPUNS ECOU. Mesajele CERERE AMPRENT DE TIMP (TIMESTAMP REQUEST) i RSPUNS AMPRENT DE
TIMP (TIMESTAMP REPLY) sunt similare, cu excepia faptului c n rspuns sunt nregistrate
timpul de sosire a mesajului i de plecare a rspunsului. Aceast facilitate este folosit pentru a msura performanele reelei.
n plus fa de aceste mesaje, au fost definite i altele. Lista se afl on-line la adresa www.iana.
org/assignements/icmp-parameters.

SEC. 5.6

NIVELUL REEA N INTERNET

403

Protocolul de rezoluie a adresei: ARP


Dei fiecare main din Internet are una sau mai multe adrese IP, acestea nu pot fi folosite de
fapt pentru trimiterea pachetelor deoarece hardware-ul nivelului legturii de date nu nelege adresele Internet. Actualmente, cele mai multe gazde sunt ataate la un LAN printr-o plac de interfa
care nelege numai adresele LAN. De exemplu, fiecare plac Ethernet fabricat pn acum vine cu
o adres Ethernet de 48 bii. Fabricanii plcilor Ethernet cer un spaiu de adrese de la o autoritate
central pentru a se asigura c nu exist dou plci cu aceeai adres (pentru a evita conflictele care
ar aprea dac cele dou plci ar fi n acelai LAN). Plcile trimit i primesc cadre pe baza adresei
Ethernet de 48 bii. Ele nu tiu absolut nimic despre adresele IP pe 32 de bii.

Fig. 5-62. Trei reele /24 interconectate: dou reele Ethernet i un inel FDDI.

Se pune atunci ntrebarea: Cum sunt transformate adresele IP n adrese la nivelul legturii de date, ca de exemplu Ethernet? Pentru a explica care este funcionarea, vom folosi exemplul din fig. 562, n care este ilustrat o universitate mic ce are cteva reele de clas C (denumit acum /24).
Avem dou reele Ethernet, una n facultatea de Calculatoare, cu adresa IP 192.31.65.0 i una n
facultatea de Inginerie Electric, cu adresa IP 192.31.63.0. Acestea sunt conectate printr-un inel
FDDI la nivelul campusului, care are adresa IP 192.31.60.0. Fiecare main dintr-o reea Ethernet
are o adres Ethernet unic, etichetat de la E1 la E6, iar fiecare main de pe inelul FDDI are o
adres FDDI, etichetat de la F1 la F3.
S ncepem prin a vedea cum trimite un utilizator de pe gazda 1 un pachet unui utilizator de pe
gazda 2. Presupunem c expeditorul tie numele destinatarului, ceva de genul ary@eagle.cs.uni.edu.
Primul pas este aflarea adresei IP a gazdei 2, cunoscut ca eagle.cs.uni.edu. Aceast cutare este fcut de sistemul numelor de domenii (DNS), pe care l vom studia n Cap. 7. Pentru moment, vom
presupune c DNS-ul ntoarce adresa IP a gazdei 2 (192.31.65.5).
Programele de la nivelurile superioare ale gazdei 1 construiesc un pachet cu 192.31.65.5 n cmpul adresa destinatarului, pachet care este trimis programelor IP pentru a-l transmite. Programele IP
se uit la adres i vd c destinatarul se afl n propria reea, dar au nevoie de un mijloc prin care s
determine adresa Ethernet a destinatarului. O soluie este s avem undeva n sistem un fiier de configurare care transform adresele IP n adrese Ethernet. Aceast soluie este posibil, desigur, dar
pentru organizaii cu mii de maini, meninerea fiierelor actualizate este o aciune consumatoare de
timp i care poate genera erori.

404

NIVELUL REEA

CAP. 5

O soluie mai bun este ca gazda 1 s trimit un pachet de difuzare n reeaua Ethernet ntrebnd: Cine este proprietarul adresei IP 192.31.65.5?. Pachetul de difuzare va ajunge la toate mainile din reeaua Ethernet 192.31.65.0 i fiecare i va verifica adresa IP. Numai gazda 2 va rspunde
cu adresa sa Ethernet (E2). n acest mod gazda 1 afl c adresa IP 192.31.65.5 este pe gazda cu adresa Ethernet E2. Protocolul folosit pentru a pune astfel de ntrebri i a primi rspunsul se numete
ARP (Address Resolution Protocol - Protocolul de rezoluie a adresei). Aproape toate mainile din
Internet l folosesc. El este definit n RFC 826.
Avantajul folosirii ARP fa de fiierele de configurare l reprezint simplitatea. Administratorul
de sistem nu trebuie s fac prea multe, dect s atribuie fiecrei maini o adres IP i s hotrasc
mtile subreelelor. ARP-ul face restul.
n acest punct, programele IP de pe gazda 1 construiesc un cadru Ethernet adresat ctre E2, pun
pachetul IP (adresat ctre 193.31.65.5) n cmpul informaie util i l lanseaz pe reeaua Ethernet.
Placa Ethernet a gazdei 2 detecteaz acest cadru, recunoate c este un cadru pentru ea, l ia repede
i genereaz o ntrerupere. Driverul Ethernet extrage pachetul IP din informaia util i l trimite
programelor IP, care vd c este corect adresat i l prelucreaz.
Pentru a face ARP-ul mai eficient sunt posibile mai multe optimizri. Pentru nceput, la fiecare
execuie a ARP, maina pstreaz rezultatul pentru cazul n care are nevoie s contacteze din nou
aceeai main n scurt timp. Data viitoare va gsi local corespondentul adresei, evitndu-se astfel
necesitatea unei a doua difuzri. n multe cazuri, gazda 2 trebuie s trimit napoi un rspuns, ceea
ce o foreaz s execute ARP, pentru a determina adresa Ethernet a expeditorului. Aceast difuzare
ARP poate fi evitat oblignd gazda 1 s includ n pachetul ARP corespondena dintre adresa sa IP
i adresa Ethernet. Cnd pachetul ARP ajunge la gazda 2, perechea (192.31.65.7, E1) este memorat local de ARP pentru o folosire ulterioar. De fapt, toate mainile din reeaua Ethernet pot memora aceast relaie n memoria ARP local.
Alt optimizare este ca fiecare main s difuzeze corespondena sa de adrese la pornirea mainii. Aceast difuzare este realizat n general printr-un pachet ARP de cutare a propriei adrese IP.
Nu ar trebui s existe un rspuns, dar un efect lateral al difuzrii este introducerea unei nregistrri
n memoria ascuns ARP a tuturor. Dac totui sosete un rspuns (neateptat), nseamn c dou
maini au aceeai adres IP. Noua main ar trebui s-l informeze pe administratorul de sistem i s
nu porneasc.
Pentru a permite schimbarea relaiei, de exemplu, cnd o plac Ethernet se stric i este nlocuit
cu una nou (i astfel apare o nou adres Ethernet), nregistrrile din memoria ascuns ARP ar
trebui s expire dup cteva minute.
S privim din nou fig. 5-62, numai c de aceast dat gazda 1 vrea s trimit un pachet ctre gazda 4 (192.31.63.8). Folosirea ARP va eua pentru c gazda 4 nu va vedea difuzarea (ruterele nu trimit mai departe difuzrile de nivel Ethernet). Exist dou soluii. Prima: ruterul facultii de Calculatoare poate fi configurat s rspund la cererile ARP pentru reeaua 193.31.63.0 (i posibil i pentru alte reele locale). n acest caz, gazda 1 va memora local perechea (193.31.63.8, E3) i va trimite
tot traficul pentru gazda 4 ctre ruterul local. Aceast soluie se numete ARP cu intermediar (proxy
ARP). A doua soluie este ca gazda 1 s-i dea seama imediat c destinaia se afl pe o reea aflat la
distan i s trimit tot traficul ctre o adres Ethernet implicit care trateaz tot traficul la distan,
n acest caz E3. Aceast soluie nu necesit ca ruterul facultii de Calculatoare s tie ce reele la
distan deservete.
n ambele cazuri, ceea ce se ntmpl este c gazda 1 mpacheteaz pachetul IP n cmpul informaie util dintr-un cadru Ethernet adresat ctre E3. Cnd ruterul facultii de Calculatoare prime-

SEC. 5.6

NIVELUL REEA N INTERNET

405

te cadrul Ethernet, extrage pachetul IP din cmpul informaie util i caut adresa IP din tabelele
sale de dirijare. Descoper c pachetele pentru reeaua 193.31.63.0 trebuie s mearg ctre ruterul
192.31.60.7. Dac nu cunoate nc adresa FDDI a lui 193.31.60.7, difuzeaz un pachet ARP pe inel
i afl c adresa din inel este F3. Apoi insereaz pachetul n cmpul informaie util al unui cadru
FDDI adresat ctre F3 i l transmite pe inel.
Driverul FDDI al ruterului facultii de Inginerie Electric scoate pachetul din cmpul informaie util i l trimite programelor IP care vd c trebuie s trimit pachetul ctre 192.31.63.8. Dac
aceast adres IP nu este n memoria ascuns ARP, difuzeaz o cerere ARP pe reeaua Ethernet a
facultii de Inginerie Electric i afl c adresa destinaie este E6, astfel nct construiete un cadru
Ethernet adresat ctre E6, pune pachetul n cmpul informaie util i l trimite n reeaua Ethernet.
Cnd cadrul Ethernet ajunge la gazda 4, pachetul este extras din cadru i trimis programelor IP pentru procesare.
Transferul ntre gazda 1 i o reea la distan peste un WAN funcioneaz n esen asemntor,
cu excepia c de data aceasta tabelele ruterului facultii de Calculatoare i vor indica folosirea
ruterului WAN, a crui adres FDDI este F2.

RARP, BOOTP i DHCP


ARP-ul rezolv problema aflrii adresei Ethernet corespunztoare unei adrese IP date. Cteodat trebuie rezolvat problema invers: dndu-se o adres Ethernet, care este adresa IP corespunztoare? n particular, aceast problem apare cnd se pornete o staie de lucru fr disc. O astfel
de main va primi, n mod normal, imaginea binar a sistemului su de operare de la un server de
fiiere la distan. Dar cum i afl adresa IP?
Prima soluie proiectat a fost RARP (Reverse Address Resolution Protocol - Protocol de rezoluie invers a adresei) (definit n RFC 903). Acest protocol permite unei staii de lucru de-abia pornit s difuzeze adresa sa Ethernet i s spun: Adresa mea Ethernet de 48 de bii este
14.04.05.18.01.25. tie cineva adresa mea IP? Serverul RARP vede aceast cerere, caut adresa
Ethernet n fiierele sale de configurare i trimite napoi adresa IP corespunztoare.
Folosirea RARP este mai bun dect introducerea unei adrese IP n imaginea de memorie, pentru c permite ca aceeai imagine s fie folosit pe toate mainile. Dac adresa IP ar fi fixat nuntrul imaginii, atunci fiecare staie de lucru ar necesita imaginea sa proprie.
Un dezavantaj al RARP este c, pentru a ajunge la serverul RARP, folosete o adres destinaie
numai din 1-uri (difuzare limitat). Cu toate acestea, asemenea difuzri nu sunt propagate de rutere,
aa nct este necesar un server RARP n fiecare reea. Pentru a rezolva aceast problem, a fost
inventat un protocol alternativ de pornire, numit BOOTP (vezi RFC-urile 951, 1048 i 1084). Spre
deosebire de RARP, acesta folosete mesaje UDP, care sunt propagate prin rutere. De asemenea
furnizeaz unei staii de lucru fr disc informaii suplimentare, care includ adresa IP a serverului de
fiiere care deine imaginea de memorie, adresa IP a ruterului implicit i masca de subreea care se
folosete. BOOTP-ul este descris n RFC 951, 1048 i 1084.
O problem serioas cu BOOTP este c necesit configurarea manual a corespondenelor ntre
adresele IP i adresele Ethernet. Atunci cnd o nou gazd este adugat la LAN, nu poate folosi
BOOTP dect atunci cnd un administrator i aloc o adres IP i introduce manual (adres
Ethernet, adres IP) n tabelele de configurare BOOTP. Pentru a elimina acest pas predispus la
erori, BOOTP a fost extins i i-a fost dat un nou nume: DHCP (Dynamic Host Configuration
Protocol Protocol dinamic de configurare a gazdei). DHCP permite att atribuirea manual

406

NIVELUL REEA

CAP. 5

de adrese IP, ct i atribuirea automat. Este descris n RFC-urile 2131 i 2132. n majoritatea
sistemelor, a nlocuit n mare parte RARP i BOOTP.
Ca i RARP i BOOTP, DHCP este bazat pe ideea unui server special care atribuie adrese IP
gazdelor care cer una. Acest server nu trebuie s se afle n acelai LAN cu gazda care face cererea.
Deoarece serverul DHCP s-ar putea s nu fie accesibil prin difuzare, este nevoie ca n fiecare LAN
s existe un agent de legtur DHCP (DHCP relay agent), aa cum se vede n fi fig. 5-63.

Fig. 5-63. Funcionarea DHCP.

Pentru a-i afla adresa IP, o main tocmai pornit difuzeaz un pachet DHCP DISCOVER.
Agentul de legtur DHCP din LAN intercepteaz toate difuzrile DHCP. Atunci cnd gsete un
pachet DHCP DISCOVER, l trimite ca pachet unicast serverului DHCP, posibil ntr-o reea
deprtat. Singura informaie de care are nevoie agentul este adresa IP a serverului DHCP.
O problem care apare cu atribuirea automat a adreselor IP dintr-o rezerv comun este ct
de mult ar trebui alocat o adres IP . Dac o gazd prsete reeaua i nu returneaz adresa sa
IP serverului DHCP, acea adres va fi pierdut permanent. Dup o perioad de timp vor fi pierdute
multe adrese. Pentru a preveni aceasta, atribuirea adresei IP va fi pentru o perioad fix de timp, o
tehnic numit nchiriere. Chiar nainte ca perioada de nchiriere s expire, gazda trebuie s i
cear DHCP-ului o rennoire. Dac nu reuete s fac cererea sau dac cererea este respins, gazda nu va mai putea folosi adresa IP care i fusese dat mai devreme.

SEC. 5.7

REZUMAT

423

5.7 REZUMAT
Nivelul reea furnizeaz servicii nivelului transport. El se poate baza fie pe circuite virtuale, fie pe
datagrame. n ambele cazuri, principala sa sarcin este dirijarea pachetelor de la surs la destinaie.
n subreelele bazate pe circuite virtuale, decizia de dirijare se ia atunci cnd este stabilit circuitul. n
subreelele bazate pe datagrame decizia este luat pentru fiecare pachet.
n reelele de calculatoare sunt folosii muli algoritmi de dirijare. Algoritmii statici includ dirijarea pe calea cea mai scurt i inundarea. Algoritmii dinamici include dirijarea dup vectorul distanelor i dirijarea dup starea legturii. Majoritatea reelelor actuale folosesc unul dintre aceti algoritmi. Alte teme importante referitoare la dirijare sunt dirijarea ierarhic, dirijarea pentru gazde
mobile, dirijarea pentru difuzare, dirijarea multidestinaie i cea n reele punct-la-punct.
Subreelele pot deveni cu uurin congestionate, mrind ntrzierea i micornd productivitatea pentru pachete. Proiectanii reelelor ncearc s evite congestia printr-o proiectare adecvat.
Tehnicile includ politica de retransmitere, folosirea memoriei ascunse, controlul fluxului i altele.
Dac apare congestia, ea trebuie s fie tratat. Pot fi trimise napoi pachete de oc, ncrcarea poate
fi eliminat sau se pot aplica alte metode.
Urmtorul pas dincolo de simpla tratare a congestiei este ncercarea de a se ajunge la calitatea
promis a serviciului. Metodele care pot fi folosite pentru aceasta includ folosirea zonelor tampon la
client, modelarea traficului, rezervarea resurselor i controlul accesului. Abordrile care au fost
proiectate pentru o bun calitate a serviciului includ servicii integrate (ca RSVP), servicii difereniate i MPLS.
Reelele difer prin multe caracteristici, aa c atunci cnd se conecteaz mai multe reele, pot s
apar probleme. Uneori problemele pot fi evitate prin trecerea prin tunel a unui pachet ce traverseaz o reea ostil, dar dac reeaua surs i cea destinaie difer, aceast abordare eueaz. Atunci
cnd reele diferite au dimensiunile maxime ale pachetelor diferite, se poate produce fragmentarea.
Internet-ul posed o mare varietate de protocoale legate de nivelul reea. Acestea includ protocolul de transport al datelor, IP, dar i protocoalele de control ICMP, ARP i RARP i protocoalele
de dirijare OSPF i BGP. Internet-ul va rmne foarte repede fr adrese IP, aa c s-a dezvoltat o
nou versiune de IP, IPv6.

5.8 PROBLEME
1.

Dai dou exemple de aplicaii pentru care este adecvat un serviciu orientat pe conexiune.
Apoi dai dou exemple pentru care un serviciu fr conexiuni este cel mai potrivit.

2.

Exist vreo situaie n care un serviciu cu circuit virtual va (sau cel puin ar putea) livra pachetele
n alt ordine? Explicai.

3.

Subreelele bazate pe datagrame dirijeaz fiecare pachet ca pe o unitate separat, independent


de toate celelalte. Subreelele bazate pe circuite virtuale nu trebuie s fac acest lucru, pentru c
fiecare pachet de date urmeaz o cale predeterminat. Oare aceast observaie nseamn c

424

NIVELUL REEA

CAP. 5

subreelele bazate pe circuite virtuale nu au nevoie de capacitatea de a dirija pachetele izolate


de la o surs arbitrar ctre o destinaie arbitrar? Explicai rspunsul dat.
4.

Dai trei exemple de parametri ai protocolului care ar putea fi negociai atunci cnd este iniiat
o conexiune.

5.

Considerai urmtoarea problem de proiectare, privind implementarea unui serviciu cu


circuit virtual. Dac n interiorul unei subreele sunt folosite circuite virtuale, fiecare pachet de date trebuie s conin un antet de 3 octei, iar fiecare ruter trebuie s aloce 8 octei de memorie pentru identificarea circuitelor. Dac intern sunt folosite datagrame, sunt
necesare antete de 15 octei, dar nu este nevoie de spaiu pentru tabela ruterului. Capacitatea de transmisie cost 1 cent per 106 octei, per salt. Memoria foarte rapid pentru ruter
poate fi cumprat la preul de 1 cent per octet i se depreciaz peste doi ani (considernd
numai orele de funcionare). Din punct de vedere statistic, o sesiune medie dureaz 1000
de secunde, iar n acest timp sunt transmise 200 de pachete. Un pachet mediu are nevoie
de patru salturi. Care implementare este mai ieftin i cu ct?

6.

Presupunnd c toate ruterele i gazdele funcioneaz normal i c ntregul software din rutere
i gazde nu conine nici o eroare, exist vreo ans, orict de mic, ca un pachet s fie livrat unei
destinaii greite?

7.

Considerai reeaua din fig. 5-7, dar ignorai ponderile de pe linii. Presupunei c algoritmul de
rutare utilizat este cel de inundare. Listai toate rutele pe care le va parcurge un pachet trimis de
la A la D, al crui numr maxim de salturi este 3. De asemenea precizai cte noduri consum
inutil band de transmisie.

8.

Formulai o euristic simpl pentru gsirea a dou ci de la o surs dat la o destinaie


dat care pot supravieui pierderii oricrei linii de comunicaie (presupunnd c exist dou astfel de ci). Ruterele sunt considerate suficient de fiabile, deci nu este necesar s ne
ngrijoreze posibilitatea cderii ruterelor.

9.

Considerai subreeaua din fig. 5-13(a). Se folosete dirijarea dup vectorul distanelor i
urmtorii vectori tocmai au sosit la ruterul C: de la B: (5, 0, 8, 12, 6, 2); de la D: (16, 12, 6,
0, 9, 10); i de la E: (7, 6, 3, 9, 0, 4). ntrzierile msurate ctre B, D i E, sunt 6, 3 i respectiv 5. Care este noua tabel de dirijare a lui C? Precizai att linia de ieire folosit, ct
i ntrzierea presupus.

10. Dac ntrzierile sunt nregistrate ca numere de 8 octei ntr-o reea cu 50 de rutere i vectorii cu
ntrzieri sunt schimbai de dou ori pe secund, ct din lrgimea de band a unei linii (duplex
integral) este consumat de algoritmul distribuit de dirijare? Presupunei c fiecare ruter are
trei linii ctre alte rutere.
11. n fig. 5-14 rezultatul operaiei SAU logic a celor dou mulimi de bii ACF este 111 n fiecare
linie. Este acesta doar un accident ntmplat aici sau este valabil pentru toate subreelele, n toate mprejurrile?
12. La dirijarea ierarhic cu 4800 de rutere, ce dimensiuni ar trebui alese pentru regiune i grup,
astfel nct s se minimizeze dimensiunea tabelei de dirijare pentru o ierarhie cu trei niveluri?

SEC. 5.8

PROBLEME

425

Un punct de pornire este ipoteza c o soluie cu k clustere de k regiuni de k rutere este


aproape de optim, ceea ce nseamn c valoarea k este aproximativ rdcina cubic a lui 4800
(aproximativ 16). Folosii ncercri repetate pentru a verifica combinaiile cu toi cei trei parametri n vecintatea lui 16.
13. n text s-a afirmat c atunci cnd un sistem gazd mobil nu este acas, pachetele trimise ctre
LAN-ul de domiciliu sunt interceptate de agentul su local. Pentru o reea IP pe un LAN 802.3,
cum va realiza agentul local aceast interceptare?
14. Privind subreeaua din fig. 5-6, cte pachete sunt generate de o difuzare de la B, folosind:
a) urmrirea cii inverse?
b) arborele de scufundare?
15. Fie reeaua din fig. 5-16(a). S ne imaginm c ntre F i G este adugat o nou linie, dar
arborele de scufundare din fig. 5-16(b) rmne neschimbat. Ce modificri survin n fig. 516(c) ?
16. Calculai un arbore de acoperire pentru trimitere multipl pentru ruterul C din reeaua de mai
jos pentru un grup cu membrii la ruterele A, B, C, D, E, F, I i K.

17. n fig. 5-20, difuzeaz vreodat nodurile H i I la cutarea pornit din A ?


18. S presupunem c nodul B din fig. 5-20 tocmai a pornit i nu are nici o informaie de dirijare
n tabelele sale. Brusc, are nevoie de o cale ctre H. El va difuza pachete cu TTL setat la 1, 2,
3 i aa mai departe. De cte runde are nevoie pentru a gsi o cale ?
19. n cea mai simpl variant a algoritmului Chord pentru cutarea punct-la-punct, cutrile nu
folosesc tabela de indicatori. n loc de aceasta, ele sunt lineare n jurul cercului n oricare direcie. Poate un nod determina cu precizie n ce direcie trebuie s caute ? Discutai rspunsul.
20. Fie cercul Chord din fig. 5-24. S presupunem c nodul 10 pornete brusc. Afecteaz aceasta
tabela de indicatori a nodului 1, i dac da, cum ?
21. Ca un posibil mecanism de control al congestiei ntr-o subreea ce folosete intern circuite virtuale, un ruter poate amna confirmarea unui pachet primit pn cnd (1) tie c ultima sa transmisie de-a lungul circuitului virtual a fost primit cu succes i (2) are un tampon liber. Pentru
simplitate, s presupunem c ruterele utilizeaz un protocol stop-and-wait (pas-cu-pas) i c fie-

426

NIVELUL REEA

CAP. 5

care circuit virtual are un tampon dedicat pentru fiecare direcie a traficului. Dac este nevoie
de T sec pentru a trimite un pachet (date sau confirmare) i sunt n rutere de-a lungul cii, care
este viteza cu care pachetele sunt livrate gazdei destinaie? Presupunem c erorile de transmisie
sunt rare, iar conexiunea gazd-ruter este infinit de rapid.
22. O subreea de tip datagram permite ruterelor s elimine pachete de cte ori este necesar. Probabilitatea ca un ruter s renune la un pachet este p. Considerm cazul unei gazde surs conectate cu un ruter surs, care este conectat cu un ruter destinaie i apoi cu gazda destinaie. Dac
unul dintre rutere elimin un pachet, pn la urm gazda surs va depi limita de timp i va ncerca din nou. Dac liniile gazd-ruter i ruter-ruter sunt ambele numrate ca salturi, care este
numrul mediu de:
a) salturi per transmisie pe care le face un pachet?
b) transmisii determinate de un pachet?
c) salturi necesare pentru un pachet primit?
23. Descriei dou diferene majore dintre metoda bitului de avertizare i metoda RED.
24. Dai o explicaie pentru faptul c algoritmul gleii gurite permite un singur pachet per tact,
indiferent de ct de mare este pachetul.
25. ntr-un sistem oarecare este utilizat varianta cu numrarea octeilor a algoritmului gleii gurite. Regula este c pot fi trimise la fiecare tact un pachet de 1024 de octei, dou pachete de 512
octei etc. Formulai o limitare serioas a acestui sistem care nu a fost menionat n text.
26. O reea ATM utilizeaz pentru modelarea traficului o schem de tip gleat cu jetoane (token
bucket). La fiecare 5 sec n gleat este introdus un nou jeton. Fiecare jeton este asociat unei
singure celule, care conine 48 octei de date. Care este viteza maxim a datelor care poate fi
asigurat?
27. Un calculator dintr-o reea de 6 Mbps este guvernat de o schem de tip gleat cu jetoane.
Aceasta se umple cu viteza de 1 Mbps. Ea este umplut iniial la capacitatea maxim, cu 8
megabii. Ct timp poate calculatorul s transmit cu ntreaga vitez de 6 Mbps?
28. S ne imaginm o specificaie de flux care are dimensiunea maxim a pachetului de 1000 de
octei, viteza gleii cu jetoane de 10 milioane de octei/sec, capacitatea gleii de 1 milion de octei i viteza maxim de transmisie de 50 de milioane de octei/sec. Ct timp poate dura o rafal
la viteza maxim?
29. Reeaua din fig. 5-37 folosete RSVP cu arbori multidestinaie pentru gazdele 1 i 2, dup cum
este ilustrat. S presupunem c gazda 3 cere un canal cu limea de band de 2MB/sec pentru
un flux de la gazda 1 i alt canal cu lrgimea de band de 1MB/sec pentru un flux de la gazda 2.
n acelai timp gazda 4 cere un canal cu lrgimea de band de 2MB/sec pentru un flux de la
gazda 1 i gazda 5 cere un alt cu lrgimea de band de 1MB/sec pentru un flux de la gazda 2. Ce
lrgime de band total va fi rezervat la ruterele A, B, C, E, H, J, K, L pentru aceste cereri?
30. Procesorul dintr-un ruter poate prelucra 2 milioane de pachete/sec. ncrcarea oferit lui este
de 1,5 milioane pachete/sec. Dac o rut de la surs la destinaie trece prin 10 rutere, ct timp
se consum n ateptare i pentru servirea de ctre procesoare?

SEC. 5.8

PROBLEME

427

31. Fie utilizatorul unor servicii difereniate cu rutare expeditiv. Exist o garanie c pachetele
prioritare vor suferi o ntrziere mai mic dect pachetele normale? De ce sau de ce nu?
32. Este nevoie de fragmentare n reele concatenate bazate pe circuite virtuale sau numai n sisteme cu datagrame?
33. Trecerea prin tunel printr-o subreea de circuite virtuale concatenate este simpl: ruterul
multiprotocol de la un capt stabilete circuitul virtual ctre cellalt capt i trece pachetele prin el. Poate aceast trecere prin tunel s fie folosit i n subreelele bazate pe datagrame? Dac da, cum?
34. S presupunem c gazda A este conectat la ruterul R1, R1 este conectat la alt ruter R2, i R2
este conectat la gazda B. S presupunem c un mesaj TCP care conine 900 octei de date i
20 de octei de antet TCP este transmis codului IP aflat pe gazda A pentru a fi transmis lui
B. Artai cmpurile Lungimea total, Identificare, DF ,MF i Deplasamentul fragmentului din
antetul IP din fiecare pachet transmis prin cele trei legturi. Se presupune c legtura A-R1
poate suporta o lungime maxim de cadru de 1024 de octei incluznd un antet de cadru de
14 octei, legtura R1-R2 poate suporta o lungime maxim de cadru de 512 de octei incluznd
un antet de cadru de 8 octei i legtura R2-B poate suporta o lungime maxim de cadru de
512 octei incluznd un antet de cadru de 12 octei.
35. Un ruter distruge pachetele IP a cror lungime total (date plus antet) este de 1024 octei. Presupunnd c pachetele triesc pentru 10 sec, care este viteza maxim a liniei la care poate opera ruterul fr a fi n pericol s cicleze prin spaiul numerelor de ID al datagramelor IP.
36. O datagram IP care folosete opiunea Dirijare strict de la surs trebuie s fie fragmentat.
Credei c opiunea este copiat n fiecare fragment, sau este suficient s fie pus numai n primul fragment? Explicai rspunsul.
37. S presupunem c pentru o adres de clas B, partea care specific reeaua utilizeaz 20 de bii
n loc de 16 bii. Cte reele de clas B se pot obine?
38. Transformai adresa IP a crei reprezentare zecimal este C22F1582 ntr-o notaie zecimal
cu puncte.
39. O reea din Internet are masca de subreea 255.255.240.0. Care este numrul maxim de gazde
din subreea?
40. Un numr mare de adrese IP consecutive sunt disponibile ncepnd cu 198.16.0.0. S presupunem c patru organizaii, A, B, C, D, cer cte 4000, 2000, 4000 i 8000 adrese, n aceast
ordine. Precizai, pentru fiecare dintre ele, prima i ultima adres IP atribuit, precum i masca
n notaia w.x.y.z/s.
41. Un ruter tocmai a primit urmtoarele noi adrese IP: 57.6.96.0/21, 57.6.104.0/21, 57.6.112.0/21 i
57.6.129.0/21. Dac toate folosesc aceeai linie de ieire, pot fi ele compuse? Dac da, ce va
rezulta? Dac nu, de ce nu ?
42. Setul de adrese IP de la 29.18.0.0 la 19.18.128.255 au fost reunite la 29.18.9.9/17. Totui exist
un spaiu de 1024 de adrese nealocate, de la 29.18.60.0 la 29.18.63.255, care sunt brusc alocate

428

NIVELUL REEA

CAP. 5

unei gazde care folosete alt linie de ieire. Este nevoie acum ca adresa agregat s fie spart n blocurile constituente, s se adauge blocurile noi la tabel i s se vad apoi dac este posibil o alt reunire? Dac nu, ce se poate face ?
43. Un ruter are urmtoarele intrri (CIDR) n tabela sa de dirijare :
Adres/masc
135.46.56.0/22
135.46.60.0/22
192.53.40.0/23
Implicit

Urmtorul salt
Interfaa 0
Interfaa 1
Ruter 1
Ruter 2

Pentru fiecare dintre urmtoarele adrese IP, ce face ruterul dac primete un pachet cu respectiva adres?
a) 135.46.63.10
b) 135.46.57.14
c) 135.46.52.2
d) 192.53.40.7
e) 192.53.56.7
44. Multe companii au politica de a avea dou (sau mai multe) rutere conectate la Internet pentru a
avea redundan n caz c unul dintre ele nu mai funcioneaz. Mai este aceast politic posibil cu NAT ? Explicai rspunsul.
45. Tocmai i-ai explicat unui prieten protocolul ARP. Cnd ai terminat, el spune: Am neles. ARP
ofer un serviciu nivelului reea, deci face parte din nivelul legturii de date. Ce i vei spune?
46. Att ARP ct i RARP realizeaz corespondena adreselor dintr-un spaiu n altul. Din acest
punct de vedere cele dou protocoale sunt similare. Totui, implementrile lor sunt fundamental diferite. Care este diferena esenial dintre ele?
47. Descriei un procedeu pentru reasamblarea fragmentelor IP la destinaie.
48. Cei mai muli algoritmi de reasamblare a datagramelor IP au un ceas pentru a evita ca un fragment pierdut s in ocupate pentru totdeauna tampoanele de reasamblare. S presupunem c
o datagram este mprit n patru fragmente. Primele trei sosesc, dar ultimul este ntrziat. n
cele din urm timpul expir i cele trei fragmente sunt eliminate din memoria receptorului. Puin mai trziu, sosete i ultimul fragment. Ce ar trebui fcut cu el?
49. Att la IP ct i la ATM, suma de control acoper numai antetul, nu i datele. De ce credei c
s-a ales aceast soluie?
50. O persoan care locuiete n Boston cltorete la Minneapolis, lundu-i calculatorul
portabil cu sine. Spre surprinderea sa, LAN-ul de la destinaia din Minneapolis este un
LAN IP fr fir, deci nu trebuie s se conecteze. Este oare necesar s se recurg la ntreaga poveste cu ageni locali i ageni strini pentru ca mesajele de pot electronic i alte
tipuri de trafic s-i parvin corect?

SEC. 5.8

PROBLEME

429

51. IPv6 folosete adrese de 16 octei. Dac la fiecare picosecund este alocat cte un bloc de 1 milion de adrese, ct timp vor exista adrese disponibile?
52. Cmpul Protocol folosit n antetul IPv4 nu este prezent n antetul fix pentru IPv6. De ce?
53. Cnd se introduce protocolul IPv6, protocolul ARP trebuie s fie modificat? Dac da, modificrile sunt conceptuale sau tehnice?
54. Scriei un program care s simuleze dirijarea prin inundare. Fiecare pachet ar conine un
contor care este decrementat la fiecare salt. Cnd contorul ajunge la zero, pachetul este
eliminat. Timpul este discret, iar fiecare linie manevreaz un pachet ntr-un interval de
timp. Realizai trei versiuni ale acestui program: toate liniile sunt inundate, sunt inundate
toate liniile cu excepia liniei de intrare, sau sunt inundate numai cele mai bune k linii
(alese statistic). Comparai inundarea cu dirijarea determinist (k = 1) n termenii ntrzierii i lrgimii de band folosite.
55. Scriei un program care simuleaz o reea de calculatoare ce folosete un timp discret.
Primul pachet din coada de ateptare a fiecrui ruter face un salt per interval de timp. Fiecare ruter are numai un numr finit de zone tampon. Dac un pachet sosete i nu este loc
pentru el, el este eliminat i nu mai este retransmis. n schimb, exist un protocol capt-lacapt, complet, cu limit de timp i pachete de confirmare, care va regenera n cele din
urm pachetul de la ruterul surs. Reprezentai grafic productivitatea reelei ca funcie de
limita de timp, parametrizat de rata erorilor.
56. Scriei o funcie pentru retransmiterea ntr-un ruter IP. Procedura are un parametru, o
adres IP. De asemenea are acces la o tabel global constnd dintr-un vector de triplei. Fiecare triplet conine trei ntregi: o adres IP, o masc de subreea i linia de ieire ce trebuie
folosit. Funcia caut adresa IP n tabel folosind CIDR i ntoarce ca valoare linia ce trebuie folosit.
57. Folosii programele traceroute (UNIX) sau tracert (Windows) pentru a urmri calea de la calculatorul personal pn la diverse universiti de pe alte continente. Creai o list a legturilor
transoceanice pe care le-ai descoperit. Cteva sit-uri de ncercat sunt: www.berkely.edu (California), www.u-tokyo.ac.jp (Tokyo), www.mit.edu (Massachusetts), www.vu.nl (Amsterdam),
www.usyd.edu.au (Sydney), www.ucl.ac.uk (Londra), www.uct.ac.za (Cape Town).

6
NIVELUL TRANSPORT

Nivelul transport nu este doar un alt nivel, el este miezul ntregii ierarhii de protocoale. Sarcina
sa este de a transporta date de la maina surs la maina destinaie ntr-o manier sigur i eficace
din punctul de vedere al costurilor, independent de reeaua sau reelele fizice utilizate. Fr nivelul
transport i-ar pierde sensul ntregul concept de ierarhie de protocoale. n acest capitol vom studia
n detaliu nivelul transport, incluznd serviciile, arhitectura, protocoalele i performanele sale.

6.1 SERVICIILE OFERITE DE NIVELUL TRANSPORT


n seciunile urmtoare vom face o prezentare a serviciilor oferite de nivelul transport. Vom studia serviciile oferite nivelului aplicaie. Pentru a face problema serviciului de transport mai concret,
vom examina dou seturi de primitive ale nivelului transport. La nceput ne vom ocupa de unul simplu (dar ipotetic), pentru a arta ideile de baz. Apoi va fi studiat interfaa folosit n mod obinuit
n Internet.

6.1.1

Servicii furnizate nivelurilor superioare

Scopul principal al nivelului transport este de a oferi servicii eficiente, sigure i ieftine utilizatorilor, n mod normal procese aparinnd nivelului aplicaie. Pentru a atinge acest scop, nivelul transport utilizeaz serviciile oferite de nivelul reea. Hardware-ul i/sau software-ul care se ocup de toa431

432

NIVELUL TRANSPORT

CAP. 6

te acestea n cadrul nivelului transport poart numele de entitate de transport. Entitatea de transport poate aparine nucleului sistemului de operare, unui proces distinct, unei biblioteci legate de
aplicaiile de reea sau poate fi gsit n cadrul plcii de reea. Relaia (logic) ntre nivelurile reea,
transport i aplicaie este prezentat n fig. 6-1.

Fig. 6-1. Nivelurile reea, transport i aplicaie.

Cele dou tipuri de servicii: orientate pe conexiune sau datagram, existente n cadrul nivelului
reea, se regsesc i la acest nivel. Serviciul orientat pe conexiune de la nivelul transport are multe
asemnri cu cel de la nivel reea. n ambele cazuri, conexiunile au trei faze: stabilirea conexiunii,
transferul de date i eliberarea conexiunii. Adresarea i controlul fluxului sunt i ele similare pentru
ambele niveluri. Mai mult, chiar i serviciul fr conexiune al nivelului transport este foarte asemntor cu cel al nivelului reea.
O ntrebare evident este atunci: dac serviciile la nivel transport sunt att de asemntoare cu
cele de la nivel reea, de ce este nevoie de dou niveluri distincte? De ce nu este suficient un singur
nivel? Rspunsul este unul subtil, dar extrem de important, i ne cere s ne ntoarcem la fig. 1-9. Codul pentru nivelul transport este executat n ntregime pe mainile utilizatorilor, dar nivelul reea
este executat n cea mai mare parte de mediul de transport (cel puin pentru reelele larg rspndite
geografic - WAN). Ce s-ar ntmpla dac nivelul reea ar oferi servicii neadecvate? Dar dac acesta
ar pierde frecvent pachete? Ce se ntmpl dac din cnd n cnd ruterul cade?
Ei bine, n toate aceste cazuri apar probleme. Deoarece utilizatorii nu pot controla nivelul reea,
ei nu pot rezolva problema unor servicii de proast calitate folosind rutere mai bune sau adugnd o
tratare a erorilor mai sofisticat la nivelul legtur de date. Singura posibilitate este de a pune deasupra nivelului reea un alt nivel care s amelioreze calitatea serviciilor. Dac pe o subreea orientat pe conexiune, o entitate de transport este informat la jumtatea transmisiei c a fost nchis
abrupt conexiunea sa la nivel reea, fr nici o indicaie despre ceea ce s-a ntmplat cu datele aflate
n acel moment n tranzit, ea poate iniia o alt conexiune la nivel reea cu entitatea de transport
aflat la distan. Folosind aceast nou conexiune, ea i poate ntreba corespondenta care date au
ajuns la destinaie i care nu, i poate continua comunicarea din locul de unde a fost ntrerupt.

SEC. 6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

433

n esen, existena nivelului transport face posibil ca serviciile de transport s fie mai sigure dect cele echivalente de la nivelul reea. Pachetele pierdute sau incorecte pot fi detectate i corectate
de ctre nivelul transport. Mai mult, primitivele serviciului de transport pot fi implementate ca apeluri ctre procedurile de bibliotec, astfel nct s fie independente de primitivele de la nivelul reea.
Apelurile nivelului reea pot s varieze considerabil de la o reea la alta (de exemplu, serviciile fr
conexiune ntr-o reea local pot fi foarte diferite de serviciile orientate pe conexiune dintr-o reea
larg rspndit geografic). Ascunznd serviciul reea n spatele unui set de primitive ale serviciului
transport, schimbarea serviciului reea necesit numai nlocuirea unui set de proceduri de bibliotec
cu un altul care face acelai lucru, cu un serviciu inferior diferit.
Mulumit nivelului transport, programatorii de aplicaii pot scrie cod conform unui set standard
de primitive, pentru a rula pe o mare varietate de reele, fr s i pun problema interfeelor de
subreea diferite sau transmisiilor nesigure. Dac toate reelele reale ar fi perfecte i toate ar avea
acelai set de primitive i ar fi garantate s nu se schimbe niciodat, atunci probabil c nivelul transport nu ar mai fi fost necesar. Totui, n lumea real el ndeplinete importanta funcie de a izola
nivelurile superioare de tehnologia, arhitectura i imperfeciunile subreelei.
Din aceast cauz, n general se poate face o distincie ntre nivelurile de la 1 la 4, pe de o parte,
i cel (cele) de deasupra, pe de alt parte. Primele pot fi vzute ca furnizoare de servicii de transport, iar ultimele ca utilizatoare de servicii de transport. Aceast distincie ntre utilizatori i furnizori are un impact considerabil n ceea ce privete proiectarea arhitecturii de niveluri i confer nivelului transport o poziie cheie, acesta fiind limita ntre furnizorul i utilizatorul serviciilor sigure de
transmisie de date.

6.1.2

Primitivele serviciilor de transport

Pentru a permite utilizatorului s acceseze serviciile de transport, nivelul transport trebuie s ofere unele operaii programelor aplicaie, adic o interfa a serviciului transport. Fiecare serviciu de
transport are interfaa sa. n acest capitol, vom examina mai nti un serviciu de transport simplu
(ipotetic) i interfaa sa pentru a vedea aspectele eseniale. n seciunea urmtoare vom analiza un
exemplu real.
Serviciul transport este similar cu cel reea, dar exist i cteva diferene importante. Principala
diferen este c serviciul reea a fost conceput pentru a modela serviciile oferite de reelele reale.
Acestea pot pierde pachete, deci serviciile la nivel reea sunt n general nesigure.
n schimb, serviciile de transport (orientate pe conexiune) sunt sigure. Desigur, n reelele reale
apar erori, dar este tocmai acesta este scopul nivelului transport: s furnizeze un serviciu sigur deasupra unui nivel reea nesigur.
Ca exemplu, s considerm dou procese conectate prin pipe-uri (tuburi) n UNIX. Acestea
presupun o conexiune perfect ntre ele. Ele nu vor s aib de-a face cu confirmri, pachete pierdute, congestii sau altele asemntoare. Ele au nevoie de o conexiune sigur n proporie de 100%.
Procesul A pune datele la un capt al tubului, iar procesul B le ia de la cellalt capt. Aceasta este
exact ceea ce face un serviciu transport orientat pe conexiune: ascunde imperfeciunile reelei, astfel
nct procesele utilizator pot s presupun existena unui flux de date fr erori.
n acelai timp nivelul transport furnizeaz i un serviciu nesigur. Totui, sunt puine de spus n
legtur cu acesta, aa c n acest capitol ne vom concentra atenia asupra serviciului orientat pe
conexiune. Cu toate acestea, exist unele aplicaii, cum sunt programele client-server i fluxurile
multimedia, care beneficiaz de transport fr conexiune, deci vom vorbi puin despre ele mai trziu.

434

NIVELUL TRANSPORT

CAP. 6

O a doua diferen ntre serviciul reea i cel de transport se refer la destinaiile lor. Serviciul reea este folosit doar de entitile de transport. Puini utilizatori scriu ei nii entitile de transport i,
astfel, puini utilizatori sau programe ajung s vad vreodat serviciile reea aa cum sunt ele. n
schimb, multe programe (i programatori) folosesc primitivele de transport. De aceea, serviciul
transport trebuie s fie uor de utilizat.
Ca s ne facem o idee despre cum poate arta un serviciu de transport, s considerm cele
cinci primitive prezentate n fig. 6-2. Aceast interfa este ntr-adevr simpl, dar prezint trsturile de baz ale oricrei interfee orientate pe conexiune a nivelului transport. Ea permite programelor de aplicaie s stabileasc, s utilizeze i s elibereze conexiuni, ceea ce este suficient
pentru multe aplicaii.
Primitiva
LISTEN
CONNECT
SEND
RECEIVE
DISCONNECT

Unitatea de date trimis


(nimic)
CONNECTION REQ.
DATE
(nimic)
DISCONNECTION REQ.

Explicaii
Se blocheaz pn cnd un proces ncearc s se conecteze
ncearc s stabileasc conexiunea
Transmite informaie
Se blocheaz pn cnd primete date trimise
Trimis de partea care vrea s se deconecteze

Fig. 6-2. Primitivele unui serviciu de transport simplu.

Pentru a vedea cum pot fi utilizate aceste primitive, s considerm o aplicaie cu un server i un
numr oarecare de clieni la distan. La nceput, serverul apeleaz primitiva LISTEN, n general
prin apelul unei funcii de bibliotec care face un apel sistem pentru a bloca serverul pn la apariia
unei cereri client. Atunci cnd un client vrea s comunice cu serverul, el va executa un apel
CONNECT. Entitatea de transport trateaz acest apel blocnd apelantul i trimind un pachet la
server. Acest pachet ncapsuleaz un mesaj ctre entitatea de transport de pe server.
Este momentul s facem cteva precizri n legtur cu terminologia. n lipsa unui termen mai
bun vom folosi acronimul TPDU (Transport Protocol Data Unit - unitate de date a protocolului de
transport) pentru toate mesajele schimbate ntre dou entiti de transport corespondente. Astfel,
TPDU-urile (schimbate la nivelul transport) sunt coninute n pachete (utilizate de nivelul reea). La
rndul lor, pachetele sunt coninute n cadre (utilizate la nivelul legtur de date). Atunci cnd este
primit un cadru, nivelul legtur de date prelucreaz antetul cadrului i d coninutul util nivelului
reea. Entitatea reea prelucreaz antetul pachetului i paseaz coninutul util entitii de transport.
Aceast ierarhie este ilustrat n fig. 6-3.

Fig. 6-3. Ierarhia de cadre, pachete i TPDU-uri.

SEC. 6.1

435

SERVICIILE OFERITE DE NIVELUL TRANSPORT

Revenind la exemplul nostru, apelul CONNECT al clientului genereaz un TPDU de tip CONNECTION REQUEST care i este trimis serverului. Atunci cnd acesta ajunge, entitatea de transport
verific dac serverul este blocat ntr-un apel LISTEN (deci dac ateapt o cerere de conexiune). n
acest caz, deblocheaz serverul i trimite napoi clientului un TPDU CONNECTION ACCEPTED.
Atunci cnd acest TPDU ajunge la destinaie, clientul este deblocat i conexiunea este stabilit.
Acum pot fi schimbate date folosindu-se primitivele SEND i RECEIVE. Cea mai simpl posibilitate este ca una din pri s fac un apel RECEIVE (blocant) ateptnd ca cealalt parte s execute un SEND. Atunci cnd sosete un TPDU, receptorul este deblocat. El poate prelucra TPDU-ul i
trimite o replic. Atta vreme ct amndou prile tiu cine este la rnd s trimit mesaje i cine
este la rnd s recepioneze, totul merge bine.
Trebuie s observm c la nivelul transport, chiar i un schimb de date simplu, unidirecional, este mult mai complicat dect la nivelul reea. Fiecare pachet de date trimis va fi (n cele din urm)
confirmat. Pachetele care conin TPDU-uri de control sunt de asemenea confirmate, implicit sau
explicit. Aceste confirmri sunt gestionate de entitile de transport folosind protocoalele de la nivelul reea i nu sunt vizibile utilizatorilor nivelului transport. Similar, entitile de transport trebuie s
se ocupe de ceasuri i de retransmisii. Nimic din tot acest mecanism nu este vizibil pentru utilizatorii
nivelului transport, pentru care o conexiune este un tub fr pierderi: un utilizator ndeas bii la un
capt i acetia apar, ca prin minune, la captul celalalt. Aceast capacitate de a ascunde complexitatea este motivul care face ierarhia de protocoale s fie un instrument att de puternic.
TPDU: Cerere
de conectare

NEFOLOSIT

STABILIRE DE
CONEXIUNE
PASIV

STABILIRE DE
CONEXIUNE
ACTIV

Execu ie:CONNECT

CONEXIUNE
STABILIT

TPDU:Cerere
de deconectare

TPDU: Conectare
acceptat

Execu ie:
DISCONNECT

DECONECTARE
PASIV

Execu ie:
DISCONNECT

Execu ie: CONNECT

DECONECTARE
ACTIV

NEFOLOSIT

TPDU: Cerere
de deconectare

Fig. 6-4. Diagrama de stri pentru o schem simpl de control al conexiunii.


Tranziiile etichetate cu italice sunt cauzate de sosirea unor pachete.
Liniile continue indic secvena de stri a clientului.
Liniile punctate indic secvena de stri a serverului.

436

NIVELUL TRANSPORT

CAP. 6

Atunci cnd o conexiune nu mai este necesar, ea trebuie eliberat pentru a putea elibera i spaiul alocat n tabelele corespunztoare din cele dou entiti de transport. Deconectrile se pot face
n dou variante: asimetric sau simetric. n varianta asimetric, oricare dintre utilizatori poate apela o primitiv DISCONNECT, ceea ce va avea ca rezultat trimiterea unui TPDU DISCONNECT
REQUEST entitii de transport aflate la distan. La sosirea acestuia conexiunea este eliberat.
n varianta simetric fiecare direcie este nchis separat, independent de cealalt. Atunci cnd
una din pri face un apel DISCONNECT, nsemnnd c nu mai sunt date de trimis, ea va putea
nc recepiona datele transmise de entitatea de transfer aflat la distan. n acest model conexiunea este eliberat dac ambele pri au apelat DISCONNECT.
O diagram de stri pentru stabilirea i eliberarea conexiunilor folosind aceste primitive simple
este prezentat n fig. 6-4. Fiecare tranziie este declanat de un eveniment: fie este executat o
primitiv de ctre utilizatorul local al nivelului transport, fie este primit un pachet. Pentru simplitate
vom presupune c fiecare TPDU este confirmat separat. Vom presupune de asemenea c este folosit un model de deconectare simetric, clientul iniiind aciunea. Trebuie reinut c acesta este un
model foarte simplu, n seciunile urmtoare vom analiza modele reale.

6.1.3

Socluri Berkeley

Vom trece n revist acum un alt set de primitive de transport: primitivele pentru socluri TCP folosite n sistemul de operare Berkeley-UNIX. Primitivele sunt enumerate n fig. 6-5. n general putem spune c acestea sunt similare modelului din capitolul precedent, dar ofer mai multe caracteristici i flexibilitate. Nu vom detalia TPDU-urile existente; aceast discuie mai are de ateptat pn
n momentul cnd vom studia TCP, mai trziu, n acest capitol.
Primitiva
SOCKET
BIND
LISTEN
ACCEPT
CONNECT
SEND
RECEIVE
CLOSE

Funcia
Creeaz un nou punct de capt al comunicaiei
Ataeaz o adres local la un soclu
Anun capacitatea de a accepta conexiuni; determin mrimea cozii
Blocheaz apelantul pn la sosirea unei cereri de conexiune
Tentativ (activ) de a stabili o conexiune
Trimite date prin conexiune
Recepioneaz date prin conexiune
Elibereaz conexiunea

Fig. 6-5. Primitivele pentru socluri TCP

Primele patru primitive din tabel sunt executate, n aceast ordine, de ctre server. Primitiva
SOCKET creeaz un nou capt al conexiunii i aloc spaiu pentru el n tabelele entitii de transport. n parametrii de apel se specific formatul de adres utilizat, tipul de serviciu dorit (de exemplu, flux sigur de octei) i protocolul. Un apel SOCKET reuit ntoarce un descriptor de fiier (la fel
ca un apel OPEN) care va fi utilizat n apelurile urmtoare.
Soclurile nou create nu au nc nici o adres. Ataarea unei adrese se face utiliznd primitiva
BIND. Odat ce un server a ataat o adres unui soclu, clienii se pot conecta la el. Motivul pentru care
apelul SOCKET nu creeaz adresa direct este c unor procese le pas de adresa lor (de exemplu, unele folosesc aceeai adres de ani de zile i oricine cunoate aceast adres), n timp ce altele nu.
Urmeaz apelul LISTEN, care aloc spaiu pentru a reine apelurile primite n cazul cnd mai
muli clieni ncearc s se conecteze n acelai timp. Spre deosebire de modelul din primul nostru
exemplu, aici LISTEN nu mai este un apel blocant.

SEC. 6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

437

Pentru a se bloca i a atepta un apel, serverul execut o primitiv ACCEPT. Atunci cnd sosete
un TPDU care cere o conexiune, entitatea de transport creeaz un nou soclu cu aceleai proprieti
ca cel iniial i ntoarce un descriptor de fiier pentru acesta. Serverul poate atunci s creeze un nou
proces sau fir de execuie care va gestiona conexiunea de pe noul soclu i s atepte n continuare
cereri de conexiune pe soclul iniial. ACCEPT returneaz un descriptor normal de fiier, care poate
fi folosit pentru citirea i scrierea n mod standard, la fel ca pentru fiiere.
S privim acum din punctul de vedere al clientului: i n acest caz, soclul trebuie creat folosind o
primitiv SOCKET, dar primitiva BIND nu mai este necesar, deoarece adresa folosit nu mai este
important pentru server. Primitiva CONNECT blocheaz apelantul i demareaz procesul de conectare. Cnd acesta s-a terminat (adic atunci cnd TPDU-ul corespunztor a fost primit de la server), procesul client este deblocat i conexiunea este stabilit. Att clientul ct i serverul pot utiliza
acum primitivele SEND i RECEIVE pentru a transmite sau recepiona date folosind o conexiune
duplex integral. Se pot folosi i apelurile de sistem READ i WRITE standard din UNIX, dac nu
sunt necesare opiunile speciale oferite de SEND i RECV.
Eliberarea conexiunii este simetric. Atunci cnd ambele pri au executat primitiva CLOSE,
conexiunea este eliberat.

6.1.4

Un exemplu de programare cu socluri: server de fiiere pentru Internet

Ca exemplu de cum pot fi folosite apelurile pentru socluri, vom considera codurile client i server
din fig. 6-6. Aici avem un server de Internet foarte primitiv mpreun cu un exemplu de client care l
utilizeaz. Codul are multe limitri (discutate mai jos), dar n principiu codul server poate fi compilat
i rulat pe orice sistem UNIX conectat la Internet. Codul client poate fi apoi compilat i rulat pe orie
alt main UNIX din Internet, oriunde n lume. Codul client poate fi executat cu parametrii adecvai pentru a obine orice fiier la care serverul are acces pe maina sa. Fiierul este scris la ieirea
standard, care, desigur, poate fi redirectat spre un fiier sau spre o conduct (pipe).
S ne uitm mai nti la codul server. Acesta ncepe incluznd nite header-e (antete) standard
ntre care ultimele 3 conin principalele definiii i structuri de date care se refer la Internet. Apoi
urmeaz o definire a SERVER_PORT (portului de server) ca 12345. Acest numr a fost ales arbitrar.
Orice numr ntre 1024 i 65535 va funciona la fel de bine atta timp ct nu este utilizat de alte procese. Bineneles, clientul i serverul trebuie sa foloseasc acelai port. Dac serverul va deveni vreodat un succes de talie mondial (improbabil, tiind ct de primitiv este) i va fi asignat un port permanent sub 1024 i va aprea la www.iana.org.
Urmtoarele dou linii n codul server definesc dou constante necesare. Prima determin dimensiunea zonei de memorie folosite pentru transferul de fiiere. A doua determin ct de multe
conexiuni n ateptare pot fi reinute nainte ca cele care urmeaz s fie nlturate dup sosire.
Dup declaraiile variabilelor locale ncepe codul server. Acesta pornete cu iniializarea unei
structuri de date care va ine adresa IP a serverului. Aceast structur de date va fi n curnd asociat cu soclul serverului. Apelul ctre memset seteaz structura de date la 0. Cele trei atribuiri care i
urmeaz completeaz trei din cmpurile sale. Ultima dintre ele conine portul serverului. Funciile
htonl i htons se refer la conversia valorilor ntr-un format standard astfel nct codul s ruleze corect att pe maini big-endian (de exemplu SPARC) ct i maini little-endian (de exemplu
Pentium). Semantica lor exact nu este relevant aici.

438

NIVELUL TRANSPORT

CAP. 6

/* Aceast pagin conine un program client care poate cere un fiier de la programul server
de pe pagina urmtoare. Serverul rspunde trimind ntregul fiier.
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 12345
#define BUF_SIZE 4096

/* arbitrar, dar clientul i serverul trebuie s fie de acord */


/* dimensiunea blocului de transfer */

int main(int argc, char **argv)


{
int c, s, bytes;
char buf[BUF_SIZE];
/* zona tampon de memorie pentru fiierul ce este recepionat */
struct hostent *h;
/* informaii despre server */

struct sockaddr_in channel;

/* pstreaz adresa IP */

if (argc != 3) fatal("Usage: client server-name file-name");


h = gethostbyname(argv[1]);
if (!h) fatal("gethostbyname failed");

/* caut adresa IP a gazdei */

s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);


if (s < 0) fatal("socket");
memset(&channel, 0, sizeof(channel));
channel.sin_family= AF_INET;
memcpy(&channel.sin_addr.s_addr, h->h_addr, h->h_length);
channel.sin_port= htons(SERVER_PORT);
c = connect(s, (struct sockaddr *) &channel, sizeof(channel));
if (c < 0) fatal("connect failed");
/* Conexiunea este acum stabilit. Trimite numele fiierului incluznd terminatorul de ir */
write(s, argv[2], strlen(argv[2])+1);
/* Ia fiierul i-l afieaz la ieirea standard. */
while (1) {
bytes = read(s, buf, BUF_SIZE);
if (bytes <= 0) exit(0);
write(1, buf, bytes);

/* citete de la soclu */
/* verific dac este sfrit de fiier*/
/* scrie la ieirea standard */

}
}
fatal(char *string)
{
printf("%s\n", string);
exit(1);
}

Fig. 6-6. Codul client folosind socluri. Codul server este pe pagina urmtoare.

SEC. 6.1

439

SERVICIILE OFERITE DE NIVELUL TRANSPORT

#include <sys/types.h>
#include <sys/fcntl.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 12345
#define BUF_SIZE 4096
#define QUEUE_SIZE 10

/* arbitrar, dar clientul i serverul trebuie s fie de acord */


/* dimensiunea blocului de transfer */

int main(int argc, char *argv[])


{
int s, b, l, fd, sa, bytes, on = 1;
char buf[BUF_SIZE];
/* zona tampon de memorie pentru fiierul care este transmis */
struct sockaddr_in channel;
/* pstreaz adresa IP */
/* Construiete structura adresei pentru a se lega la soclu. */
memset(&channel, 0, sizeof(channel));
channel.sin_family = AF_INET;
channel.sin_addr.s_addr = htonl(INADDR_ANY);
channel.sin_port = htons(SERVER_PORT);

/* canalul zero */

/* Deschidere pasiv. Ateapt conexiunea. */


s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s < 0) fatal("socket failed");
setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *) &on, sizeof(on));

/* creeaz soclu */

b = bind(s, (struct sockaddr *) &channel, sizeof(channel));


if (b < 0) fatal("bind failed");
l = listen(s, QUEUE_SIZE);
if (l < 0) fatal("listen failed");

/* specific dimensiunea cozii */

/* Soclul este acum setat i legat. Ateapt conexiunea i o proceseaz. */


while (1) {
sa = accept(s, 0, 0);
/* blocare pentru cererea de conexiune */
if (sa < 0) fatal("accept failed");
read(sa, buf, BUF_SIZE);
/* Preia i returneaz fiierul. */
fd = open(buf, O_RDONLY);
if (fd < 0) fatal("open failed");

}
}

/* citete numele fiierului de la soclu */


/* deschide fiierul de trimis napoi */

while (1) {
bytes = read(fd, buf, BUF_SIZE); /* citete din fiier */
if (bytes <= 0) break;
/* verific dac este sfrit de fiier */
write(sa, buf, bytes);
/* scrie octei la soclu */
}
close(fd);
* nchide fiierul */
close(sa);
/* nchide conexiunea*/

Fig. 6-6. Codul server. Codul client este pe pagina anterioar.

440

NIVELUL TRANSPORT

CAP. 6

n continuare serverul creeaz un soclu i face verificare pentru erori (indicate de s<0). ntr-o
versiune de producie a codului mesajul de eroare ar putea fi mai explicit. Apelul ctre setsockopt
este necesar pentru a permite portului s fie folosit de serverul care ruleaz la nesfrit, rspunznd
la cerere dup cerere. Acum, adresa IP este legat la soclu i este fcut o verificare pentru a vedea
dac apelul ctre bind a reuit. Ultimul pas n iniializare este apelul ctre listen pentru a anuna
acordul serverului de a accepta apeluri i pentru a spune sistemului s menin un numr de pn la
QUEUE_SIZE din acestea n caz c ajung noi cereri n timp ce serverul o proceseaz nc pe cea
curent. Dac coada este plin i ajung cereri suplimentare, se renun la acestea.
n acest punct, serverul intr n bucla sa principal, pe care nu o mai prsete niciodat. Singura
cale de a-l opri este de a-l termina forat din afar. Apelul la accept blocheaz serverul pn cnd un
client ncearc s stabileasc o conexiune cu el. Dac apelul accept e fcut cu succes, returneaz un
descriptor de fiier care poate fi folosit pentru citire i scriere, n mod asemntor descriptorilor ce
sunt folosii pentru a citi i a scrie n pipe-uri (tuburi). Cu toate acestea, spre deosebire de tuburi,
care sunt unidirecionale, soclurile sunt bidirecionale, astfel c sa (socket address adresa soclului)
poate fi folosit i pentru citire din conexiune, i pentru a scrie pe ea.
Dup ce conexiunea este stabilit, serverul citete numele fiierului din ea. Dac numele nu este
nc disponibil, serverul se blocheaz ateptndu-l. Dup ce ia numele fiierului, serverul deschide
fiierul i intr ntr-o bucl care citete alternativ blocuri din fiier i le scrie pe soclu pn cnd ntregul fiier a fost copiat. Apoi serverul nchide iar fiierul i conexiunea i ateapt s apar urmtoarea conexiune. El repet aceast bucl la infinit.
Acum s privim codul client. Pentru a nelege cum funcioneaz, este necesar s nelegem cum
este invocat. Presupunnd c este numit client, un apel tipic este
client flits.cs.vu.nl /usr/tom/filename >f
Acest apel funcioneaz doar dac serverul ruleaz deja la flits.cs.vu.nl i fiierul /usr/tom/filemane
exist i serverul are drept de citire pentru el. Dac apelul are succes, fiierul este transferat prin Internet i scris n f , dup care programul client se termin. Din moment ce serverul continu dup un
transfer, clientul poate fi pornit din nou pentru a lua alte fiiere.
Codul client ncepe cu cteva directive include i declaraii. Execuia ncepe verificnd dac a fost
apelat cu numr corect de argumente (argc=3 nseamn numele programului plus dou argumente). Observai c argv[1]conine numele serverului (de exemplu flits.cs.vu.nl) i este convertit la o
adres IP ctre gethostbyname. Aceast funcie folosete DNS pentru a cuta numele. Vom studia
DNS n cap. 7.
n continuare este creat i iniializat un soclu. Apoi, clientul ncearc s stabileasc o conexiune
TCP cu serverul, folosind connect. Dac serverul funcioneaz pe maina menionat i ataat la
SERVER_PORT i este fie inactiv, fie are loc n coada sa listen, conexiunea va fi (n cele din urm)
stabilit. Folosind conexiunea, clientul trimite numele fiierului scriind pe soclu. Numrul de octei
trimii este cu 1 mai mare dect numele, deoarece terminatorul de ir (un octet 0) trebuie de asemenea trimis pentru a spune serverului unde se sfrete numele.
Acum clientul intr ntr-o bucl, citind fiierul bloc cu bloc de la soclu i copiindu-l la ieirea
standard. Cnd acestea se termin, pur i simplu iese.
Procedura fatal afieaz un mesaj de eroare i iese. Serverul are nevoie de aceeai procedur,
dar aceasta a fost omis datorit lipsei de spaiu pe pagina. Din moment ce clientul i serverul sunt
compilate separat i n mod normal ruleaz pe calculatoare diferite, ele nu pot partaja codul procedurii fatal.

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

441

Aceste dou programe (la fel ca i orice material referitor la aceast carte) pot fi luate de la adresa de Web a crii
http://www.prenhall.com/tanenbaum
dnd clic pe link-ul ctre situl Web de lng fotografia coperii. Ele pot fi descrcate i compilate pe
orice sisteme UNIX (de exemplu Solaris, BSD, Linux) cu comenzile:
cc o client client.c lsocket lnsl
cc o server sever.c lsocket lnsl
Serverul este pornit tastnd doar
server
Clientul are nevoie de dou argumente, aa cum s-a discutat mai sus. O versiune de Windows este
de asemenea disponibil pe situl Web.
Ca o observaie, acest server nu este ultimul cuvnt n domeniul programelor server. Verificarea
erorilor este ineficient i raportarea erorilor este mediocr. n mod clar serverul nu a auzit niciodat de securitate, i folosirea doar a apelurilor de sistem UNIX nu este ultimul cuvnt n independena de platform. De asemenea face unele presupuneri care sunt tehnic ilegale, cum ar fi presupunerea c numele fiierului ncape n zona de memorie tampon i este transmis automat. Din moment
ce trateaz toate cererile strict secvenial (deoarece are doar un singur fir de execuie) performana
este slab. n ciuda acestor neajunsuri, este un server de fiiere Internet complet i funcional. n
exerciii, cititorul este invitat s le mbunteasc. Pentru mai multe informaii despre programare
cu socluri, a se vedea (Stevens, 1997).

SEC. 6.4

PROTOCOALE DE TRANSPORT PRIN INTERNET: UDP

471

Cel mai important dezavantaj este c aceast abordare poate s fie mai dificil de neles dect
metoda direct pe care am utilizat-o la nceput. Totui, aceast problem poate fi rezolvat, fie i
parial, desennd automatul finit ca un graf, aa cum am fcut-o n fig. 6-22.

6.4 PROTOCOALE DE TRANSPORT PRIN INTERNET: UDP


Internet-ul are dou protocoale principale n nivelul de transport: unul neorientat pe conexiune
i unul orientat pe conexiune. n urmtoarele seciuni o s le studiem pe ambele. Protocolul neorientat pe conexiune se numete UDP. Protocolul orientat pe conexiune se numete TCP. O s ncepem
cu UDP-ul deoarece n esen este la fel ca IP-ul cu un mic antet adugat. De asemeni, o s studiem
i dou aplicaii ale UDP-ului.

6.4.1

Introducere n UDP

Setul de protocoale Internet suport un protocol de transport fr conexiune, UDP (User Protocol Protocol cu Datagrame Utilizator). UDP ofer aplicaiilor o modalitate de a trimite datagrame
IP ncapsulate i de a le transmite fr a fi nevoie s stabileasc o conexiune. UDP este descris n
RFC 768.
UDP transmite segmente constnd ntr-un antet de 8 octei urmat de informaia util . Antetul
este prezentat n fig. 6-23. Cele dou porturi servesc la identificarea punctelor terminale ale mainilor surs i destinaie. Cnd ajunge un pachet UDP, coninutul su este predat procesului ataat portului destinaie. Aceast ataare are loc atunci cnd se folosete o simpl procedur de nume sau
ceva asemntor, aa cum am vzut n fig. 6-6 pentru TCP (procesul de legtur este acelai pentru
UDP). De fapt, valoarea cea mai important dat de existena UDP-ului fa de folosirea doar a IPului simplu, este aceea a adugrii porturilor surs i destinaie. Fr cmpurile portului, nivelul de
transport nu ar ti ce s fac cu pachetul. Cu ajutorul lor, segmentele se livreaz corect.

Fig. 6-23. Antetul UDP.

Portul surs este n primul rnd necesar atunci cnd un rspuns trebuie transmis napoi la surs.
Prin copierea cmpului port surs din segmentul care sosete n cmpul port destinaie al segmentului care pleac, procesul ce trimite rspunsul specific ce proces de pe maina de trimitere urmeaz
s-l primeasc.
Cmpul lungime UDP include antetul de 8 octei i datele. Cmpul sum de control UDP este opional i stocat ca 0 (zero) dac nu este calculat (o valoare de adevr 0 rezultat n urma calculelor

472

NIVELUL TRANSPORT

CAP. 6

este memorat ca un ir de bii 1). Dezactivarea acestuia este o prostie, excepie fcnd cazul n care
calitatea informaiei chiar nu conteaz (de exemplu, transmisia vocal digitalizat).
Merit probabil menionate, n mod explicit, unele dintre lucrurile pe care UDP-ul nu le face. Nu
realizeaz controlul fluxului, controlul erorii, sau retransmiterea unui segment incorect primit. Toate
acestea depind de procesele utilizatorului. Ceea ce face este s ofere protocolului IP o interfa cu
faciliti adugate de demultiplexare a mai multor procese, folosind porturi. Aceasta este tot ceea ce
face UDP-ul. Pentru aplicaiile care trebuie s aib un control precis asupra fluxului de pachete,
controlului erorii sau cronometrarea, UDP-ul furnizeaz doar ceea ce a ordonat doctorul.
Un domeniu unde UDP-ul este n mod special util este acela al situaiilor client-server. Deseori,
clientul trimite o cerin scurt server-ului i ateapt napoi un rspuns scurt. Dac se pierde ori
cererea ori rspunsul, clientul poate pur i simplu s ncerce din nou dup ce a expirat timpul. Nu
numai c va fi mai simplu codul, dar sunt necesare i mai puine mesaje (cte unul n fiecare direcie) dect la un protocol care solicit o iniializare iniial.
O aplicaie care folosete UDP-ul n acest fel este DNS (Domain Name System, rom: Sistem de
rezolvare de nume), pe care l vom studia n cap. 7. Pe scurt, un program care trebuie s caute adresele de IP ale unor nume gazd, de exemplu www.cs.berkley.edu , poate trimite un pachet UDP, coninnd numele gazd, ctre un server DNS. Serverul rspunde cu un pachet UDP coninnd adresa
de IP a gazdei. Nu este necesar nici o iniializare n avans i nici o nchidere de sesiune. Doar dou
mesaje traverseaz reeaua.

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

477

RTP are un protocol nrudit numit RTCP (Real Time Transport Control Protocol, rom: Protocol
de control al transportului n timp real). Acesta se ocup de rspuns, sincronizare i de interfaa cu
utilizatorul, dar nu transport date. Prima funcie poate fi folosit pentru a oferi surselor reacie (eng.:
feedback) la ntrzieri, bruiaj, lime de band, congestie i alte proprieti ale reelei. Aceast informaie poate fi folosit de ctre procesul de codare pentru a crete rata de transfer a datelor (i s ofere o calitate mai bun) cnd reeaua merge bine i s reduc rata de transfer cnd apar probleme pe
reea. Prin furnizarea continu de rspunsuri, algoritmii de codare pot fi n continuu adaptai pentru a
oferi cea mai bun calitate posibil n circumstanele curente. De exemplu, dac limea de band
crete sau scade n timpul transmisiei, codarea poate s se schimbe de la MP3 la PCM pe 8 bii la codare delta, aa cum se cere. Cmpul Tip informaie util este folosit pentru a spune destinaiei ce algoritm de codare este folosit pentru pachetul curent, fcnd posibil schimbarea acestuia la cerere.
De asemenea, RTCP-ul se ocup de sincronizarea ntre fluxuri. Problema este c fluxuri diferite
pot folosi ceasuri diferite, cu granulariti diferite i devieri de flux diferite. RTCP poate fi folosit
pentru a le menine sincronizate.
n sfrit, RTCP ofer un mod pentru a numi diversele surse (de exemplu n text ASCII). Aceast informaie poate fi afiat pe ecranul receptorului pentru a indica cine vorbete n acel moment.
Mai multe informaii despre RTP pot fi gsite n (Perkins, 2002).

6.5. PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP


UDP-ul este un protocol simplu i are anumite nie de utilizare, cum ar fi interaciunile client-server i cele multimedia, dar pentru cele mai multe aplicaii de Internet este necesar un transport de ncredere, secvenial al informaiei. UDP-ul nu poate oferi acest lucru, deci este nevoie de un alt protocol. Acesta este TCP i este pionul principal de lucru al Internet-ului. S-l studiem acum n amnunt.

6.5.1

Introducere n TCP

TCP (Transport Communication Protocol - protocol de comunicaie de nivel transport) a fost


proiectat explicit pentru a asigura un flux sigur de octei de la un capt la cellalt al conexiunii ntr-o
inter-reea nesigur. O inter-reea difer de o reea propriu-zis prin faptul c diferite pri ale sale
pot diferi substanial n topologie, lrgime de band, ntrzieri, dimensiunea pachetelor i ali parametri. TCP a fost proiectat s se adapteze n mod dinamic la proprietile inter-reelei i s fie robust
n ceea ce privete mai multe tipuri de defecte.
TCP a fost definit n mod oficial n RFC 793. O dat cu trecerea timpului, au fost detectate diverse
erori i inconsistene i au fost modificate cerinele n anumite subdomenii. Aceste clarificri, precum
i corectarea ctorva erori sunt detaliate n RFC 1122. Extensiile sunt furnizate n RFC 1323.
Fiecare main care suport TCP dispune de o entitate de transport TCP, fie ca proces utilizator,
fie ca procedur de bibliotec, fie ca parte a nucleului. n toate aceste cazuri, ea care gestioneaz
fluxurile TCP i interfeele ctre nivelul IP. O entitate TCP accept fluxuri de date utilizator de la
procesele locale, le mparte n fragmente care nu depesc 64K octei (de regul n fragmente de
aproximativ 1460 de octei, pentru a ncpea ntr-un singur cadru Ethernet mpreun cu antetele

478

NIVELUL TRANSPORT

CAP. 6

TCP i IP) i expediaz fiecare fragment ca o datagram IP separat. Atunci cnd datagramele IP
coninnd informaie TCP sosesc la o main, ele sunt furnizate entitii TCP, care reconstruiete
fluxul original de octei. Pentru simplificare, vom folosi cteodat doar TCP , subnelegnd prin
aceasta sau entitatea TCP de transport (o poriune de program) sau protocolul TCP (un set de reguli). Din context va fi clar care din cele dou noiuni este referit. De exemplu, n Utilizatorul furnizeaz date TCP-ului este clar referirea la entitatea TCP de transport.
Nivelul IP nu ofer nici o garanie c datagramele vor fi livrate corect, astfel c este sarcina TCPului s detecteze eroarea i s efectueze o retransmisie atunci cnd situaia o impune. Datagramele
care ajung (totui) la destinaie pot sosi ntr-o ordine eronat; este, de asemenea, sarcina TCP-ului
s le reasambleze n mesaje respectnd ordinea corect (de secven). Pe scurt, TCP-ul trebuie s
ofere fiabilitatea pe care cei mai muli utilizatori o doresc i pe care IP-ul nu o ofer.

6.5.2

Modelul serviciului TCP

Serviciul TCP este obinut prin crearea att de ctre emitor, ct i de ctre receptor, a unor
puncte finale, numite socluri (sockets), aa cum s-a discutat n Sec. 6.1.3. Fiecare soclu are un numr
de soclu (adres) format din adresa IP a mainii gazd i un numr de 16 bii, local gazdei respective,
numit port. Port este numele TCP pentru un TSAP. Pentru a obine o conexiune TCP, trebuie stabilit explicit o conexiune ntre un soclu de pe maina emitoare i un soclu de pe maina receptoare.
Apelurile de soclu sunt prezentate n fig. 6-5.
Un soclu poate fi folosit la un moment dat pentru mai multe conexiuni. Altfel spus, dou sau mai
multe conexiuni se pot termina la acelai soclu. Conexiunile sunt identificate prin identificatorii soclurilor de la ambele capete, adic (soclu 1, soclu 2). Nu este folosit nici un alt numr sau identificator de circuit virtual.
Numerele de port mai mici dect 256 se numesc porturi general cunoscute i sunt rezervate serviciilor standard. De exemplu, orice proces care dorete s stabileasc o conexiune cu o main gazd pentru a transfera un fiier utiliznd FTP, se poate conecta la portul 21 al mainii destinaie pentru a contacta demonul su FTP. Similar, portul 23 este folosit pentru a stabili o sesiune de lucru la
distan utiliznd TELNET. Lista porturilor general cunoscute se gsete la www.iana.org. Cteva
dintre cele foarte cunoscute sunt prezentate n fig. 6-27.
Port
21
23
25
69
79
80
110
119

Protocol
FTP
Telnet
SMTP
TFTP
Finger
HTTP
POP-3
NNTP

Utilitate
Transfer de fiiere
Login la distan
E-mail
Protocol de transfer de fiiere trivial
Cutare de informaii despre un utilizator
World Wide Web
Acces prin e-mail la distan
tiri USENET

Fig. 6-27. Cteva porturi asignate.

Cu siguran ar fi posibil ca, n momentul ncrcrii, demonul de FTP s se autoataeze la portul


21, demonul telnet la portul 23 i tot aa. Totui, dac s-ar proceda astfel s-ar umple memoria cu
demoni inactivi n majoritatea timpului. n schimb, n general se folosete un singur demon, numit
inetd (Internet daemon, rom: demon de Internet) n UNIX, care s se autoataeze la mai multe porturi i s atepte prima conexiune care vine. Cnd acest lucru se ntmpl, inetd creeaz un nou pro-

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

479

ces i execut n el demonul adecvat, lsnd acel demon s se ocupe de cerere. Astfel, demonii, n
afar de inetd, sunt activi doar cnd au de lucru. Inetd afl ce porturi s foloseasc dintr-un fiier de
configurare. n consecin, administratorul de sistem poate seta sistemul s aib demoni permaneni
pe cele mai ocupate porturi (de exemplu portul 80) i inetd pe restul.
Toate conexiunile TCP sunt duplex integral i punct-la-punct. Duplex integral nseamn c traficul se poate desfura n ambele sensuri n acelai timp. Punct-la-punct indic faptul c fiecare conexiune are exact dou puncte finale. TCP nu suport difuzarea parial sau total.
O conexiune TCP este un flux de octei i nu un flux de mesaje. Dimensiunile mesajelor nu se
conserv de la un capt la cellalt. De exemplu, dac procesul emitor execut patru scrieri de cte
512 octei pe un canal TCP, aceste date pot fi livrate procesului receptor ca patru fragmente
(chunks) de 512 octei, dou fragmente de 1024 octei, un singur fragment de 2048 octei (vezi fig. 628) sau n orice alt mod. Nu exist posibilitatea ca receptorul s determine numrul de uniti n care
a fost scris informaia.

Fig. 6-28. (a) Patru segmente de 512 octei au fost trimise ca datagrame IP separate.
(b) Livrarea celor 2048 octei ctre aplicaie, printr-un singur apel read.

n UNIX, aceeai proprietate o au i fiierele. Cititorul unui fiier nu poate spune dac fiierul a
fost scris bloc cu bloc, octet cu octet sau tot dintr-o dat. Ca i un fiier UNIX, programele TCP nu au
nici cea mai vag idee despre semnificaia octeilor i nici cel mai mic interes pentru a afla acest lucru. Un octet este pur i simplu un octet.
Atunci cnd o aplicaie trimite date ctre TCP, TCP-ul le poate expedia imediat sau le poate reine ntr-un tampon (n scopul colectrii unei cantiti mai mari de informaie pe care s o expedieze
toat odat), dup bunul su plac. Cu toate acestea, cteodat, aplicaia dorete ca informaia s fie
expediat imediat. De exemplu, s presupunem c un utilizator este conectat la o main de la distan. Dup ce a fost terminat o linie de comand i s-a tastat Return, este esenial ca linia s fie
imediat expediat ctre maina de la distan i s nu fie memorat pn la terminarea urmtoarei
linii. Pentru a fora expedierea, aplicaia poate folosi indicatorul PUSH, care i semnaleaz TCP-ului
s nu ntrzie procesul de transmisie.
Unele din primele aplicaii foloseau indicatorul PUSH ca un fel de marcaj pentru a delimita marginile mesajelor. Dei acest truc funcioneaz cteodat, uneori el eueaz datorit faptului c, la
recepie, nu toate implementrile TCP-ului transmit aplicaiei indicatorul PUSH. Mai mult dect att,
dac mai multe indicatoare PUSH apar nainte ca primul s fi fost transmis (de exemplu, pentru c
linia de legtur este ocupat), TCP-ul este liber s colecteze toat informaia referit de ctre aceste
indicatoare ntr-o singur datagram IP, fr s includ nici un separator ntre diferitele sale pri.
O ultim caracteristic a serviciului TCP care merit menionat aici const n informaia urgent. Atunci cnd un utilizator apas tasta DEL sau CTRL-C pentru a ntrerupe o prelucrare la distan, aflat deja n execuie, aplicaia emitor plaseaz o informaie de control n fluxul de date i o
furnizeaz TCP-ului mpreun cu indicatorul URGENT. Acest eveniment impune TCP-ului ntreruperea acumulrii de informaie i transmisia imediat a ntregii informaii disponibile deja pentru
conexiunea respectiv.

480

NIVELUL TRANSPORT

CAP. 6

Atunci cnd informaia urgent este recepionat la destinaie, aplicaia receptoare este ntrerupt
(de ex. prin emisia unui semnal, n terminologie UNIX), astfel nct, eliberat de orice alt activitate,
aplicaia s poat citi fluxul de date i s poat regsi informaia urgent. Sfritul informaiei urgente
este marcat, astfel nct aplicaia s tie cnd se termin informaia. nceputul informaiei urgente nu
este marcat. Este sarcina aplicaiei s determine acest nceput. Aceast schem furnizeaz de fapt un
rudiment de mecanism de semnalizare, orice alte detalii fiind lsate la latitudinea aplicaiei.

6.5.3

Protocolul TCP

n aceast seciune vom prezenta un punct de vedere general asupra protocolului TCP, pentru a
ne concentra apoi, n seciunea care i urmeaz, asupra antetului protocolului, cmp cu cmp.
O caracteristic important a TCP, care domin structura protocolului, este aceea c fiecare octet
al unei conexiuni TCP are propriul su numr de secven, reprezentat pe 32 bii. Cnd a luat fiin
Internetul, liniile dintre rutere erau n cel mai bun caz linii nchiriate de 56 Kbps, deci unei gazde
funcionnd la vitez maxim i lua mai mult de o sptmn s utilizeze toate numerele de secven.
La vitezele reelelor moderne, numerele de secven pot fi consumate intr-un ritm alarmant, dup
cum vom vedea mai trziu. Numerele de secven sunt utilizate att pentru confirmri ct i pentru
mecanismul de secveniere, acesta din urm utiliznd cmpuri separate de 32 de bii din antet.
Entitile TCP de transmisie i de recepie interschimb informaie sub form de segmente. Un
segment TCP const dintr-un antet de exact 20 de octei (plus o parte opional) urmat de zero sau
mai muli octei de date. Programul TCP este cel care decide ct de mari trebuie s fie aceste segmente. El poate acumula informaie provenit din mai multe scrieri ntr-un singur segment sau poate fragmenta informaia provenind dintr-o singur scriere n mai multe segmente. Exist dou limite
care restricioneaz dimensiunea unui segment. n primul rnd, fiecare segment, inclusiv antetul
TCP, trebuie s ncap n cei 65.535 de octei de informaie util IP. n al doilea rnd, fiecare reea
are o unitate maxim de transfer sau MTU (Maximum Transfer Unit), deci fiecare segment
trebuie s ncap n acest MTU. n realitate, MTU este n general de 1500 octei (dimensiunea informaiei utile din Ethernet), definind astfel o limit superioar a dimensiunii unui segment.
Protocolul de baz utilizat de ctre entitile TCP este protocolul cu fereastr glisant. Atunci
cnd un emitor transmite un segment, el pornete un cronometru. Atunci cnd un segment ajunge
la destinaie, entitatea TCP receptoare trimite napoi un segment (cu informaie util, dac aceasta
exist sau fr, n caz contrar) care conine totodat i numrul de secven urmtor pe care aceasta
se ateapt s-l recepioneze. Dac cronometrul emitorului depete o anumit valoare naintea
primirii confirmrii, emitorul retransmite segmentul neconfirmat.
Dei acest protocol pare simplu, pot aprea multe situaii particulare pe care le vom prezenta mai
jos. Segmentele pot ajunge ntr-o ordine arbitrar, deci octeii 3072-4095 pot fi recepionai, dar nu pot
fi confirmai datorit absenei octeilor 2048-3071. Segmentele pot de asemenea ntrzia pe drum un
interval de timp suficient de mare pentru ca emitorul s detecteze o depire a cronometrului i s le
retransmit. Retransmisiile pot include poriuni de mesaj fragmentate altfel dect n transmisia iniial,
ceea ce impune o tratare atent, astfel nct s se in evidena octeilor primii corect. Totui, deoarece
fiecare octet din flux are un deplasament unic fa de nceputul mesajului, acest lucru se poate realiza.
TCP trebuie s fie pregtit s fac fa unor astfel de situaii i s le rezolve ntr-o manier eficient. Un efort considerabil a fost dedicat optimizrii performanelor fluxurilor TCP, inndu-se cont
inclusiv de probleme legate de reea. n continuare vor fi prezentai un numr de algoritmi utilizai
de numeroase implementri TCP.

SEC. 6.5.

6.5.4

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

481

Antetul segmentului TCP

n fig. 6-29 este prezentat structura unui segment TCP. Fiecare segment ncepe cu un antet
format dintr-o structur fix de 20 de octei. Antetul fix poate fi urmat de un set de opiuni asociate
antetului. n continuarea opiunilor, dac ele exist, pot urma pn la 65.535 - 20 - 20 = 65.495 de
octei de date, unde primul 20 reprezint antetul IP, iar al doilea antetul TCP. Segmente care nu
conin octei de date sunt nu numai permise, dar i utilizate n mod frecvent pentru confirmri i
mesaje de control.

Fig. 6-29. Antetul TCP.

S disecm acum structura antetului TCP, cmp cu cmp. Cmpurile Port surs i Port destinaie identific punctele finale ale conexiunii. Porturile general cunoscute sunt definite la www.iana.org,
dar fiecare gazd le poate aloca pe celelalte dup cum dorete. Un port formeaz mpreun cu adresa IP a mainii sale un unic punct de capt (eng.: end point) de 48 de bii. Conexiunea este identificat de punctele de capt ale sursei i destinaiei.
Cmpurile Numr de secven i Numr de confirmare au semnificaia funciilor lor uzuale. Trebuie observat c cel din urm indic octetul urmtor ateptat i nu ultimul octet recepionat n mod
corect. Ambele cmpuri au lungimea de 32 de bii, deoarece ntr-un flux TCP fiecare bit de informaie este numerotat.
Lungimea antetului TCP indic numrul de cuvinte de 32 de bii care sunt coninute n antetul
TCP. Aceast informaie este util, deoarece cmpul Opiuni este de lungime variabil, proprietate
pe care o transmite astfel i antetului. Tehnic vorbind, acest cmp indic n realitate nceputul datelor din segment, msurat n cuvinte de 32 de bii, dar cum acest numr este identic cu lungimea antetului n cuvinte, efectul este acelai.
Urmeaz un cmp de ase bii care este neutilizat. Faptul c acest cmp a supravieuit intact mai
mult de un sfert de secol este o mrturie despre ct de bine a fost proiectat TCP-ul. Protocoale mai
prost concepute ar fi avut nevoie de el pentru a corecta erori ale proiectrii iniiale.
Urmeaz acum ase indicatori de cte un bit. URG este poziionat pe 1 dac Indicatorul Urgent
este valid. Indicatorul Urgent este folosit pentru a indica deplasamentul n octei fa de numrul curent de secven la care se gsete informaia urgent. O astfel de facilitate ine locul mesajelor de

482

NIVELUL TRANSPORT

CAP. 6

ntrerupere. Aa cum am menionat deja anterior, aceast facilitate reprezint esena modului n care
emitorul poate transmite un semnal receptorului fr ca TCP-ul n sine s fie cauza ntreruperii.
Bitul ACK este poziionat pe 1 pentru a indica faptul c Numrul de confirmare este valid. n cazul n care ACK este poziionat pe 0, segmentul n discuie nu conine o confirmare i cmpul Numr
de confirmare este ignorat.
Bitul PSH indic informaia FORAT. Receptorul este rugat respectuos s livreze aplicaiei
informaia respectiv imediat ce este recepionat i s nu o memoreze n ateptarea umplerii tampoanelor de comunicaie (lucru care, altminteri, ar fi fcut din raiuni de eficien).
Bitul RST este folosit pentru a desfiina o conexiune care a devenit inutilizabil datorit defeciunii unei maini sau oricrui alt motiv. El este de asemenea utilizat pentru a refuza un segment invalid sau o ncercare de deschidere a unei conexiuni. n general, recepionarea unui segment avnd
acest bit poziionat indic o problem care trebuie tratat n funcie de context.
Bitul SYN este utilizat pentru stabilirea unei conexiuni. Cererea de conexiune conine SYN = 1
i ACK = 0 pentru a indica faptul c acel cmp suplimentar de confirmare nu este utilizat. Rspunsul la o astfel de cerere conine o confirmare, avnd deci SYN = 1 i ACK = 1. n esen, bitul SYN
este utilizat pentru a indica o CERERE DE CONEXIUNE i o CONEXIUNE ACCEPTAT, bitul ACK
fcnd distincia ntre cele dou posibiliti.
Bitul FIN este folosit pentru a ncheia o conexiune. El indic faptul c emitorul nu mai are nici
o informaie de transmis. Cu toate acestea, dup nchiderea conexiunii, un proces poate recepiona
n continuare date pe o durat nedefinit. Ambele segmente, SYN i FIN, conin numere de secven
i astfel este garantat faptul c ele vor fi prelucrate n ordinea corect.
n TCP, fluxul de control este tratat prin ferestre glisante de dimensiune variabil. Cmpul Fereastr indic numrul de octei care pot fi trimii, ncepnd de la octetul confirmat. Un cmp Fereastr de valoare 0 este perfect legal i spune c octeii pn la Numr de confirmare - 1 inclusiv au fost
recepionai, dar receptorul dorete cu ardoare o pauz, aa c mulumete frumos, dar pentru moment nu dorete continuarea transferului. Permisiunea de expediere poate fi acordat ulterior de
ctre receptor prin trimiterea unui segment avnd acelai Numr de confirmare, dar un cmp Fereastr cu o valoare nenul.
n protocoalele din cap. 3, confirmrile pentru cadrele primite i permisiunea de a trimite noi cadre erau legate una de alta. Aceasta era o consecin a dimensiunii fixe a ferestrei pentru fiecare
protocol. n TCP, confirmrile i permisiunea de a trimite noi date sunt total decuplate. De fapt,
receptorul poate spune: Am primit octeii pn la al k-lea, dar n acest moment nu mai doresc s
primesc alii. Aceast decuplare (care de fapt reprezint o fereastr de dimensiune variabil) ofer
mai mult flexibilitate. O vom studia detaliat mai jos.
Este de asemenea prevzut o Sum de control, n scopul obinerii unei fiabiliti extreme.
Aceast sum de control este calculat pentru antet, informaie i pseudo-antetul conceptual prezentat n fig. 6-30. n momentul calculului, Suma de control TCP este poziionat pe zero, iar cmpul de date este completat cu un octet suplimentar nul, dac lungimea sa este un numr impar. Algoritmul de calcul al sumei de control este simplu, el adunnd toate cuvintele de 16 bii n complement fa de 1 i aplicnd apoi nc o dat complementul fa de 1 asupra sumei. n acest mod,
atunci cnd receptorul aplic acelai calcul asupra ntregului segment, inclusiv asupra Sumei de control, rezultatul ar trebui s fie 0.
Pseudo-antetul conine adresele IP ale mainii surs i destinaie, de 32 de bii fiecare, numrul
de protocol pentru TCP (6) i numrul de octei al segmentului TCP (incluznd i antetul). Prin includerea pseudo-antetului n calculul sumei de control TCP se pot detecta pachetele care au fost

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

483

preluate eronat, dar procednd astfel, este negat nsi ierarhia protocolului, deoarece adresa IP
aparine nivelului IP i nu nivelului TCP.
Cmpul Opiuni a fost proiectat pentru a permite adugarea unor faciliti suplimentare neacoperite de antetul obinuit. Cea mai important opiune este aceea care permite fiecrei maini s
specifice ncrcarea maxim de informaie util TCP pe care este dispus s o accepte. Utilizarea
segmentelor de dimensiune mare este mai eficient dect utilizarea segmentelor de dimensiune mic datorit amortizrii antetului de 20 de octei prin cantitatea mai mare de informaie util. Cu toate acestea, este posibil ca maini mai puin performante s nu fie capabile s manevreze segmente
foarte mari. n timpul iniializrii conexiunii, fiecare parte anun dimensiunea maxim acceptat i
ateapt de la partener aceeai informaie. Ctig cel mai mic dintre cele dou numere. Dac o
main nu folosete aceast opiune, cantitatea implicit de informaie util este de 536 octei. Toate
mainile din Internet trebuie s accepte segmente de dimensiune 536 + 20 = 556 octei. Dimensiunea maxim a segmentului nu trebuie s fie aceeai n cele dou direcii.

Fig. 6-30. Pseudo-antetul inclus n suma de control TCP.

O fereastr de 64 K octei reprezint adesea o problem pentru liniile cu o lrgime de band mare
i/sau cu ntrzieri mari. Pe o linie T3 (44.736 Mbps) trimiterea unei ferestre ntregi de 64 K octei
dureaz doar 12 ms. Dac ntrzierea propagrii dus-ntors este de 50 ms (care este valoarea tipic
pentru o linie trans-continental), emitorul va atepta confirmri - fiind deci inactiv din timp. Pe o
conexiune prin satelit, situaia este chiar mai rea. O fereastr de dimensiune mare ar permite emitorului s continue trimiterea informaiei, ns o astfel de dimensiune nu poate fi reprezentat n cei 16
bii ai cmpului Fereastr. n RFC 1323 se propune o opiune Scal a ferestrei, permind emitorului i receptorului s negocieze un factor de scalare a ferestrei. Acest numr permite ambelor pri s
deplaseze cmpul Fereastr cu pn la 14 bii spre stnga, permind astfel ferestre de pn la 230
octei. Aceast opiune este suportat n prezent de cele mai multe implementri ale TCP-ului.
O alt opiune propus de RFC 1106, i care este n prezent implementat pe scar larg, const
n utilizarea unei repetri selective n locul unui protocol cu ntoarcere de n pai (eng.: go back n
protocol). Dac receptorul primete un segment eronat urmat de un numr mare de segmente corecte, protocolul TCP clasic va constata ntr-un final o depire de timp i va retrimite toate segmentele neconfirmate, deci i pe acelea care au fost recepionate corect (adic se face o ntoarcere de n
pai). RFC 1106 introduce NAK-urile pentru a permite receptorului s cear un anumit segment
(sau segmente). Dup obinerea acestora, el poate confirma toat informaia memorat reducnd
astfel cantitatea de informaie retransmis.

484

6.5.5

NIVELUL TRANSPORT

CAP. 6

Stabilirea conexiunii TCP

n TCP conexiunile sunt stabilite utiliznd nelegerea n trei pai, discutat n Sec. 6.2.2. Pentru a stabili o conexiune, una din pri - s spunem serverul - ateapt n mod pasiv o cerere de conexiune prin execuia primitivelor LISTEN i ACCEPT, putnd specifica o surs anume sau nici o surs n
mod particular.
Cealalt parte - s spunem clientul - execut o primitiv CONNECT, indicnd adresa IP i numrul
de port la care dorete s se conecteze, dimensiunea maxim a segmentului TCP pe care este dispus
s o accepte i, opional, o informaie utilizator (de exemplu o parol). Primitiva CONNECT trimite un
segment TCP avnd bitul SYN poziionat i bitul ACK nepoziionat, dup care ateapt un rspuns.
Atunci cnd sosete la destinaie un segment, entitatea TCP receptoare verific dac nu cumva
exist un proces care a executat LISTEN pe numrul de port specificat n cmpul Port destinaie. n caz
contrar, trimite un rspuns cu bitul RST poziionat, pentru a refuza conexiunea.

Fig. 6-31. (a) Stabilirea unei conexiuni TCP n cazul normal. (b) Coliziunea apelurilor.

Dac exist vreun proces care ascult la acel port, segmentul TCP recepionat va fi dirijat ctre
procesul respectiv. Acesta poate accepta sau refuza conexiunea. Dac o accept, trimite napoi expeditorului un segment de confirmare. n fig. 6-31(a) este reprezentat secvena de segmente TCP
transferate n caz de funcionare normal. De notat c un segment SYN consum un octet din spaiul numerelor de secven, astfel nct confirmarea s poat fi fcut fr ambiguiti.
Secvena de evenimente ilustrat n fig. 6-31(b) reprezint cazul n care dou maini ncearc simultan s stabileasc o conexiune ntre aceleai dou porturi. Rezult c este suficient s fie stabilit o singur conexiune i nu dou, deoarece conexiunile sunt identificate prin punctele lor terminale. Dac
prima iniializare conduce la crearea unei conexiuni identificat prin (x, y) i acelai lucru l face i cea
de-a doua iniializare, atunci este construit o singur intrare de tabel, n spe pentru (x, y).
Numrul iniial de secven asociat unei conexiuni nu este 0, din motivele discutate anterior. Se utilizeaz o schem bazat pe un ceas cu o btaie la fiecare 4 s. Pentru mai mult siguran , atunci cnd

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

485

o main se defecteaz, este posibil ca ea s nu fie reiniializat n timpul de via maxim al unui pachet,
garantndu-se astfel c pachetele unei conexiuni anterioare nu se plimb nc pe undeva prin Internet.

6.5.6

Eliberarea conexiunii TCP

Dei conexiunile TCP sunt bidirecionale, pentru a nelege cum sunt desfiinate conexiunile, cel
mai bine este s ni le imaginm sub forma unei perechi de legturi unidirecionale. Fiecare legtur
unidirecional este eliberat independent de perechea sa. Pentru eliberarea unei conexiuni, orice
partener poate expedia un segment TCP avnd bitul FIN setat, lucru care indic faptul c nici o informaie nu mai urmeaz s fie transmis. Atunci cnd FIN-ul este confirmat, sensul respectiv de
comunicare este efectiv oprit pentru noi date. Cu toate acestea, informaia poate fi transferat n
continuare, pentru un timp nedefinit, n cellalt sens. Conexiunea este desfiinat atunci cnd ambele direcii au fost oprite. n mod normal, pentru a elibera o conexiune sunt necesare patru segmente
TCP: cte un FIN i un ACK pentru fiecare sens. Cu toate acestea, este posibil ca primul ACK i cel
de-al doilea FIN s fie cuprinse n acelai segment reducnd astfel numrul total la trei.
La fel ca n conversaiile telefonice, n care ambele persoane pot spune la revedere i pot nchide telefonul simultan, ambele capete ale unei conexiuni TCP pot expedia segmente FIN n acelai
timp. Acestea sunt confirmate ca de obicei, conexiunea fiind astfel eliberat. Nu exist de fapt nici o
diferen esenial ntre cazurile n care mainile elibereaz conexiunea secvenial respectiv simultan.
Pentru a evita problema celor dou armate, sunt utilizate cronometre. Dac un rspuns la un
FIN nu este recepionat pe durata a cel mult dou cicluri de maxime de via ale unui pachet, emitorul FIN-ului elibereaz conexiunea. Cealalt parte va observa n final c nimeni nu mai pare s
asculte la cellalt capt al conexiunii, i va elibera conexiunea n urma expirrii unui interval de timp.
Aceast soluie nu este perfect, dar avnd n vedere faptul c o soluie perfect este teoretic imposibil, va trebui s ne mulumim cu ce avem. n realitate astfel de probleme apar foarte rar.

SEC. 6.5.

6.5.8

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

487

Politica TCP de transmisie a datelor

Cum s-a menionat anterior, administrarea ferestrei n TCP nu este direct legat de confirmri,
aa cum se ntmpl la cele mai multe protocoale de nivel legtur de date. De exemplu, s presupunem c receptorul are un tampon de 4096 octei, aa cum se vede n fig. 6-34. Dac emitorul
transmite un segment de 2048 de octei care este recepionat corect, receptorul va confirma segmentul. Deoarece acum tamponul acestuia din urm mai are liberi doar 2048 octei (pn cnd aplicaia
terge nite date din acest tampon), receptorul va anuna o fereastr de 2048 octei ncepnd de la
urmtorul octet ateptat.
Acum, emitorul transmite ali 2048 octei, care sunt confirmai, dar fereastra oferit este 0.
Emitorul trebuie s se opreasc pn cnd procesul aplicaie de pe maina receptoare a ters nite
date din tampon, moment n care TCP poate oferi o fereastr mai mare.

488

NIVELUL TRANSPORT

CAP. 6

Fig. 6-34. Controlul ferestrei n TCP.

Atunci cnd fereastra este 0, n mod normal emitorul nu poate s transmit segmente, cu dou
excepii. n primul rnd, informaia urgent poate fi trimis, de exemplu pentru a permite utilizatorului s opreasc procesele rulnd pe maina de la distan. n al doilea rnd, emitorul poate trimite un segment de un octet pentru a determina receptorul s renune urmtorul octet ateptat i dimensiunea ferestrei. Standardul TCP prevede n mod explicit aceast opiune pentru a preveni
interblocarea n cazul n care se ntmpl ca anunarea unei ferestre s fie vreodat pierdut.
Emitorii nu transmit n mod obligatoriu date de ndat ce acest lucru este cerut de ctre aplicaie. Nici receptorii nu trimit n mod obligatoriu confirmrile de ndat ce acest lucru este posibil. De
exemplu, n fig. 6-34, atunci cnd sunt disponibili primii 2K octei, TCP, tiind c dispune de o fereastr de 4K octei, va memora informaia n tampon pn cnd ali 2K octei devin disponibili i
astfel se va putea transmite un segment cu o ncrcare util de 4K octei. Aceast facilitate poate fi
folosit pentru mbuntirea performanelor.
S considerm o conexiune TELNET cu un editor interactiv care reacioneaz la fiecare apsare a tastelor. n cel mai ru caz, atunci cnd un caracter sosete la entitatea TCP emitoare, TCP
creeaz un segment TCP de 21 octei, pe care l furnizeaz IP-ului pentru a fi transmis ca o datagram IP de 41 octei. De partea receptorului, TCP transmite imediat o confirmare de 40 octei (20
octei antet TCP i 20 octei antet IP). Mai trziu, cnd editorul a citit caracterul, TCP transmite o

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

489

actualizare a ferestrei, deplasnd fereastra cu un octet la dreapta. Acest pachet este de asemenea
de 40 octei. n final, cnd editorul a prelucrat caracterul, transmite ecoul sub forma unui pachet de
41 octei. Cu totul, sunt folosii 162 octei din lrgimea de band i sunt trimise patru segmente
pentru orice caracter tiprit. Atunci cnd lrgimea de band este redus, aceast metod de lucru
nu este recomandat.
O abordare folosit de multe implementri TCP pentru optimizarea acestei situaii const n ntrzierea confirmrilor i actualizrilor de fereastr timp de 500 ms, n sperana apariiei unor informaii la care s se ataeze pentru o cltorie pe gratis. Presupunnd c editorul are un ecou de 50
ms, este necesar acum un singur pachet de 41 octei pentru a fi trimis utilizatorului de la distan,
reducnd numrul pachetelor i utilizarea lrgimii de band la jumtate.
Dei aceast regul reduce ncrcarea reelei de ctre receptor, emitorul opereaz nc ineficient trimind pachete de 41 octei care conin un singur octet de date. O modalitate de a reduce
aceast deficien este cunoscut ca algoritmul lui Nagle (Nagle, 1984). Sugestia lui Nagle este simpl: atunci cnd emitorul dispune de date, n secven, de cte un octet, el va trimite doar primul
octet, restul octeilor fiind memorai pn la confirmarea primului octet. Apoi vor fi trimise toate
caracterele memorate ntr-un segment TCP i va continua memorarea pn la confirmarea tuturor
octeilor. Dac utilizatorul tasteaz repede i reeaua este lent, un numr substanial de caractere
poate fi plasat n fiecare segment, reducnd cu mult lrgimea de band folosit. n plus, algoritmul
permite transmisia unui nou pachet, dac s-a dispus de suficient informaie pentru a umple jumtate dintr-o fereastr sau pentru a completa un segment.
Implementrile TCP folosesc pe scar larg algoritmul lui Nagle, dar exist situaii cnd este mai
bine ca el s fie dezactivat. n particular, cnd o aplicaie X-Windows ruleaz prin Internet, deplasrile mausului trebuie transmise mainii de la distan. (Sistemul X Window este sistemul de ferestre
utilizat pe majoritatea sistemelor UNIX.) Gruparea lor pentru a fi transmise n rafal provoac o
micare imprevizibil a cursorului, lucru care nemulumete profund utilizatorii.
O alt problem care poate degrada performana TCP este sindromul ferestrei stupide. (Clark,
1982). Aceast problem apare atunci cnd informaia este furnizat entitii TCP emitoare n
blocuri mari, dar la partea receptoare o aplicaie interactiv citete datele octet cu octet. Pentru a
nelege problema, s analizm fig. 6-35. Iniial, tamponul TCP al receptorului este plin i emitorul
tie acest fapt (adic are o fereastr de dimensiune 0). Apoi, aplicaia interactiv citete un caracter
de pe canalul TCP. Aceast aciune face fericit entitatea TCP receptoare, deci ea va trimite o actualizare de fereastr ctre emitor dndu-i astfel dreptul de a mai trimite un octet. ndatorat, emitorul trimite un octet. Cu acesta, tamponul este plin i receptorul confirm segmentul de 1 octet,
dar repoziioneaz dimensiunea ferestrei la 0. Acest comportament poate continua la nesfrit.
Soluia lui Clark este de a nu permite receptorului s trimit o actualizare de fereastr la fiecare
octet. n schimb, el este forat s atepte pn cnd spaiul disponibil are o dimensiune decent, urmnd s-l ofere pe acesta din urm. Mai precis, receptorul nu ar trebui s trimit o actualizare de
fereastr pn cnd nu va putea gestiona minimul dintre dimensiunea maxim oferit atunci cnd
conexiunea a fost stabilit i jumtate din dimensiunea tamponului su, dac este liber.
Mai mult dect att, emitorul poate mbunti situaia netrimind segmente de dimensiune
mic. n schimb, el ar trebui s ncerce s atepte pn cnd acumuleaz suficient spaiu n fereastr
pentru a trimite un segment ntreg sau mcar unul coninnd cel puin jumtate din dimensiunea
tamponului receptorului (pe care trebuie s o estimeze din secvena actualizrilor de fereastr recepionate pn acum).

490

NIVELUL TRANSPORT

CAP. 6

Fig. 6-35. Sindromul ferestrei stupide.

Algoritmul lui Nagle i soluia lui Clark pentru sindromul ferestrei stupide sunt complementare.
Nagle a ncercat s rezolve problema furnizrii datelor ctre TCP octet cu octet, cauzat de aplicaia
emitoare. Clark a ncercat s rezolve problema extragerii datelor de la TCP octet cu octet, cauzat
de ctre aplicaia receptoare. Ambele soluii sunt valide i pot funciona mpreun. Scopul este ca
emitorul s nu trimit segmente mici, iar receptorul s nu cear astfel de segmente.
Receptorul TCP poate face, pentru mbuntirea performanelor, mai mult dect simpla actualizare a ferestrei n uniti mari. Ca i emitorul TCP, el are posibilitatea s memoreze date, astfel
nct s poat bloca o cerere de READ a aplicaiei pn cnd i poate furniza o cantitate semnificativ de informaie. Astfel se reduce numrul de apeluri TCP, deci i suprancrcarea. Bineneles, n
acest mod va crete i timpul de rspuns, dar pentru aplicaii care nu sunt interactive, aa cum este
transferul de fiiere, eficiena poate fi mai important dect timpul de rspuns la cereri individuale.
O alt problem de discutat despre receptor se refer la ce trebuie s fac acesta cu segmentele
care nu sosesc n ordine. Ele pot fi reinute sau eliminate, dup cum dorete receptorul. Bineneles,
confirmrile pot fi trimise numai atunci cnd toat informaia pn la octetul confirmat a fost recepionat. Dac receptorul primete segmentele 0, 1, 2, 4, 5, 6 i 7, el poate confirma totul pn la ultimul octet din segmentul 2 inclusiv. Atunci cnd emitorul constat o depire de timp, el va retransmite segmentul 3. Dac receptorul a memorat n tampon segmentele 4 pn la 7, odat cu recepia
segmentului 3 el poate confirma toi octeii pn la sfritul segmentului 7.

6.5.9

Controlul congestiei n TCP

Atunci cnd ncrcarea la care este supus o reea este mai mare dect poate aceasta s suporte,
apare congestia. Internet-ul nu face excepie. n aceast seciune, vom discuta algoritmi care se ocup
cu astfel de congestii i care au fost dezvoltai pe parcursul ultimului sfert de secol. Dei nivelul reea

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

491

ncearc de asemenea s controleze congestia, cea mai mare parte a muncii este fcut de TCP, i
aceasta deoarece adevrata soluie a congestiei const n micorarea ratei de transfer a informaiei.
Teoretic, congestia poate fi controlat pe baza unui principiu mprumutat din fizic: legea conservrii pachetelor. Ideea de baz este de a nu injecta un nou pachet n reea pn cnd un pachet
mai vechi nu o prsete (de exemplu este furnizat receptorului). TCP ncearc s ating acest scop
prin manipularea dinamic a dimensiunii ferestrei.
Primul pas n controlul congestiei este detecia ei. Mai demult, detecia congestiei era dificil. O
depire de timp datorat pierderii unui pachet putea fi cauzat fie de (1) zgomotul de pe linia de
transmisie, fie de (2) eliminarea pachetului de ctre un ruter congestionat. Diferenierea celor dou
cazuri era dificil.
n zilele noastre, pierderea pachetului din pricina erorilor de transmisie este destul de rar, deoarece cele mai multe din trunchiurile principale de comunicaie sunt din fibr (dei reelele fr fir
sunt un subiect separat). n consecin, cele mai multe depiri ale timpilor de transmisie pe Internet
se datoreaz congestiilor. Toi algoritmii TCP din Internet presupun c depirile de timp sunt cauzate de congestii i monitorizeaz aceste depiri pentru a detecta problemele.
nainte de a discuta despre modalitatea n care TCP reacioneaz la congestii, s descriem n
primul rnd modul n care se ncearc prevenirea apariiei lor. Atunci cnd se stabilete o conexiune,
trebuie s se aleag o fereastr de o dimensiune potrivit. Receptorul poate specifica o fereastr
bazndu-se pe dimensiunea tamponului propriu. Dac emitorul accept aceast dimensiune a
ferestrei, nu mai pot aprea probleme datorit depirii tamponului la recepie, dar pot aprea n
schimb datorit congestiei interne n reea.

Fig. 6-36. (a) O reea rapid alimentnd un rezervor de capacitate mic.


(b) O reea lent alimentnd un receptor de mare capacitate.

492

NIVELUL TRANSPORT

CAP. 6

n fig. 6-36, putem vedea interpretarea hidraulic a acestei probleme. n fig. 6-36(a), observm o
conduct groas care duce la un receptor de dimensiune mic. Atta timp ct emitorul nu trimite
mai mult ap dect poate conine gleata, apa nu se va pierde. n fig. 6-36(b), factorul de limitare
nu mai este capacitatea gleii, ci capacitatea de transport a reelei. Dac vine prea repede prea mult ap, ea se va revrsa i o anumit cantitate se va pierde (n acest caz prin umplerea plniei).
Soluia din Internet este de a realiza posibilitatea existenei a dou probleme - capacitatea reelei
i capacitatea receptorului - i de a le trata pe fiecare separat. Pentru a face acest lucru, fiecare emitor menine dou ferestre: fereastra acceptat de ctre receptor i o a doua fereastr, fereastra de
congestie. Fiecare reflect numrul de octei care pot fi trimii de ctre emitor. Numrul octeilor
care pot fi trimii este dat de minimul dintre cele dou ferestre. Astfel, fereastra efectiv este minimul dintre ceea ce emitorul crede c este n regul i ceea ce receptorul crede c este n regul. Dac receptorul spune: Trimite 8K octei, dar emitorul tie c o rafal de mai mult de 4K
octei poate aglomera excesiv reeaua, el va trimite 4K octei. Din alt punct de vedere, dac receptorul spune: Trimite 8K octei i emitorul tie c o rafal de 32K octei poate strbate fr efort
reeaua, el va trimite toi cei 8K octei cerui.
La stabilirea conexiunii, emitorul iniializeaz fereastra de congestie la dimensiunea celui mai mare segment utilizat de acea conexiune. El trimite apoi un segment de dimensiune maxim. Dac acest
segment este confirmat naintea expirrii timpului, mai adaug un segment la fereastra de congestie,
fcnd-o astfel de dimensiunea a dou segmente de dimensiune maxim, i trimite dou segmente. O
dat cu confirmarea fiecruia din aceste segmente, fereastra de congestie este redimensionat cu nc
un segment de dimensiune maxim. Atunci cnd fereastra de congestie este de n segmente, dac toate
cele n segmente sunt confirmate n timp util, ea este crescut cu numrul de octei corespunztor celor
n segmente. De fapt, fiecare rafal confirmat cu succes dubleaz fereastra de congestie.
Fereastra de congestie crete n continuare exponenial pn cnd sau se produce o depire de
timp, sau se atinge dimensiunea ferestrei receptorului. Ideea este ca dac rafale de dimensiune, s
spunem, 1024, 2048 i 4096 de octei funcioneaz fr probleme, dar o rafal de 8192 octei duce la
o depire de timp, fereastra de congestie va fi stabilit la 4096 de octei pentru a evita congestia.
Atta timp ct fereastra de congestie rmne la 4096, nu va fi transmis nici o rafal mai mare de
aceast valoare, indiferent ct de mult spaiu de fereastr este oferit de ctre receptor. Acest algoritm este numit algoritmul startului lent, fr a fi ns ctui de puin lent (Jacobson, 1988). Este
exponenial. Toate implementrile TCP trebuie s l suporte.
S privim acum algoritmul de control al congestiei n cazul Internetului. El utilizeaz n plus fa
de ferestrele de recepie i de congestie un al treilea parametru, numit prag, iniial de 64K. Atunci
cnd apare o depire de timp, pragul este poziionat la jumtate din fereastra curent de congestie
i fereastra de congestie este repoziionat la dimensiunea unui segment maxim. Startul lent este
utilizat apoi pentru a determina ct poate reeaua s duc, atta doar c acea cretere exponenial
se oprete odat cu atingerea pragului. De aici nainte transmisiile reuite mresc n mod liniar dimensiunea ferestrei de congestie (cu cte un segment maxim pentru fiecare rafal), n locul unei
creteri pentru fiecare segment. De fapt, algoritmul presupune c este acceptabil njumtirea
ferestrei de congestie, din acel punct continundu-i gradual calea spre dimensiuni mai mari.
Funcionarea algoritmului de congestie se poate vedea n fig. 6-37. Dimensiunea unui segment
maxim este, n acest caz, de 1024 de octei. Iniial fereastra de congestie are 64K octei, dar apare o
depire de timp i deci pragul este stabilit la 32K octei iar fereastra de congestie la 1K octei acesta
fiind punctul 0 al transmisiei din figur. Fereastra de congestie crete apoi exponenial pn atinge
pragul (32K octei). ncepnd de aici, creterea este liniar.

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

493

Fig. 6-37. Un exemplu al algoritmului de congestie din Internet.

Transmisia 13 nu are noroc (este de la sine neles) i apare o depire de timp. Pragul este stabilit la jumtate din fereastra curent (acum 40K octei, deci jumtate este 20K octei) i startul lent
este iniiat din nou. Atunci cnd confirmrile pentru transmisia 14 ncep s soseasc, primele patru
dubleaz fiecare fereastra de congestie, dar dup aceea creterea redevine liniar.
Dac nu mai apar depiri de timp, fereastra de congestie va continua s creasc pn la dimensiunea ferestrei receptorului. n acest punct, creterea ei va fi oprit i va rmne constant atta
timp ct nu mai apar depiri i fereastra receptorului nu i modific dimensiunea. Ca un alt aspect,
dac un pachet ICMP SOURCE QUENCH sosete i este furnizat TCP-ului, acest eveniment este tratat
la fel ca o depire de timp. O alternativ (i o abordare mai recent) este descris n RFC 3168.

6.5.10 Administrarea contorului de timp n TCP


TCP utilizeaz (cel puin conceptual) mai multe contoare pentru a face ceea ce are de fcut. Cel
mai important dintre acestea este contorul de retransmisie. Atunci cnd este trimis un segment, se
pornete un contor de retransmisie. Dac segmentul este confirmat nainte de expirarea timpului,
contorul este oprit. Pe de alt parte, dac timpul expir naintea primirii confirmrii, segmentul este
retransmis (i contorul este pornit din nou). ntrebarea care se pune este urmtoarea: Ct de mare
trebuie s fie intervalul de timp pn la expirare?
Aceast problem este mult mai dificil la nivelul transport din Internet dect la nivelul protocoalelor generice de legtur de date prezentate n Cap. 3. n cazul din urm, ntrzierea ateptat
este uor predictibil (de exemplu, are o varian sczut), deci contorul poate fi setat s expire chiar

494

NIVELUL TRANSPORT

CAP. 6

imediat dup ce era ateptat confirmarea, aa cum se arat n fig. 6-38(a). Cum confirmrile sunt
rareori ntrziate n nivelul legtur de date, absena unei confirmri n momentul n care aceasta
era ateptat nseamn de obicei c s-a pierdut fie cadrul, fie confirmarea.

Fig. 6-38. (a) Densitatea de probabilitate a sosirilor n timp a confirmrilor n nivelul


legtur de date. (b) Densitatea de probabilitate a sosiri confirmrilor pentru TCP.

TCP trebuie s fac fa unui mediu radical diferit. Funcia de densitate a probabilitii pentru
timpul necesar ntoarcerii unei confirmri TCP arat mai degrab ca n fig. 6-38(b) dect ca n fig. 638(a). Este dificil determinarea timpului n care se realizeaz circuitul dus-ntors pn la destinaie.
Chiar i cnd acesta este cunoscut, stabilirea intervalului de depire este de asemenea dificil. Dac
intervalul este prea scurt, s spunem T1 n fig. 6-38(b), vor aprea retransmisii inutile, aglomernd
Internet-ul cu pachete fr rost. Dac este prea lung, (T2), performanele vor avea de suferit datorit
ntrzierii retransmisiei de fiecare dat cnd se pierde un pachet. Mai mult dect att, media i variana distribuiei sosirii confirmrilor se pot schimba cu rapiditate pe parcursul a ctorva secunde
atunci cnd apare sau se rezolv o congestie.
Soluia este s se utilizeze un algoritm profund dinamic, care ajusteaz n mod constant intervalul
de depire bazndu-se pe msurtori continue ale performanei reelei. Algoritmul utilizat n general de ctre TCP este datorat lui Jacobson (1988) i este descris mai jos. Pentru fiecare conexiune,
TCP pstreaz o variabil, RTT, care este cea mai bun estimare a timpului n care se parcurge circuitul dus-ntors ctre destinaia n discuie. Atunci cnd este trimis un segment, se pornete un contor de timp, att pentru a vedea ct de mult dureaz pn la primirea confirmrii ct i pentru a iniia o retransmisie n cazul scurgerii unui interval prea lung. Dac se primete confirmarea naintea
expirrii contorului, TCP msoar ct de mult i-a trebuit confirmrii s soseasc, fie acest timp M. n
continuare el actualizeaz RTT, dup formula:
RTT = RTT + (1 ) M

unde este un factor de netezire care determin ponderea dat vechii valori. Uzual, =7/8.
Chiar presupunnd o valoare bun a lui RTT, alegerea unui interval potrivit de retransmisie nu
este o sarcin uoar. n mod normal, TCP utilizeaz RTT, dar problema const n alegerea lui .

SEC. 6.5.

PROTOCOALE DE TRANSPORT PRIN INTERNET: TCP

495

n implementrile iniiale, era ntotdeauna 2, dar experiena a artat c o valoare constant este
inflexibil deoarece nu corespunde n cazul creterii varianei.
n 1988, Jacobson a propus ca s fie aproximativ proporional cu deviaia standard a funciei de
densitate a probabilitii timpului de primire a confirmrilor, astfel nct o varian mare implic un
mare i viceversa. n particular, el a sugerat utilizarea deviaiei medii ca o estimare puin costisitoare a deviaiei standard. Algoritmul su presupune urmrirea unei alte variabile de netezire, D, deviaia. La fiecare sosire a unei confirmri, este calculat diferena dintre valorile ateptate i observate
RTT M . O valoare netezit a acesteia este pstrat n D, prin formula

D = D + (1 ) RTT M
unde poate sau nu s aib aceeai valoare ca cea utilizat pentru netezirea lui RTT. Dei D nu este
chiar deviaia standard, ea este suficient de bun i Jacobson a artat cum poate fi calculat utiliznd
doar adunri de ntregi, scderi i deplasri, ceea ce este un mare punct ctigat. Cele mai multe
implementri TCP utilizeaz acum acest algoritm i stabilesc valoarea intervalului de depire la:
Depire = RTT + 4 D
Alegerea factorului 4 este ntr-un fel arbitrar, dar are dou avantaje. n primul rnd, multiplicarea
prin 4 poate fi fcut printr-o singur deplasare. n al doilea rnd, minimizeaz depirile de timp i
retransmisiile inutile, datorit faptului c mai puin de un procent din totalul pachetelor sosesc cu
ntrzieri mai mari de patru ori deviaia standard. (De fapt, Jacobson a propus iniial s se foloseasc
2, dar experiena ulterioar a demonstrat c 4 conduce la performane mai bune).
O problem legat de estimarea dinamic a RTT se refer la ce trebuie fcut n situaia n care
un segment cauzeaz o depire i trebuie retransmis. Atunci cnd confirmarea este primit, nu este
clar dac aceasta se refer la prima transmisie sau la o transmisie urmtoare. O decizie eronat poate contamina serios estimarea lui RTT. Phil Karn a descoperit aceast problem cu mult greutate.
El este un radio amator entuziast, interesat n transmiterea pachetelor TCP/IP prin operare radio,
un mediu recunoscut pentru lipsa de fiabilitate (pe o zi senin, la destinaie ajung jumtate din pachete). El a fcut o propunere simpl: s nu se actualizeze RTT pentru nici un segment care a fost
retransmis. n loc de aceasta, timpul de expirare este dublat la fiecare eec, pn cnd segmentele
ajung prima oar la destinaie. Aceast corecie este numit algoritmul lui Karn. Cele mai multe din
implementrile TCP utilizeaz acest algoritm.
Contorul de retransmisie nu este singurul utilizat de ctre TCP. Un al doilea contor este contorul
de persisten. El este proiectat s previn urmtoarea situaie de interblocare. Receptorul trimite o
confirmare cu o dimensiune a ferestrei 0, spunndu-i emitorului s atepte. Mai trziu, receptorul
actualizeaz fereastra, dar pachetul cu aceast actualizare este pierdut. Acum, att emitorul ct i
receptorul ateapt o reacie din partea celuilalt. Atunci cnd contorul de persisten expir, emitorul transmite o sond ctre receptor. Rspunsul la aceast investigare furnizeaz dimensiunea
ferestrei. Dac aceast dimensiune continu s fie zero, contorul de persisten este repoziionat i
ciclul se repet. Dac este nenul, informaia poate fi acum transmis.
Un al treilea contor utilizat de unele implementri este contorul de meninere n via. Cnd o
conexiune a fost inactiv o lung perioad de timp, contorul de meninere n via poate expira pentru a fora una din pri s verifice dac cealalt parte exist nc. Dac aceasta nu rspunde, conexiunea este nchis. Aceast facilitate este controversat, deoarece suprancarc reeaua i poate termina o conexiune altfel sntoas datorit unei partiionri tranzitorii a reelei.
Ultimul contor folosit la fiecare conexiune TCP este acela utilizat n strile de ATEPTARE
CONTORIZAT pe parcursul nchiderii conexiunilor. El funcioneaz pe durata a dou viei maxime ale unui pachet, pentru a se asigura c, atunci cnd o conexiune este nchis, toate pachetele
create de aceasta au murit.

514

NIVELUL TRANSPORT

CAP. 6

n sfrit, sunt utile cteva cuvinte despre programul de protocol. Cea mai mare atenie trebuie
acordat cazului de succes. Multe din protocoalele vechi aveau tendina de a evidenia ce este de
fcut atunci cnd ceva nu mergea cum trebuie (de exemplu pierderea unui pachet). Pentru a face
protocoalele s mearg mai repede, proiectanii ar trebui s aib ca scop minimizarea timpului de
prelucrare atunci cnd totul funcioneaz corect. Minimizarea timpului de prelucrare n caz de eroare trebuie s treac pe planul doi.
Un al doilea aspect legat de programe este minimizarea timpului de copiere. Aa cum am vzut
mai devreme, copierea datelor introduce n general un cost suplimentar. Ideal ar fi ca echipamentul
fizic s depoziteze n memorie fiecare pachet recepionat ca un bloc contiguu de date. Programul ar
trebui apoi s copieze acest pachet n tamponul utilizator printr-o singur copiere de bloc. n funcie
de modul de lucru al memoriei tampon, ar fi de dorit chiar s se evite copierea n bucl. Cu alte cuvinte, cel mai rapid mod de a copia 1024 de cuvinte este de a avea 1024 de instruciuni MOVE una
dup cealalt (sau 1024 de perechi ncrcare-memorare). Rutina de copiere este critic ntr-o asemenea msur, nct, dac nu exist alt modalitate de a pcli compilatorul ca s produc cu precizie codul optimal, ea ar trebui scris de mn, cu mult atenie, direct n cod de asamblare.

6.7 REZUMAT
Nivelul transport reprezint cheia pentru nelegerea protocoalelor organizate pe niveluri. El
furnizeaz diferite servicii, cel mai important dintre acestea fiind fluxul de octei capt-la-capt de la
emitor la receptor, fiabil i orientat pe conexiuni. El este accesat prin primitive de serviciu care
permit stabilirea, utilizarea i eliberarea conexiunilor. O interfa de nivel de transport obinuit este
cea oferit de soclurile Berkeley.
Protocoalele de transport trebuie s fie capabile s controleze conexiunea n reele nefiabile.
Stabilirea conexiunii este complicat de existena pachetelor duplicate ntrziate, care pot aprea la
momente inoportune. Pentru a le face fa, stabilirea conexiunii trebuie fcut prin intermediul protocoalelor cu nelegere n trei pai. Eliberarea unei conexiuni este mai simpl dect stabilirea sa, dar
este nc departe de a fi banal datorit problemei celor dou armate.
Chiar i n cazul unui nivel reea complet fiabil, nivelul transport are suficient de mult de lucru.
El trebuie s controleze toate primitivele de serviciu, toate conexiunile i contoarele de timp i trebuie s aloce i s utilizeze credite.
Internetul are dou protocoale de transport principale: UDP i TCP. UDP este un protocol neorientat pe conexiune care este n principal un ambalaj pentru pachetele IP, cu caracteristicile suplimentare de multiplexare i demultiplexare a proceselor multiple folosind o singura adresa de IP.
UDP poate fi folosit pentru interaciunile client-server, de exemplu, utiliznd RPC. De asemenea
poate fi folosit pentru construirea protocoalelor n timp real cum ar fi RTP.
Principalul protocol de transport n Internet este TCP. El ofer un flux sigur, bidirecional de octei. El utilizeaz un antet de 20 de octei pentru toate segmentele. Segmentele pot fi fragmentate de
rutere n cadrul Internet-ului, deci calculatoarele gazd trebuie s fie pregtite s le reasambleze. S-a
depus un mare efort pentru optimizarea performanelor TCP-ului, utiliznd algoritmii propui de
Nagle, Clark, Jacobson, Karn i alii. Legturile fr fir adaug o varietate de complicaii TCP-ului.

SEC. 6.8

PROBLEME

515

TCP Tranzacional este o extensie a TCP-ului care se ocup de interaciunile client-server cu un


numr redus de pachete.
Performanele reelei sunt dominate n mod tipic de protocol i de costul suplimentar datorat
tratrii TPDU-urilor, situaie care se nrutete la viteze mari. Protocoalele ar trebui proiectate
astfel, nct s minimizeze numrul de TPDU-uri, copierile lor repetate i comutrile de context.
Pentru reelele gigabit sunt de dorit protocoale simple.

6.8 PROBLEME
1.

n exemplele noastre de primitive de transport din fig. 6-2, LISTEN este un apel blocant. Este
acest lucru strict necesar? Dac nu, explicai cum ar putea fi utilizat o primitiv neblocant. Ce
avantaje ar avea aceasta pentru schema descris n text?

2.

n modelul pe care se bazeaz fig. 6-4 se presupune c pachetele pot fi pierdute de ctre nivelul
reea i trebuie deci s fie confirmate individual. S presupunem c nivelul reea este 100% fiabil i nu pierde pachete niciodat. Ce modificri sunt necesare (dac sunt necesare) n fig. 6-4?

3.

n ambele pri ale fig. 6-6 este un comentariu conform cruia valoarea SERVER_PORT trebuie s fie aceeai i n client i n server. De ce este acest lucru att de important?

4.

S presupunem c pentru generarea numerelor de secven iniiale se utilizeaz o schem dirijat de ceas cu un contor de timp de 15 bii. Ceasul genereaz un impuls la fiecare 100 ms i durata de via maxim a unui pachet este de 60 sec. Ct de des este necesar s aib loc o resincronizare
a) n cel mai ru caz?
b) atunci cnd se consum 240 de numere de secven pe secund?

5.

De ce este necesar ca timpul maxim de via al unui pachet, T, s fie suficient de mare pentru a
acoperi nu numai dispariia pachetului, dar i a confirmrii?

6.

S ne imaginm c pentru stabilirea unei conexiuni se utilizeaz un protocol cu nelegere n


doi pai i nu unul cu nelegere n trei pai. Cu alte cuvinte, al treilea mesaj nu mai este necesar. Sunt posibile interblocri n aceast situaie? Dai un exemplu sau artai c nu exist nici o
interblocare.

7.

Imaginai o problem generalizat a celor n armate, n care acordul dintre oricare dou armate
este suficient pentru victorie. Exist un protocol care i permite albastrului s ctige?

8.

S considerm problema recuperrii dup defectarea unei maini gazd (adic fig. 6-18). Dac
intervalul dintre scrierea i trimiterea unei confirmri, sau vice-versa, poate fi fcut relativ scurt,
care sunt cele mai bune strategii emitor-receptor pentru minimizarea ansei de defectare a
protocolului?

9.

Sunt posibile interblocrile pentru entitile transport descrise n text (fig. 6-20)?

516

NIVELUL TRANSPORT

CAP. 6

10. Din pur curiozitate, programatorul entitii transport din fig. 6-20 a decis s pun contoare n
interiorul procedurii sleep, pentru a colecta astfel statistici despre vectorul conn. ntre acestea
se afl i numerele de conexiuni din fiecare dintre cele apte stri posibile ni (i=1,, 7). Dup
scrierea unui program FORTRAN serios pentru a analiza datele, programatorul nostru descoper c relaia ni = MAX_CONN pare s fie totdeauna adevrat. Exist i ali invariani care
s implice doar aceste apte variabile?
11. Ce se ntmpl dac utilizatorul entitii transport din fig. 6-20 trimite un mesaj de lungime 0?
Discutai semnificaia rspunsului.
12. Pentru fiecare eveniment care poate aprea n entitatea transport din fig. 6-20, spunei dac
este sau nu ca utilizatorul s doarm (eng.: sleep) n starea transmisie.
13. Discutai avantajele i dezavantajele creditelor fa de protocoalele cu fereastr glisant.
14. De ce exist UDP? Nu ar fi fost suficient ca procesul utilizator s fie lsat s trimit pachete
bloc IP?
15. Se consider un protocol simplu la nivelul aplicaiei, construit pe UDP, care permite unui client
s recupereze un fiier de la un server la distan aflat la o adres bine cunoscut. Clientul trimite mai nti o cerere cu numele fiierului, iar serverul rspunde cu o secven de pachete de
date coninnd diferite pri din fiierul cerut. Pentru a asigura fiabilitate i livrare secvenial,
clientul i serverul folosesc un protocol pas-cu-pas. Ignornd problema evident a performanei, vedei vreo problem la acest protocol? Gndii-v atent la posibilitatea terminrii brute a
proceselor.
16. Un client trimite cereri de 128 de octei ctre un server localizat la 100 km deprtare, printr-un
cablu optic de 1 gigabit. Care este eficiena liniei n timpul apelului de procedur la distan?
17. S considerm din nou situaia din problema precedent. Calculai timpul minim posibil de
rspuns att pentru linia de 1 Gbps anterioar ct i pentru o linie de 1 Mbps. Ce concluzie putei trage?
18. Att UDP, ct i TCP, folosesc numere de port pentru a identifica entitatea destinaie cnd
livreaz mesaje. Dai dou motive pentru care aceste protocoale au inventat un nou ID abstract
(numere de port), n loc s foloseasc ID-uri de procese, care existau deja cnd aceste protocoale au fost proiectate.
19. Care este dimensiunea total a MTU TCP, incluznd suprancrcarea TCP-ului i IP-ului dar
neincluznd suprancrcarea nivelului legtur de date?
20. Fragmentarea i reasamblarea datagramelor sunt controlate de IP i sunt invizibile TCP-ului.
nseamn acest lucru c TCP-ul nu trebuie s-i fac griji pentru datele care sosesc n ordine
eronat?
21. RTP este utilizat pentru a transmite date audio de calitatea CD-ului, ceea ce nseamn o pereche de eantioane pe 16 bii de 44.100 de ori pe secund, un eantion pentru fiecare dintre canalele stereo. Cte pachete pe secund trebuie s transmit RTP?

SEC. 6.8

PROBLEME

517

22. Ar fi posibil s fie plasat cod RTP n nucleul sistemului de operare, alturi de cod UDP? Explicai rspunsul.
23. Un proces de pe maina 1 a fost asociat portului p i un proces de pe maina 2 a fost asociat
portului q. Este posibil ca ntre cele dou porturi s fie deschise mai multe conexiuni TCP n
acelai timp?
24. n fig. 6-29 am vzut c alturi de cmpul Acknowledgement de 32 de bii, este un bit ACK n al
patrulea cuvnt. Acesta adaug cu adevrat ceva? De ce da, sau de ce nu?
25. Informaia util maxim dintr-un segment TCP este de 65495 octei. De ce a fost ales un numr att de straniu?
26. Descriei dou moduri de a ajunge n starea SYN RCVD din fig. 6-28.
27. Prezentai un dezavantaj potenial al algoritmului Nagle atunci cnd este utilizat ntr-o reea
puternic congestionat.
28. S considerm efectul utilizrii startului lent pe o linie cu timpul circuitului dus-ntors de 10
ms i fr congestie. Fereastra receptorului este de 24 Koctei i dimensiunea maxim a segmentului este de 2 Koctei. Ct timp trebuie s treac nainte ca prima fereastr complet s
poat fi trimis?
29. S presupunem c fereastra de congestie TCP este de 18 Koctei i apare o depire de timp.
Ct de mare va fi fereastra dac urmtoarele patru rafale de transmisie reuesc? Se presupune
c dimensiunea maxim a segmentului este de 1 Koctet.
30. Dac timpul circuitului TCP dus-ntors, RTT, este la un moment dat 30 ms i urmtoarele confirmri sosesc dup 26, 32 i, respectiv, 24 ms, care este noul RTT estimat folosind algoritmul
Jacobson? Utilizai =0.9.
31. O main TCP trimite cadre de 65535 octei pe un canal de 1 Gbps pentru care ntrzierea pe
un singur sens este de 10 ms. Care este productivitatea maxim care poate fi atins? Care este
eficiena liniei?
32. Care este cea mai mare vitez a liniei la care o main gazd poate transmite pachete TCP de
1500 octei cu un timp de via care poate fi de maxim 120 sec fr ca numrul de secven s
se repete? Luai n considerare suprancrcarea de la TCP, IP i Ethernet. Presupunei c se
pot transmite continuu cadrele Ethernet.
33. ntr-o reea care are dimensiunea maxim a TPDU-urilor de 128 octei, timpul maxim de via
al unui TPDU de 30 sec i numrul de secven de 8 bii, care este rata maxim de date per conexiune?
34. S presupunem c msurai timpul necesar recepionrii unui TPDU. Atunci cnd apare o
ntrerupere, se citete timpul sistem n milisecunde. Cnd TPDU-ul este complet prelucrat, se
citete din nou timpul sistem. S-au nregistrat 0 ms de 270000 de ori i 1 de 730000 de ori. Care
este timpul de recepie al unui TPDU?

518

NIVELUL TRANSPORT

CAP. 6

35. Un procesor execut instruciuni la o vitez de 1000 MIPS. Informaia poate fi copiat cte 64
de bii odat, fiecare copiere a unui cuvnt costnd zece instruciuni. Dac un pachet recepionat trebuie s fie copiat de patru ori, poate sistemul s fac fa unei linii de 1 Gbps? Pentru a
simplifica, presupunem c toate instruciunile, inclusiv acelea de citire/scriere din memorie, ruleaz la viteza maxim de 1000 MIPS.
36. Pentru a evita problema revenirii numerelor de secven la valori iniiale n timp ce exist nc
pachete vechi, s-ar putea utiliza numere de secven pe 64 de bii. Cu toate acestea, teoretic, un
cablu optic poate opera la 75 Tbps. Care este durata maxim de via pe care trebuie s o aib
un pachet pentru ca viitoarele reele de 75 Tbps s nu se loveasc de aceeai problem a revenirii numerelor de secven chiar i n cazul reprezentrii lor pe 64 bii? Presupunei, ca i TCPul, c fiecare octet are propriul su numr de secven.
37. Dai un avantaj al RPC pe UDP fa de TCP tranzacional. Dai un avantaj al T/TCP fa de RPC.
38. n fig. 6-40(a), vedem c sunt necesare 9 pachete pentru a realiza RPC-ul. Exist situaii n care
sunt necesare exact 10 pachete?
39. n seciunea 6.6.5 am calculat c o linie gigabit livreaz unei maini gazd 80000 de pachete pe
secund, permindu-i doar 6250 de instruciuni pentru a prelucra un pachet i lsnd doar jumtate din capacitatea procesorului pentru aplicaii. Acest calcul presupune un pachet de 1500
octei. Refacei calculul pentru pachetele ARPANET de dimensiune de 128 octei. n ambele
cazuri, presupunei c dimensiunile pachetelor date includ toate suprancrcrile.
40. Pentru o reea care opereaz la 1 Gbps pe o distan de 4000 km, factorul limitator nu este dat
de lrgimea de band, ci de ntrziere. Considerm un MAN cu sursa i destinaia situate n
medie la 20 km una de cealalt. La ce vitez de date ntrzierea circuitului dus-ntors datorat
vitezei luminii egaleaz ntrzierea de transmisie pentru un pachet de 1 Koctet?
41. Calculai produsul dintre ntrziere i limea de band pentru urmtoarele reele: (1) T1 (1,5
Mbps), (2) Ethernet (10 Mbps), (3) T3 (45 Mbps) i (4) STS-3 (155 Mbps). Presupunei RTT
de 100 ms. Amintii-v ca antetul TCP-lui are 16 bii rezervai pentru Dimensiunea Ferestrei.
Care sunt implicaiile din punctul de vedere al calculelor voastre?
42. Care este produsul dintre ntrziere i limea de band pentru un canal de 50 Mbps pe un satelit geostaionar? Dac pachetele sunt toate de 1500 de octei (incluznd suprancrcarea), ct
de mare ar trebui s fie fereastra n pachete?
43. Serverul de fiiere din fig. 6-6 este departe de a fi perfect i i-ar fi folositoare cteva mbuntiri. Facei urmtoarele modificri:
a) Dai clientului un al treilea argument care specific un interval de octei.
b) Adugai un flag w de client care permite fiierului s fie scris pe server.
44. Modificai programul din fig. 6-20 pentru a asigura revenirea din erori. Adugai un nou tip de
pachet, reset, care poate ajunge doar dup ce conexiunea a fost deschis de ambele pri i n-a
fost nchis de niciuna. Acest eveniment, care are loc simultan la ambele capete ale conexiunii,
indic faptul c orice pachet care era n tranzit a fost sau distrus, sau livrat, n orice caz el
nemaiaflndu-se n subreea.

SEC. 6.8

PROBLEME

519

45. Scriei un program care simuleaz controlul tampoanelor ntr-o entitate transport, utiliznd un
flux de control cu fereastr glisant i nu un control al fluxului cu credite, ca n fig. 6-20. Lsai
procesele de pe nivelul superior s deschid conexiuni, s trimit date i s nchid conexiuni n
mod aleatoriu. Pentru a pstra programul ct mai simplu, facei ca toat informaia s cltoreasc doar de la maina A la maina B i deloc n sens invers. Experimentai cu diferite strategii de alocare a tampoanelor la nivelul mainii B, ca, de exemplu, tampoane dedicate unei
anume conexiuni fa de tampoane preluate dintr-un depozit comun i msurai productivitatea total atins n ambele cazuri.
46. Proiectai i implementai un sistem de discuii care permite mai multor grupuri de utilizatori s
discute. Coordonatorul discuiilor se afl la o adres de reea bine cunoscut, folosete UDP
pentru comunicarea cu clienii de discuii, seteaz serverele de discuii pentru fiecare sesiune de
discuii, i menine un director de sesiuni de discuii. Este un server de discuii pentru fiecare sesiune de discuii. Un server de discuii folosete TCP pentru comunicaie cu clieni. Un client de
discuii permite utilizatorilor s porneasc, s intre sau s ias dintr-o sesiune de discuii. Proiectai i implementai codul pentru coordonator, server i client.

7
NIVELUL APLICAIE

Dup ce am epuizat toate preliminariile putem aborda nivelul unde pot fi gsite toate aplicaiile.
Nivelurile de sub nivelul aplicaie servesc la asigurarea unui transport sigur, dar nu ndeplinesc nici o
funcie concret pentru utilizatori. n acest capitol vom studia cteva aplicaii reale.
Totui, chiar i la nivelul aplicaie, apare necesitatea unor protocoale-suport care s permit
funcionarea aplicaiilor reale. nainte de a ncepe studiul aplicaiilor, ne vom ocupa de unul dintre
acestea. Subiectul n discuie este DNS, care se ocup de conveniile de nume n Internet. Dup aceea vom examina trei aplicaii reale: pota electronic, World Wide Web (rom.: reea de ntindere
planetar) i, n final, multimedia.

7.1 DNS - SISTEMUL NUMELOR DE DOMENII


Cu toate c teoretic programele ar putea s se refere la sistemele gazd, la cutiile potale i la alte
resurse prin adresa lor de reea (de exemplu prin adresa IP), aceste adrese sunt greu de memorat de
ctre oameni. De asemenea, n trimiterea de pot electronic la tana@128.111.24.41 ar nsemna c
dac furnizorul de servicii Internet sau organizaia Tanei mut serverul de pot pe o main diferit, cu o adres IP diferit, adresa ei de e-mail se va schimba. De aceea au fost introduse nume ASCII
pentru a separa numele mainilor de adresele mainilor. n acest fel, adresa Tanei ar putea fi ceva de
genul tana@art.ucsb.edu. Cu toate acestea, reeaua nelege numai adrese numerice, deci este necesar un mecanism care s converteasc irurile ASCII n adrese de reea. n seciunile urmtoare se
va studia cum este realizat aceast conversie n Internet.

521

522

NIVELUL APLICAIE

CAP. 7

nc de la ARPANET exista un fiier host.txt care cuprindea toate sistemele gazd i adresele lor
IP. n fiecare noapte, toate gazdele l preluau de la situl unde era pstrat. Pentru o reea format din
cteva sute de maini mari, cu divizarea timpului, aceast abordare era destul de rezonabil.
Totui, atunci cnd la reea au fost conectate mii de staii de lucru, toi i-au dat seama c aceast
abordare nu putea s funcioneze la nesfrit. n primul rnd dimensiunea fiierului ar deveni prea
mare. Cu toate acestea i chiar mai important, conflictele de nume de sisteme gazd ar aprea n
permanen dac nu ar fi administrate centralizat, ceva de negndit ntr-o reea internaional de
dimensiuni uriae din cauza ncrcrii i a latenei. Pentru a rezolva aceste probleme, a fost inventat
DNS (Domain Name System - Sistemul numelor de domenii).
Esena DNS-ului const ntr-o schem ierarhic de nume de domenii i a unui sistem de baze de
date distribuite pentru implementarea acestei scheme de nume. n principal este utilizat pentru a
pune n coresponden numele sistemelor gazd i adresele destinaiilor de e-mail cu adresele IP,
dar poate fi utilizat i pentru alte scopuri. DNS este definit n RFC-urile 1034 i 1035.
Foarte pe scurt, DNS este utilizat dup cum urmeaz. Pentru a stabili corespondena dintre un
nume i o adres IP, programul de aplicaie apeleaz o procedur de bibliotec numit resolver,
transferndu-i numele ca parametru. Putem vedea un exemplu de resolver, gethostbyname, n fig. 66. Resolver-ul trimite un pachet UDP la serverul DNS local, care caut numele i returneaz adresa
IP ctre resolver, care o returneaz apelantului. narmat cu adresa IP, programul poate stabili o conexiune TCP cu destinaia sau i poate trimite pachete UDP.

7.1.1

Spaiul de nume DNS

Administrarea unui volum mare de nume n permanent schimbare nu este o problem prea
uoar. n sistemul potal, administrarea numelor este realizat impunnd ca pe o scrisoare s se
specifice (implicit sau explicit) ara, statul sau provincia, oraul, strada i restul adresei destinatarului.
Utiliznd o astfel de adresare ierarhic, nu exist nici o confuzie ntre Marvin Anderson de pe Main
St. din White Plains, N.Y. i Marvin Anderson de pe Main St. din Austin, Texas. DNS lucreaz n
acelai mod.
Conceptual, Internetul este divizat n peste 200 domenii de nivel superior, fiecare domeniu cuprinznd mai multe sisteme gazd. Fiecare domeniu este partiionat n subdomenii i acestea sunt, la
rndul lor, partiionate .a.m.d. Toate aceste domenii pot fi reprezentate ca un arbore, aa cum se
arat n fig. 7-1. Frunzele arborelui reprezint domenii care nu au subdomenii (dar, bineneles, conin sisteme). Un domeniu frunz poate conine un singur sistem gazd sau poate reprezenta o firm,
deci s conin mii de sisteme gazd.
Domeniile de pe primul nivel se mpart n dou categorii: generice i de ri. Domeniile generice
sunt com (comercial), edu (instituii educaionale), gov (guvernul federal al SUA), int (organizaii
internaionale), mil (forele armate ale SUA), net (furnizori Internet) i org (organizaii nonprofit).
Domeniile de ri includ o intrare pentru fiecare ar, cum se definete n ISO 3166.
n noiembrie 2000, ICANN a aprobat patru domenii de nivel superior noi, de interes general, i
anume, biz (afaceri), info (informaii), name (nume de persoane), i pro (profesii, ca de exemplu doctori sau avocai). n plus, au fost introduse trei domenii de nivel superior cu caracter specializat, cerute de ctre anumite industrii. Acestea sunt aero (industria aerospaial), coop (cooperative), i
museum (muzee). n viitor vor fi adugate alte domenii superioare.

SEC. 7.1

DNS - SISTEMUL NUMELOR DE DOMENII

523

Fig. 7-1. O poriune a spaiului numelor de domenii din Internet.

Pe de alt parte, pe msur ce Internetul devine mai comercial, el devine i mai discutabil. S lum domeniul pro, de exemplu, care a fost proiectat pentru profesionitii atestai. Dar cine este un
profesionist? i de cine este atestat? Dar cum rmne cu fotografii, profesorii de pian, magicienii,
instalatorii, frizerii, exterminatorii, artitii de tatuaje, mercenarii i prostituatele? Sunt acestea meserii i sunt acceptabile pentru domeniile pro? i daca da, cine atest diveri practicieni?
n general, obinerea unui domeniu de nivel secundar, ca de exemplu nume-al-companiei.com,
este uoar. Pur i simplu este necesar doar consultarea serviciului de nregistrare al nivelului superior corespunztor (com n acest caz) pentru a vedea dac numele dorit este disponibil i nu aparine altcuiva. Dac nu sunt probleme, solicitantul pltete o mic tax anual i primete numele.
Pn acum, cam toate cuvintele comune (din englez) au fost luate n domeniul com. ncercai nume de articole casnice, animale, plante, pri ale corpului etc. Aproape toate sunt luate.
Fiecare domeniu este identificat prin calea n arbore de la el la domeniul (fr nume) rdcin.
Componentele sunt separate prin puncte (pronunat dot). Astfel, departamentul tehnic de la Sun
Microsystems ar putea fi eng.sun.com, n loc de numele n stil UNIX /com/sun/eng. De notat c
aceast numire ierarhic face ca eng.sun.com s nu intre n conflict cu posibila utilizare a lui eng din
eng.yale.edu, care ar putea fi folosit pentru departamentul de limba englez de la Yale.
Numele de domenii pot fi absolute sau relative. Un nume absolut de domeniu se termin cu un
punct (de exemplu, eng.sun.com.), n timp ce unul relativ nu. Numele relative trebuie interpretate n
context pentru a le determina nelesul adevrat. n ambele cazuri, un nume de domeniu se refer la
un anumit nod din arbore i la toate nodurile de sub el.
Numele de domenii nu fac distincie ntre litere mici i litere mari, astfel edu, Edu, sau EDU nseamn acelai lucru. Componentele numelor pot avea o lungime de cel mult 63 caractere, iar ntreaga cale de nume nu trebuie s depeasc 255 de caractere.
n principiu, domeniile pot fi inserate n arbore n dou moduri diferite. De exemplu, cs.yale.edu
ar putea la fel de bine s fie inclus n domeniul rii us ca cs.yale.ct.us. n practic, totui, aproape
toate organizaiile din Statele Unite sunt repartizate dup criteriul generic, iar aproape toate din
afara Statelor Unite fac parte din domeniul rii lor. Nu exist nici o regul mpotriva nregistrrii
sub dou domenii de nivel superior, ns puine organizaii n afar de cele multinaionale o fac (de
exemplu, sony.com i sony.nl).
Fiecare domeniu controleaz cum sunt alocate domeniile de sub el. De exemplu, Japonia are
domeniile ac.jp i co.jp echivalente cu edu i com. Olanda nu face nici o distincie i pune toate orga-

524

NIVELUL APLICAIE

CAP. 7

nizaiile direct sub nl. Astfel urmtoarele trei nume sunt toate departamente de calculatoare (computer science) din universiti:
1.
2.
3.

cs.yale.edu (Universitatea Yale din Statele Unite).


cs.vn.nl (Vrije Universiteit n Olanda).
cs.keio.ac.jp (Universitatea Keio din Japonia).

Pentru a crea un nou domeniu, se cere permisiunea domeniului n care va fi inclus. De exemplu,
dac un grup VLSI de la Yale dorete s fie cunoscut ca vlsi.cs.yale.edu, acesta are nevoie de permisiunea celui care administreaz cs.yale.edu. Similar, dac este acreditat o nou universitate, s zicem Universitatea din Northern South Dakota, ea trebuie s cear administratorului domeniului edu s-i atribuie unsd.edu. n acest mod sunt evitate conflictele de nume i fiecare domeniu poate ine evidena
tuturor subdomeniilor sale. Odat ce un nou domeniu a fost creat i nregistrat, el poate crea subdomenii, cum ar fi cs.unsd.edu, fr a cere permisiunea de la cineva din partea superioar a arborelui.
Atribuirea de nume respect graniele organizaionale, nu pe cele ale reelelor fizice. De exemplu, dac departamentele de tiina calculatoarelor i de inginerie electric sunt localizate n aceeai
cldire i folosesc aceeai reea local, ele pot avea totui domenii distincte. Similar, dac departamentul de tiina calculatoarelor este mprit n dou cldiri (Babbage Hall i Turing Hall), toate
sistemele gazd din ambele cldiri aparin aceluiai domeniu.

7.1.2

nregistrri de resurse

Fiecrui domeniu, fie c este un singur calculator gazd, fie un domeniu de nivel superior, i poate fi asociat o mulime de nregistrri de resurse (resource records). Pentru un singur sistem gazd,
cea mai obinuit nregistrare de resurs este chiar adresa IP, dar exist multe alte tipuri de nregistrri de resurse. Atunci cnd un resolver trimite un nume de domeniu ctre un DNS, ceea ce va
primi ca rspuns sunt nregistrrile de resurse asociate acelui nume. Astfel, adevrata funcie a DNS
este s realizeze corespondena dintre numele de domenii i nregistrrile de resurse.
O nregistrare de resurs este un 5-tuplu. Cu toate c, din raiuni de eficien, nregistrrile de resurse sunt codificate binar, n majoritatea expunerilor ele sunt prezentate ca text ASCII, cte o nregistrare de resurs pe linie. Formatul pe care l vom utiliza este urmtorul:
Nume_domeniu Timp_de_via Clas Tip Valoare

Nume_domeniu (domain_name) precizeaz domeniul cruia i se aplic aceast nregistrare. n


mod normal exist mai multe nregistrri pentru fiecare domeniu i fiecare copie a bazei de date
pstreaz informaii despre mai multe domenii. Acest cmp este utilizat ca cheie de cutare primar
pentru a satisface cererile. Ordinea nregistrrilor n baza de date nu este semnificativ.
Cmpul Timp_de_via (time_to_live) d o indicaie despre ct de stabil este nregistrarea. Informaia care este foarte stabil are asigurat o valoare mare, cum ar fi 86400 (numrul de secunde
dintr-o zi). Informaiei instabile i este atribuit o valoare mic, cum ar fi 60 (1 minut). Vom reveni la
acest punct mai trziu, cnd vom discuta despre utilizarea memoriei ascunse.
Al treilea cmp dintr-o nregistrare de resurs este Clasa (class). Pentru informaiile legate de Internet este tot timpul IN. Pentru alte informaii pot fi folosite alte coduri, ns n practic acestea se
ntlnesc rar.
Cmpul Tip (type) precizeaz tipul nregistrrii. Cele mai importante tipuri sunt prezentate n
fig. 7-2.

SEC. 7.1
Tip
SOA
A
MX
NS
CNAME
PTR
HINFO
TXT

DNS - SISTEMUL NUMELOR DE DOMENII


Semnificaie
Start autoritate
Adresa IP a unui sistem gazd
Schimb de pot
Server de Nume
Nume canonic
Pointer
Descriere sistem gazd
Text

525

Valoare
Parametrii pentru aceast zon
ntreg pe 32 de bii
Prioritate, domeniu dispus s accepte pot electronic
Numele serverului pentru acest domeniu
Numele domeniului
Pseudonim pentru adresa IP
Unitate central i sistem de operare n ASCII
Text ASCII neinterpretat

Fig. 7-2. Principalele tipuri de nregistrri de resurse DNS.

O nregistrare SOA furnizeaz numele sursei primare de informaii despre zona serverului de
nume (descris mai jos), adresa de e-mail a administratorului, un identificator unic i diveri indicatori i contoare de timp.
Cel mai important tip de nregistrare este nregistrarea A (adres). Ea pstreaz adresa IP de 32
de bii a unui sistem gazd. Fiecare sistem gazd Internet trebuie s aib cel puin o adres IP, astfel
nct alte maini s poat comunica cu el. Unele sisteme gazd au dou sau mai multe conexiuni n
reea, caz n care vor avea cte o nregistrare de tip A pentru fiecare conexiune (i astfel pentru fiecare adres IP).
Urmtoarea ca importan este nregistrarea MX. Aceasta precizeaz numele sistemului gazd
pregtit s accepte pota electronic pentru domeniul specificat. El este folosit deoarece nu toate mainile sunt pregtite s accepte pota electronic pentru domeniul specificat. Dac cineva vrea s-i trimit un e-mail, de exemplu, lui bill@microsoft.com, sistemul care trimite trebuie s gseasc un server
la microsoft.com dispus s accepte e-mail. nregistrarea MX poate s furnizeze aceast informaie.
nregistrrile NS specific serverele de nume. De exemplu, fiecare baz de date DNS are n mod
normal o nregistrare NS pentru fiecare domeniu de pe primul nivel, astfel nct, de exemplu, pota
electronic s poat fi trimis n zone ndeprtate ale arborelui de nume. Vom reveni la acest aspect
mai trziu.
nregistrrile CNAME permit crearea pseudonimelor. De exemplu, o persoan familiarizat cu
atribuirea numelor n Internet, care dorete s trimit un mesaj unei persoane al crei nume de conectare la un sistem de calcul din departamentul de calculatoare de la M.I.T. este paul poate presupune c adresa paul@cs.mit.edu este corect. De fapt aceast adres nu este corect, deoarece domeniul departamentului de calculatoare de la M.I.T. este lcs.mit.edu. Totui, ca un serviciu pentru
cei care nu tiu acest lucru, M.I.T. poate crea o intrare CNAME, pentru a dirija persoanele i programele n direcia corect. O astfel de intrare poate fi:
cs.mit.edu 86400 IN CNAME lcs.mit.edu

Ca i CNAME, PTR se refer la un alt nume. Totui, spre deosebire de CNAME, care este n realitate numai o macro-definiie, PTR este un tip de date DNS a crui interpretare depinde de contextul n care este utilizat. n practic este aproape ntotdeauna utilizat pentru asocierea unui nume cu o
adres IP, pentru a permite cutarea adresei IP i obinerea numelui mainii corespunztoare. Acestea se numesc cutri inverse (reverse lookups).
nregistrrile HINFO permit aflarea tipului de main i de sistem de operare crora le corespunde domeniul. n sfrit, nregistrrile TXT permit domeniilor s se autoidentifice ntr-un mod
arbitrar. Aceste dou tipuri de nregistrri sunt introduse pentru uurina utilizatorului. Nici una

526

NIVELUL APLICAIE

CAP. 7

dintre ele nu este necesar, astfel nct programele nu pot conta pe obinerea lor (i probabil c dac
le obin nu le pot trata).
n final ajungem la cmpul Valoare. Acest cmp poate fi un numr, un nume de domeniu sau un
ir ASCII. Semantica depinde de tipul de nregistrare. O scurt descriere a cmpurilor Valoare pentru fiecare dintre principalele tipuri de nregistrri este dat n fig. 7-2.
Un exemplu de informaie ce se poate gsi n baza de date DNS a unui domeniu este prezentat
n fig. 7-3. Aceast figur prezint o parte (semi-ipotetic) a bazei de date pentru domeniul cs.vu.nl
prezentat n fig. 7-1. Baza de date conine apte tipuri de nregistrri de resurse.
;Baza de date pentru cs.vu.nl
cs.vu.nl.
86400 IN SOA
cs.vu.nl.
86400 IN TXT
cs.vu.nl.
86400 IN TXT
cs.vu.nl.
86400 IN MX
cs.vu.nl.
86400 IN MX
flits.cs.vu.nl. 86400 IN HINFO
flits.cs.vu.nl. 86400 IN A
flits.cs.vu.nl. 86400 IN A
flits.cs.vu.nl. 86400 IN MX
flits.cs.vu.nl. 86400 IN MX
flits.cs.vu.nl. 86400 IN MX
www.cs.vu.nl. 86400 IN CNAME
ftp.cs.vu.nl.
86400 IN CNAME
rowboat
IN A
IN MX
IN MX
IN HINFO

star boss (9527, 7200, 7200, 241920, 86400)


Divisie Wiskunde en Informatica.
Vrije Universiteit Amsterdam.
1 zephyr.cs.vu.nl.
2 top.cs.vu.nl.
Sun Unix
130.37.16.112
192.31.231.165
1 flits.cs.vu.nl.
2 zephyr.cs.vu.nl.
3 top.cs.vu.nl.
star.cs.vu.nl.
zephyr.cs.vu.nl.
130.37.56.201
1 rowboat
2 zephyr
Sun Unix

little-sister

IN A
IN HINFO

130.37.62.23
Mac MacOS

laserjet

IN A
IN HINFO

192.31.231.216
HP Laserjet IIISi Proprietary

Fig. 7-3. O parte dintr-o posibil baz de date DNS pentru cs.vu.nl.

Prima linie necomentat din fig. 7-3 d cteva informaii de baz despre domeniu, de care nu ne
vom ocupa. Urmtoarele dou linii furnizeaz informaii textuale despre amplasarea domeniului.
Urmeaz dou intrri care specific primul i al doilea loc unde se ncearc s se livreze pota electronic trimis pentru persoana@cs.vu.nl. Mai nti se ncearc trimiterea la maina zephyr. Dac
aceasta eueaz, atunci trebuie s se ncerce la top.
Dup o linie liber, adugat numai pentru claritate, urmeaz linii care spun c flits este o staie
de lucru Sun care lucreaz sub UNIX i se specific ambele sale adrese IP. Urmeaz trei variante de
tratare a potei electronice trimise la flits.cs.vu.nl. Prima alegere este, n mod natural, chiar flits, iar
dac nu se reuete, se ncearc la zephyr i apoi la top. Urmeaz un pseudonim, www.cs.vu.nl, astfel
ca aceast adres s poat fi utilizat fr a specifica o anumit main. Crearea acestui pseudonim
permite ca cs.vu.nl s schimbe serverul www fr invalidarea adresei folosite n mod curent pentru
adresarea lui. Un argument similar este valabil pentru ftp.cs.vu.nl.
Urmtoarele patru linii conin o nregistrare tipic pentru o staie de lucru, n acest caz rowboat.
cs.vu.nl. Informaia furnizeaz adresa IP, destinaia primar i secundar pentru pota electronic i

SEC. 7.1

DNS - SISTEMUL NUMELOR DE DOMENII

527

informaii despre main. Urmeaz o intrare pentru un sistem non-UNIX care nu este capabil s
primeasc pota el nsui, urmat de o intrare pentru o imprimant laser conectat la Internet.
Ceea ce nu este artat (i nu exist n acest fiier) sunt adresele IP utilizate pentru a cuta adresele domeniilor de pe primul nivel. Acestea sunt necesare pentru a cuta sistemele gazd aflate la distan, dar, deoarece ele nu fac parte din domeniul cs.vu.nl, nu se gsesc n acest fiier. Ele sunt furnizate de serverele rdcin ale cror adrese IP sunt prezentate n fiierul de configurare a sistemului
i sunt ncrcate n memoria ascuns DNS atunci cnd este pornit serverul DNS. Exist cam o duzin de servere rdcin n lume i fiecare tie adresele IP ale tuturor celorlalte servere de domenii de
nivel superior. Astfel, dac o main tie adresa IP a cel puin unuia din serverele rdcin, el poate
cuta orice nume DNS.

7.1.3

Servere de nume

Teoretic, un singur server de nume poate conine ntreaga baz de date DNS i poate s rspund tuturor cererilor. n practic, acest server poate fi att de ncrcat, nct s devin de neutilizat. n
afar de aceasta, dac se defecteaz, va fi afectat ntregul Internet.

Fig. 7-4. O parte din spaiul numelor DNS prezentnd mprirea n zone.

Pentru a evita problemele asociate cu existena unei singure surse de informaie, spaiul de nume
DNS este mprit n zone care nu se suprapun. O posibil cale de mprire a spaiului de nume din
fig. 7-1 este artat n fig. 7-4. Fiecare zon conine cte o parte a arborelui precum i numele servere-lor care pstreaz informaia autorizat despre acea zon. n mod normal, o zon va avea un server de nume primar, care preia informaia dintr-un fiier de pe discul propriu i unul sau mai multe
servere de nume secundare, care iau informaiile de pe serverul primar. Pentru a mbunti fiabilitatea, unele servere pentru o zon pot fi plasate n afara zonei.
Plasarea limitelor unei zone este la latitudinea administratorului ei. Aceast decizie este luat n
mare parte bazndu-se pe cte servere de nume sunt dorite i unde s fie plasate. De exemplu, n fig.
7-4, Yale are un server pentru yale.edu care administreaz eng.yale.edu, dar nu i cs.yale.edu, care este
o zon separat cu propriile servere de nume. O astfel de decizie poate fi luat atunci cnd un departament ca cel de englez nu dorete s aib propriul server de nume, n schimb departamentul de
calculatoare dorete. n consecin cs.yale.edu este o zon separat, n timp ce zona eng. yale.edu nu
este separat.

528

NIVELUL APLICAIE

CAP. 7

Atunci cnd un resolver are o cerere referitoare la un nume de domeniu, el transfer cererea
unuia din serverele locale de nume. Dac domeniul cutat este sub jurisdicia serverului de nume,
cum ar fi ai.cs.yale.edu, care este sub cs.yale.edu, el rentoarce nregistrri de resurse autorizate.
O nregistrare autorizat (authoritative record) este cea care vine de la autoritatea care administreaz nregistrarea i astfel este ntotdeauna corect. nregistrrile autorizate se deosebesc de nregistrrile din memoria ascuns, care pot fi expirate.
Dac, totui, domeniul se afl la distan, iar local nu este disponibil nici o informaie despre
domeniul cerut, atunci serverul de nume trimite un mesaj de cerere la serverul de nume de pe primul nivel al domeniului solicitat. Pentru a clarifica acest proces s considerm exemplul din fig. 7-5.
Aici resolverul de pe flits.cs.vu.nl dorete s tie adresa IP a sistemului gazd linda.cs.yale.edu. n pasul 1 trimite o cerere la serverul de nume local cs.vu.nl. Aceast cerere conine numele de domeniu
cutat, tipul (A) i clasa (IN).

Fig. 7-5. Modul n care un resolver caut un nume aflat la distan, n opt pai.

S presupunem c serverul local de nume nu a avut niciodat o cerere pentru acest domeniu i
nu tie nimic despre el. Poate solicita informaii de la cteva servere de nume din apropriere, dar
dac nici unul dintre ele nu tie, va trimite un pachet UDP la serverul pentru edu specificat n baza
de date (vezi fig. 7-5), edu-server.net. Este puin probabil ca acest server s cunoasc adresa
linda.cs.yale.edu i probabil nu cunoate nici adresa cs.yale.edu, dar trebuie s cunoasc adresele fiilor
din subarbore, astfel c va transmite cererea la serverul de nume yale.edu (pas 3). Acesta va transmite cererea mai departe ctre cs.yale.edu (pas 4), care trebuie s aib nregistrrile autorizate de resurse. Deoarece fiecare cerere este de la un client la un server, nregistrarea de resurs cerut parcurge
paii 5 pn la 8.
Odat ce aceste nregistrri de resurse ajung napoi la serverul de nume cs.vu.nl, ele vor fi depuse
n memoria ascuns, pentru a fi folosite ulterior. Totui, aceast informaie nu este autorizat, deoarece orice schimbare fcut la cs.yale.edu nu se va propaga spre toate serverele care au folosit-o. Din
acest motiv intrrile n memoria ascuns nu ar trebui s aib via prea lung. Acesta este motivul
pentru care cmpul Timp_de_via este inclus n fiecare nregistrare de resurs. El informeaz
serverele de nume aflate la distan ct timp s menin nregistrrile n memoria ascuns. Dac o
anumit main are de ani de zile aceeai adres IP, aceast informaie ar putea fi pstrat timp de o
zi. Pentru informaii mai volatile este mai sigur ca nregistrrile s fie eliminate dup cteva secunde
sau un minut.
De menionat c metoda de interogare descris aici este cunoscut ca metoda de interogare recursiv (recursive query), deoarece fiecare server care nu are informaia cerut o caut n alt parte
i raporteaz. Este posibil i o alt variant. n acest caz, atunci cnd o cerere nu poate fi rezolvat
local, cererea eueaz, dar este ntors numele urmtorului server de pe calea ce trebuie ncercat.
Unele servere nu implementeaz interogarea recursiv i ntorc ntotdeauna numele urmtorului
server la care s se ncerce.

SEC. 7.2

529

POTA ELECTRONIC

De asemenea merit menionat faptul c atunci cnd un client DNS nu reuete s primeasc un
rspuns nainte de expirarea timpului de cutare, data viitoare va ncerca un alt server. Se presupune
c serverul este probabil nefuncional, nu c cererea sau rspunsul s-au pierdut.
Dei DNS este foarte important pentru funcionarea corect a Internetului, el nu face dect s
pun n coresponden nume simbolice de maini cu adresele lor IP. El nu ajut la localizarea oamenilor, resurselor, serviciilor sau obiectelor n general. Pentru localizarea acestora a fost definit un alt
serviciu director, numit LDAP (Lightweight Directory Access Protocol, rom.: Protocol de acces la
cataloage simplificate). El este o versiune simplificat a serviciului de cataloage OSI X.500, descris n
RFC 2251. El organizeaz informaia sub form de arbore i permite cutri pe diferite componente.
Poate fi privit ca o carte de telefon obinuit (de tipul pagini albe). Nu o s intrm n amnunte
referitoare la el n aceast carte, ns putei gsi mai multe informaii n (Weltman i Dahbura, 2000).

7.2 POTA ELECTRONIC


Pota electronic, sau e-mail, cum este cunoscut de ctre numeroii si admiratori, exist de
peste dou decenii. nainte de 1990, era folosit n special n mediul academic. n timpul anilor
1990, a devenit cunoscut publicului larg i a crescut exponenial pn la punctul n care numrul
de mesaje electronice trimise pe zi este acum mult mai mare dect numrul de scrisori tradiionale
(adic pe hrtie).
E-mail-ul, ca majoritatea celorlalte forme de comunicare, are conveniile i stilurile sale proprii.
n particular, el este foarte neprotocolar i are un prag de folosire foarte sczut. Oamenii care n-ar
visa niciodat s sune la telefon sau chiar s scrie o scrisoare unei Persoane Foarte Importante nu
ezit o secund s trimit un e-mail neglijent.
E-mail-ul este plin de jargoane precum BTW (By The Way - apropo), ROTFL (Rolling On The
Floor Laughing a se tvli pe jos de rs) i IMHO (In My Humble Opinion - dup umila mea prere). Muli oameni folosesc n e-mail-urile lor cteva caractere ASCII numite smileys sau emoticons (faa zmbitoare i faa trist). Cteva din cele mai interesante sunt reproduse n fig. 7-6. Pentru
cei mai muli, rotirea crii cu 90 de grade n sensul acelor de ceasornic, le va face mai clare. Pentru o
crticic cu peste 650 smileys, vedei (Sanderson i Dougherty, 1993).
Smiley
:-)
:-(
:-|
;-)
:-(0)
:-(*)

Semnificaie
Sunt fericit
Sunt trist, suprat
Sunt apatic
Fac cu ochiul
ip
Vomit

Smiley
=|:-)
=):-)
*<:-)
<:-(
(-:
:-)X

Semnificaie
Abe Lincoln
Unchiul Sam
Mo Crciun
Dunce
Australian
Om cu papion

Smiley
:+)
:-))
:-{)
#:-)
8-)
C:-)

Semnificaie
Nas mare
Gu
Musta
Pr ncurcat
Poart ochelari
Cap mare

Fig. 7-6. Cteva smileys. Nu vor fi n examenul final :-)

Primele sisteme de pot electronic constau pur i simplu din protocoale de transfer de fiiere,
cu convenia ca prima linie a fiecrui mesaj (adic fiier) s conin adresa receptorului. Cu timpul,
limitrile acestei abordri au devenit din ce n ce mai evidente. O parte dintre neajunsuri erau:

530

NIVELUL APLICAIE

1.
2.

3.
4.

5.

6.

CAP. 7

Trimiterea unui mesaj ctre un grup de persoane era incomod. Managerii au nevoie adesea
de aceast facilitate pentru a trimite note i rapoarte tuturor subordonailor.
Mesajele nu aveau structur intern, fcnd astfel dificil prelucrarea lor cu ajutorul calculatorului. De exemplu, dac un mesaj trimis mai departe era inclus n corpul altui mesaj, extragerea prii incluse din mesajul primit era dificil.
Iniiatorul (transmitorul) nu tia niciodat dac mesajul a ajuns sau nu.
Dac cineva avea n plan s plece n cltorie de afaceri pentru mai multe sptmni i dorea ca toat pota primit n acest timp s fie preluat de ctre secretar, acest lucru nu era
uor de realizat.
Interfaa cu utilizatorul era slab integrat cu sistemul de transmisie, cernd utilizatorilor ca nti s editeze un fiier, apoi s prseasc editorul i s apeleze programul de
transfer de fiiere.
Nu era posibil transmiterea de mesaje care s conin o combinaie de text, desene, facsimil
i voce.

Pe msur ce s-a ctigat experien, au fost propuse sisteme de pot electronic mai complicate. n 1982 au fost publicate propunerile cu privire la e-mail ale ARPANET, sub numele de RFC
821 (protocolul de transmisie) i RFC 822 (formatul mesajelor). Revizii minore, RFC 2821 i RFC
2822, au devenit standarde Internet, totui toat lumea se refer la e-mail gndindu-se la RFC 822.
n 1984, CCITT a emis recomandarea X.400. Dup dou decenii de competiie, sistemele de
pot electronic bazate pe RFC 822 sunt larg rspndite, n timp ce acelea bazate pe X.400 au disprut. Modul n care un sistem ncropit de o mn de absolveni de tiina calculatoarelor a nvins un
standard internaional oficial, puternic susinut de ctre toate PTT-urile din lumea ntreag, de multe guverne i de o parte substanial a industriei calculatoarelor, ne aduce n minte povestea biblic a
lui David i Goliat.
Motivul succesului lui RFC822 nu este dat de faptul c ar fi att de bun, ci acela c X.400 a fost
att de slab proiectat i att de complex, nct nimeni nu l-ar putea implementa bine. Avnd de ales
ntre un sistem nesofisticat, dar care funcioneaz, cum este cel bazat pe RFC822 i sistemul de email X.400, presupus cu adevrat minunat, dar nefuncional, majoritatea organizaiilor l-au ales pe
primul. Poate c este i o lecie n spatele acestei poveti. De acea discuia noastr referitoare la email se va concentra asupra sistemului de e-mail din Internet.

7.2.1

Arhitectur i servicii

n aceast seciune vom furniza o prezentare de ansamblu a ceea ce pot face sistemele de pot
electronic i cum sunt ele organizate. Aceste sisteme constau de obicei din dou subsisteme: agenii-utilizator, care permit utilizatorilor s citeasc i s trimit scrisori prin pota electronic i agenii
de transfer de mesaje, care transport mesajele de la surs la destinaie. Agenii-utilizator sunt programe locale, care furnizeaz o metod de a interaciona cu sistemul de e-mail bazat pe comenzi,
meniuri sau grafic. Agenii de transfer de mesaje sunt, de regul, demoni de sistem, adic procese
care se execut n fundal. Sarcina lor este s transfere mesajele prin sistem.
n general, sistemele de pot electronic pun la dispoziie cinci funcii de baz. S aruncm o
privire asupra lor.
Compunerea se refer la procesul de creare a mesajelor i a rspunsurilor. Dei pentru corpul
mesajului poate fi folosit orice editor de texte, sistemul nsui poate acorda asisten la adresare i la

SEC. 7.2

POTA ELECTRONIC

531

completarea numeroaselor cmpuri antet ataate fiecrui mesaj. De exemplu, cnd se rspunde la
un mesaj, sistemul poate extrage adresa iniiatorului din mesajul primit i o poate insera automat n
locul potrivit din cadrul rspunsului.
Transferul se refer la deplasarea mesajului de la autor la receptor. n mare, aceasta necesit
stabilirea unei conexiuni la destinaie, sau la o main intermediar, emiterea mesajului i eliberarea
conexiunii. Sistemul de pot ar trebui s fac acest lucru singur, fr a deranja utilizatorul.
Raportarea se refer la informarea iniiatorului despre ce s-a ntmplat cu mesajul. A fost livrat?
A fost respins? A fost pierdut? Exist numeroase aplicaii n care confirmarea livrrii este important i poate avea chiar semnificaie juridic. (tii, domnule judector, sistemul meu de pot electronic nu e foarte de ncredere, aa c presupun c citaia electronic s-a pierdut pe undeva.)
Afiarea mesajelor primite este necesar pentru ca utilizatorii s-i poat citi pota. Uneori sunt
necesare conversii sau trebuie apelat un program de vizualizare special; de exemplu, dac mesajul
este un fiier PostScript, sau voce digitizat. Se mai ncearc uneori i conversii simple i formatri.
Dispoziia este pasul final i se refer la ceea ce face receptorul cu mesajul, dup ce l-a primit.
Posibilitile includ eliminarea sa nainte de a-l citi, aruncarea sa dup citire, salvarea sa .a.m.d. Ar
trebui de asemenea s fie posibil regsirea i recitirea de mesaje deja salvate, trimiterea lor mai
departe, sau procesarea lor n alte moduri.
n plus fa de aceste servicii de baz, unele sisteme de e-mail, n special cele interne companiilor, dispun de o gam variat de faciliti avansate. S menionm pe scurt cteva dintre ele. Cnd
utilizatorii se deplaseaz sau cnd sunt plecai pentru o perioad de timp, pot dori ca pota lor s fie
trimis acolo unde se gsesc, aa c sistemul ar trebui s fie capabil s fac acest lucru automat.
Majoritatea sistemelor permit utilizatorilor s-i creeze cutii potale (mailboxes) pentru a pstra
mesajele sosite. Sunt necesare comenzi de creare i distrugere a cutiilor potale, de inspectare a coninutului acestora, de inserare i de tergere de mesaje din cutii potale .a.m.d.
Managerii de companii au adesea nevoie s trimit un acelai mesaj fiecrui subordonat, client
sau furnizor. Acest lucru d natere ideii de list de pot (mailing list), care este o list de adrese de
pot electronic. Cnd un mesaj este trimis la lista de pot, copii identice ale sale sunt expediate
fiecruia dintre cei de pe list.
Alte caracteristici evoluate sunt copii la indigo, pot de prioritate mare, pot secret (criptat),
receptori alternativi, dac cel primar nu este disponibil, i posibilitatea de a permite secretarelor s
se ocupe de pota primit de efii lor.
Pota electronic este n prezent folosit pe scar larg n industrie, pentru comunicaie n cadrul
companiilor. Aceasta permite unor angajai, rspndii la distane mari unii de ceilali, chiar i peste
mai multe fusuri orare, s coopereze la proiecte complexe. Eliminnd majoritatea indiciilor cu privire
la funcie, vrst i gen, dezbaterile prin pota electronic tind s se concentreze asupra ideilor i nu a
statutului din cadrul organizaiei. Prin pota electronic, o idee sclipitoare a unui student la cursurile
de var poate avea un impact mai mare dect una stupid, venit de la un vicepreedinte executiv.
O idee fundamental n toate sistemele moderne de e-mail este distincia dintre plic i coninutul
su. Plicul ncapsuleaz mesajul. Conine toat informaia necesar pentru transportul mesajului, cum
ar fi destinaia, adresa, prioritatea, nivelul de securitate, toate acestea fiind distincte de mesajul n sine.
Agenii de transfer de mesaje folosesc plicul pentru rutare (dirijare), aa cum face i oficiul potal.
Mesajul din interiorul plicului conine dou pri: antetul i corpul. Antetul conine informaie
de control pentru agenii utilizator. Corpul mesajului se adreseaz n ntregime utilizatorului uman.
Plicurile i mesajele sunt ilustrate n fig. 7-7.

532

NIVELUL APLICAIE

CAP. 7

Fig. 7-7. Plicuri i mesaje. (a) pot clasic (b) pot electronic.

7.2.2

Agentul utilizator

Sistemele de pot electronic au, aa cum am vzut, dou pri eseniale: agenii-utilizator i
agenii de transfer de mesaje. n aceast seciune ne vom uita la agenii utilizator. Un agent utilizator
este de obicei un program (uneori numit cititor de pot) care accept o varietate de comenzi pentru
compunerea, primirea i rspunsul la mesaje, ct i pentru manipularea cutiilor potale. Unii ageniutilizator au o interfa sofisticat, dirijat prin meniuri sau icoane, care necesit un maus, n timp ce
altele accept comenzi de cte un caracter, date de la tastatur. Funcional ns, toi acetia sunt identici. Unele sisteme sunt dirijate prin meniuri sau icoane dau au i alternative mai scurte pe tastatur.

Trimiterea potei electronice


Pentru a trimite un mesaj prin pota electronic, un utilizator trebuie s furnizeze mesajul, adresa destinaie, i eventual ali civa parametri. Mesajul poate fi produs cu un editor de texte de sinestttor, cu un program de procesare de text sau, eventual, cu un editor de texte specializat, construit
n interiorul agentului utilizator. Adresa de destinaie trebuie s fie ntr-un format cu care agentul
utilizator s poat lucra. Muli ageni-utilizator solicit adrese de forma utilizator@adres-dns. Deoarece aceste lucruri au fost studiate anterior n acest capitol, nu vom relua materialul respectiv aici.

SEC. 7.2

POTA ELECTRONIC

533

Oricum, merit notat c exist i alte forme de adresare. n particular, adresele X.400 arat radical diferit de cele DNS. Ele sunt compuse din perechi de forma atribut = valoare, separate de bare
oblice. De exemplu:
/C=US/SP=MASSACHUSETTS/L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH/

Aceast adres specific o ar, un stat, o localitate, o adres personal i un nume obinuit (Ken
Smith). Sunt posibile multe alte atribute, astfel nct poi trimite mesaje cuiva al crui nume nu-l tii,
atta timp ct tii suficiente alte atribute (de exemplu, compania i funcia). Cu toate c adresele
X.400 sunt mult mai puin convenabile dect cele DNS, cele mai multe sisteme de pot electronic
permit folosirea de pseudonime (aliases, uneori numite i porecle) pentru obinerea numelor sau
adreselor de e-mail corecte ale unei persoane. n consecin, chiar i cu adresele de tip X.400, de
obicei nu este necesar scrierea n ntregime a acelor iruri ciudate.
Majoritatea sistemelor de e-mail accept liste de pot, astfel c un utilizator poate trimite, cu o
singur comand, un acelai mesaj tuturor persoanelor dintr-o list. Dac lista de pot este pstrat
local, agentul-utilizator poate pur i simplu s trimit cte un mesaj separat fiecruia dintre receptorii dorii. Dac lista este pstrat la distan, atunci mesajele vor fi expandate acolo. De exemplu,
dac un grup de admiratori de psri au o list de pot numit birders, instalat la meadowlark.
arizona.edu, atunci orice mesaj trimis la birders@meadowlark.arizona.edu va fi dirijat ctre Universitatea din Arizona i expandat acolo n mesaje individuale pentru toi membrii listei de pot, oriunde
ar fi ei n lume. Utilizatorii acestei liste de pot nu pot determina c aceasta este o list de adrese.
Ar putea fi la fel de bine cutia potal personal a Prof. Gabriel O. Birders.

Citirea potei electronice


n mod obinuit, cnd este lansat un agent-utilizator, nainte de a afia ceva pe ecran, el se va uita n cutia potal a utilizatorului dup mesajele care sosesc. Apoi poate anuna numrul de mesaje
din cutie, sau poate afia pentru fiecare mesaj cte un rezumat de o linie, pentru ca apoi s atepte
o comand.
Ca exemplu despre cum lucreaz un agent-utilizator, s aruncm o privire asupra unui scenariu
tipic pentru pota electronic. Dup lansarea agentului-utilizator, utilizatorul cere un rezumat al
mesajelor sale. O imagine ca aceea din fig. 7-8 apare n acest caz pe ecran. Fiecare linie se refer la
cte un mesaj. n acest exemplu, cutia potal conine opt mesaje.
#
1
2
3
4
5
6
7
8

Marcaje
K
KA
KF

Octei
1030
6348
4519
1236
103610
1223
3110
1204

Transmitor
Asw
Trudy
Amy N. Wong
Bal
Kaashoek
Frank
Guido
Dmr

Subiect
Changes to MINIX
Not all Trudys are nasty
Request for information
Bioinformatics
Material on peer-to-peer
Re: Will you review a grant proposal
Our paper has been accepted
Re: My students visit

Fig. 7-8. Un exemplu de afiare a coninutului unei cutii potale.

Fiecare linie de afiaj conine cteva cmpuri extrase de pe plicul sau din antetul mesajului corespunztor. ntr-un sistem simplu de pot electronic, alegerea cmpurilor afiate este fcut n
cadrul programului. ntr-un sistem mai sofisticat, utilizatorul poate specifica ce cmpuri s fie afiate, furniznd un profil al utilizatorului, adic un fiier care descrie formatul de afiare. n exemplul

534

NIVELUL APLICAIE

CAP. 7

considerat, primul cmp reprezint numrul mesajului. Al doilea cmp, Marcaje, poate conine un K,
nsemnnd c mesajul nu este nou, dar a fost citit anterior i pstrat n cutia potal; un A, nsemnnd c deja s-a rspuns la acest mesaj; i/sau un F, nsemnnd c mesajul a fost trimis mai departe
altcuiva. Sunt de asemenea posibile i alte marcaje.
Al treilea cmp specific lungimea mesajului i al patrulea spune cine a trimis mesajul. Din moment ce el este pur i simplu extras din mesaj, acest cmp poate conine prenume, nume complete,
iniiale, nume de cont, sau orice altceva i-a ales transmitorul s pun. n sfrit, cmpul Subiect
specific despre ce este mesajul, ntr-un scurt rezumat. Persoanele care omit s includ un cmp
Subiect adesea descoper c rspunsurile la scrisorile lor tind s nu obin prioritate maxim.
Dup ce au fost afiate antetele, utilizatorul poate executa oricare dintre comenzile disponibile,
ca de exemplu afiarea unui mesaj, tergerea unui mesaj i aa mai departe. Sistemele mai vechi lucrau n mod text i de obicei foloseau comenzi de un caracter pentru diversele operaii, ca de exemplu T (scrie mesaj), A (rspunde la mesaj), D (terge mesaj) i F (trimite mai departe). Un argument
specifica mesajul corespunztor. Sistemele mai recente folosesc interfee grafice. De obicei, utilizatorul selecteaz un mesaj cu mouse-ul i apoi apas pe o iconi pentru a scrie, rspunde la mesaj,
sau pentru a-l trimite mai departe.
Pota electronic a parcurs un drum lung de pe vremea cnd era doar transfer de fiiere. Ageniutilizator sofisticai fac posibil manevrarea unui volum mare de scrisori. Pentru persoane care primesc i trimit mii de mesaje pe an, asemenea instrumente sunt nepreuite.

7.2.3

Formatele mesajelor

S ne ntoarcem acum de la interfaa utilizator la formatul mesajelor de pot electronic n sine.


Mai nti ne vom uita la e-mailul ASCII de baz, care utilizeaz RFC 822. Dup aceea ne vom concentra asupra extensiilor multimedia ale RFC 822.

RFC 822
Mesajele constau dintr-un plic simplu (descris n RFC 821), un numr de cmpuri antet, o linie
goal i apoi corpul mesajului. Fiecare cmp antet se compune (din punct de vedere logic) dintr-o
singur linie de text ASCII, coninnd numele cmpului, dou puncte, i, pentru majoritatea cmpurilor, o valoare. RFC 822 a fost creat acum dou decenii i nu distinge clar plicul de cmpurile antet,
cum ar face un standard nou. Cu toate c a fost corectat n RFC 2822, o refacere complet n-a fost
posibil datorit rspndirii sale largi. La o utilizare normal, agentul-utilizator construiete un mesaj i l transmite agentului de transfer de mesaje, care apoi folosete unele dintre cmpurile antet
pentru a construi plicul efectiv, o combinaie oarecum demodat de mesaj i plic.
Principalele cmpuri antet, legate de transportul de mesaje, sunt nfiate n fig. 7-9. Cmpul To:
ofer adresa DNS a receptorului primar. Este permis de asemenea existena de receptori multipli.
Cmpul Cc: d adresa oricrui receptor secundar. n termenii livrrii, nu este nici o diferen ntre
un receptor primar i unul secundar. Este n ntregime o deosebire psihologic, ce poate fi important pentru persoanele implicate, dar este neimportant pentru sistemul de pot. Termenul Cc: (Carbon copy - copie la indigo) este puin depit, din moment ce calculatoarele nu folosesc indigo, dar
este bine nrdcinat. Cmpul Bcc: (Blind carbon copy - copie confidenial la indigo) este la fel ca
Cc:, cu excepia c aceast linie este tears din toate copiile trimise la receptorii primari i secundari. Acest element permite utilizatorilor s trimit copii unei a treia categorii de receptori, fr ca
cei primari i secundari s tie acest lucru.

SEC. 7.2

POTA ELECTRONIC
Antet
To:
Cc:
Bcc:
From:
Sender:
Received:
Return-Path:

535

Coninut
Adresa(ele) de e-mail a(le) receptorului(ilor) primar(i)
Adresa(ele) de e-mail a(le) receptorului(ilor) secundar(i)
Adresa(ele) de e-mail pentru blind carbon copy
Persoana sau persoanele care au creat mesajul
Adresa de e-mail a transmitorului curent
Linie adugat de fiecare agent de transfer de-a lungul traseului
Poate fi folosit pentru a identifica o cale de ntoarcere la transmitor

Fig. 7-9. Cmpurile antet ale lui RFC 822, legate de transportul de mesaje.

Urmtoarele dou cmpuri, From: i Sender:, precizeaz cine a scris i respectiv cine a trimis mesajul. Acestea pot s nu fie identice. De exemplu, se poate ca o directoare executiv s scrie un mesaj, dar ca secretara ei s fie cea care l trimite efectiv. n acest caz, directoarea executiv va fi afiat
n cmpul From: i secretara n cmpul Sender:. Cmpul From: este obligatoriu, dar cmpul Sender:
poate fi omis dac este identic cu From:. Aceste cmpuri sunt necesare n cazul n care mesajul nu
poate fi livrat i trebuie returnat transmitorului.
O linie coninnd Received: este adugat de fiecare agent de transfer de mesaje de pe traseu.
Linia conine identitatea agentului, data i momentul de timp la care a fost primit mesajul i alte
informaii care pot fi utilizate pentru gsirea defeciunilor n sistemul de dirijare.
Cmpul Return-Path: este adugat de agentul final de transfer de mesaje i are n intenie s indice cum se ajunge napoi la transmitor. n teorie, aceast informaie poate fi adunat din toate
antetele Received: (cu excepia numelui cutiei potale a transmitorului), dar rareori este completat aa i de obicei conine chiar adresa transmitorului.
Antet
Date:
Reply-To:
Message-Id:
In-Reply-To:
References:
Keywords:
Subject:

Coninut
Data i momentul de timp la care a fost trimis mesajul
Adresa de e-mail la care ar trebui trimise rspunsurile
Numr unic, utilizat ulterior ca referin pentru acest mesaj (identificator)
Identificatorul mesajului al crui rspuns este mesajul curent
Ali identificatori de mesaje relevani
Cuvinte cheie alese de utilizator
Scurt cuprins al mesajului, afiabil pe o singur linie

Fig. 7-10. Cteva cmpuri utilizate n antetul lui RFC 822.

n plus fa de cmpurile din fig. 7-9, mesajele RFC 822 pot conine de asemenea o varietate de
cmpuri antet, folosite de agenii-utilizator sau de receptorii umani. Cele mai des ntlnite dintre ele
sunt prezentate n fig. 7-10. Majoritatea lor se explic de la sine, deci nu vom intra n detaliu la toate.
Cmpul Reply-To: este uneori utilizat cnd nici persoana care a compus mesajul, nici cea care l-a
trimis nu vrea s vad rspunsul. De exemplu, un director de marketing scrie un mesaj prin e-mail
pentru a spune clienilor despre un nou produs. Mesajul este trimis de o secretar, dar cmpul ReplyTo: conine eful departamentului de vnzri, care poate rspunde la ntrebri i primi comenzi.
Acest cmp este foarte folositor cnd transmitorul are dou conturi de e-mail i vrea ca rspunsul
s ajung n cellalt.
Documentul RFC 822 afirm explicit c utilizatorilor le este permis s inventeze noi antete, atta
timp ct acestea ncep cu irul de caractere X-. Se garanteaz c nici o extindere ulterioar nu va
folosi nume ce ncep cu X-, pentru a evita conflictele (suprapunerile) dintre antetele oficiale i cele

536

NIVELUL APLICAIE

CAP. 7

personale. Uneori studenii care fac pe detepii includ cmpuri de tipul X-Fruit-of-the-Day: sau XDisease-of-the-Week:, care sunt legale, dei nu ntotdeauna clarificatoare.
Dup antete urmeaz corpul mesajului. Aici utilizatorii pot pune orice vor. Unii oameni i ncheie mesajele cu semnturi elaborate, incluznd caricaturi ASCII simple, citate din personaliti
mai mari sau mai mici, declaraii politice i declinri de tot felul (de exemplu: Corporaia XYZ nu
este rspunztoare pentru prerile mele; de fapt nu poate nici mcar s le neleag).

MIME - Multipurpose Internet Mail Extensions (extensii de pot cu scop multiplu)


La nceputurile ARPANET, pota electronic consta exclusiv din mesaje de tip text, scrise n englez i exprimate n ASCII. Pentru acest context, RFC 822 realiza sarcina complet: specific
antetele, dar lsa coninutul n ntregime n seama utilizatorilor. n zilele noastre, aceast abordare
nu mai este adecvat pentru Internetul care se ntinde n lumea ntreag. Problemele includ transmisia i recepia de:
1.
2.
3.
4.

Mesaje n limbi cu accente (de exemplu franceza i germana).


Mesaje n alfabete ne-latine (de exemplu ebraic i rus).
Mesaje n limbi fr alfabet (de exemplu chinez i japonez).
Mesaje care nu conin text deloc (de exemplu audio i video).

O soluie posibil a fost propus n RFC 1341 i actualizat n RFC-urile 2045-2049. Aceast soluie, numit MIME (Multipurpose Internet Mail Extensions), este n prezent larg utilizat. O vom
descrie n continuare. Pentru informaii suplimentare n legtur cu MIME, vedei RFC-urile.
Ideea fundamental a MIME este s continue s foloseasc formatul RFC 822, dar s adauge
structur corpului mesajului i s defineasc reguli de codificare pentru mesajele non-ASCII. Deoarece respect RFC 822, mesajele MIME pot fi trimise utiliznd programele i protocoalele de pot
existente. Tot ceea ce trebuie modificat sunt programele de transmitere i recepie, pe care utilizatorii le pot face ei nii.
Antet
MIME-Version:
Content-Description:
Content-Id:
Content-Transfer-Encoding:
Content-Type:

Coninut
Identific versiunea de MIME
ir adresat utilizatorului care spune ce este n mesaj
Identificator unic
Cum este mpachetat corpul pentru transmisie
Natura mesajului

Fig. 7-11. Antetele RFC 822 adugate de ctre MIME.

MIME definete cinci noi antete de mesaje, aa cum se arat n fig. 7-11. Primul dintre acestea
specific pur i simplu agentului-utilizator care primete mesajul c este vorba de un mesaj MIME i
ce versiune de MIME utilizeaz. Orice mesaj care nu conine un antet MIME-Version: este presupus
ca fiind un mesaj n text pur, n englez, i este procesat ca atare.
Antetul Content-Description: este un ir de caractere ASCII specificnd ce este n mesaj. Acest
antet este necesar pentru ca receptorul s tie dac merit s decodifice i s citeasc mesajul. Dac
irul de caractere spune: Fotografia hamsterului Barbarei i persoana care primete mesajul nu
este un mare iubitor de hamsteri, mesajul va fi probabil mai curnd aruncat, dect decodificat ntr-o
fotografie color de nalt rezoluie.
Antetul Content-Id: identific coninutul. Utilizeaz acelai format ca antetul standard Message-Id:.

SEC. 7.2

POTA ELECTRONIC

537

Antetul Content-Transfer-Encoding: arat cum este mpachetat pentru transmisie corpul mesajului, ntr-o reea care poate ridica obiecii la majoritatea caracterelor diferite de litere, cifre i semne
de punctuaie. Sunt furnizate cinci scheme (plus o evadare ctre noi scheme). Cea mai simpl schem se refer chiar la text ASCII. Caracterele ASCII utilizeaz 7 bii i pot fi transportate direct prin
protocolul de e-mail, atta timp ct nici o linie nu are mai mult de 1000 de caractere.
Urmtoarea schem ca simplitate este cam acelai lucru, dar utilizeaz caractere de cte 8 bii, reprezentnd toate valorile de la 0 la 255 inclusiv. Aceast schem de codificare ncalc protocolul (original) de e-mail utilizat n Internet, dar este folosit de unele pri ale Internetului, care implementeaz
nite extensii ale protocolului original. n timp ce declararea codificrii nu o face s devin legal, faptul
c o avem explicit poate cel puin s lmureasc lucrurile atunci cnd ceva merge prost. Mesajele utiliznd codificarea de 8 bii trebuie nc s respecte lungimea maxim a liniei, care este standard.
Este chiar mai ru n cazul mesajelor care utilizeaz codificare binar. Aceste mesaje sunt fiiere
binare arbitrare, care nu numai c utilizeaz toi cei 8 bii, dar nu respect nici limita de linie de 1000
de caractere. Programele executabile intr n aceast categorie. Nu se acord nici o garanie c mesaje binare vor ajunge corect, dar muli le trimit oricum.
Modalitatea corect de a codifica mesaje binare este de a utiliza codificarea n baz 64, numit
uneori armur ASCII. n aceast schem, grupuri de cte 24 de bii sunt mprite n patru uniti de
cte 6 bii, fiecare dintre aceste uniti fiind transmis ca un caracter ASCII legal. Codificarea este
A pentru 0, B pentru 1, .a.m.d., urmate de cele 26 de litere mici, cele 10 cifre, i n cele din urm + i / pentru 62 i respectiv 63. Secvenele == i = sunt utilizate pentru a arta c ultimul grup a
coninut doar 8 sau respectiv 16 bii. Se ignor secvenele carriage return i line feed, astfel c ele pot
fi inserate dup dorin, pentru a pstra liniile suficient de scurte. Utiliznd aceast schem pot fi
trimise sigur texte binare arbitrare.
Pentru mesajele care sunt aproape n ntregime ASCII i conin puine caractere ne-ASCII, codificarea n baz 64 este oarecum ineficient. n locul acesteia se utilizeaz o codificare numit quotedprintable-encoding (codificare afiabil marcat). Aceasta este o codificare de tip ASCII pe 7 bii,
avnd toate caracterele cu cod mai mare de 127 codificate sub forma unui semn egal urmat de valoarea caracterului reprezentat prin dou cifre hexazecimale.
Rezumnd, datele binare ar trebui trimise codificate n baz 64 sau sub form quoted-printable.
Cnd exist motive ntemeiate pentru a nu utiliza una dintre aceste scheme, este posibil s se specifice n antetul Content-Transfer-Encoding: o codificare definit de ctre utilizator.
Ultimul antet nfiat n fig. 7-11 este cu adevrat cel mai interesant. El specific natura corpului
mesajului. n RFC 2045 sunt definite apte tipuri, fiecare avnd unul sau mai multe subtipuri. Tipul
i subtipul sunt separate printr-o bar oblic (slash), ca n:
Content-Type: video/mpeg

Subtipul trebuie precizat explicit n antet; nu sunt furnizate valori implicite. Lista iniial de tipuri
i subtipuri specificate n RFC 2045 este prezentat n fig. 7-12. De atunci au fost adugate multe
altele, introducndu-se intrri adiionale de fiecare dat cnd a devenit necesar.
S parcurgem acum lista tipurilor. Tipul text este utilizat pentru text simplu. Combinaia text/plain
este folosit pentru mesaje obinuite care pot fi afiate de ndat ce sunt primite, fr codificare sau
procesare ulterioar. Aceast opiune permite ca mesajele obinuite s fie transportate n MIME
adugnd doar cteva antete suplimentare.

538

NIVELUL APLICAIE
Tip
Text
Image
Audio
Video
Application
Message

Multipart

Subtip
Plain
Enriched
Gif
Jpeg
Basic
Mpeg
Octet-stream
Postscript
Rfc822
Partial
External-body
Mixed
Alternative
Parallel
Digest

CAP. 7

Descriere
Text neformatat
Text incluznd comenzi simple de formatare
Imagini fixe n format GIF
Imagini fixe n format JPEG
Sunet
Film n format MPEG
Secven neinterpretat de octei
Un document afiabil n PostScript
Un mesaj MIME RFC 822
Mesajul a fost fragmentat pentru transmisie
Mesajul n sine trebuie adus din reea
Pri independente n ordine specificat
Acelai mesaj n formate diferite
Prile trebuie vizualizate simultan
Fiecare parte este un mesaj RFC 822 complet

Fig. 7-12. Tipurile i subtipurile aparinnd MIME definite n RFC 2045.

Subtipul text/enriched permite includerea n text a unui limbaj simplu de marcare. Acest limbaj
furnizeaz o modalitate independent de sistem pentru a exprima scrierea cu caractere aldine sau
cursive, dimensiunile, alinierea, distanele dintre rnduri, folosirea de indici superiori sau inferiori i
paginarea simpl. Limbajul de marcare se bazeaz pe SGML, Standard Generalized Markup
Language (limbajul standard generalizat de marcare), folosit de asemenea ca baz pentru HTML,
utilizat n World Wide Web. De exemplu mesajul
The <bold> time </bold> has come the <italic> walrus </italic> said ...

ar fi afiat sub forma:


The time has come the walrus said...
Depinde de sistemul receptor s aleag interpretarea potrivit. Dac sunt disponibile caractere
aldine i cursive, acestea vor putea fi folosite; altfel, pentru a scoate n eviden se pot utiliza culori,
scriere cu clipire sau video-invers etc. Sisteme diferite pot face alegeri diferite.
Cnd Web-ul a devenit popular, a fost adugat un nou subtip, text/html (n RFC 2854) pentru a
permite paginilor Web s fie trimise ntr-un e-mail de tip RFC 822. Un subtip pentru sistemul extins
de marcare, text/xml, este definit in RFC 3023. Vom studia HTML i XML mai trziu n acest capitol.
Urmtorul tip MIME este image, utilizat pentru trimiterea de imagini fixe. n zilele noastre sunt
utilizate multe formate, att cu, ct i fr compresie, pentru a pstra i transmite imagini. Dou
dintre acestea, GIF i JPEG, sunt recunoscute de aproape toate programele de navigare, dar exist
i altele care au fost adugate la lista original.
Tipurile video i audio sunt pentru imagini n micare i respectiv pentru imagini crora li se asociaz i sunet. Trebuie notat c video include doar informaia video, nu i coloana sonor. Dac trebuie
transmis un film cu sunet, s-ar putea ca poriunile audio i video s trebuiasc s fie transmise separat,
depinznd de sistemul de codificare utilizat. Primul format video definit a fost cel inventat de cei ce se
intituleaz modest Moving Picture Experts Group (MPEG - Grupul de experi n imagini n micare),
dar de atunci au fost adugate i altele. n plus fa de audio/basic, un nou tip audio, audio/mpeg a fost
adugat n RFC 3003 pentru a permite oamenilor s trimit fiiere MP3 prin e-mail.
Tipul application este utilizat ca un colector pentru formatele care necesit prelucrare extern,
neidentificate de nici unul dintre celelalte tipuri. Un octet-stream este doar o secven de octei nein-

SEC. 7.2

POTA ELECTRONIC

539

terpretai. La primirea unui asemenea flux, un agent-utilizator ar trebui probabil s-l afieze, sugerndu-i utilizatorului s-l copieze ntr-un fiier i cerndu-i un nume pentru acesta. Procesarea ulterioar este apoi la latitudinea utilizatorului.
Cellalt subtip definit este postscript, care se refer la limbajul PostScript, produs de Adobe
Systems i larg utilizat pentru descrierea paginilor imprimate. Multe imprimante au nglobate
interpretoare PostScript. Dei un agent-utilizator poate pur i simplu s apeleze un interpretor
PostScript extern pentru a interpreta fiierele PostScript primite, acest lucru nu este lipsit de pericole. PostScript este un ntreg limbaj de programare. Dndu-i-se destul timp, o persoan suficient de
masochist ar putea scrie n PostScript un compilator de C, sau un sistem de management de baze
de date. Afiarea unui mesaj primit n format PostScript se face executnd programul PostScript
coninut de acesta. Pe lng afiarea unui text, acest program poate citi, modifica, sau terge fiierele
utilizatorului i poate avea i alte efecte laterale neplcute.
Tipul message permite ncapsularea n ntregime a unui mesaj n altul. Aceast schem este util,
de exemplu pentru trimiterea mai departe a e-mailului, cu forward. Cnd un mesaj RFC 822 complet
este ncapsulat ntr-un mesaj exterior, ar trebui utilizat subtipul rfc822.
Subtipul partial face posibil mprirea unui mesaj ncapsulat n buci de mesaj i trimiterea separat a acestora (de exemplu, dac mesajul ncapsulat este prea lung). Parametrii fac posibil reasamblarea n ordinea corect a tuturor prilor, la destinaie.
i n sfrit, subtipul external-body pate fi utilizat pentru mesaje foarte lungi (de exemplu, filme
video). n loc de a include fiierul MPEG n mesaj, se d o adres FTP i agentul utilizator al receptorului o poate aduce din reea n momentul n care este necesar. Aceast facilitate este n special
util cnd se trimite un film la o ntreag list de pot i se presupune c doar civa dintre membrii
acesteia l vor vedea (gndii-v la e-mailurile inutile, coninnd reclame video).
From: elinor@abcd.com
To: carolyn@xyz.com
MIME-Version: 1.0
Message-Id: <0704760941.AA00747@abcd.com>
Content-Type: multipart/alternative; boundary=qwertyuiopasdfghjklzxcvbnm
Subject: Pmntul nconjoar soarele de un numr ntreg de ori
Acesta este preambulul. Agentul utilizator l ignor. O zi bun.
--qwertyuiopasdfghjklzxcvbnm
Content-Type: text/richtext
Happy birthday to you
Happy birthday to you
Happy birthday dear <bold> Carolyn </bold>
Happy birthday to you
--qwertyuiopasdfghjklzxcvbnm
Content-Type: message/external-body;
access-type=anon-ftp;
site=bicycle.abcd.com;
directory=pub;
name=birthday.snd;
content-type: audio/basic
content-transfer-encoding: base64
--qwertyuiopasdfghjklzxcvbnm

Fig. 7-13. Un mesaj multipart coninnd alternative de tip text formatat i audio.

540

NIVELUL APLICAIE

CAP. 7

Ultimul tip este multipart, care permite unui mesaj s conin mai multe pri, nceputul i sfritul fiecrei pri fiind clar delimitat. Subtipul mixed permite fiecrei pri s fie diferit de celelalte,
fr a avea o structur adiional impus. Multe programe de e-mail permit utilizatorului s aib una
sau mai multe pri ataate la un mesaj text. Acestea sunt trimise folosind tipul multipart.
n contrast cu tipul multipart, subtipul alternative permite ca fiecare parte s conin acelai mesaj, dar exprimat ntr-un alt mediu sau ntr-o codificare diferit. De exemplu, un mesaj ar putea fi
trimis ca ASCII simplu, ca text formatat i ca PostScript. Un agent-utilizator proiectat corespunztor, la primirea unui asemenea mesaj, l va afia, dac va fi posibil, n PostScript. A doua alegere va fi
textul formatat. Dac nici una dintre aceste alternative nu ar fi posibil, s-ar afia text ASCII obinuit. Prile ar trebui ordonate de la cea mai simpl, la cea mai complex, pentru a ajuta receptorii care
folosesc ageni-utilizator pre-MIME s neleag mesajul (chiar i un utilizator pre-MIME poate citi
text ASCII simplu). Subtipul alternative poate fi folosit de asemenea pentru limbaje multiple. n
acest context, Rosetta Stone poate fi privit ca precursor al mesajului de tip multipart/alternative.
Un exemplu multimedia este prezentat n fig. 7-13. Aici, o felicitare este transmis att sub form
de text ct i sub form de cntec. Dac receptorul are faciliti audio, agentul utilizator va aduce
fiierul de sunet, birthday.snd i l va interpreta. Dac nu, versurile vor fi afiate pe ecran ntr-o linite
de mormnt. Prile sunt delimitate de dou cratime urmate de irul (definit de utilizator) specificat
n parametrul boundary.
Observai c antetul Content-Type apare n trei poziii n acest exemplu. La primul nivel indic
faptul c mesajul are mai multe pri. n cadrul fiecrei pri specific tipul i subtipul acesteia. n
sfrit, n corpul celei de-a doua pri, este necesar pentru a indica agentului utilizator ce fel de fiier
extern trebuie s aduc. Pentru a exprima uoara diferen de utilizare, s-au folosit litere mici, dei
toate antetele sunt case insensitive (nu fac diferen ntre literele mari i cele mici). Antetul contenttransfer-encoding este n mod similar necesar pentru orice corp extern care nu este codificat ca ASCII pe 7 bii.
ntorcndu-ne la subtipurile corespunztoare mesajelor multipart, vom spune c mai exist dou
posibiliti. Subtipul parallel este utilizat cnd toate prile trebuie s fie interpretate simultan. De
exemplu, adesea filmele au un canal audio i unul video. Ele sunt mai de efect dac aceste dou canale sunt interpretate n paralel i nu consecutiv.
n sfrit, subtipul digest este utilizat cnd multe mesaje sunt mpachetate mpreun, ntr-unul
compus. De exemplu, nite grupuri de dialog de pe Internet pot aduna mesaje de la abonaii lor i
apoi s le trimit n afar ca un singur mesaj de tip multipart/digest.

7.2.4

Transferul mesajelor

Sistemul de transfer de mesaje se ocup cu transmiterea mesajelor de la expeditor la receptor.


Cea mai simpl cale de a realiza acest lucru const n stabilirea unei conexiuni de transport de la
maina surs la cea de destinaie i apoi, pur i simplu n trimiterea mesajului. Dup ce examinm
cum se face acest lucru n mod normal, vom studia cteva situaii n care metoda nu funcioneaz i
vom vedea ce trebuie fcut n aceste cazuri.

SMTP Simple Mail Transfer Protocol (Protocol simplu de transfer de pot)


n cadrul Internetului pota electronic este livrat prin stabilirea de ctre maina surs a unei
conexiuni TCP la portul 25 al mainii de destinaie. La acest port se afl un demon de e-mail care
tie SMTP (Simple Mail Transfer Protocol). Acest demon accept conexiunile i copiaz mesajele

SEC. 7.2

POTA ELECTRONIC

541

de la ele n cutiile potale corespunztoare. Dac mesajul nu poate fi livrat, se returneaz transmitorului un raport de eroare coninnd prima parte a mesajului nelivrat.
SMTP este un protocol simplu de tip ASCII. Dup stabilirea conexiunii TCP la portul 25, maina
transmitoare, opernd n calitate de client, ateapt ca maina receptoare, opernd ca server, s
vorbeasc prima. Serverul ncepe prin a trimite o linie de text, declarndu-i identitatea i spunnd
dac este pregtit sau nu s primeasc mesaje. Dac nu este, clienii elibereaz conexiunea i ncearc din nou mai trziu.
S: 220 xyz.com SMTP service ready
C: HELO abcd.com
S: 250 xyz.com says hello to abcd.com
C: MAIL FROM: <elinor@abcd.com>
S: 250 sender ok
C: RCPT TO: <carolyn@xyz.com>
S: 250 recipient ok
C: DATA
S: 354 Trimite mail; terminat cu . pe linie nou
C: From: elinor@abcd.com
C: To: carolyn@xyz.com
C: MIME-Version: 1.0
C: Message-Id: <0704760941.AA00747@abcd.com>
C: Content-Type: multipart/alternative; boundary=qwertyuiopasdfghjklzxcvbnm
C: Subject: Pmntul nconjoar soarele de un numr ntreg de ori
C:
C: Acesta este preambulul. Agentul utilizator l ignor. O zi bun.
C:
C: --qwertyuiopasdfghjklzxcvbnm
C: Content-Type: text/enriched
C:
C: Happy birthday to you
C: Happy birthday to you
C: Happy birthday dear <bold> Carolyn </bold>
C: Happy birthday to you
C:
C: --qwertyuiopasdfghjklzxcvbnm
C: Content-Type: message/external-body;
C: access-type=anon-ftp;
C: site=bicycle.abcd.com;
C: directory=pub;
C: name=birthday.snd;
C:
C: content-type: audio/basic
C: content-transfer-encoding: base64
C: --qwertyuiopasdfghjklzxcvbnm
C: .
S: 250 message accepted
C:QUIT
S: 221 xyz.com closing connection

Fig. 7-14. Transferul unui mesaj de la elinor@abcd.com la carolyn@zxy.com.

542

NIVELUL APLICAIE

CAP. 7

Dac serverul este dispus s primeasc e-mail, clientul anun de la cine vine scrisoarea i cui i
este adresat. Dac un asemenea receptor exist la destinaie, serverul i acord clientului permisiunea s trimit mesajul. Apoi clientul trimite mesajul i serverul l confirm. n general nu este necesar ataarea unei sume de control deoarece TCP furnizeaz un flux sigur de octei. Dac mai exist
i alte mesaje, acestea sunt trimise tot acum. Cnd schimbul de mesaje, n ambele direcii, s-a ncheiat, conexiunea este eliberat. n fig. 7-14 este prezentat o mostr de dialog referitoare la trimiterea
mesajului din fig. 7-13, incluznd codurile numerice utilizate de SMTP. Liniile trimise de client sunt
marcate cu C:, iar cele trimise de server cu S:.
Cteva comentarii n legtur cu fig. 7-14 ar putea fi utile. Prima comand a clientului este ntradevr HELO. Din posibilele abrevieri de patru caractere ale cuvntului HELLO, aceasta are numeroase avantaje fa de concurenta sa cea mai mare. Motivul pentru care toate comenzile trebuiau
s aib patru caractere s-a pierdut n negura vremii.
n Fig.7-14, mesajul este trimis la un singur receptor i de aceea este utilizat o singur comand
RCPT. Mai multe asemenea comenzi sunt permise pentru a trimite un singur mesaj mai multor receptori. Fiecare dintre ele este confirmat sau rejectat individual. Chiar dac unii dintre receptori
sunt rejectai (deoarece ei nu exist la destinaie), mesajul poate fi trimis celor rmai.
n sfrit, dei sintaxa comenzilor de patru caractere de la client este rigid specificat, sintaxa replicilor este mai puin rigid. Doar codul numeric conteaz cu adevrat. Fiecare implementare poate
pune dup cod ce iruri de caractere vrea.
Pentru a nelege mai bine cum funcioneaz SMTP i cteva din celelalte protocoale descrise n
acest capitol, ncercai-le! n orice caz, mai nti mergei la o main conectat la Internet. ntr-un
sistem UNIX introducei comanda:
telnet mail.isp.com 25

nlocuind numele DNS cu numele serverului de mail al ISP-ului dvs. Pe un sistem Windows, facei
clic pe Start, apoi Run, apoi tastai comanda n csua de dialog. Aceast comand va stabili o conexiune Telnet (adic TCP) pe portul 25 pe maina respectiv. Portul 25 este portul SMTP (vezi Fig. 627 pentru cteva porturi uzuale). Probabil o sa primii un rspuns de genul:
Trying 192.30.200.66...
Connected to mail.isp.com
Escape character is ^].
220 mail.isp.com Smail #74 ready at Thu, 25 Sept 2002 13:26 +0200

Primele trei linii spun ce face telnet-ul. Ultima linie este de la serverul SMTP de pe maina de la
distan, anunnd disponibilitatea acesteia de a vorbi cu dvs. i de a accepta e-mail. Pentru a vedea
ce comenzi accept, tastai:
HELP

De aici nainte, este posibil o secven de comenzi ca cea din fig. 7-14, ncepnd cu comanda
HELO dat de client.
E bine de notat faptul c folosirea liniilor de text ASCII pentru comenzi nu e un accident. Cele
mai multe protocoale Internet funcioneaz aa. Folosirea textului ASCII face ca protocoalele foarte
uor de testat i depanat. Ele pot fi testate trimind manual comenzi, cum am vzut mai sus, pentru
care copiile mesajelor (eng.: dumps) sunt uor de citit.

SEC. 7.2

POTA ELECTRONIC

543

Chiar dac protocolul SMTP este bine definit, mai pot aprea cteva probleme. O problem este legat de lungimea mesajelor. Unele implementri mai vechi nu pot s lucreze cu mesaje mai mari de 64KB. O alt problem se refer la expirri de timp (timeout). Dac acestea
difer pentru server i client, unul din ei poate renuna, n timp ce cellalt este nc ocupat,
ntrerupnd conexiunea n mod neateptat. n sfrit, n unele situaii, pot fi lansate schimburi
infinite de mesaje. De exemplu, dac maina 1 pstreaz lista de pot A i maina 2 lista de
pot B i fiecare list conine o intrare pentru cealalt, atunci orice mesaj trimis oricreia dintre cele dou liste va genera o cantitate nesfrit de trafic de e-mail.
Pentru a atinge cteva dintre aceste probleme, n RFC 2821 s-a definit protocolul SMTP extins
(ESMTP). Clienii care doresc s-l utilizeze trebuie s trimit iniial un mesaj EHLO n loc de
HELO. Dac acesta este rejectat, atunci serverul este unul standard de tip SMTP i clientul va trebui
s se comporte n modul obinuit. Dac EHLO este acceptat, nseamn ca sunt permise noile comenzi i noii parametri.

7.2.5

Livrarea final

Pn acum, am presupus c toi utilizatorii lucreaz pe maini capabile s trimit i s primeasc


e-mail. Dup cum am vzut, e-mail-ul este livrat prin stabilirea unei conexiuni TCP ntre expeditor i
destinatar i apoi prin trimiterea e-mail-ului prin ea. Acest model a funcionat bine zeci de ani, att
timp ct toate calculatoarele din ARPANET (i mai trziu din Internet) erau, de fapt, conectate la
reea i gata s accepte conexiuni TCP.
Totui, odat cu apariia celor care acceseaz Internet-ul folosind un modem cu care se conecteaz la ISP-ul lor, acest lucru nu mai ine. Problema este urmtoarea: Ce se ntmpl cnd Elinor
vrea s-i trimit Carolynei un e-mail i Carolyn nu este conectat la reea n acel moment? Elinor nu
va putea s stabileasc o conexiune TCP cu Carolyn i astfel, nu va putea utiliza protocolul SMTP.
O soluie este ca agentul de transfer de mesaje de pe o main ISP s accepte e-mail-ul pentru
clienii si i s-l stocheze n cutiile lor potale pe o main a ISP-ului. Din moment ce acest agent
poate fi conectat la reea tot timpul, se poate trimite e-mail 24 de ore pe zi.

POP3
Din nefericire, aceast soluie d natere altei probleme: cum i ia utilizatorul e-mail-ul de la
agentul de transfer de mesaje al ISP-ului? Soluia acestei probleme este crearea unui alt protocol
care s permit agenilor de transfer mesaje (aflai pe calculatoarele clienilor) s contacteze agentul
de transfer mesaje (de pe o main ISP) i s fac posibil copierea e-mail-ului de la ISP la utilizator.
Un astfel de protocol este POP3 (Post Office Protocol Version 3- Protocol de pot, versiunea
3), definit n RFC 1939.
Situaia anterioar (cnd att expeditorul ct i destinatarul aveau conexiune permanent la Internet) este ilustrat n fig. 7-15(a). O situaie n care expeditorul este efectiv conectat la reea (online) dar destinatarul nu, este ilustrat n fig. 7-15(b).
POP3 ncepe cnd utilizatorul pornete programul cititor de pot (mail reader). Acesta sun la
ISP (n caz c nu exist deja o conexiune) i stabilete o conexiune TCP cu agentul de transfer de
mesaje, prin portul 110. Odat ce conexiunea a fost stabilit, protocolul POP3 trece succesiv prin
urmtoarele trei stri:
1.

Autorizare.

544

NIVELUL APLICAIE
SMTP

(a)

Sistemul
expeditor

Conexiune
permanent

SMTP

(b)

Internet

Internet

Sistemul
expeditor

Agentul
de transfer
mesaje

Cutie
po stal

Agentul
utilizator

Sistemul
dest ina tar

Agentul
de transfer
mesaje

Cutie
po stal

CAP. 7

Server
POP3

Ma sin a
ISP-ului

POP3

Agentul
utilizator

Conexiune
temporar

Fig. 7-15. (a) Trimiterea i citirea potei cnd destinatarul are o conexiune permanent la
Internet, iar agentul utilizator ruleaz pe aceeai main ca i agentul de transfer de mesaje.
(b) Citirea e-mail-ului cnd destinatarul are o conexiune comutat(dial-up) la un ISP.

2.
3.

Tranzacionare.
Actualizare.

Starea de autorizare se refer la admiterea utilizatorului n sistem (login). Starea de tranzacionare


trateaz colectarea e-mail-urilor i marcarea lor pentru tergere din cutia potal. Starea de actualizare se ocup cu tergerea efectiv a mesajelor.
Aceast comportare poate fi observat tastnd ceva de genul:
telnet mail.isp.com 110

unde mail.isp.com reprezint numele DNS al serverului de mail de la ISP. Telnet stabilete o conexiune TCP prin portul 110, pe care ascult serverul POP3. Dup acceptarea conexiunii TCP, serverul trimite un mesaj ASCII anunndu-i prezena. De obicei, el ncepe cu +OK urmat de un comentariu. Un exemplu de scenariu este artat n fig. 7-16 ncepnd dup ce conexiunea TCP a fost
stabilit. Ca i mai nainte, liniile marcate cu C: sunt ale clientului (utilizatorului) iar cele cu S: sunt
ale serverului (agentul de transfer de mesaje de la ISP).
n timpul strii de autorizare, clientul trimite numele su de utilizator i parola. Dup conectarea
cu succes, clientul poate s trimit comanda LIST, care determin serverul s listeze coninutul cutiei potale. Lista este terminat cu un punct.
Apoi, clientul poate regsi mesajele folosind comanda RETR i le poate marca pentru tergere
cu DELE. Cnd toate mesajele au fost primite (i eventual marcate pentru tergere), clientul trimite
comanda QUIT pentru terminarea strii de tranzacionare i intrarea n starea de actualizare. Cnd
serverul a ters toate mesajele, el trimite un rspuns i desfiineaz conexiunea TCP.

SEC. 7.2
C: USER carolyn

POTA ELECTRONIC

545

S: +OK Serverul POP3 este pregtit

S: +OK
C: PASS vegetables
S: +OK autentificare cu succes
C: LIST
S: 1 2505
S: 2 14302
S: 3 8122
S: .
C: RETR 1
S: (trimite mesajul 1)
C: DELE 1
C: RETR 2
S: (trimite mesajul 2)
C: DELE 2
C: RETR 3
S: (trimite mesajul 3)
C: DELE 3
C: QUIT
S: +OK Serverul POP3 ntrerupe legtura

Fig. 7-16. Folosirea protocolului POP3 pentru a aduce trei mesaje.

Dei este adevrat c protocolul POP3 are abilitatea de a descrca un anumit mesaj sau un anumit grup de mesaje pstrndu-le pe server, cele mai multe programe de e-mail descarc tot i golesc
cutia potal. Ca urmare, practic singura copie rmne nregistrat pe discul utilizatorului. Dac
acesta se stric, toate e-mail-urile pot fi pierdute definitiv.
S recapitulm pe scurt cum lucreaz e-mail-ul pentru clienii unui ISP. Elinor creeaz un mesaj
pentru Carolyn folosind un program de e-mail (adic, agentul utilizator) i face clic pe o icoan pentru a-l trimite. Programul de e-mail trimite mesajul agentului de transfer de mesaje de pe calculatorul Elinorei. Agentul de transfer de mesaje vede c mail-ul este pentru carolyn@xyz.com i folosete
DNS pentru a cuta nregistrarea MX pentru xyz.com (unde xyz.com este ISP-ul Carolynei). Aceast
cerere ntoarce numele DNS al serverului de mail xyz.com. Agentul de transfer de mesaje caut
acum adresa IP a acestei maini folosind din nou DNS, de exemplu gethostbyname. Apoi, el stabilete o conexiune TCP cu serverul SMTP pe portul 25 de pe aceast main. Folosind o secven de
comenzi SMTP, asemntoare celei din fig. 7-14, el transfer mesajul n cutia potal a Carolynei i
ntrerupe conexiunea TCP.
Dup un timp, Carolyn i pornete PC-ul su, se conecteaz la ISP i pornete programul de email. Programul de e-mail stabilete o conexiune TCP cu serverul POP3 pe portul 110 al serverului
de pot al ISP-ului. Numele DNS sau adresa IP a acestei maini este configurat n mod normal
atunci cnd programul de e-mail este instalat sau cnd este fcut contractul cu ISP-ul. Dup ce conexiunea TCP a fost stabilit, programul de e-mail al Carolynei lanseaz protocolul POP3 pentru a
aduce coninutul cutiei sale potale pe discul fix folosind comenzi ca cele din fig. 7-16. Odat ce a
fost transferat tot e-mail-ul, conexiunea TCP este eliberat. De fapt, conexiunea cu ISP-ul poate fi
desfiinat acum, din moment ce tot e-mailul este pe discul fix al Carolynei. Desigur, pentru a trimite
un rspuns, va fi nevoie din nou de conexiunea cu ISP-ul, care, n general, nu este ntrerupt imediat
dup aducerea potei.

546

NIVELUL APLICAIE

CAP. 7

IMAP
Pentru un utilizator cu un singur cont de e-mail, la un singur ISP, care este tot timpul accesat de
la un singur PC, POP3 este bun i larg folosit datorit simplitii i robusteii sale. Totui, exist n
industria calculatoarelor un adevr bine nrdcinat, acela c imediat ce un lucru funcioneaz bine,
cineva va ncepe s cear mai multe faciliti (i s aib mai multe probleme). Asta s-a ntmplat i
cu e-mail-ul. De exemplu, mult lume are un singur cont de e-mail la serviciu sau la coal i vrea sl acceseze de pe PC-ul de acas, de pe calculatorul portabil n cltoriile de afaceri i din Internet
caf-uri n vacane. Cu toate c POP3 permite asta, din moment ce n mod normal el descarc toate
mesajele la fiecare conectare, rezultatul const n rspndirea e-mail-ului utilizatorului pe mai multe
maini, mai mult sau mai puin la ntmplare, unele dintre ele nefiind ale utilizatorului.
Acest dezavantaj a dat natere unei alternative a protocolului de livrare final, IMAP (Internet
Message Access Protocol Protocol pentru accesul mesajelor n Internet), care este definit n RFC
2060. Spre deosebire de POP3, care n mod normal presupune c utilizatorul i va goli csua potal
la fiecare conectare i va lucra deconectat de la reea (off-line) dup aceea, IMAP presupune c tot email-ul va rmne pe server orict de mult, n mai multe csue potale. IMAP prevede mecanisme
extinse pentru citirea mesajelor sau chiar a prilor de mesaje, o facilitate folositoare cnd se utilizeaz un modem ncet pentru citirea prii textuale a unui mesaj cu mai multe pri audio i video de
mari dimensiuni. ntruct premisa de folosire este c mesajele nu vor fi transferate pe calculatorul
utilizatorului n vederea stocrii permanente, IMAP asigur mecanisme pentru crearea, distrugerea i
manipularea mai multor cutii potale pe server. Astfel, un utilizator poate pstra o cutie potal pentru fiecare corespondent i poate muta aici mesajele din inbox dup ce acestea au fost citite.
IMAP are multe faciliti, ca de exemplu posibilitatea de a se referi la un mesaj nu prin numrul
de sosire, ca n fig. 7-8, ci utiliznd atribute (de exemplu, d-mi primul mesaj de la Bobbie). Spre
deosebire de POP3, IMAP poate de asemenea s accepte att expedierea mesajelor spre destinaie
ct i livrarea mesajelor venite.
Stilul general al protocolului IMAP este similar cu cel al POP3-ului, dup cum se arat n fig. 716, cu excepia faptului c exist zeci de comenzi. Serverul IMAP ascult pe portul 143. n fig. 7-17
este prezentat o comparaie ntre POP3 i IMAP. E bine de notat, totui, c nu toate ISP-urile ofer ambele protocoale i c nu toate programele de e-mail le suport pe amndou. Aadar, atunci
cnd alegei un program de e-mail, este important s aflai ce protocoale suport i s v asigurai c
ISP-ul ofer cel puin unul din ele.
Caracteristica
Unde este definit protocolul
Portul TCP folosit
Unde este stocat e-mail-ul
Unde este citit e-mail-ul
Timpul necesar conectrii
Folosirea resurselor serverului
Mai multe cutii potale
Cine face copii de siguran la cutiile potale
Bun pentru utilizatorii mobili
Controlul utilizatorului asupra scrisorilor preluate
Descrcare parial a mesajelor
Volumul discului alocat (disk quota) este o problem
Simplu de implementat
Suport rspndit

POP3
RFC 1939
110
PC-ul utilizatorului
Off-line
Mic
Minim
Nu
Utilizatorul
Nu
Mic
Nu
Nu
Da
Da

Fig. 7-17. O comparaie ntre POP3 i IMAP.

IMAP
RFC 2060
143
Server
On-line
Mare
Intens
Da
ISP-ul
Da
Mare
Da
Ar putea fi n timp
Nu
n cretere

SEC. 7.2

POTA ELECTRONIC

547

Faciliti de livrare
Indiferent dac este folosit POP3 sau IMAP, multe sisteme ofer legturi pentru procesarea adiional a mesajelor e-mail sosite. Un instrument deosebit de valoros pentru muli utilizatori de email este reprezentat de capacitatea de a construi filtre. Acestea sunt reguli care se verific la sosirea
mesajelor sau la pornirea agentului utilizator. Fiecare regul specific o condiie i o aciune. De
exemplu, o regul ar putea spune c orice mesaj venit de la ef trebuie pus n cutia potal numrul
1, orice mesaj de la un anumit grup de prieteni se duce n cutia potal numrul 2 i orice alt mesaj
coninnd anumite cuvinte n Subiect este aruncat fr comentarii.
Unii ISP ofer filtre care clasific automat mesajele sosite ca fiind importante sau nerelevante
(spam) i memoreaz fiecare mesaj n cutia potal corespunztoare. Asemenea filtre funcioneaz
verificnd mai nti dac sursa este un autor cunoscut de mesaje spam. Apoi examineaz subiectul.
Dac sute de utilizatori au primit un mesaj cu acelai subiect, probabil c el este nerelevant. Exist i
alte tehnici folosite pentru detecia mesajelor lipsite de importan.
O alt caracteristic a livrrii, pus la dispoziie adesea, este posibilitatea de a retrimite (temporar)
pota la o adres diferit. Aceast adres poate fi i un calculator utilizat de un serviciu comercial de
comunicaii, care va contacta utilizatorul prin radio sau satelit, afind Subject: linie pe pagerul su.
O alt trstur comun a livrrii finale este abilitatea de a instala un demon de vacan. Acesta
este un program care examineaz fiecare mesaj sosit i trimite o replic insipid cum ar fi:
Salut. Sunt n vacan. M ntorc pe 24 august. O zi bun.

Asemenea rspunsuri pot s specifice, de asemenea, cum s fie tratate problemele urgente, alte persoane care pot fi contactate pentru probleme specifice etc. Majoritatea demonilor de vacan pstreaz urma celor crora le-au trimis replici i se abin de la a trimite unei aceleiai persoane
o a doua asemenea replic. Demonii buni verific i dac mesajul sosit a fost trimis de la o list de
mail i n acest caz, nu mai rspund deloc. (Cei care trimit mesaje n timpul verii la liste mari de email, probabil c nu doresc s primeasc sute de replici n care s le fie detaliate planurile de vacan ale fiecruia.)
Autorul s-a lovit recent de o form extrem de prelucrare a livrrii cnd a trimis o scrisoare
unei persoane care pretinde c primete 600 de mesaje pe zi. Identitatea sa nu va fi deconspirat
aici, ca nu cumva jumtate dintre cititorii acestei cri s-i trimit i ei scrisori. S-l numim n continuare John.
John i-a instalat un robot de e-mail care verific fiecare mesaj sosit, ca s vad dac este de la un
nou corespondent. Dac este aa, trimite napoi o replic standard n care explic faptul c nu mai
poate s citeasc personal toate mesajele. n schimb a produs un document FAQ (Frequently Asked
Questions) personal, unde rspunde la multe ntrebri care i se pun de obicei. n mod normal, grupurile de tiri i nu persoanele au documente FAQ.
Documentul FAQ al lui John d adresa acestuia, numrul de fax i numerele de telefon i spune
cum poate fi contactat firma sa. Arat cum poate fi chemat ca vorbitor i explic cum pot fi obinute
lucrrile sale i alte documente. Furnizeaz de asemenea referine la programele scrise de el, o conferin pe care o organizeaz, un standard al crui editor este i aa mai departe. E posibil ca aceast
abordare s fie necesar, dar poate c un FAQ personal reprezint simbolul final al statutului.

Pota electronic pe Web (Webmail)


Un subiect care merit menionat este pota electronic pe Web. Anumite situri de Web, cum ar
fi Hotmail sau Yahoo ofer servicii de pot electronic oricui dorete. Ele funcioneaz dup cum

548

NIVELUL APLICAIE

CAP. 7

urmeaz. Au ageni normali de transfer de mesaje, care ateapt la portul 25 conexiuni noi de
SMTP. Pentru a contacta, s spunem Hotmail, trebuie s obinei nregistrarea sa DNS MX, de
exemplu tastnd
host a v hotmail.com

pe un sistem UNIX. S presupunem c serverul de pot electronic se numete mx10.hotmail.com;


atunci tastnd
telnet mx10.hotmail.com 25

se poate stabili o conexiune TCP prin care se pot trimite comenzi SMTP n modul obinuit. Deocamdat, nimic special, cu excepia faptului c aceste servere mari sunt adeseori ocupate, ca atare se
poate s dureze ceva mai mult pn v este acceptat o cerere de conexiune TCP.
Partea interesant este cum se transmite pota electronic. n principiu, atunci cnd utilizatorul
se duce la pagina de Web a potei electronice, i este prezentat un formular n care i se cere un nume
de cont i o parol. Cnd utilizatorul face clic pe Sign In, numele de cont i parola sunt trimise serverului, care le valideaz. Dac autentificarea s-a fcut cu succes, serverul gsete cutia potal a utilizatorului i construiete o list similar cu cea din fig. 7-8, cu diferena c are formatul unei pagini de
Web n HTML. Pagina Web este transmis apoi programului de navigare pentru a fi afiat. Pe multe din elementele paginii se pot executa clic-uri, astfel c mesajele pot fi citite, terse, .a.m.d.

7.3 WORLD WIDE WEB


Web-ul este un context arhitectural pentru accesul la documente, rspndite pe mii de maini din
Internet, ntre care exist legturi. n 10 ani a evoluat de la o aplicaie pentru transmiterea de date
utile pentru fizica energiilor nalte la o aplicaie despre care milioane de oameni cred c este Internetul. Popularitatea sa enorm se datoreaz faptului c are o interfa grafic plin de culoare, uor
de utilizat de ctre nceptori i n acelai timp ofer o cantitate imens de informaie - de la animale
mitologice la tribul Zulu, pe aproape orice subiect posibil.
Web-ul (cunoscut i ca WWW) a aprut n 1989 la CERN, Centrul European de Cercetri Nucleare. CERN are cteva acceleratoare utilizate de echipe mari de cercettori din rile europene pentru
cercetri n fizica particulelor. Deseori aceste echipe au membri din peste zece ri. Majoritatea experienelor sunt foarte complicate i necesit ani de pregtire i construire de echipamente. Web-ul a aprut din necesitatea de a permite cercettorilor rspndii n lume s colaboreze utiliznd colecii de
rapoarte, planuri, desene, fotografii i alte tipuri de documente aflate ntr-o continu modificare.
Propunerea iniial pentru crearea unei colecii de documente avnd legturi ntre ele (Web) a
fost fcut de fizicianul Tim Berners-Lee, fizician la CERN, n martie 1989. Primul prototip (bazat
pe text) era operaional 18 luni mai trziu. n decembrie 1991, s-a fcut o demonstraie public la
conferina Hypertex'91 n San Antonio, Texas.
Aceasta demonstraie i publicitatea aferent au atras atenia altor cercettori, fapt care l-a determinat pe Marc Andreessen de la University of Ilinois s nceap s dezvolte primul program de
navigare grafic, Mosaic. Acesta a fost lansat n februarie 1993. Mosaic a fost att de popular nct un
an mai trziu Marc Andreessen a plecat pentru a forma o nou companie, Netscape Communications Corp., care se ocupa cu dezvoltarea de software pentru Web. Cnd Netscape a devenit o com-

SEC. 7.3

WORLD WIDE WEB

549

panie public n 1995, investitorii, care probabil c au crezut c este vorba de un fenomen de tip Microsoft, au pltit 1,5 miliarde de dolari pentru aciunile companiei. Acest record a fost cu att mai
neateptat cu ct compania avea un singur produs, opera n deficit i anunase probabilii investitori
c nu se ateapt la beneficii n viitorul apropiat. n urmtorii trei ani, Netscape Navigator i produsul Internet Explorer al companiei Microsoft au intrat ntr-un rzboi al programelor de navigare,
fiecare din produse ncercnd cu frenezie adugarea de noi opiuni (i astfel a mai multor erori) dect cellalt. n 1998, America Online a cumprat Netscape Communications Corp. pentru suma de
4.2 miliarde $, ncheind astfel durata scurt n care Netscape a fost o companie independent.
n 1994, CERN i M.I.T. au semnat o nelegere pentru a forma Consoriul World Wide Web
(cteodat abreviat ca W3C), o organizaie care are ca obiectiv dezvoltarea Web-ului, standardizarea
protocoalelor, i ncurajarea interoperabilitii ntre situri. Berners-Lee a devenit director. De atunci,
sute de universiti i companii au intrat n consoriu. M.I.T. coordoneaz partea american a consoriului n timp ce centrul de cercetri francez, INRIA, coordoneaz partea european. Dei exist
foarte multe cri despre Web, cel mai bun loc pentru gsirea unor informaii la zi despre el este (n
mod natural) chiar Web-ul. Pagina consoriului are adresa www.w3.org . Cititorii interesai vor gsi
acolo legturi la pagini care acoper toate documentele i activitile consoriului.

7.3.1

Aspecte arhitecturale

Din punctul de vedere al utilizatorului, Web-ul const dintr-o colecie imens de documente sau
pagini de Web (Web pages), adesea numite prescurtat pagini, rspndite n toat lumea. Fiecare
pagin poate s conin legturi (indicatori) la alte pagini, aflate oriunde n lume. Utilizatorii pot s
aleag o legtur prin execuia unui clic care i va aduce la pagina indicat de legtur. Acest proces
se poate repeta la nesfrit. Ideea ca o pagin s conin legturi ctre altele a fost inventat n 1945,
cu mult nainte de a se fi inventat Internet-ul, de ctre Vannevar Bush, un profesor vizionar de la
departamentul de inginerie electric al M.I.T.
Paginile pot s fie vzute cu ajutorul unui program de navigare (browser). Internet Explorer i
Netscape Navigator sunt cele mai cunoscute programe de navigare. Programul de navigare aduce
pagina cerut, interpreteaz textul i comenzile de formatare coninute n text i afieaz pagina,
formatat corespunztor, pe ecran. Un exemplu este prezentat n fig. 7-18(a). Ca majoritatea paginilor de Web, ncepe cu un titlu, conine informaii i se termin cu adresa de pot electronic a
celui care menine pagina. irurile de caractere care reprezint legturi la alte pagini, se numesc
hiper-legturi, sunt afiate n mod diferit, fiind subliniate i/sau colorate cu o culoare special. Pentru a selecta o legtur, utilizatorul va plasa cursorul pe zona respectiv, ceea ce va determina
schimbarea formei cursorului i va executa un clic. Dei exist programe de navigare fr interfa
grafic, ca de exemplu Lynx, ele nu sunt att de utilizate ca programele de navigare grafice, astfel
nct n continuare ne vom referi numai la ultimele. Au fost dezvoltate i programe de navigare
bazate pe voce.
Utilizatorii care sunt interesai s afle mai multe despre Department of Animal Psichology vor
selecta numele respectiv (apare subliniat). Programul de navigare va aduce pagina la care este legat
numele respectiv i o va afia, aa cum se vede n fig. 7-18(b). irurile subliniate aici pot s fie selectate la rndul lor pentru a aduce alte pagini i aa mai departe. Noua pagin se poate afla pe aceeai
main ca i prima sau pe o main aflat undeva pe glob la polul opus. Utilizatorul nu va ti. Aducerea paginilor este realizat de ctre programul de navigare, fr nici un ajutor din partea utilizatorului. Dac utilizatorul se va ntoarce la prima pagin, legturile care au fost deja utilizate vor fi afiate

550

NIVELUL APLICAIE

CAP. 7

Fig. 7-18. (a) O pagin de Web. (b) pagina la care se ajunge dac se selecteaz
Department of Animal Psychology

altfel dect celelalte (subliniate cu linie punctat sau utiliznd o alt culoare) pentru a fi deosebite de
cele care nu au fost nc selectate. De notat c selecia liniei Campus Information din prima pagin
nu are nici un efect. Nu este subliniat, ceea ce nseamn c este pur i simplu un text care nu este
legat de o alt pagin.
Modelul de baz al funcionrii Web-ului este artat in fig. 7-19. Aici un program de navigare afieaz o pagin de Web pe maina clientului. Atunci cnd utilizatorul face clic pe linia de text ce
indic spre o pagin de pe serverul abcd.com, programul de navigare urmeaz hiper-legtura trimind un mesaj serverului abcd.com n care se cere pagina respectiv. Atunci cnd pagina sosete, ea
este afiat. Dac aceast pagin conine o hiper-legtur ctre o pagin de pe serverul xyz.com pe
care utilizatorul face clic, programul de navigare trimite o cerere mainii respective pentru acea pagin, i aa mai departe la nesfrit.

SEC. 7.3

WORLD WIDE WEB

551

Fig. 7-19. Prile componente ale modelului Web-ului

Aspecte privind clientul


S examinm acum n detaliu aspectele ce privesc clientul din fig. 7-19. n esen, un program de
navigare este o aplicaie capabil s afieze o pagin de Web i s capteze clicurile mouse-ului pe
elemente ale paginii afiate. Cnd un element este selectat, programul de navigare urmeaz hiperlegtura i obine pagina selectat. Ca atare, hiper-legtura coninut n pagin necesit o modalitate
de a adresa prin nume orice alt pagin de pe Web. Paginile sunt adresate prin nume folosind URLuri (Uniform Resource Locators, rom.: Localizatoare Uniforme de Resurse). Un URL tipic este
http://www.abcd.com/products.html
Vom explica ce nseamn URL mai trziu, n cadrul capitolului curent. Deocamdat, este suficient s tim c un URL are trei pri: numele protocolului (http), numele calculatorului pe care se
gsete pagina (www.abcd.com) i numele fiierului care conine pagina (products.html).
Cnd un utilizator execut un clic pe o hiper-legtur, programul de navigare urmeaz o serie de
etape pentru a obine pagina indicat de hiper-legtur. S presupunem ca utilizatorul navigheaz
pe Web i gsete o legtura despre telefonia pe Internet care indic spre pagina principal a ITU,
http://www.itu.org/home/index.html. S urmm etapele parcurse cnd aceast legtur este selectat.
1.
2.
3.
4.
5.
6.
7.
8.
9.

Programul de navigare determin URL (pe baza seleciei).


Programul de navigare ntreab DNS care este adresa IP pentru www.itu.org.
DNS rspunde cu 156.106.192.32.
Programul de navigare realizeaz conexiunea TCP cu portul 80 al 156.106.192.32.
Trimite o cerere pentru fiierul /home/index.html.
Serverul www.itu.org transmite fiierul /home/index.html.
Conexiunea TCP este eliberat.
Programul de navigare afieaz textul din /home/index.html.
Programul de navigare aduce i afieaz toate imaginile din acest fiier.

552

NIVELUL APLICAIE

CAP. 7

Multe programe de navigare informeaz despre etapa care se execut ntr-o fereastr de stare, n
partea de jos a paginii. n acest mod, dac performanele sunt slabe, utilizatorul poate s tie dac
este vorba de faptul c DNS nu rspunde, c serverul nu rspunde, sau pur i simplu de congestia
reelei n timpul transmisiei paginii.
Pentru a afia noua pagin (sau orice pagin), programul de navigare trebuie s neleag forma
n care este scris. Pentru a permite tuturor programelor de navigare s neleag orice pagin de
Web, paginile de Web sunt scrise ntr-un limbaj standardizat numit HTML, care descrie paginile de
Web. Vom discuta acest limbaj mai trziu n acest capitol.
Dei un program de navigare este n principiu un interpretor de HTML, majoritatea programelor de navigare au numeroase butoane i opiuni care ajut navigarea prin Web. Multe au un buton
pentru revenirea la pagina anterioar, un buton pentru a merge la pagina urmtoare (acest buton
este operaional numai dup ce utilizatorul s-a ntors napoi dintr-o pagin) i un buton pentru selecia paginii personale (home page). Majoritatea programelor de navigare au un buton sau un meniu
pentru nregistrarea unei adrese de pagin (bookmark) i un altul care permite afiarea unor adrese
nregistrate, fcnd astfel posibil revenirea la o pagin cu ajutorul ctorva selecii simple realizate
cu mausul. Paginile pot s fie salvate pe disc sau tiprite. Sunt disponibile numeroase opiuni pentru
controlul ecranului i configurarea programului de navigare conform dorinelor utilizatorului.
n afar de text obinuit (nesubliniat) i hipertext (subliniat), paginile de Web pot s conin iconie, desene, hri, fotografii. Fiecare dintre acestea poate s fie, n mod opional, legat la alt pagin.
Dac se selecteaz unul dintre aceste elemente, programul de navigare va aduce pagina respectiv i
o va afia, aa cum se ntmpl n cazul selectrii unui text. Pentru imaginile care sunt fotografii sau
hri, alegerea paginii care se aduce poate s depind de regiunea din imagine pe care se face selecia.
Nu toate paginile conin HTML. O pagin poate fi format dintr-un document n format PDF, o
iconi n format GIF, o fotografie n format JPEG, o melodie n format MP3, o nregistrare video n
format MPEG sau oricare din cele alte cteva sute de tipuri de fiiere. Deoarece paginile n forma
standard HTML pot avea legturi ctre oricare din acestea, programul de navigare are o problem
atunci cnd ntlnete o pagin pe care nu o poate interpreta.
n loc sa fac programele de navigare din ce n ce mai mari, nglobnd interpretoare pentru o colecie de tipuri de fiiere n cretere rapid, majoritatea programelor de navigare au ales o soluie
mai general. Atunci cnd un server ntoarce o pagin, el ntoarce de asemenea informaii adiionale
despre acea pagin. Aceast informaie include tipul MIME al paginii (fig. 7-12). Paginile de tipul
text/html sunt afiate direct, ca i paginile de alte cteva tipuri interpretate implicit. Dac tipul MIME
nu este unul dintre acestea, programul de navigare i consult tabela de tipuri MIME pentru a afla
cum s afieze pagina. Aceast tabel asociaz un tip MIME cu o aplicaie de vizualizare.

Fig. 7-20. (a) Un plug-in al programului de navigare. (b) O aplicaie auxiliar

SEC. 7.3

WORLD WIDE WEB

553

Exist dou posibiliti: plug-in-uri i programe auxiliare (helper applications). Un plug-in este un
modul pe care programul de navigare l obine dintr-un director special de pe disc i l instaleaz ca o
extensie al nsui programului de navigare, aa cum se arat n fig. 7-20(a). Deoarece plug-in-urile se
execut n interiorul programului de navigare, acestea au acces la pagina curent i pot s modifice
modul n care aceasta este afiat. Dup ce plug-in-ul a terminat ceea ce avea de fcut (de obicei
dup ce utilizatorul s-a deplasat la alt pagin de Web), acesta este scos din memoria programului
de navigare.
Fiecare program de navigare are o colecie de proceduri pe care toate plug-in-urile trebuie s le
implementeze pentru ca programul de navigare s poat executa plug-in-ul. De exemplu, exist de
obicei o procedur pe care modulul principal al programului de navigare o apeleaz pentru a oferi
plug-in-ului date ce trebuie afiate. Aceast colecie de proceduri constituie interfaa unui plug-in i
este particular fiecrui program de navigare.
n plus, programul de navigare pune la dispoziia plug-in-ului propria sa colecie de proceduri. Procedurile tipice din interfaa programului de navigare se refer la alocarea i eliberarea memoriei, afiarea de mesaje n fereastra de stare a programului de navigare sau obinerea parametrilor acestuia.
nainte ca un plug-in s poat fi folosit, acesta trebuie instalat. Procedura uzual de instalare este
ca utilizatorul s navigheze la situl de Web al plug-in-ului i s copieze un fiier de instalare. Pe sistemele Windows, acesta este de obicei o arhiv zip cu decompresie automat cu extensia .exe. Cnd
pe acest fiier se execut un dublu clic, se execut un program de mici dimensiuni ataat prii de
nceput a fiierului. Acest program decomprim plug-in-ul i l copiaz n directorul de plug-in-uri al
programului de navigare. Apoi execut apelurile necesare pentru nregistrarea tipului MIME corespunztor i asocierea acestuia cu plug-in-ul. Pe sistemele UNIX, fiierul de instalare este in mod
frecvent un fiier de comenzi care se ocup de copiere i nregistrare.
Cea de-a doua modalitate de extindere a unui program de navigare este utilizarea aplicaiilor
auxiliare (helper applications). Acestea sunt programe complete ce se execut ca procese separate.
Acest fapt este ilustrat n fig. 7-20(b). Deoarece acestea sunt programe separate, nu ofer nici o
interfa programului de navigare i nu utilizeaz serviciile acestuia. De obicei ns accept doar
numele unui fiier temporar unde a fost stocat coninutul paginii, deschide acest fiier i i afieaz
coninutul. De obicei, aplicaiile auxiliare sunt programe de dimensiuni mari care exist independent de programul de navigare, cum ar fi Adobe Acrobat Reader pentru afiarea fiierelor PDF,
sau Microsoft Word. Unele programe (cum ar fi Acrobat) dispun de un plug-in care execut aplicaia auxiliar.
Multe aplicaii auxiliare folosesc tipul MIME application. A fost definit un numr considerabil de
subtipuri, de exemplu application/pdf pentru fiiere PDF i application/msword pentru fiiere Word.
n acest mod, un URL poate s indice direct ctre un fiier PDF sau Word i atunci cnd utilizatorul
execut un clic asupra sa aplicaiile Acrobat sau Word sunt pornite automat i li se transmite numele
fiierului temporar ce conine datele ce trebuie afiate. Ca atare, programele de navigare pot fi configurate s trateze un numr teoretic nelimitat de tipuri de documente, fr schimbri aduse programului de navigare. Serverele de Web moderne sunt adesea configurate cu sute de combinaii de
tipuri/subtipuri i combinaii noi sunt adugate de fiecare dat cnd este instalat un program nou.
Aplicaiile auxiliare nu sunt restricionate la utilizarea tipului MIME application. Adobe Photoshop folosete image/x-photoshop i RealOne Player poate trata de exemplu audio/mp3.
Pe sistemele Windows, atunci cnd un program este instalat pe un calculator, el nregistreaz tipurile MIME pe care dorete s le trateze. Acest mecanism conduce la conflicte atunci cnd mai
multe aplicaii sunt disponibile pentru vizualizarea unui subtip, cum ar fi video/mpg. Ceea ce se n-

554

NIVELUL APLICAIE

CAP. 7

tmpl este c ultimul program ce se nregistreaz supranscrie asociaiile existente (tip MIME, aplicaie auxiliar), captnd tipul pentru sine. Ca o consecin, instalarea unui nou program poate
schimba modul n care un program de navigare trateaz tipurile existente.
Pe sistemele UNIX, acest proces de nregistrare nu se face n general automat. Utilizatorul trebuie s schimbe anumite fiiere de configurare. Aceast abordare conduce la un volum mai mare de
munc dar la surprize mai puine.
Programele de navigare pot de asemenea deschide fiiere locale n loc de a le obine de pe servere de Web de la distan. Deoarece fiierele locale nu au tipuri MIME, programul de navigare necesit o metod pentru a determina ce plug-in sau aplicaie auxiliar trebuie folosit pentru alte tipuri
dect cele tratate implicit ca text/html sau image/jpeg. Pentru tratarea fiierelor locale, aplicaiile auxiliare pot fi asociate i cu o extensie de fiier, ca i cu un tip MIME. Considernd configuraia standard, deschiderea fiierului foo.pdf l va ncrca n Acrobat i deschiderea fiierului bar.doc l va ncrca n Word. Anumite programe de navigare folosesc tipul MIME, extensia fiierului i chiar informaii din interiorul fiierului pentru a ghici tipul MIME. n special Internet Explorer se bazeaz
n primul rnd pe extensia fiierului dect pe tipul MIME atunci cnd acest lucru este posibil.
i aici pot apare conflicte deoarece multe programe sunt dispuse, de fapt dornice s trateze mpg,
de exemplu. n timpul instalrii, programele create pentru profesioniti afieaz frecvent csue de
selecie pentru tipurile MIME i extensiile pe care sunt pregtite s le trateze pentru a permite utilizatorului selecia celor dorite pentru a preveni astfel supranscrierea accidental a asociaiilor existente. Programele ce au ca int marea mas a consumatorilor presupun c utilizatorul nu tie ce
este un tip MIME i pur i simplu acapareaz tot ce pot fr s in seama de ceea ce au fcut programele instalate anterior.
Capacitatea de a extinde programul de navigare cu un numr mare de tipuri noi este util, dar
poate duce i la probleme. Atunci cnd Internet Explorer obine un fiier cu extensia exe i da seama
c acest fiier este un program executabil i ca atare nu are o aplicaie adiional asociat. Aciunea
evident este execuia fiierului. nsa aceast aciune poate fi o problem de securitate enorm. Tot
ceea ce trebuie s fac un site de Web ru intenionat este s ofere o pagin de Web, de exemplu cu
fotografii de staruri de cinema sau sportive, toate imaginile indicnd ctre un virus. Un singur clic pe
o imagine determin ca un program executabil necunoscut i posibil ostil s fie copiat i executat pe
maina utilizatorului. Pentru a preveni astfel de vizitatori nedorii, Internet Explorer poate fi configurat s fie selectiv n a executa programe necunoscute n mod automat, dar nu toi utilizatorii neleg cum s foloseasc aceast configurare.
Pe sistemele UNIX pot exista probleme similare cu fiierele de comenzi pentru consola sistemului, dar aceasta necesit ca utilizatorul s instaleze n mod contient consola sistemului ca aplicaie
auxiliar. Din fericire, acest proces este suficient de complicat pentru ca nimeni s nu poat s l
efectueze accidental (i puine persoane pot s l efectueze chiar intenionat).

Aspecte privind serverul


Cam att despre aspectele privind clientul. S ne referim acum la aspectele privind serverul. Aa
cum am vzut mai sus, atunci cnd utilizatorul tasteaz un URL sau execut un clic asupra unei linii
de hipertext, programul de navigare analizeaz URL-ul i interpreteaz partea ntre http:// i urmtorul caracter / ca un nume DNS ce trebuie cutat. narmat cu adresa IP a serverului, programul de
navigare stabilete o conexiune TCP la portul 80 de pe acel server. Apoi se transmite o comand ce
conine restul URL-ului, care este de fapt numele fiierului de pe acel server. Serverul ntoarce apoi
fiierul pentru a fi afiat de ctre programul de navigare.

SEC. 7.3

WORLD WIDE WEB

555

ntr-o prim aproximare, un server de Web este similar cu serverul din fig. 6-6. Acel server, ca i
un server de Web real, primete numele fiierului ce trebuie cutat i transmis programului de navigare. n ambele cazuri, etapele pe care le parcurge serverul n bucla sa principal sunt:
1.
2.
3.
4.
5.

Accept o conexiune TCP de la un client (program de navigare).


Obine numele fiierului cerut.
Obine fiierul (de pe disc).
ntoarce fiierul clientului.
Elibereaz conexiunea TCP.

Serverele de Web moderne au mai multe caracteristici, dar n esen acestea sunt funciile unui
server de Web. O problem cu aceast arhitectur este c fiecare cerere necesit acces la disc pentru
obinerea fiierului. Rezultatul este c serverul de Web nu poate servi mai multe cereri pe secund
dect numrul de accese la disc ce se pot executa pe secund. Un disc SCSI are un timp de acces
mediu de circa 5 ms, ceea ce limiteaz serverul la cel mult 200 de cereri/sec, chiar mai puin dac
trebuie citite des fiiere mari. Pentru un sit de Web de importan mare, acest numr este prea mic.
O mbuntire evident (utilizat de toate serverele de Web) este folosirea unui sistem de memorie ascuns, temporar pentru cele mai recente n fiiere utilizate. nainte de obinerea unui fiier
de pe disc, serverul verific memoria ascuns (cache). Dac fiierul exist acolo, el poate fi servit
direct din memorie, eliminnd astfel accesul la disc. Dei pentru o memorie ascuns eficient sunt
necesare o cantitate mare de memorie principal i timp de procesare suplimentar pentru a analiza
memoria ascuns i pentru a-i administra coninutul, economia de timp este aproape ntotdeauna
superioar timpului suplimentar de procesare i costului memoriei.

Fig. 7-21. Un server de Web cu mai multe fire de execuie cu un modul frontal i
module de procesare

Urmtorul pas pentru construcia unui server mai rapid este de a face serverul s admit mai
multe fire de execuie (multithreaded). ntr-una din arhitecturi, serverul este format dintr-un modul
frontal (front-end module), care accept conexiunile nou venite, i k module de procesare, aa cum
arata fig. 7-21. Cele k + 1 fire de execuie aparin toate aceluiai proces, astfel c modulele de proce-

556

NIVELUL APLICAIE

CAP. 7

sare au toate acces la memoria ascuns din interiorul spaiului de adrese al procesului. La sosirea
unei cereri, modulul frontal o accept i construiete o scurt nregistrare ce descrie cererea. Aceasta
este transmis apoi unuia dintre modulele de procesare. n alt arhitectur posibil, modulul frontal
este eliminat i fiecare modul de procesare ncearc s i obin propriile cereri, dar n acest caz este
necesar un protocol de sincronizare pentru prevenirea conflictelor.
Modulul de procesare verific mai nti memoria ascuns pentru a determina dac fiierul necesar se afl acolo. Dac da, modific nregistrarea pentru a include i un indicator ctre fiierul din
nregistrare. Dac fiierul nu se afl acolo, modulul de procesare ncepe operaiile cu discul pentru a
citi fiierul n memoria ascuns (renunnd eventual la alte fiiere pentru a face loc acestuia). Cnd
fiierul este citit de pe disc, el este pus n cache i de asemenea transmis clientului.
Avantajul acestei scheme este c n timp ce unul sau mai multe module de procesare sunt blocate
ateptnd terminarea operaiilor cu discul (i deci nu consum din timpul procesorului), alte module
pot fi active lucrnd la satisfacerea altor cereri. Desigur, pentru a obine o mbuntire real asupra
modelului cu un singur fir de execuie este necesar existena mai multor uniti de disc, astfel nct
mai multe discuri s poat fi ocupate n acelai timp. Cu ajutorul a k module de procesare i k uniti
de disc, eficiena poate crete pn la de k ori fa de modelul serverului cu un singur fir de execuie
i o singur unitate de disc.
Teoretic, un server cu un singur fir de execuie i k uniti de disc poate de asemenea ctiga un
factor k n ceea ce privete eficiena, dar implementarea i administrarea sunt mult mai complicate
deoarece apelurile de sistem READ normale, blocante nu pot fi folosite pentru accesul la disc. n
cazul unui server cu mai multe fire de execuie, acestea pot fi folosite deoarece o operaie READ
blocheaz doar firul de execuie care a executat operaia i nu ntregul proces.
Serverele de Web moderne efectueaz mai multe operaii dect acceptarea numelor de fiiere i
transmiterea coninutului acestora. De fapt, procesarea fiecrei cereri poate deveni destul de complicat. Din acest motiv, ntr-un numr mare de servere fiecare modul de procesare efectueaz o
serie de etape. Modulul frontal transmite fiecare cerere sosit ctre primul modul de procesare disponibil, care apoi execut cererea, utiliznd o submulime a urmtorilor pai, n funcie de ce pai
sunt necesari pentru respectiva cerere.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Rezolvarea numelui paginii de Web cerute.


Autentificarea clientului.
Verificarea drepturilor de acces ale clientului.
Verificarea drepturilor de acces asupra paginii de Web.
Verificarea memoriei ascunse.
Obinerea paginii cerute, de pe disc.
Determinarea tipului MIME ce va fi inclus n rspuns.
Rezolvarea altor probleme minore.
Transmiterea rspunsului ctre client.
Adugarea unei nregistrri n jurnalul serverului.

Pasul 1 este necesar deoarece cererea sosit poate s nu conin numele propriu-zis al fiierului,
ca ir de caractere. De exemplu, putem considera URL-ul http://www.cs.vu.nl, care are un nume de
fiier vid. Acesta trebuie extins la un nume de fiier implicit. De asemenea, programele de navigare
moderne pot specifica limba implicit a utilizatorului (de ex.: italian sau englez), ceea ce deschide
posibilitatea ca serverul s selecteze o pagin de Web n acea limb, dac aceasta este disponibil. n

SEC. 7.3

WORLD WIDE WEB

557

general, extinderea numelor nu este un proces att de banal cum ar putea prea la prima vedere,
datorit unei varieti de convenii existente privind numirea fiierelor.
Pasul 2 const n verificarea identitii clientului. Acest pas este necesar pentru paginile care nu
sunt disponibile publicului larg. Vom discuta o modalitate de a realiza acest lucru mai trziu, n
acest capitol.
Pasul 3 verific dac exist restricii referitoare la satisfacerea cererii, avnd n vedere identitatea i
localizarea clientului. Pasul 4 verific dac exist restricii de acces asociate cu pagina nsi. Dac un
anumit fiier (de ex.: .htaccess) este prezent n directorul unde se afl i pagina dorit, accesul la acel
fiier poate fi restrns la anumite domenii, de exemplu numai la utilizatorii din interiorul companiei.
Paii 5 i 6 presupun obinerea paginii. Pasul 6 necesit capacitatea de tratare simultan a mai
multor citiri de pe disc.
Pasul 7 se refer la determinarea tipului MIME din extensia fiierului, primele cteva cuvinte din
fiier, un fiier de configurare sau alte surse posibile. Pasul 8 este destinat unei diversiti de operaii,
cum ar fi construcia unui profil al utilizatorului sau adunarea unor statistici.
Pasul 9 este cel n care rezultatul este transmis clientului i pasul 10 adaug o nregistrare n jurnalul sistemului, n scopuri administrative. Asemenea fiiere de jurnalizare pot fi analizate ulterior
pentru obinerea de informaii importante despre comportamentul utilizatorului, spre exemplu ordinea n care vizitatorii acceseaz paginile.
Dac sosesc prea multe cereri n fiecare secund, procesorul nu va fi capabil sa suporte ncrcarea, oricte uniti de disc ar fi utilizate n paralel. Soluia este adugarea mai multor noduri (calculatoare), posibil cu uniti de disc replicate pentru a evita ca discurile s devin urmtorul punct de
gtuire. Acest fapt conduce la modelul fermei de servere (server farm) din fig. 7-22. Un modul frontal accept n continuare cererile dar le mparte mai multor procesoare, nu mai multor fire de execuie, pentru a reduce ncrcarea pe fiecare calculator. Mainile individuale pot fi cu mai multe fire de
execuie i n band de asamblare ca mai sus.

Fig. 7-22. O ferm de servere

O problem cu fermele de servere este c nu mai exist o memorie ascuns partajat deoarece
fiecare nod are propria sa memorie dect dac se folosete un sistem multiprocesor cu memorie
partajat de cost mic. O modalitate de a contracara aceast pierdere de performan este un modul
frontal care reine unde direcioneaz fiecare cerere i trimite cererile ulterioare pentru aceeai pagin aceluiai nod. Aceast abordare specializeaz fiecare nod n tratarea anumitor pagini astfel nct spaiul destinat pentru cache nu se pierde reinnd fiecare fiier n fiecare cache.
O alt problem cu fermele de servere este aceea c fiecare conexiune TCP a clientului se termin la modulul de intrare, astfel c rspunsul trebuie transmis prin acest modul. Aceast situaie este

558

NIVELUL APLICAIE

CAP. 7

evideniat n fig. 7-23(a), unde cererea sosit (1) i rspunsul transmis (4) trec ambele prin modulul
frontal. Cteodat se poate folosi o soluie ingenioas numit parsare TCP (eng.: TCP handoff)
pentru a evita aceast problem. Cu acest truc, captul comunicaiei TCP este pasat nodului de
procesare astfel c acesta poate replica direct clientului, lucru evideniat ca (3) n fig. 7-23(b). Aceast pasare este fcut ntr-un mod transparent pentru client.

Fig. 7-23. (a) Secven normal de mesaje cerere rspuns.


(b) Secven n care se folosete pasarea TCP.

URL- Uniform Resource Locators


Am spus de mai multe ori c o pagin de Web poate s conin referine la alte pagini. S explicm cum sunt implementate aceste referine. nc de la crearea Web-ului, a fost clar c pentru a
avea o pagin care s indice spre alt pagin este necesar un mecanism care s permit numirea i
regsirea paginilor. n particular, sunt trei ntrebri la care trebuie s se rspund nainte de a se
putea afia o pagin:
1.
2.
3.

Cum se numete pagina?


Cum este localizat pagina?
Cum se face accesul la pagin?

Dac fiecare pagin ar avea un nume unic, atunci nu ar exista nici o ambiguitate n identificarea
paginilor. Totui, problema nu este nc rezolvat. S considerm de exemplu o paralel ntre oameni i pagini. n SUA aproape fiecare persoan are un numr de asigurare social, care este un
identificator unic, astfel nct nu exist dou persoane cu acelai numr. Totui, cunoscnd numai
numrul respectiv, nu exist nici o posibilitate de a gsi adresa persoanei respective i sigur nu se
poate afla dac persoanei respective trebuie s i se scrie n Englez, Spaniol sau Chinez. Web-ul
are practic acelai fel de probleme.
Soluia aleas identific paginile ntr-un mod care rezolv toate trei problemele n acelai timp.
Fiecare pagin are un URL (Uniform Resource Locator - adresa uniform pentru localizarea resurselor) care funcioneaz ca nume al paginii general valabil. Un URL are trei componente: protocolul
(cunoscut i sub numele de schem), numele DNS al mainii pe care este memorat fiierul i un nume
local, care indic n mod unic pagina (de obicei numele fiierului care conine pagina). De exemplu,
situl de Web al departamentului din care face parte autorul conine un numr de nregistrri video
despre universitate si despre oraul Amsterdam. URL-ul paginii cu nregistrrile video este:

SEC. 7.3

WORLD WIDE WEB

559

http://www.cs.vu.nl/video/index-en.html

Acest URL este format din trei componente: protocolul (http), numele DNS al serverului (www.
cs.vu.nl) i numele fiierului (video/index-en.html), cu semnele de punctuaie corespunztoare. Numele fiierului este o cale relativ la directorul de Web implicit de la cs.vu.nl.
Se utilizeaz notaii care reprezint prescurtri standard. n cazul multor situri, un nume de fiier
nul nseamn implicit pagina principal a organizaiei. n mod obinuit, atunci cnd numele fiierului
denot un director, aceasta implic un fiier numit index.html. n sfrit, ~user/ poate s fie pus n
coresponden cu directorul WWW al utilizatorului user, i apoi cu fiierul index.html n acest director. De exemplu, pagina autorului poate s fie referit ca:
http://www.cs.vu.nl/~ast/

chiar dac de fapt numele propriu-zis al fiierului este index.html, implicit n acest director.
Acum ar trebui s fie clar cum funcioneaz hipertextul. Pentru a face o poriune de text selectabil, cel care scrie pagina trebuie s furnizeze dou elemente: textul prin care se face selecia i
URL-ul paginii care trebuie adus, dac textul este selectat. Vom explica sintaxa comenzii mai trziu
n acest capitol.
Cnd se face selecia, programul de navigare caut numele serverului utiliznd DNS-ul. Pe baza
adresei IP a serverului, programul de navigare stabilete o conexiune TCP spre server. Utiliznd
aceast conexiune, se transmite numele fiierului utiliznd protocolul specificat. Bingo. Acum sosete pagina.
Aceast schem URL este deschis n sensul c este simplu s se utilizeze alte protocoale pentru
a se obine diferite tipuri de resurse. De fapt au fost definite URL-uri pentru protocoalele obinuite,
i multe programe de navigare neleg aceste protocoale. Forme simplificate ale celor mai obinuite
sunt prezentate n fig. 7-24.
Nume
http
ftp
File
news
news
gopher
mailto
telnet

Utilizat pentru
Hipertext (HTML)
FTP
Fiier local
Grup de tiri
Articol de tiri
Gopher
Trimitere de pota electronic
Conectare la distan

Exemple
http://www.cs.vu.nl/~ast
ftp://ftp.cs.vu.nl/pub/minix/README
file:///usr/suzanne/prog.c
news:AA0134223112@cs.utah.edu
news:AA0134223112@cs.utah.edu
gopher://gopher.tc.umn.edu/11/libraries
mailto:JohnUser@acm.org
telnet://www.w3.org:80

Fig. 7-24. Cteva URL-uri obinuite.

S parcurgem lista rapid. Protocolul http este protocolul nativ pentru Web, el este utilizat de ctre serverele de Web. HTTP este o prescurtare pentru HyperText Transfer Protocol. Vom examina
mai detaliat acest protocol mai trziu n acest capitol.
Protocolul ftp este utilizat pentru accesul la fiiere prin FTP (File Transfer Protocol - protocol
pentru transferul de fiiere), protocolul Internet de transfer de fiiere. FTP este utilizat de peste douzeci de ani i este foarte rspndit. Numeroase servere de FTP din toat lumea permit ca de oriunde din Internet s se fac o conectare i s se aduc orice fiier plasat pe un server FTP. Web-ul
nu aduce schimbri aici, face doar ca obinerea fiierelor s se fac mai uor, pentru c FTP are o
interfa mai puin prietenoas (dar este mai puternic dect HTTP, deoarece permite de exemplu ca
un utilizator de pe maina A s transfere un fiier de pe maina B pe maina C).

560

NIVELUL APLICAIE

CAP. 7

Este posibil s se fac acces la un fiier local ca la o pagin de Web, fie utiliznd protocolul file
(fiier), fie pur i simplu utiliznd numele fiierului. Aceast abordare este similar utilizrii protocolului FTP, dar nu implic existena unui server. Desigur funcioneaz numai pentru fiiere locale,
nu i pentru cele aflate la distan.
Cu mult nainte de apariia Internet-ului exista sistemul de tiri USENET. Acesta este format din
aproximativ 30000 de grupuri de tiri n care milioane de persoane discut despre o mare varietate de
subiecte, adugnd i citind articole legate de subiectul grupului de tiri. Protocolul news permite citirea
un articol din tiri ca i cum ar fi o pagin de Web. Aceasta nseamn c un program de navigare este n
acelai timp i un cititor de tiri. De fapt, multe programe de navigare au butoane sau elemente de meniu care permit citirea tirilor USENET mai uor dect dac se utilizeaz cititoare standard de tiri.
Protocolul news admite dou formate. Primul format specific un grup de tiri i poate s fie utilizat pentru a obine o list de articole de la un server de tiri preconfigurat. Al doilea format cere
identificatorul unui articol, de exemplu AA0134223112@cs.utah.edu. Programul de navigare aduce
articolul de la serverul corespunztor utiliznd protocolul NNTP (Network News Transfer Protocol
Protocol de transfer al tirilor prin reea). Nu vom studia NNTP n aceast carte, dar este n mare
bazat pe SMTP i are un stil similar.
Protocolul gopher era utilizat de sistemul Gopher, care a fost proiectat la universitatea Minnesota. Numele este cel al echipei atletice a universitii, the Golden Gopher (de asemenea acest nume
este utilizat n argou pentru go for adic o comand de aducere). Gopher-ul a precedat Web-ul cu
civa ani. Era o metod de regsire a informaiei, similar conceptual cu cea utilizat de Web, dar
acceptnd numai text i imagini. Este considerat depit i nu se mai folosete n prezent.
Ultimele dou protocoale nu sunt de fapt protocoale pentru aducerea unor pagini de Web, dar
sunt utile. Protocolul mailto permite transmiterea de pot dintr-un program de navigare. Pentru a
face aceast operaie, se selecteaz butonul OPEN i se specific un URL constnd din mailto: urmat de adresa destinatarului. Majoritatea programelor de navigare vor rspunde prin pornirea unei
aplicaii de pot electronic cu adresa i cteva alte cmpuri din antet deja completate.
Protocolul telnet este utilizat pentru stabilirea unei conexiuni cu o main aflat la distan. Se
utilizeaz n acelai fel ca i programul telnet, ceea ce nu constituie o surpriz, deoarece majoritatea
programelor de navigare utilizeaz programul telnet ca aplicaie auxiliar.
Pe scurt URL-urile au fost proiectate nu numai pentru a permite utilizatorilor s navigheze prin
Web, dar i pentru a utiliza FTP, news, Gopher, e-mail i telnet, ceea ce face inutile interfeele specializate pentru aceste protocoale integrnd astfel ntr-un singur program, navigatorul n Web,
aproape toate tipurile de acces n Internet. Dac metoda nu ar fi fost proiectat de un fizician, ar fi
putut s par produsul departamentului de publicitate al unei companii de software.
n ciuda tuturor acestor proprieti, creterea Web-ului scoate n eviden i o slbiciune a metodei utilizrii URL-urilor. Pentru o pagin care este foarte des referit, ar fi de preferat s existe mai
multe copii pe servere diferite, pentru a reduce traficul n reea. Problema este c URL-rile nu ofer
nici o posibilitate de indicare a unei pagini fr s se specifice unde este localizat pagina respectiv.
Nu exist nici o metod pentru a spune ceva de genul: Vreau pagina xyz, dar nu m intereseaz de
unde o aduci. Pentru a rezolva aceast problem i a permite multiplicarea paginilor, IETF lucreaz la un sistem de URN (Universal Resource Names - nume universale de resurse). Un URN poate
s fie privit ca un URL generalizat. Acest subiect este n curs de cercetare, dei o propunere de sintax este dat n RFC 2141.

SEC. 7.3

561

WORLD WIDE WEB

Lipsa strii i utilizarea cookies


Aa cum am vzut n mod repetat, Web-ul este, n principiu, lipsit de stare. Nu exist conceptul
unei sesiuni de conectare. Programul de navigare transmite o cerere ctre server i primete un fiier. Apoi serverul uit c a discutat vreodat cu acel client.
La nceput, cnd Web-ul a fost folosit doar pentru obinerea de documente accesibile publicului
larg, acest model era perfect adaptat cerinelor. Dar, pe msur ce Web-ul a nceput s capete i alte
funcii, acest model a dat natere unor probleme. De exemplu, anumite situri de Web impun clienilor
s se nregistreze (i chiar s plteasc bani) spre a le utiliza. Ca atare, se pune ntrebarea cum pot
serverele s disting ntre cereri din partea utilizatorilor nregistrai i a celorlali. Un al doilea exemplu
este comerul electronic. Dac un utilizator se plimb printr-un magazin electronic, aruncnd din cnd
n cnd produse n coul de cumprturi, cum poate serverul s rein coninutul coului? Un al treilea
exemplu sunt portalurile de Web configurabile cum este Yahoo. Utilizatorii pot configura o pagin
iniial detaliat, doar cu informaia pe care o doresc (de ex.: valorile aciunilor la burs i echipele lor
sportive favorite), dar cum poate serverul sa afieze pagina corect dac nu tie cine este utilizatorul?
La o prim vedere, se poate crede c serverele pot s urmreasc utilizatorii uitndu-se la adresele
lor IP. Aceast idee nu funcioneaz ns. n primul rnd, muli utilizatori lucreaz pe calculatoare partajate cu ali utilizatori, n special n cadrul companiilor, iar adresa IP identific doar calculatorul nu i
utilizatorul. n al doilea rnd, mult mai grav, muli dintre cei ce ofer servicii de Internet (ISP) utilizeaz NAT, astfel nct toate pachetele ce pleac de la orice utilizator folosesc aceeai adres IP. Din
punctul de vedere al serverului, cele cteva de mii de clieni ai unui ISP folosesc aceeai adres IP.
Pentru a rezolva aceast problem, Netscape a proiectat o tehnic mult criticat numit cookies
(rom. fursecuri). Numele deriv dintr-un argou foarte vechi al programatorilor n care un program
apeleaz o procedur i obine rezultate ce ar putea fi mai trziu pentru a executa ceva. n acest sens,
o nregistrare de descriere a unui fiier UNIX sau un identificator al unui obiect Windows reprezint
un cookie. Mecanismul a fost formalizat mai trziu n RFC 2109.
Cnd un client cere o pagin de Web, serverul poate oferi informaii adiionale odat cu pagina
cerut. Aceste informaii pot include un cookie, care este un fiier (sau ir de caractere) de dimensiune mic (cel mult 4 KB). Programele de navigare stocheaz cookie-urile oferite ntr-un director
special pentru acestea pe discul clientului, cu excepia cazurilor cnd utilizatorul a oprit utilizarea
cookie-urilor. Cookie-urile sunt doar fiiere sau iruri de caractere, nu programe executabile. n
principiu, un cookie ar putea conine un virus, dar deoarece cookie-urile sunt tratate ca date, nu exist nici o posibilitate oficial ca virusul s fie executat i s cauzeze probleme. Este ns posibil ca un
hacker s exploateze o eroare a programului de navigare i s cauzeze activarea virusului.
Un cookie poate conine pn la cinci cmpuri, aa cum se arat n fig. 7-25. Cmpul Domeniu
spune de unde a sosit cookie-ul. Programele de navigare trebuie s verifice c serverele nu mint n
legtur cu domeniul lor. Fiecare domeniu poate stoca cel mult 20 de cookie-uri pentru fiecare client. Cmpul Cale reprezint o cale n structura de directoare a serverului care identific ce parte a
arborelui de fiiere de pe server poate utiliza cookie-ul respectiv. Adesea, acest cmp este /, ceea ce
nseamn ntregul arbore.
Domeniu
toms-casino.com
joes-store.com
aportal.com
sneaky.com

Cale
/
/
/
/

Coninut
CustomerID=497793521
Cart1=1-00501;1-07031;2-13721
Prefs=Stk:SUNW+ORCL;Spt:Jets
UserID=3627239101

Expir
15-10-02 17:00
11-10-02 14:22
31-12-10 23:59
31-12-12 23:59

Fig. 7-25. Cteva exemple de cookie-uri

Sigur
Da
Nu
Nu
Nu

562

NIVELUL APLICAIE

CAP. 7

Cmpul Coninut are forma nume = valoare. Att nume ct i valoare pot fi orice dorete serverul. Acesta este cmpul n care se stocheaz coninutul unui cookie.
Cmpul Expir arat cnd expir un cookie. Dac acest cmp este absent, programul de navigare
terge cookie-ul la terminarea execuiei. Un astfel de cookie se numete cookie ne-persistent (nonpersistent cookie). Dac se ofer o dat i o or, cookie-ul se numete persistent i este pstrat pn
la expirare. Timpul de expirare se d pentru ora Greenwich (Greenwich Mean Time). Pentru a terge un cookie de pe discul unui client, un server retransmite cookie-ul cu timpul de expirare n trecut.
n sfrit, cmpul Sigur poate indica dac programul de navigare poate transmite cookie-ul numai unui server sigur. Acest element este utilizat pentru comerul electronic, aplicaii bancare i alte
aplicaii sigure.
Am vzut cum se obin cookie-urile, dar cum sunt ele utilizate? Chiar nainte ca un program de
navigare s transmit cererea pentru o pagin ctre un sit Web, el verific directorul de cookie-uri
pentru a vedea dac exist vreun cookie care a fost stocat de ctre domeniul la care se duce cererea.
n caz afirmativ, toate cookie-urile stocate de ctre acel domeniu sunt incluse n mesajul ce conine
cererea. Atunci cnd serverul le obine, le poate interpreta n orice mod dorete.
S examinm acum cteva utilizri posibile pentru cookie-uri. n fig. 7-25, primul cookie a fost
stocat de ctre toms-casino.com i este utilizat pentru a identifica utilizatorul. Cnd clientul se conecteaz sptmna urmtoare pentru a arunca nite bani pe fereastr, programul de navigare transmite cookie-ul, astfel c serverul tie cine este clientul. Odat ce deine numrul de identificare al clientului, serverul poate cuta datele sale ntr-o baz de date i utiliza aceste informaii pentru a construi
o pagin de Web potrivit. Depinznd de obiceiurile clientului, aceast pagin poate reprezenta o
mas de poker, o list a curselor de cai din ziua respectiv sau o main de jocuri.
Cel de-al doilea cookie a venit de la joes-store.com. Scenariul n acest caz este c utilizatorul se
plimb prin magazin, cutnd lucruri de cumprat. Atunci cnd gsete un pre bun i execut un
clic pe produsul respectiv, serverul construiete un cookie ce conine numrul de buci i codul produsului i l transmite clientului. Pe msur ce clientul continu s se plimbe prin magazin, cookie-ul
este ntors la fiecare nou pagin cerut. Pe msur ce cumprturile se acumuleaz, serverul le
adaug la cookie. n figur, coul de cumprturi conine trei produse, ultimul dintre ele n dublu
exemplar. n cele din urm, cnd clientul selecteaz MERGI LA CAS, cookie-ul, care acum conine lista complet de cumprturi este trimis odat cu cererea. n acest mod, serverul tie exact ce
produse au fost cumprate.
Cel de-al treilea cookie este pentru un portal de Web. Atunci cnd utilizatorul selecteaz o legtur ctre portal, programul de navigare transmite cookie-ul. Acesta spune portalului s construiasc o
pagin ce conine valorile aciunilor pentru Sun Microsystems i Oracle i rezultatele echipei de fotbal
New York Jets. Deoarece un cookie poate avea pn la 4 KB, exist suficient spaiu pentru preferine
mai detaliate n ceea ce privete titluri de articole din ziar, starea vremii, oferte speciale, .a.m.d.
Cookie-urile pot fi utilizate i n beneficiul serverului. De exemplu, s presupunem c un server
dorete s tie n fiecare moment ci vizitatori a avut i cte pagini au fost vizitate de fiecare dintre
acetia nainte de a prsi situl. Prima cerere nu va fi nsoit de nici un cookie, astfel c serverul va
transmite napoi un cookie ce conine Counter=1. Selecii ulterioare ale paginilor acestui site vor
transmite acest cookie napoi la server. De fiecare dat, contorul este incrementat i transmis napoi
clientului. Urmrind aceste contoare, serverul poate s vad cte persoane renun dup vizitarea
primei pagini, cte au vizitat dou pagini, .a.m.d.
Cookie-urile au avut i utilizri greite. Teoretic, cookie-urile ar trebui s ajung doar la situl lor
de origine, dar sprgtorii au exploatat numeroase erori n programele de navigare pentru a captura

SEC. 7.3

WORLD WIDE WEB

563

cookie-uri care nu le erau destinate. Deoarece numeroase situri de comer electronic pun numerele
de cri de credit n cookie-uri, potenialul pentru abuzuri este evident.
Un mod de utilizare controversat al cookie-urilor este colectarea, n secret, de informaii privind
obiceiurile de navigare pe Web ale utilizatorilor. Mecanismul funcioneaz n modul urmtor. O
companie de publicitate, s spunem Sneaky Ads. (rom. sneaky = viclean) contacteaz un numr de
situri de Web importante i pune anunuri publicitare ale clienilor si pe paginile respectivelor situri, pentru care pltete celor ce dein siturile o anumit sum. n loc s ofere sitului un fiier GIF
sau JPEG pentru a fi amplasat pe fiecare pagin, le ofer un URL ce trebuie adugat la fiecare pagin. Fiecare din aceste URL-uri conine un numr unic n partea rezervat fiierului, cum ar fi
http://www.sneaky.com/382674902342.gif
Atunci cnd un utilizator viziteaz o pagin P ce conine un asemenea anun publicitar, programul
de navigare obine fiierul HTML i vede legtura ctre imaginea de la www.sneaky.com, aa c transmite cererea pentru imagine acestui server. Serverul ntoarce un fiier GIF coninnd anunul publicitar, mpreun cu un cookie ce conine un numr unic de identificare pentru utilizator, 36271239101 n
fig. 7-25. Compania Sneaky nregistreaz faptul c utilizatorul cu acest numr de nregistrare a vizitat
pagina P. Aceasta este uor de realizat avnd n vedere faptul c fiierul cerut (382674902342.gif) este
menionat doar n pagina P. Desigur c anunul n sine poate apare pe o mie de alte pagini, dar de fiecare dat cu un nume de fiier diferit. Compania Sneaky colecteaz probabil doar civa bnui de la
compania ce a realizat produsul de fiecare dat cnd transmite anunul publicitar.
Mai trziu, cnd utilizatorul viziteaz o alt pagin de Web care conine unul din anunurile publicitare ale companiei Sneaky, dup ce programul de navigare a obinut fiierul HTML de la server,
vede referina ctre, s spunem, http://www.sneaky.com/493654919923.gif i cere acest fiier. Deoarece exist deja un cookie de la domeniul sneay.com, programul de navigare include cookie-ul companiei Sneaky ce conine i numrul unic de identificare al utilizatorului. Compania Sneaky tie acum o
a doua pagin vizitat de utilizator.
Cu timpul, compania Sneaky poate construi un profil complet al obiceiurilor de navigare ale utilizatorului, dei acesta nu a efectuat nici un clic pe vreun anun publicitar. Desigur, acest profil nu
include nc numele utilizatorului (dei conine adresa IP a acestuia, informaie care poate fi suficient pentru a deduce numele din alte baze de date). n cazul n care utilizatorul ofer vreodat numele su unui site care coopereaz cu Sneaky, un profil complet ce include i numele este acum gata
de vnzare pentru oricine dorete s-l cumpere. Vnzarea acestor informaii poate fi suficient de
profitabil pentru ca Sneaky sa poat plasa mai multe anunuri publicitare pe mai multe situri Web
i astfel s colecteze i mai multe informaii. Cea mai ascuns parte a acestei poveti este c majoritatea utilizatorilor nu tiu nimic despre aceast colectare de informaii i chiar ar putea s se cread n
siguran, pentru c nu au selectat nici un anun publicitar.
i dac Sneaky vrea s fie i mai viclean, anunul publicitar poate s nu fie unul clasic. Un
anun format dintr-un singur pixel de culoarea fondului (i deci invizibil) are exact acelai efect ca
i anunul propriu-zis: programul de navigare trebuie s obin imaginea gif de 1 x 1 pixeli i s i
livreze toate cookie-urile care au fost transmise de domeniul de origine al pixelului.
Pentru a menine impresia de intimitate, o serie de utilizatori i configureaz programele de navigare pentru a refuza toate cookie-urile. Aceast aciune poate duce ns la probleme cu siturile de
Web legitime ce folosesc cookie-uri. Pentru a rezolva aceast problem, utilizatorii instaleaz cteodat software care mnnc cookie-uri (cookie-eating software). Acestea sunt programe speciale
care inspecteaz fiecare cookie la sosire i l accept sau refuz n funcie de opiunile utilizatorului

SEC. 7.5

REZUMAT

637

respectiv. Cnd un pachet ajunge prin tunelul bun, este copiat pe toate celelalte tuneluri care nu
s-au auto-tiat anterior. Dac toate celelalte tuneluri s-au auto-tiat i canalul din insula local nu
este interesat, m-ruterul trimite un mesaj de tiere napoi prin canalul bun. n acest fel, trimiterea
multipl se adapteaz automat i merge doar unde este dorit.
PIM-SM (modul rar), descris n RFC 2362, lucreaz diferit. Aici ideea este de a preveni saturarea Internetului, doar pentru c trei persoane din Berkeley vor s in o conferin peste o adres de
clas D. PIM-SM funcioneaz prin fixarea unor puncte de ntlnire. Fiecare dintre sursele dintr-un
grup cu trimitere multipl PIM-SM i trimite pachetele la punctele de ntlnire. Orice sit interesat n
ataare, cere unui punct de ntlnire s-i seteze un tunel. n acest mod, tot traficul PIM-SM este
transportat prin transmitere simpl, n loc de transmitere multipl. PIM-SM devine tot mai popular
i MBONE migreaz ctre folosirea lui. Pe msur ce PIM-SM devine mai mult folosit, MOSPF
dispare treptat. Pe de alt parte, nsui MBONE pare ntr-un fel s stagneze i probabil niciodat nu
va deveni foarte popular.
Totui, multimedia prin reea este nc un domeniu foarte interesant, care evolueaz rapid, chiar
dac MBONE nu devine un succes uria. Zilnic sunt anunate noi tehnologii i aplicaii. Mai mult,
transmiterea multipl i calitatea serviciului funcioneaz mpreun, dup cum se prezint n
(Striegel i Manimaran, 2002). Alt subiect fierbinte este transmisia multipl fr fir (wireless) (Gossain et. al., 2002). ntregul domeniu al transmisiunilor multiple i orice este legat de el va rmne,
probabil, important pentru urmtorii ani.

7.5 REZUMAT
Atribuirea numelor n Internet folosete o schem ierarhic, numit sistemul numelor de domenii (DNS). La nivelul superior, exist bine cunoscutele domenii generice, incluznd com i edu, precum i cele aproximativ 200 domenii pentru ri. DNS este implementat ca un sistem de baze de
date distribuite, cu servere n ntreaga lume. DNS pstreaz nregistrri cu adrese IP, centre de mesagerie i alte informaii. Prin interogarea unui server DNS, un proces poate stabili corespondena
dintre un nume de domeniu Internet i o adres IP folosit pentru a comunica cu acel domeniu.
E-mail este una din cele dou aplicaii foarte populare din Internet. Oricine, de la copii la bunici,
o poate folosi acum. Cele mai multe sisteme de pot electronic din lume folosesc sistemul definit
n RFC 2821 i 2822. Mesajele trimise n acest sistem folosesc antete de sistem ASCII pentru definirea proprietilor mesajului. Materiale cu diverse tipuri coninut pot fi transmise folosind MIME.
Mesajele sunt transmise folosind SMTP, care lucreaz fcnd o conexiune TCP de la sistemul surs
la cel de destinaie i livrnd n mod direct e-mail-ul peste conexiunea TCP.
O alt aplicaie foarte popular pentru Internet este World Wide Web. Web-ul este un sistem
pentru legarea documentelor "hipertext". Iniial, fiecare document era o pagin scris n HTML, cu
posibile hiper-legturi la alte documente. Azi, XML ctig teren n faa HTML. De asemenea, un
mare volum de informaie este generat dinamic, folosind script-uri executate de server (eng.:serverside scripts) (PHP, JSP i ASP), precum i script-uri executate de client (eng.: client-side scripts) (de
remarcat aici Javascript). Un program de navigare poate afia documentul stabilind o conexiune
TCP cu serverul su, cernd documentul i apoi nchiznd conexiunea. Aceste mesaje de cerere conin o mulime de antete pentru asigurarea informaiei suplimentare. Folosirea memoriei ascunse,

638

NIVELUL APLICAIE

CAP. 7

replicarea i reelele de livrare a coninutului sunt folosite pe scar larg pentru a mbunti performanele Web-ului.
Web-ul fr fir este de-abia la nceput. Primele sisteme sunt WAP i i-mode, fiecare cu ecrane
mici i lungime de band limitate, dar cele din generaia urmtoare vor fi mai puternice.
Multimedia este i ea o stea pe firmamentul reelelor. Se permite ca semnalele video i audio s
fie digitizate i transportate electronic pentru afiare. Audio necesit mai puin lrgime de band,
astfel c este mai avansat. Fluxurile audio, radio prin Internet i vocea prin IP (voice over IP) sunt
acum o realitate, iar noile aplicaii apar permanent. Video la cerere este un domeniu de viitor, de
mare interes. n sfrit, Mbone este un serviciu experimental, bazat pe televiziunea i radioul digital
trimise peste Internet.

7.6 PROBLEME
1.

Multe calculatoare ale unor firme au trei identificatori universali, unici. Care sunt ei?

2.

Dup informaiile date n fig. 7-3, little-sister.cs.vu.nl se afl ntr-o reea de clas A, B, sau C?

3.

n fig. 7-3, nu este nici un punct dup rowboat? De ce nu?

4.

Ghicii ce ar putea s nsemne smiley-ul :-X (uneori scris ca :-#).

5.

DNS folosete UDP n loc de TCP. Pachetele DNS pierdute nu pot fi recuperate automat. Cauzeaz acest lucru probleme, i dac da, cum sunt ele rezolvate?

6.

n plus fa de problema pierderilor, pachetele UDP au o dimensiune maxim, uneori


ajungnd chiar la minimum 576 octei. Ce se ntmpl cnd numele DNS cutat depete
aceast dimensiune? Poate fi trimis n dou pachete?

7.

Se poate ca o main cu un singur nume DNS s aib mai multe adrese IP? Cum ar putea
s se ntmple acest lucru?

8.

Este posibil ca un calculator s aib dou nume DNS care aparin de dou domenii de nivel
nalt? Dac da, dai un exemplu plauzibil. Daca nu, explicai de ce.

9.

Numrul de companii cu site Web a crescut exploziv n ultimii ani. Ca rezultat, mii de companii
au fost nregistrate n domeniul com, ducnd la o ncrcare mare a serverului pentru acest domeniu. Sugerai o cale de a diminua aceast problem fr a schimba schema de nume (adic
fr a introduce noi domenii de nivel nalt). Este permis ca soluia s impun schimbarea codului de la client.

10. Unele sisteme de e-mail suport n antet cmpul Content Return:. El specific dac corpul mesajului trebuie s fie returnat n cazul imposibilitii livrrii. Acest cmp aparine plicului sau coninutului?

SEC. 7.6

PROBLEME

639

11. Sistemele de pot electronic au nevoie de registre pentru a putea cuta adresele de e-mail.
Pentru a construi asemenea registre, numele ar trebui s fie separate n componentele standard
(de exemplu nume, prenume) pentru a putea fi fcute cutri. Discutai unele dintre problemele ce trebuie rezolvate pentru acceptarea universal a unui astfel de standard.
12. Adresa de e-mail a unei persoane este numele su de utilizator @ numele DNS cu o nregistrare MX. Numele de utilizator pot fi prenume, nume, iniiale, tot felul de alte nume. S presupunem c o firm mare a decis c se pierdea prea mult e-mail din cauz c lumea nu cunotea
numele de utilizator al destinatarului. Exist vreo modalitate pentru ca ei s rezolve aceast problem fr schimbarea DNS-ului? Dac da, dai o propunere i explicai cum funcioneaz. Dac nu, explicai de ce este imposibil.
13. Un fiier binar are lungimea de 3072 de bii. Ct de lung va fi dac l codificm folosind base64,
cu perechea CR+LF inserat dup fiecare 80 de octei transmii i la sfrit?
14. Considerai schema de codificare MIME afiabil-marcat. Menionai o problem nediscutat
n text i propunei o soluie.
15. Dai cinci tipuri MIME care nu sunt listate n text. Putei s verificai browser-ul dvs. sau s cutai pe Internet.
16. S presupunem c vrei s trimitei un fiier MP3 la un prieten, dar ISP-ul prietenului limiteaz
dimensiunea unui mesaj la 1 MB iar fiierul MP3 are 4 MB. Exist vreo modalitate de a rezolva
problema aceasta folosind RFC 822 i MIME?
17. S presupunem c cineva instaleaz un demon de vacan (vacation daemon) i apoi trimite un
mesaj chiar nainte de a iei din sistem. Din pcate, destinatarul este n vacan de o sptmn
i are de asemenea instalat un demon de vacan. Ce se ntmpl n continuare? Replicile vor fi
trimise dintr-o parte n alta pn cnd se va ntoarce cineva?
18. n orice standard, ca de exemplu RFC 822, este necesar o gramatic precis a ceea ce
este permis astfel nct implementri diferite s poat conlucreze. Chiar i unitile simple
trebuie s fie definite cu atenie. Antetele SMTP permit existena spaiului ntre simboluri.
Dai dou definiri plauzibile ale spaiului dintre simboluri.
19. Demonul de vacan este parte a agentului utilizator sau a agentului de transfer? Desigur, este
instalat folosind agentul utilizator, dar cel care trimite replicile este chiar agentul utilizator? Explicai rspunsul.
20. POP3 permite utilizatorilor s aduc mesajele de e-mail dintr-o cutie potal de la distan.
Aceasta nseamn c formatul intern al cutiilor potale trebuie s fie standard pentru ca orice
program POP3 de la client s poat s citeasc cutia potal de pe orice server de pot electronic? Discutai rspunsul.
21. Din punctul de vedere al unui ISP, POP3 i IMAP difer ntr-o msur important. Utilizatorii
POP3 i golesc n general cutiile potale zilnic. Utilizatorii IMAP i pstreaz mesajele pe server un timp nedefinit. Imaginai-v c vi se cere s sftuii un ISP ce protocol ar trebui s suporte. Ce argumente ai aduce?

640

NIVELUL APLICAIE

CAP. 7

22. Pota pe Web(Webmail) folosete POP3, IMAP sau nici unul? Dac folosete unul din ele, de
ce a fost ales acela? Dac nici unul, care este mai aproape de idee?
23. Cnd sunt transmise, paginile de Web sunt prefixate de antete MIME. De ce?
24. Cnd sunt necesare programe de vizualizare externe? Cum tie un program de navigare pe care
s-l foloseasc?
25. Este posibil ca atunci cnd un utilizator urmeaz pe o hiper-legtur n Netscape, s fie pornit
un anumit program, iar urmnd aceeai hiper-legtur n Internet Explorer s fie pornit un program complet diferit, chiar dac tipul MIME ntors n ambele cazuri este identic? Explicai rspunsul.
26. Un server Web cu mai multe fire de execuie este organizat ca n fig. 7-21. Dureaz 500 sec s
accepte o cerere i s verifice memoria ascuns. Jumtate din timp, fiierul este gsit n memoria
ascuns i este ntors imediat. Cealalt jumtate, modulul trebuie s se blocheze 9 ms pn cnd
cererea la disc este adugat n coad i procesat. Cte module ar trebui s aib serverul pentru a ine procesorul ocupat tot timpul (presupunnd c discul nu reprezint o gtuire
(bottleneck))?
27. URL-ul standard http presupune c serverul de Web ascult pe portul 80. Totui, e posibil ca un
server de Web s asculte pe alt port. Nscocii o sintax rezonabil pentru URL pentru accesarea unui fiier pe un port nestandard.
28. Cu toate c nu a fost menionat n text, o form alternativ pentru un URL este folosirea adresei IP n loc de numele su DNS. Un exemplu de folosirea a adresei IP este
http://192.31.231.66/index.html. Cum tie programul navigator dac numele ce urmeaz schema
este un nume DNS sau o adres IP?
29. Imaginai-v c cineva de la Departamentul CS din Stanford a scris un nou program pe care
vrea s-l distribuie prin FTP. El pune programul n catalogul ftp/pub/freebies/newprog.c. Care este URL-ul probabil pentru acest program?
30. n fig. 7-25, www.aportal.com ine evidena preferinelor utilizatorilor ntr-un cookie. Un dezavantaj al acestei scheme este c cookie-urile sunt limitate la 4KB i dac preferinele sunt extinse, de exemplu la multe valori ale aciunilor, echipe sportive, tipuri de tiri, vremea n multe
orae, ofertele din diverse categorii de produse i altele, limita de 4KB ar putea fi insuficient.
Proiectai o alternativ pentru pstrarea preferinelor utilizatorului pentru a nu avea aceast
problem.
31. Banca Sloth (Trndvie) dorete s fac operaiile bancare mai simple pentru utilizatorii mai
lenei, astfel nct dup ce un utilizator se autentific, banca i returneaz identificatorul de client ntr-un cookie. Ce prere avei de aceast idee? Va funciona? Este o idee buna?
32. n fig. 7-26, n marcajul <IMG> apare parametrul ALT. n ce condiii este folosit de programul
de navigare i cum?
33. Realizai o imagine selectabil n HTML? Dai un exemplu.

SEC. 7.6

PROBLEME

641

34. Artai cum marcajul <a> poate fi folosit pentru a face irul ACM un hiper-legturi ctre
http://www.acm.org.
35. Proiectai un formular pentru o nou companie, InterBurger, care permite comanda hamburgerilor prin Internet. Formularul trebuie s conin numele clientului, adresa, oraul, ca i o opiune asupra dimensiunii (ori gigant, ori imens) i o opiune pentru brnz. Burger-ii urmeaz a fi
pltii la livrare cu bani ghea, aa c nu este necesar nici o informaie despre cartea de credit.
36. Proiectai un formular care cere utilizatorului s tasteze dou numere. Cnd utilizatorul apas
pe butonul de trimitere, serverul ntoarce suma lor. Scriei partea care ruleaz la server ca un
script PHP.
37. Pentru fiecare din aplicaiile urmtoare, spunei (1) dac este posibil i (2) dac este mai bine s
se foloseasc un script PHP sau JavaScript i de ce.
(a) Afiarea unui calendar pentru orice lun ncepnd cu septembrie 1752.
(b) Afiarea unui program al zborurilor de la Amsterdam la New York.
(c) Graficul unui polinom cu coeficienii dai de utilizator.
38. Scriei un program JavaScript care accept un ntreg mai mare ca 2 i spune dac este, sau nu,
un numr prim. Notai c JavaScript are instruciunile if i while cu aceeai sintax ca n C sau
Java. Operatorul modul este %. Dac avei nevoie de rdcina ptrat a lui x, folosii
Math.sqrt(x).
39. O pagin HTML este de forma:
<html> <body>
<a href=www.info-source.com/welcome.html> Apsai aici pentru informaii </a>
</body> </html>

Dac utilizatorul apas pe hiper-legtur, este deschis o conexiune TCP i este trimis o serie
de linii la server. Scriei toate liniile trimise.
40. Antetul If-Modified-Since poate fi folosit pentru a vedea dac o pagin din memoria ascuns este
nc valid. Cererile pot fi pentru pagini coninnd imagini, sunete, video etc., precum i HTML.
Credei c eficacitatea acestei tehnici este mai bun sau mai rea pentru imagini JPEG n comparaie cu HTML? Gndii bine la ceea ce eficacitate nseamn i explicai rspunsul vostru.
41. n ziua unui mare eveniment sportiv, cum ar fi un campionat sportiv, mult lume se duce pe
situl Web oficial. Este aceasta o aglomerare brusc n acelai sens cu cel al alegerilor din Florida, n 2000? De ce sau de ce nu?
42. Are sens ca un singur ISP s aib rolul de CDN? Dac da, cum ar funciona? Dac nu, care este
greit n legtur cu aceast idee?
43. n ce condiii folosirea unui CDN este o idee proast?
44. Terminalele pentru Web-ul fr fir(Wirelss Web) au o lime de band mic, ceea ce face important o codificare eficient. Proiectai o schem de transmitere eficient a textului n englez
pe o legtur fr fir ctre un dispozitiv WAP. Putei presupune c terminalul are civa mega-

642

NIVELUL APLICAIE

CAP. 7

octei de memorie ROM i un procesor moderat de puternic. Indiciu: gndii-v cum transmitei
ceva n japonez, unde fiecare simbol este un cuvnt.
45. Un CD memoreaz 650 MB de date. Este folosit compresia pentru CD-uri audio? Explicai
raionamentul.
46. n fig. 7-57(c) zgomotul de cuantificare apare datorit folosirii de eantioane pe 4 bii pentru a
reprezenta nou valori de semnale. Primul eantion, la 0, este exact, dar cteva dintre urmtoarele nu. Care este procentul de eroare la 1/32, 2/32 i 3/32 din perioad?
47. Ar putea fi folosit modelul psiho-acustic pentru reducerea lrgimii de band necesare pentru
telefonia Internet? Dac da, ce condiii, dac exist, ar trebui s fie ndeplinite pentru ca el s
funcioneze? Dac nu, de ce nu?
48. Un server de flux audio are o distan pe sens de 50 ms cu un dispozitiv de redare (media
plsyer). El emite la 1 Mbps. Dac media player-ul are o memorie tampon de 1 MB, ce putei
spune despre poziia minim i cea maxim?
49. Algoritmul de ntreesere din fig. 7-60 are avantajul de a fi capabil s supravieuiasc unei pierderi ocazionale a unui pachet fr a introduce o pauz n redarea sunetului (playback). Totui,
cnd este folosit pentru telefonia Internet, el are i un mic dezavantaj. Care este el?
50. Transmisia de voce-peste-IP are aceleai probleme cu zidurile de protecie (firewalls) ca i
transmiterea fluxurilor audio? Discutai rspunsul vostru.
51. Care este rata de bii pentru transmiterea necomprimat a culorii la 800 x 600 cu 8 bii/pixel la
40 cadre/sec?
52. Poate o eroare de 1-bit ntr-un cadru MPEG s afecteze mai mult dect cadrul n care a aprut
eroarea? Explicai rspunsul vostru.
53. S considerm exemplul video-serverului cu 100.000 de clieni, unde fiecare client vizioneaz
dou filme pe lun. Jumtate din filme se transmit la 8 seara. Cte filme trebuie s transmit
serverul simultan n acest interval de timp? Dac fiecare film necesit 4 Mbps, cte conexiuni
OC-12 necesit serverul pentru reea?
54. S presupunem c legea lui Zipf este ndeplinit pentru accese la un server video cu 10.000 de
filme. Dac serverul memoreaz cele mai populare 1000 de filme pe disc magnetic, iar restul de
9000 pe disc optic, dai o expresie pentru fracia tuturor referinelor care se vor face la discul
magnetic. Scriei un mic program pentru evaluarea acestei expresii numerice.
55. Unii cyber-bgcioi i-au nregistrat nume de domenii care sunt ortografieri greite ale siturilor
companiilor cunoscute, ca de exemplu, www.microsfot.com. Facei o list de cel puin cinci asemenea domenii.
56. Numeroase persoane au nregistrat nume de domenii DNS de genul www.cuvnt.com, unde
cuvnt este un cuvnt obinuit. Pentru fiecare din categoriile urmtore, enumerai cinci situri
Web i spunei pe scurt despre ce este vorba (de exemplu, www.stomach.com este un
gastroenteorologist din LongIsland). Iat lista de categorii: animale, mncare, obiecte de gos-

SEC. 7.6

PROBLEME

643

podrie, pri ale corpului. Pentru ultima categorie, v rog rmnei la prile corpului de deasupra taliei.
57. Proiectai emoji-uri proprii folosind o hart de bii 12 x 12. Includei prietenul, prietena, profesorul i politicianul.
58. Scriei un server POP3 care accept urmtoarele comenzi: USER, PASS, LIST, RETR, DELE
i QUIT.
59. Rescriei serverul din fig. 6-6 ca un server Web adevrat, folosind comanda GET de la HTTP 1.1.
Ar trebui s accepte i mesajul Host. Serverul trebuie s menin o memorie ascuns cu fiierele
recent aduse de pe disc i s serveasc cererile din aceast memorie atunci cnd este posibil.

S-ar putea să vă placă și