|
Protocolulul CSMA/CD
O statie poate fi sigura ca a ocupat canalul daca dupa un timp egal cu 2t cadrele se intorc nealterat (t este timpul de propagare a pachetelor de date intre cele mai indepartate statii din retea).
Protocoale fara coliziuni
1. Protocolul Bitmap
Presupunem ca in retea exista un numar N de calculatoare gazda cu adresele unice de la 0 la N-1. Protocolul consta in urmatoarele: - daca statia cu adresa 0 are ceva de transmis respectiv un cadru, atunci va transmite un bit cu valoarea 1 logic in timpul cuantei ce ii este alocata (respectiv al cuantei 0). Daca nu are nimic de transmis transmite un 0 logic pe durata cuantei respective. In general o statie j, daca are de transmis un cadru va trimite un bit de 1 logic pe durata cuantei j. Dupa ce a trecut cadrul format din cele N cuante, fiecare statie va sti care statii din retea doresc sa transmita iar statiile vor incepe sa transmita in ordinea crescatoare a adreselor de statie. Practic inainte sa inceapa transmisia se emite un cadru de forma:
cuante
1 2 . . . . . N
cadru
din N cuante
1 2 . . . . . N-1
0
. . . . .
1
statia
ce transmite adrese
2. Protocolul Binnary Count Down (numaratoare inversa binara)
Datorita faptului ca protocolul Bitmap consuma in plus cate un bit pe statie a fost inlocuit cu protocolul Binnary Count Down care functioneaza astfel:
fiecare statie inainte sa inceapa transmisiile isi difuzeaza in retea propria adresa binara. Lungimea adreselor tuturor statiilor trebuie sa fie aceiasi. Dupa difuzarea adreselor tuturor statiilor se intra intr-un proces de licitatie a castigarii canalului care se desfasoara astfel:
se face un SAU intre bitii cei mai semnificativi ai tuturor adreselor statiilor din retea, apoi fiecare statie care a avut bitul cel mai semnificativ 0 logic verifica daca acest 0 a fost acoperit de un 1 logic provenit din adresa obtinuta pe baza operatiei SAU, daca da renunta la transmisie in favoarea statiilor ramase in licitatie. Algoritmul se repeta pentru urmatorul bit din adresele statiilor pana cand in licitatie ramane o singura statie care va primi accesul la canalul de comunicatie. Dupa incheierea transmisiei algoritmul se repeta.
Sa presupunem ca avem 4 statii cu adresele:
bitul cel mai semnificativ
0 0 1 0 I
0 1 0 0 II
> statia 4 a castigat licitatia
1 0 1 0 IV
1 0 1
Nivelul retea din arhitectura OSI/ISO
Sarcina principala a nivelului retea este aceea de a transfera pachetele de date de la sursa la destinatie; Stabilirea rutei pe care vor circula pachetele de date revine tot nivelului retea. La nivelul interfetei dintre nivelul retea si nivelul transport vom gasi de fapt serviciile pe care nivelul retea trebuie sa le furnizeze nivelului transport intr-un mod transparent. Practic interfata dintre nivelul retea si nivelul transport este de fapt interfata dintre furnizorul de servicii si client. De obicei furnizorul detine controlul protocoalelor si al interfetelor pana la nivelul retea inclusiv. Sarcina furnizorului se refera la livrarea pachetelor pe care i le trimite clientii. Serviciile nivelului retea au fost proiectate avandu-se in vedere urmatoarele scopuri:
1. Serviciile trebuie sa fie independente de tehnologia subretelei
2. Nivelul transport trebuie sa fie independent de numarul, tipul si topologia subretelelor existente;
3. Adresele de retea disponibile la nivelul transport trebuie sa foloseasca o schema de numerotare uniforma chiar in interiorul retelelor WAN sau LAN.
La acest nivel exista in prezent o disputa apriga intre furnizori si clienti respectiv intre comunitatea Internet si operatorii de telefonie, astfel comunitatea Internet sustine ca subretelele de comunicatie trebuie doar sa transmita siruri de biti. Argumentele ar fi urmatoarele:
subretelele oricat de bine ar fi proiectate nu sunt niciodata sigure;
dezvoltarea calculatoarelor personale permite acestora sa realizeze controlul erorilor, controlul fluxului, secventierea astfel incat pentru comunitatea Internet furnizorul de servicii trebuie sa ofere doar doua primitive si anume:
- send packet (trimite pachete)
- recive packet (preia pachete)
un alt argument ar fi ca in momentul in care tot controlul transmisiei este inglobat intr-un calculator gazda la retea si serviciile furnizate la nivelul subretelei de comunicatie vor fi mult mai ieftine.
Cealalta tabara reprezentata de companiile de telefoane afirma ca subreteaua trebuie sa furnizeze un serviciu orientat pe conexiune garantand o siguranta rezonabila. In aceasta perspectiva conexiunile trebuie sa posede urmatoarele proprietati:
1. Inainte de a trimite datele, un proces al nivelului retea de pe calculatorul emitator trebuie sa stabileasca o conexiune cu partenerul destinatar. Aceasta conexiune va primi un indicator special, toate datele vor fi transferate pe aceasta conexiune dupa care ea va fi eliberata in mod explicit.
2. Cand se stabileste o conexiune cele doua procese pot negocia parametrii, calitatea si costul serviciului furnizat.
3. Comunicatia se face bidirectional iar pachetele sunt livrate cu numere de secventa
4. Se asigura in mod automat un control al fluxului astfel incat un emitator sa nu inunda receptorul lent.
Organizarea interna a nivelului retea
Exista doua filosofii de baza care vizeaza organizarea interna a nivelului retea si anume: - prima se bazeaza pe folosirea conexiunilor iar a doua fara conexiune.
La nivelul retea orice conexiune este privita ca un circuit virtual prin analogie cu circuitele fizice folosite in sistemele telefonice. Organizarea fara conexiune presupune ca transmiterea pachetelor sa se faca independent, modul de transmisie purtand numele de datagrama prin analogie cu posta traditionala (expedierea scrisorilor).
Algoritmi de dirijare
In majoritatea subretelelor pachetele vor face salturi multiple in drumul lor de la sursa la destinatie. Algoritmii pe baza carora sunt dirijate pachetele reprezinta acea parte a softului nivelului retea care raspunde de alegerea liniei de iesire pe care un pachet receptionat va fi transmis mai departe. Daca subreteaua foloseste datagrame aceasta decizie trebuie luata din nou pentru fiecare pachet receptionat. Daca subreteaua foloseste circuite virtuale decizia de dirijare se ia doar o singura data la stabilirea circuitului virtual. Acest caz se mai numeste sesiune de dirijare calea ramane aceiasi pentru o intreaga sesiune utilizator.
Algoritmul de dirijare trebuie sa tina cont de faptul ca anumite rutere sau anumite portiuni ale subretelei pot deveni temporar inoperante si pot reveni in retea la momente aleatoare. Un principiu de baza care trebuie respectat vizeaza rezolvarea conflictului intre optimalitatea si prevenirea defavorizarii anumitor statii din retea. Astfel presupunand ca avem o retea la care sunt conectate 8 calculatoare conform topologiei din figura:
X' X C' B' A A B C X
Daca traficul intre A-A', B-B' si C-C' este suficient de mare pentru a satura legatura orizontala intre X si X inseamna ca pentru optimizarea fluxului transferul de date intre X si X ar trebui oprit. Acest lucru insa ar insemna defavorizarea statiilor X-X'. Este necesar astfel ca in orice retea sa se adopte un compromis intre eficienta globala si prevenirea defavorizarii anumitor statii.
Algoritmii de dirijare se impart in doua mari categorii si anume:
a) Algoritmi neadaptivi: acestia nu isi bazeaza deciziile de dirijare pe masuratori sau estimari ale traficului si ale topologiei curente. Astfel alegerea caii de la nodul i la nodul j se calculeaza in avans off-line si parvine ruterului la initializarea retelei.
b) Prin contrast algoritmii adaptivi isi modifica deciziile de rezolvare reflectand modificarile topologice ale subretelei si de multe ori si pe cele ale traficului. Algoritmii adaptivi culeg informatii, fie de la ruterele vecine fie de la toate ruterele subretelei de comunicatie. Ei pot schimba ruterele, fie la intervale de timp precis definite, fie cand se schimba incarcarea sau cand se schimba topologia.
In stabilirea ruterelor de dirijare se tine cont de principiul optimalitatii. Acesta este urmatorul:
daca ruterul J se afla pe calea optima de la ruterul I la ruterul K atunci calea optima de la J la K se afla pe aceiasi ruta.
Demonstratie
I r1 J r2 K
ruta de
la I la J ruta
de la J la K
Dirijarea pe calea cea mai scurta
In general algoritmii de dirijare se bazeaza pe construirea unui graf al subretelei de comunicatie. In acest graf nodurile grafului vor fi rutere iar arcele grafului vor fi liniile de comunicatie dintre rutere. Sa presupunem ca avem urmatorul graf:
C 3 3 F D 2 2 H B 2 2 E A G
7
2
4
6 1
Metricele folosite in algoritmii de dirijare pot fi alese in mod diferit. Astfel o metrica poate fi distanta in Km, alta metrica poate fi viteza de transmisie sau intarzierea de propagare sau costurile liniei.
Punem pe graf metrice asociate cu distanta in Km si avem sa aflam calea cea mai scurta de la nodul A la nodul D. Metoda este urmatoarea:
C( D H(
B(2, A)
E (
A
G(6, A)
B devine
permanent (are
destinatie scurta)
F(
aici avem eticheta permanenta
B(2, A) E (2+2,
A) A G(6, A) C(9, A) D H(
F(
.
.