Documente Academic
Documente Profesional
Documente Cultură
3. Se scade restul (care are ntotdeauna r sau mai puini bii) din irul de bii
corespunznd lui xrM(x), utiliznd scderea modulo 2. Rezultatul este cadrul cu
sum de control ce va fi transmis. Numim polinomul su T(x).
S analizm puterea acestei metode. Ce tipuri de erori vor fi detectate? S
ne imaginm c apare o eroare de transmisie, aa nct n loc s soseasc irul de
bii pentru T(x), ajunge T(x) + E(X). Fiecare bit din E(x) corespunde unui bit care a
fost inversat. Dac n E(x) exist k bii 1, aceasta nseamn c au aprut k erori de
un singur bit.
La recepia cadrului cu sum de control, receptorul l mparte prin G(x);
aceasta nseamn c va calcula [T(x) + E(x)]/G(x). T(x)/G(x) este 0, aa nct
rezultatul calculului este pur i simplu E(x)/G(x). Acele erori care se ntmpl s
corespund unor polinoame care l au ca factor pe G(x) vor scpa; toate celelalte
vor fi detectate.
acestuia din urm s transmit urmtorul cadru. Reacia are forma unui cadru
fictiv.
*Protocol simplex pentru un canal cu erori.
S-ar prea c n cazul unui canal cu erori o uoar modificare a protocolului
anterior este suficient. Receptorul transmite un cadru de confirmare doar pentru
cadre corecte. n caz de eroare, transmitorul nu primete confirmarea ntr-un
timp prestabilit i ca urmare retransmite cadrul. Funcia de armare a ceasului i de
permisiune a evenimentului TimeOut este: void StartCeas(NrSecv); iar funcia de
dezarmare a ceasului este: void StopCeas (NrSecv);
Parametrul lor permite asocierea unui eveniment TimeOut cu cadrul avnd
un numr de secven specificat. Aceast variant prezint pericolul duplicrii
cadrelor, n cazul n care se pierde confirmarea mesajului i nu mesajul
(transmitorul retransmite cadrul precedent, pe care receptorul l ia drept cadru
nou). Evitarea acestei erori se face prin includerea unui numr de secven n
antetul cadrului. Deoarece n acest caz, numrul de secven trebuie s
diferenieze doar dou cadre succesive, este suficient un contor de un bit,
numerele de secvena 0 i 1 ale cadrelor succesive alternnd.
Pentru justificare, fie cadrele succesive m, m+1, m+2 cu numerele de
secven respectiv 0, 1 i 0. Dup transmisia cadrului m (0), poate urma m (0), sau
m+1 (1), dup cum s-a primit sau nu confirmarea. n nici un caz nu urmeaz m+2
(0), care presupune confirmarea corect a lui m (0). Deci dac receptorul a primit
corect m (0) i primete un nou cadru cu numr de secven 0, el nu poate fi dect
m (0) i n consecin l ignor.
*Protocol cu fereastra glisanta
-nu ateapt confirmarea cadrelor precedente pentru a transmite cadre noi.
Protocoalele anterioare snt simplex. Pentru o transmisie duplex ar fi
necesare dou legturi distincte, una pentru fiecare sens. Ca alternativ, putem
utiliza cadrele de confirmare pentru transmiterea datelor n sens opus. Dac nu
snt date, se transmite doar confirmarea. Apar deci mai multe feluri de cadre,
difereniabile printr-un cmp din antet (fel).
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.
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.
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.
Aceste date nu sunt livrate nivelului reea, ci sunt destinate a fi primite chiar de
nivelul legtur de date.
(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).
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 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.
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 punctla-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.
dirijare linia de ieire folosit pentru el. Acesta este procesul de retransmitere
(forwarding). Cellalt proces se ocup de completarea i actualizarea tabelei de
rutare. Aici intervine algoritmul de dirijare.
Indiferent dac ruta se alege independent pentru fiecare pachet sau doar la
stabilirea unei noi conexiuni, un algoritm de dirijare trebuie s aib anumite
proprieti: corectitudine, simplitate, robustee, stabilitate, echitate, optimalitate.
Algoritmii de dirijare pot fi grupai n dou mari clase: neadaptivi i
adaptivi. Algoritmii neadaptivi (nonadaptive algorithms) nu i bazeaz deciziile
de dirijare pe msurtori sau estimri ale traficului i topologiei curente. Astfel,
alegerea cii folosite pentru a ajunge de la nodul I la nodul J (oricare ar fi I i J) se
calculeaz n avans, off-line i parvine ruterului la iniializarea reelei. Aceast
procedur se mai numete i dirijare static (static routing).
Algoritmii adaptivi (adaptive algorithms), prin contrast, i modific
deciziile de dirijare pentru a reflecta modificrile de topologie i de multe ori i pe
cele de trafic. Algoritmii adaptivi difer prin locul de unde i iau informaia (de
exemplu local, de la un ruter vecin sau de la toate ruterele), prin momentul la
care schimb rutele (de exemplu la fiecare T secunde, cnd se schimb
ncrcarea sau cnd se schimb topologia) i prin metrica folosit pentru
optimizare (de exemplu distana, numrul de salturi sau timpul estimat pentru
tranzit).
Algoritmi statici:
- Algoritmul lui Dijkstra: Fiecare nod este etichetat (n paranteze) cu distana
de la nodul surs pn la el, de-a lungul celei mai bune ci cunoscute. Iniial
nu se cunoate nici o cale, aa c toate nodurile vor fi etichetate cu infinit.
Pe msur ce se execut algoritmul i se gsesc noi ci, etichetele se pot
schimba, reflectnd ci mai bune. O etichet poate fi fie temporar, fie
permanent. Iniial toate etichetele sunt temporare. Atunci cnd se
descoper c o etichet reprezint cea mai scurt cale posibil de la surs
ctre acel nod, ea devine permanent i nu se mai schimb ulterior.
Algoritmi dinamici:
Fcnd aceste calcule pentru fiecare vecin, un ruter poate stabili care
estimare pare a fi cea mai bun, pentru a folosi aceast estimare,
mpreun cu linia corespunztoare n noua tabel de dirijare. Este de
remarcat faptul c vechea tabel de dirijare nu intervine n calcule.
o Problema numararii la infinit
Dirijarea folosind vectori distan funcioneaz n teorie, ns n
practic are o limitare important: dei ea converge spre
rezultatul corect, o face foarte lent. n particular, ea
reacioneaz rapid la vetile bune, dar foarte lent la cele rele.
S considerm un ruter care are un cel mai bun drum spre
destinaia X foarte lung. Dac la urmtorul schimb de
informaii, vecinul su A raporteaz brusc o ntrziere mic
spre X, ruterul va comuta i va folosi linia spre A pentru a dirija
traficul spre X. Astfel, ntr-o singur schimbare a vectorului,
vestea bun a fost luat n considerare. ntr-o subreea avnd
calea cea mai lung de lungime N salturi, dup N schimburi
fiecare ruter va afla despre liniile i ruterele nou aprute.
S considerm acum situaia n care toate liniile i ruterele sunt
iniial n funciune. Ruterele B, C, D i E au distanele spre A
respectiv de 1, 2, 3, 4. Brusc, A se oprete sau, alternativ, linia
dintre A i B este ntrerupt, ceea ce reprezint efectiv acelai
lucru din punctul de vedere al lui B.
La primul schimb de pachete, B nu primete nimic de la A. Din
fericire, C spune: Nici o problem. Eu tiu o cale spre A de
lungime 2. ns B nu tie c aceast cale a lui C trece prin B
nsui. Dup cunotinele lui B, C ar putea avea zece linii, toate
cu ci separate de lungime 2 spre A. Prin urmare B va crede c
poate ajunge la A prin C pe o cale de lungime 3. D i E nu i
actualizeaz intrrile proprii pentru A la primul schimb.
La al doilea schimb, C remarc faptul c fiecare dintre vecinii
si pretinde a avea o cale de lungime 3 spre A. El va alege la
ntmplare unul dintre aceti vecini i va nregistra noua
distan spre A ca fiind 4.
algoritmul lui Dijkstra pentru a afla cea mai scurt cale ctre fiecare
ruter.
o Determinarea vecinilor: Cnd un ruter este pus n funciune, prima sa
sarcin este s afle care sunt vecinii si. El realizeaz aceasta prin
trimiterea unui pachet special HELLO pe fiecare linie prin care este
legat la alt ruter. Ruterul de la cellalt capt trebuie s rspund
anunnd ntr-un pachet identitatea sa. Aceste nume trebuie s fie
unice global, pentru c dac mai trziu un ruter afl c trei rutere
sunt conectate toate la F, este esenial ca acesta s poat determina
dac cele trei se refer la acelai F.
o Msurarea costului liniei:
Algoritmul de dirijare bazat pe starea legturilor cere ca fiecare
ruter s tie, sau cel puin s aib o estimare rezonabil, a
ntrzierii ctre fiecare dintre vecinii si. Cel mai direct mod de
a afla acest lucru este de a trimite un pachet special ECHO pe
linie, cernd ca ruterul partener s-l trimit napoi imediat.
Msurnd timpul n care pachetul se ntoarce (round-trip time)
i mprindu-l la doi, ruterul iniiator poate avea o estimare
rezonabil a ntrzierii. Pentru rezultate i mai bune, testul
poate fi repetat de mai multe ori, folosindu-se apoi valoarea
medie obinut. Bineneles, aceast metod presupune
implicit c ntrzierile sunt simetrice, dar nu mereu este aa.
O problem interesant este dac s se considere sau nu
ncrcarea reelei la msurarea ntrzierii. Pentru a ine cont de
ncrcare, timpul de revenire trebuie msurat din momentul n
care pachetul ECHO este pus n coad. Pentru a ignora
ncrcarea, ceasul se poate porni n momentul n care pachetul
ECHO ajunge pe prima poziie din coad.
o Construirea pachetelor cu starea legturilor:
De ndat ce a fost colectat informaia necesar pentru
realizarea schimbului, se poate trece la pasul urmtor, fiecare
ruter construind un pachet care conine toate datele. Pachetul
ncepe cu identitatea expeditorului, urmat de un numr de
pachete ctre adresele destinaie, cu excepia faptului c atunci cnd mai multe
pachete trebuie s urmeze aceeai cale, unul dintre ele pltete tot drumul, iar
celelalte cltoresc gratuit.
Al patrulea algoritm de difuzare utilizeaz explicit arborele de scufundare al
ruterului care iniiaz difuzarea sau orice alt arbore de acoperire util. Un arbore
de acoperire (spanning tree) este un subset al subreelei care include toate
ruterele i nu conine bucle. Dac fiecare ruter cunoate care din liniile sale
particip la arborele de acoperire, el poate copia un pachet de difuzare
recepionat pe toate liniile de ieire care fac parte din arborele de acoperire, cu
excepia celei pe care a fost recepionat. Aceast metod asigur o utilizare
deosebit de eficient a limii de band, genernd numrul minim de pachete
necesare pentru a rezolva problema. Singura problem este c, pentru a fi
aplicabil, fiecare ruter trebuie s dein cunotine despre un anume arbore de
acoperire. Uneori aceast informaie este disponibil (de exemplu la dirijarea
bazat pe starea legturilor), iar alteori nu este disponibil (de exemplu la
dirijarea cu vectori distan).
Ultimul nostru algoritm cu difuzare este o ncercare de a aproxima
comportamentul precedentului, chiar i atunci cnd ruterele nu tiu absolut nimic
despre arborele de acoperire. Ideea, numit trimiterea pe calea invers (reverse
path forwarding) este remarcabil de simpl odat ce a fost indicat. Cnd un
pachet de difuzare ajunge la un ruter, acesta verific dac pachetul a sosit pe linia
pe care se trimit de obicei pachete ctre sursa difuzrii. Dac este aa, este o
ans foarte mare ca nsui pachetul de difuzare s fi urmat cea mai bun cale,
fiind astfel prima copie care ajunge la ruter. Aceasta fiind situaia, ruterul trimite
pachetul pe toate liniile de ieire, cu excepia celei pe care a sosit. Dac ns
pachetul a sosit pe alt linie dect cea preferat pentru a ajunge la surs, pachetul
este distrus, fiind considerat un posibil duplicat.
12. Dirijarea cu trimitere multipla (multicast)
Unele aplicaii necesit ca procese aflate la mari distane unele de altele s
lucreze n grup, de exemplu, un grup de procese care implementeaz o baz de
date distribuit. n aceste situaii, este adesea necesar ca un proces s trimit un
mesaj ctre toi ceilali membri ai grupului. Dac grupul este mic, el poate trimite
fiecrui partener un mesaj capt la capt. Dac grupul este mare, aceast
strategie este costisitoare. Uneori se poate folosi difuzarea, dar folosirea difuzrii
pentru a anuna 1000 de maini dintr-o reea cu un milion de noduri este
ineficient, deoarece majoritatea receptorilor nu sunt interesai de mesaj (sau
chiar mai ru, sunt foarte interesai, dar nu trebuie s vad mesajul). De aceea,
avem nevoie de o modalitate de a trimite mesaje spre grupuri bine definite.
Trimiterea unui mesaj ctre un astfel de grup se numete multicasting, iar
algoritmul de dirijare asociat se numete dirijare multicast (multicast routing). n
aceast seciune, vom descrie o modalitate de a realiza dirijarea multicast.
Dirijarea multicast necesit managementul grupului. Trebuie s existe
modaliti de a crea i distruge grupuri i de a permite proceselor s intre n
grupuri sau s le prseasc. Cum se realizeaz aceste funcii nu este treaba
algoritmului de dirijare. Important pentru algoritmul de dirijare este c atunci
cnd un proces se ataeaz unui grup, el trebuie s informeze gazda sa despre
aceasta. Este important ca ruterele s tie cror grupuri le aparin calculatoarele
gazd asociate. Fie calculatoarele gazd trebuie s anune ruterul asociat la
producerea unei modificri n alctuirea grupurilor, fie ruterul trebuie s
interogheze periodic aceste calculatoare gazd. n ambele cazuri, ruterul afl din
ce grupuri fac parte calculatoarele gazd. Ruterele i informeaz vecinii, astfel c
informaia se propag prin subreea.
Pentru a realiza dirijarea multicast, fiecare ruter calculeaz arborele de
acoperire care acoper toate celelalte rutere din subreea. Atunci cnd un proces
trimite un pachet multicast ctre un grup, primul ruter i examineaz arborele de
acoperire i l reteaz, eliminnd toate liniile care nu conduc ctre calculatoare
gazd, membre ale grupului. Pachetele multicast sunt dirijate doar de-a lungul
arborelui de acoperire corespunztor.
Sunt posibile mai multe moduri de retezare a arborelui de acoperire. Cel
mai simplu se poate folosi dac se utilizeaz dirijarea bazat pe starea legturilor
i fiecare ruter cunoate ntreaga topologie a subreelei, inclusiv apartenena
calculatoarelor gazd la grupuri. Atunci arborele poate fi retezat pornind de la
sfritul fiecrei ci, mergnd spre rdcin i eliminnd toate ruterele care nu
aparin grupului respectiv.
n cazul dirijrii folosind vectori distan, poate fi aplicat o alt strategie de
retezare a arborelui. Algoritmul de baz folosit este trimiterea pe calea invers.
Oricum, ori de cte ori un ruter fr nici un calculator gazd interesat de un
anume grup i fr nici o conexiune la alte rutere primete un mesaj multicast
pentru acel grup, el va rspunde cu un mesaj PRUNE (retezare), anunnd
expeditorul s nu i mai trimit mesaje multicast pentru acel grup. Cnd un ruter
care nu are printre calculatoarele gazd nici un membru al vreunui grup primete
astfel de mesaje pe toate liniile sale, el poate de asemenea s rspund cu un
mesaj PRUNE. n acest fel subreeaua este retezat recursiv.
ncapsulat, agentul pentru strini extrage pachetul iniial din cmpul payload i l
trimite ctre calculatorul gazd mobil drept cadru al nivelului legtur de date.
n al doilea rnd, agentul local anun expeditorul mesajului ca de acum
ncolo s trimit pachetele adresate gazdei mobile ncapsulndu-le n cmpul de
informaie util (payload) al unor pachete trimise explicit agentului pentru strini,
n loc s le trimit la adresa de domiciliu a calculatorului gazd mobil. Pachetele
urmtoare vor putea fi dirijate direct ctre utilizator, prin intermediul agentului
pentru strini, evitnd trecerea prin locaia de domiciliu.
15. Protocolul 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.
16. 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.
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. 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.
20. DHCP
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.
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.
Multe din AS-urile din Internet sunt foarte mari i nu sunt simplu de
administrat. OSPF le permite s fie divizate n zone numerotate, unde o zon este
o reea sau o mulime de reele nvecinate. Zonele nu se suprapun i nu este
necesar s fie exhaustive, n sensul c unele rutere pot s nu aparin nici unei
zone. O zon este o generalizare a unei subreele. n afara zonei, topologia i
detaliile sale nu sunt vizibile.
Orice AS are o zon de coloan vertebral, numit zona 0. Toate zonele
sunt conectate la coloana vertebral, eventual prin tunele, astfel nct este posibil
s se ajung din orice zon din AS n orice alt zon din AS prin intermediul
coloanei vertebrale. Un tunel este reprezentat n graf ca un arc i are un cost.
Fiecare ruter care este conectat la dou sau mai multe zone aparine coloanei
vertebrale. Analog cu celelalte zone, topologia coloanei vertebrale nu este vizibil
din afara coloanei vertebrale.
n interiorul unei zone, fiecare ruter are aceeai baz de date pentru starea
legturilor i folosete acelai algoritm de cea mai scurt cale. Principala sa
sarcin este s calculeze cea mai scurt cale de la sine la fiecare alt ruter din zon,
incluznd ruterul care este conectat la coloana vertebral, din care trebuie s
existe cel puin unul. Un ruter care conecteaz dou zone are nevoie de bazele de
date pentru ambele zone i trebuie s foloseasc algoritmul de cale ct mai scurt
separat pentru fiecare zon.
n timpul operrii normale pot fi necesare trei tipuri de ci: intrazonale,
interzonale i interASuri. Rutele intrazonale sunt cele mai uoare, din moment ce
ruterul surs tie ntotdeauna calea cea mai scurt spre ruterul destinaie.
Dirijarea interzonal se desfoar ntotdeauna n trei pai: drum de la surs la
coloana vertebral; drum de-a lungul coloanei vertebrale pn la zona destinaie;
drum la destinaie. Acest algoritm foreaz o configuraie de tip stea pentru OSPF,
coloana vertebral fiind concentratorul (hub), iar celelalte zone fiind spiele.
Pachetele sunt dirijate de la surs la destinaie ca atare. Ele nu sunt ncapsulate
sau trecute prin tunel, cu excepia cazului n care merg spre o zon a crei unic
conexiune la coloana vertebral este un tunel.
Cnd un ruter pornete, trimite mesaje HELLO pe toate liniile sale punct-lapunct i trimite multiplu (multicast) n LAN-urile grupului compus din toate
celelalte rutere. n WAN-uri, are nevoie de anumite informaii de configuraie,
pentru a ti pe cine s contacteze. Din rspunsuri, fiecare ruter afl care sunt
vecinii si. Ruterele din acelai LAN sunt toate vecine.
n mod obinuit politicile sunt configurate manual n fiecare ruter BGP (sau
sunt incluse folosind un anumit tip de script). Ele nu sunt parte a protocolului
nsui.
23. IPv6
IPv6 menine caracteristicile bune ale IP-ului, le elimin sau atenueaz pe
cele rele i adaug unele noi acolo unde este nevoie. n general, IPv6 nu este
compatibil cu IPv4, dar el este compatibil cu celelalte protocoale Internet
auxiliare, incluznd TCP, UDP, ICMP, IGMP, OSPF, BGP i DNS, cteodat fiind
necesare mici modificri (majoritatea pentru a putea lucra cu adrese mai lungi).
n primul rnd i cel mai important, IPv6 are adrese mai lungi dect IPv4. Ele
au o lungime de 16 octei, ceea ce rezolv problema pentru a crei soluionare a
fost creat IPv6: s furnizeze o surs efectiv nelimitat de adrese Internet.
A doua mare mbuntire a lui IPv6 este simplificarea antetului. El conine
numai 7 cmpuri (fa de 13 n IPv4). Aceast schimbare permite ruterelor s
prelucreze pachetele mai rapid, mbuntind astfel productivitatea i ntrzierea.
A treia mare mbuntire a fost suportul mai bun pentru opiuni. Aceast
schimbare a fost esenial n noul antet, deoarece cmpurile care erau necesare
anterior sunt acum opionale. n plus, modul n care sunt reprezentate opiunile
este diferit, uurnd ruterelor saltul peste opiunile care nu le sunt destinate.
Aceast caracteristic accelereaz timpul de prelucrare a pachetelor.
Un al patrulea domeniu n care IPv6 reprezint un mare progres este n
securitate. IETF a avut poria sa de poveti de ziar despre copii precoce de 12 ani
care i folosesc calculatoarele personale pentru a sparge bnci sau baze militare
n tot Internet-ul. A existat un sentiment puternic c ar trebui fcut ceva pentru a
mbunti securitatea. Autentificarea i confidenialitatea sunt trsturi cheie ale
noului IP. Ulterior ele au fost adaptate i n IPv4, astfel c n domeniul securitii
diferenele nu mai sunt aa de mari.
n final, a fost acordat o mai mare atenie calitii serviciilor. n trecut s-au
fcut eforturi, fr prea mare tragere de inim, dar acum, o dat cu creterea
utilizrii multimedia n Internet, presiunea este i mai mare.
Antetul IPv6
Eliberarea unei conexiuni este mai uoar dect stabilirea ei. Totui, exist
mai multe dificulti dect ne-am atepta. Aa cum am mai amintit, exist dou
moduri de a termina o conexiune: eliberare simetric i eliberare asimetric.
Sistemul telefonic folosete eliberarea asimetric: atunci cnd unul din
interlocutori nchide, conexiunea este ntrerupt. Eliberarea simetric privete
conexiunea ca pe dou conexiuni separate unidirecionale i cere ca fiecare s fie
eliberat separat.
Eliberarea asimetric este brusc i poate genera pierderi de date. S
considerm scenariul din fig. 6-12. Dup stabilirea conexiunii, gazda 1 trimite un
TPDU care ajunge corect la gazda 2. Gazda 1 mai trimite un TPDU dar, nainte ca
acesta s ajung la destinaie, gazda 2 trimite DISCONNECT REQUEST . n acest
caz, conexiunea va fi eliberat i vor fi pierdute date.
Evident, pentru a evita pierderea de date, este necesar un protocol de
eliberare a conexiunii mai sofisticat. O posibilitate este utilizarea eliberrii
simetrice: fiecare direcie este eliberat independent de cealalt; un calculator
gazd poate s continue s primeasc date chiar i dup ce a trimis un TPDU de
eliberare a conexiunii.
Eliberarea simetric este util atunci cnd fiecare proces are o cantitate fix
de date de trimis i tie bine cnd trebuie s transmit i cnd a terminat. n alte
situaii ns, nu este deloc uor de determinat cnd trebuie eliberat conexiunea
i cnd a fost trimis tot ce era de transmis. S-ar putea avea n vedere un protocol
de tipul urmtor: atunci cnd 1 termin, trimite ceva de tipul: Am terminat. Ai
terminat i tu? Dac gazda 2 rspunde: Da, am terminat. nchidem! conexiunea
poate fi eliberat n condiii bune.
Din nefericire, acest protocol nu merge ntotdeauna. Binecunoscuta
problem a celor dou armate este similar acestei situaii: s ne imaginm c
armat alb i-a pus tabra ntr-o vale. Pe amndou crestele care mrginesc
valea sunt armatele albastre. Armata alb este mai mare dect fiecare din cele
dou armate albastre, dar mpreun armatele albastre sunt mai puternice. Dac
oricare din armatele albastre atac singur, ea va fi nfrnt, dar dac ele atac
simultan, atunci vor fi victorioase.
Armatele albastre vor s-i sincronizeze atacul. Totui singura lor
posibilitate de comunicaie este s trimit un mesager care s strbat valea.
Mesagerul poate fi capturat de armata alb i mesajul poate fi pierdut (adic vor
trebui s utilizeze un canal de comunicaie nesigur). Problema este urmtoarea:
exist vreun protocol care s permit armatelor albastre s nving?
S presupunem c comandantul primei armate albastre trimite un mesaj:
Propun s atacm pe 29 martie, mesajul ajunge la armata 2 al crei comandant
rspunde: De acord iar rspunsul ajunge napoi la armata 1. Va avea loc atacul
n acest caz? Probabil c nu, deoarece comandantul armatei 2 nu tie dac
rspunsul su a ajuns sau nu la destinaie. Dac nu a ajuns, armata 1 nu va ataca,
deci ar fi o prostie din partea lui s intre n lupt. S ncercm s mbuntim
protocolul, transformndu-l ntr-unul cu nelegere n trei pai. Iniiatorul
propunerii de atac trebuie s confirme rspunsul. Presupunnd c nici un mesaj
nu este pierdut, armata 2 va avea confirmarea, dar comandantul armatei 1 va
ezita acum. Pn la urm, el nu tie dac confirmarea sa a ajuns la destinaie i
este sigur c dac aceasta nu a ajuns, armata 2 nu va ataca. Am putea s ncercm
un protocol cu confirmare n patru timpi, dar ne-am lovi de aceleai probleme. De
fapt, poate fi demonstrat c nu exist un protocol care s funcioneze.
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.
vedere c radioul pe internet, telefonia pe Internet, muzica la cerere, videoconferinele, video la cerere i alte aplicaii multimedia au devenit mai rspndite,
oamenii au descoperit c fiecare aplicaie a folosit, mai mult sau mai puin, acelai
protocol de transport n timp real. Treptat a devenit clar faptul c un protocol
generic de transport n timp real, pentru aplicaii multimedia, ar fi o idee bun.
Aa a luat natere RTP-ul (Real-time Transport Protocol, rom: Protocol de
transport n timp real).
Poziia RTP-ului n stiva de protocoale este oarecum ciudat. S-a hotrt s
se pun RTP-ul n spaiul utilizator i s se ruleze (n mod normal) peste UDP. El
funcioneaz dup cum urmeaz. Aplicaiile multimedia constau n aplicaii audio,
video, text i posibil alte fluxuri. Acestea sunt trimise bibliotecii RTP, care se afl n
spaiul utilizator mpreun cu aplicaia. Apoi, aceast bibliotec multiplexeaz
fluxurile i le codeaz n pachete RTP, pe care apoi le trimite printr-un soclu. La
cellalt capt al soclului (n nucleul sistemului de operare), pachete UDP sunt
generate i ncapsulate n pachete IP. Dac computer-ul se gsete ntr-o reea
Ethernet, pachetele IP sunt puse apoi n cadre Ethernet, pentru transmisie.
Ca o consecin a acestei proiectri, este cam dificil de spus n ce nivel este
RTP-ul. Cum ruleaz n spaiul utilizator i este legat la programul aplicaie, n mod
cert arat ca un protocol de aplicaie. Pe de alt parte, este un protocol generic
independent de aplicaie, care doar furnizeaz faciliti de transport, astfel nct
arat totodat ca un protocol de transport. Probabil c cea mai potrivit descriere
este aceea c este un protocol de transport care este implementat la nivelul
aplicaie.
Funcia de baz a RTP-ului este multiplexarea mai multor fluxuri de date n
timp real ntr-un singur flux de pachete UDP. Fluxul UDP poate fi transmis ctre o
singur destinaie (unicasting) sau ctre destinaii multiple (multicasting).
Deoarece RTP-ul folosete numai UDP normal, pachetele sale nu sunt tratate n
mod special de ctre rutere, dect dac sunt activate anumite faciliti de
calitatea serviciilor din IP. n particular, nu exist garanii speciale referitoare la
livrare, bruiaj etc. Fiecrui pachet trimis n fluxul RTP i se d un numr cu unu mai
mare dect al predecesorului su. Aceast numerotare permite destinaiei s
stabileasc dac lipsesc unele pachete. Dac un pachet lipsete, cea mai bun
decizie ce poate fi luat de ctre destinaie este de a aproxima valoarea lips prin
interpolare. Retransmiterea nu este o opiune practic avnd n vedere c
pachetul retransmis va ajunge probabil prea trziu pentru a fi util. Ca o
consecin, RTP-ul nu are control al fluxului, control al erorii, nu are confirmri i
nu are mecanism pentru a cere retransmiterea.
Antetul RTP este ilustrat n fig. 6-26. Acesta const din trei cuvinte de 32 bii
i eventual unele extensii. Primul cuvnt conine cmpul Versiune, care este deja
la 2.
Bitul P indic faptul c pachetul a fost extins la un multiplu de 4 octei.
Ultimul octet extins ne spune ci octei au fost adugai. Bitul X indic prezena
unui antet extins. Formatul i semnificaia antetului extins nu sunt definite.
Singurul lucru care este definit este acela c primul cuvnt al extensiei d
lungimea. Aceasta este o cale de scpare pentru orice cerine neprevzute.
Cmpul CC arat cte surse contribuabile sunt prezente, de la 0 la 15. Bitul
M este un bit de marcare specific aplicaiei. Poate fi folosit pentru a marca
nceputul unui cadru video, nceputul unui cuvnt ntr-un canal audio sau altceva
ce aplicaia nelege. Cmpul Tip informaie util indic ce algoritm de codare a
fost folosit (de exemplu 8 bii audio necompresai, MP3, etc). Din moment ce
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 associate 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.
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.
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 preluate
eronat, dar procednd astfel, este negat nsi ierarhia protocolului, deoarece
adresa IP aparine nivelului IP i nu nivelului TCP.
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.
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.
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.
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
Dac rspunsul ncape ntr-un pachet, d rspunsul din fig. 6-40(b), care
spune: confirm FIN-ul tu, iat rspunsul, iar eu am terminat. Clientul confirm
apoi FIN-ul server-ului i protocolul ia sfrit n (dup) trei mesaje.
n orice caz, dac rezultatul este mai mare de 1 pachet, serverul are de
asemenea i opiunea de a nu seta bitul FIN, caz n care poate trimite pachete
multiple nainte de a-i nchide direcia.
28. DNS
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.
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.
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
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. Cmpul Reply-To: este uneori utilizat cnd
nici persoana care a compus mesajul, nici cea care l-a trimis nu vrea s vad
rspunsul.
MIME - Multipurpose Internet Mail Extensions
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.
MIME definete cinci noi antete de mesaje, aa cum se arat n fig. 7-11.
Transferul mesajelor
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 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.
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.
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.
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.
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 email-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 3Protocol de pot, versiunea 3).
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:
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). 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, 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.
Metoda GET cere serverului s trimit pagina (prin care noi nelegem
obiect, n cel mai general caz, dar n practic de obicei doar un fiier). Pagina este
codat corespunztor n MIME. Marea majoritate a cererilor ctre servere Web
sunt metode GET. Forma uzual a metodei GET este: GET fiier HTTP-1.1, unde
fiier denumete resursa (fiierul) ce va fi adus, i 1.1 este versiunea de protocol
utilizat.
Metoda HEAD cere doar antetul mesajului, fr s cear i pagina propriuzis. Aceast metod poate s fie utilizat pentru a afla cnd s-a fcut ultima
modificare, pentru a obine informaii pentru indexare, sau numai pentru a
verifica corectitudinea unui URL.
Metoda PUT este inversa metodei GET: n loc s citeasc o pagin, o scrie.
Aceast metod permite crearea unei colecii de pagini de Web pe un server la
distan. Corpul cererii conine pagina. Pagina poate s fie codificat utiliznd
MIME, caz n care liniile care urmeaz dup PUT pot include Content-Type i
antete de autentificare, pentru a demonstra c ntr-adevr cel care face
cerereaare dreptul de a realiza operaia cerut.
Similar metodei PUT este metoda POST. i ea conine un URL, dar n loc s
nlocuiasc date existente, noile date se vor aduga ntr-un mod generalizat. De
exemplu, se poate transmite un mesaj la un grup de tiri sau aduga un fiier la un
sistem de informare n reea. n practic, nici PUT i nici POST nu sunt utilizate
prea mult.
Metoda DELETE realizeaz ce era de ateptat: tergerea unei pagini. Ca i la
PUT, autentificarea i drepturile de acces joac aici un rol important. Nu exist nici
o garanie asupra succesului operaiei DELETE, deoarece chiar dac serverul
dorete s execute tergerea, fiierul poate s aib attribute care s interzic
serverului HTTP s l modifice sau s l tearg.
Metoda TRACE este pentru verificarea corectitudinii. Ea cere serverului s
trimit napoi cererea. Aceast metod este util cnd cererile nu sunt procesate
corect i clientul vrea s tie ce fel de cerere a ajuns de fapt la server.
Metoda CONNECT nu este utilizat n prezent. Este rezervat pentru
utilizri ulterioare.
Metoda OPTIONS asigur o modalitate pentru client de a interoga serverul
despre proprietile acestuia sau despre cele ale unui anumit fiier.
Fiecare cerere obine un rspuns ce const din linia de stare i posibile
informaii suplimentare (de exemplu, o parte sau toat pagina Web). Linia de
stare conine un cod de stare de trei cifre, indicnd dac cererea a fost satisfcut
i dac nu, cauza. Prima cifr este utilizat pentru mprirea rspunsurilor n cinci
mari grupuri, ca n fig. 7-42.
Antete de mesaje
Linia de cerere (de exemplu linia cu metoda GET) poate fi urmat de linii
adiionale cu mai multe informaii. Acestea poart numele de antete de cerere.
Aceast informaie poate fi comparat cu parametrii unui apel de procedur.
Rspunsurile pot avea de asemenea antete de rspuns. Anumite antete pot fi
folosite n orice sens. O selecie a celor mai importante este dat n fig. 7-43.
31. FTP
Descriere :
Standard pentru transfer de fisiere (RFC959). Precede TCP/IP, dar a fost adaptat
ulterior la TCP/IP. Este un protocol general, cu urmatoarele caracterisitci:
Independent de SO si de hardware
Transfera fisiere oarecare
Gestioneaza drepturile asupra fisierelor si restrictiile de acces
- Poate rula fie interactiv fie automat.
Protocol permite actiuni de:
Listarea continutului unui director
Modificarea directorului curent
Aducerea unui fisier
Trimiterea unui fisier
Modelul FTP
(text, binar etc.). De regula, User DTP (User Data Transfer Protocol) trebuie sa
asigure un "listen" la portul desemnat. Acest port poate fi in acelasi sistem cu
User PI sau in alt sistem unde se asigura ascultarea. Conexiunea de date poate fi
folosita pentru transmitere si receptie simultana de date.
Cateva Comenzi / Raspunsuri FTP
Comanda Descriere
ABOR Abort proces de conexiune de date
ALLO <bytes> Aloca spatiu fisier pe server
CWD <dir path> Schimba director de lucru pe server
DELE <filename> Sterge fisier specificat, pe server
MODE <mode> Mod de transfer (S=stream, B=block, C=compressed).
MKD <directory> Creaza director specificat, pe server
QUIT De-logheaza de pe server
TYPE <data type> Tip date (A-ASCII, E-EBCDIC, B-binar)
USER <username> username pentru login
PASS <password> parola pentru login
Raspuns Descriere
150 Deschide conexiunea
200 OK
220 Serviciu pregatit
221 De-logare retea
226 Inchide conexiunea de date
250 Actiune terminata
Conexiuni :
Conexiunea de date
Serverul la distanta accepta stabilirea unei conexiuni de control de la client, dupa
care se stabileste conexiunea de date. Se pot folosi doua metode:
- Activa serverul se conecteaza la client, clientul specifica o adresa si un
port;
serverul initiaza conexiunea (ex. port 1931, adresa 192.168.1.2)
Client: PORT 192,168,1,2,7,139
Server: 200 PORT command successful.
- Pasiva clientul initiaza conexiunea, clientul cere serverului sa asculte la o
adresa si un port (care nu este portul sau standard); serverul comunica
adresa si portul (ex. port 4023, adresa 172.16.62.36);
Client: PASV
Server: Entering Passive Mode (172,16,62,36,133,111)
Interactiune server-server
Un User PI poate stabili conexiuni de control pentru a face transferul de date intre
alte doua servere, nici unul local. Mecanismul se numeste transfer "third party"
sau transfer "proxy". Utilizatorul din C poate initia o conexiune de control primara
cu serverul A si o conexiune de control secundara cu serverul B. Apoi, utilizatorul
din C stabileste o conexiune de date intre A si B, prin care se transfera datele
direct intre cele doua servere. Controlul se face prin intermediul lui C care joaca
rolul de intermediar. Cand trebuie transferate date intre A si B, User PI din C
seteaza conexiunile de control si apoi transmite lui A o comanda de conectare
pasiva PASV prin care-i spune sa asculte la portul sau de date (nu sa initieze o
conexiune). Cand User PI primeste o confirmare la PASV (care specifica identitatea
lui A si portul la care asculta), User PI din C transmite catre B portul lui A intr-o
comanda PORT si primeste de la B un raspuns. User PI din C transmite comenzile
de transfer de date catre A si B. B initiaza conexiunea si transferul incepe.
O prezentare general a DES este fcut n fig. 8-7(a). Textul clar este
criptat n blocuri de cte 64 de bii, rezultnd blocuri de 64 de bii de text cifrat.
Algoritmul, care este parametrizat cu o cheie de 56 de bii, are 19 runde distincte.
Prima rund este o transpoziie independent de cheie, aplicat asupra textului
clar de 64 de bii. Ultima rund este exact inversa acestei transpoziii. Penultima
rund schimb cei mai din stnga 32 de bii cu cei mai din dreapta 32 de bii. Cele
16 runde rmase sunt funcional identice dar sunt parametrizate de funcii de
cheie diferite. Algoritmul a fost proiectat pentru a permite ca decriptarea s se
fac cu aceeai cheie ca i criptarea, o proprietate necesar n orice algoritm cu
cheie secret. Paii sunt parcuri n ordine invers.
Funcionarea unuia dintre paii intermediari este ilustrat n fig. 8-7(b).
Fiecare rund ia dou intrri de 32 de bii i produce dou ieiri de 32 de bii.
Ieirea din stnga este o simpl copie a intrrii din dreapta. Ieirea din dreapta
rezult n urma unui SAU exclusiv (XOR) bit cu bit ntre intrarea din stnga i o
funcie depinznd de intrarea din dreapta i de o cheie pentru aceast rund, Ki.
Toat complexitatea rezid n aceast funcie.
Funcia const din patru pai, parcuri n secven. n primul rnd, este
construit un numr de 48 de bii, E, prin expandarea celor 32 de bii ai lui Ri-1 n
concordan cu o regul de transpoziie fix i de duplicare. n al doilea rnd, E i
Ki sunt combinate prin XOR. Ieirea este apoi mprit n opt grupuri de cte 6
bii i fiecare dintre acestea este introdus ntr-o cutie S diferit. Fiecare dintre cele
64 de intrri posibile ntr-o cutie S este pus n coresponden cu o ieire de 4 bii.
n final, aceti 8 4 bii sunt trecui printr-o cutie P.
n fiecare din cele 16 iteraii este folosit o cheie diferit. nainte de
nceperea algoritmului este aplicat o transpoziie de 56 de bii asupra cheii. Chiar
nainte de nceperea fiecrei iteraii, cheia este partiionat n dou uniti de
cte 28 de bii, fiecare dintre ele este rotit la stnga cu un numr de bii
depinznd de numrul iteraiei. Ki este derivat din aceast cheie rotit prin
aplicarea unei transpoziii pe 56 de bii asupra ei. La fiecare rund este extras i
permutat o alt submulime de 48 de bii din cei 56 de bii.
Triplu DES
nc din 1979, IBM a realizat c lungimea cheii DES era prea mic i a
conceput un mod de a o crete efectiv, folosind tripla criptare (Tuchman, 1979).
Metoda aleas, care de atunci a fost ncorporat n Standardul Internaional 8732,
este ilustrat n fig. 8-8. Aici sunt folosite dou chei i trei runde.
n prima rund textul clar este n mod obinuit criptat cu K1. n a doua
rund, este rulat DES n mod de decriptare, folosind cheia K2. n final, este
efectuat o alt criptare cu K1.
fi prezentat aici. Este de ajuns s spunem c cheile de runde sunt produse prin
rotiri repetate i aplicarea de operaii XOR asupra unor grupuri de bii din cheie.
Urmtorul pas este acela de a copia textul clar n vectorul state astfel nct
s poat fi procesat pe perioada rundelor. Acesta este copiat n ordinea
coloanelor, cu primii patru octei n coloana 0, urmtorii patru octei n coloana 1
i aa mai departe. Att coloanele ct i liniile sunt numerotate pornind de la 0,
dei rundele sunt numerotate pornind de la 1.
Mai este un pas nainte de a ncepe calculul principal: rk[0] este combinat
prin XOR n state, octet cu octet. Cu alte cuvinte fiecare octet din cei 16 aflai n
state este nlocuit cu rezultatul aplicrii operaiei XOR asupra sa i asupra
octetului corespunztor din rk[0].
i acum urmeaz partea cea mai interesant. Bucla execut 10 iteraii, cte
una pe rund, transformnd state la fiecare iteraie. Fiecare rund const n patru
pai. Pasul 1 realizeaz o substituie octet-cu-octet asupra lui state. Pe rnd,
fiecare octet este folosit ca index ntr-o cutie S pentru a-I nlocui valoarea prin
coninutul corespunztor din acea cutie S. Acest pas este un cifru de substituie
monoalfabetic direct. Spre deosebire de DES, care are mai multe cutii S,
Rijndaek are doar o cutie S.
Pasul 2 rotete la stnga fiecare din cele 4 rnduri. Rndul 0 este rotit cu 0
octei (nu e schimbat), rndul 1 este rotit cu 1 octet, rndul 2 este rotit cu 2 octei
i rndul 3 este rotit cu 3 octei. Acest pas difuzeaz coninutul datelor curente n
jurul blocului.
Pasul 3 amestec fiecare coloan independent de celelalte. Aceast
amestecare este realizat prin nmulire de matrice, n care noua coloan este
produsul dintre vechea coloan i o matrice constant, multiplicarea fiind
realizat folosind cmpul finit Galois, GF(28). Dei acest lucru poate prea
complicat, exist un algoritm care permite fiecrui element al noii coloane s fie
calculat folosind dou cutri n tabele i trei operaii XOR.
n fine, pasul 4 aplic operaia XOR pentru cheia din runda curent i
vectorul stare.