Arhitectura Sistemelor Distribuite

=== CAP4 ===

CAPITOLUL 4 PROTOCOALE DE COMUNICATIE LA

NIVELUL LEGATURII DE DATE

Tehnicile descrise pina acum s-au referit numai la mecanismele ce stau la baza transmiterii informatiei. In plus este necesar sa se defineasca un set de reguli sau proceduri de control ce trebuie adoptate de ambele parti ce comunica pentru a asigura schimbul corect de mesaje. De exemplu schemele de detectare a erorilor descrise in capitolul anterior permit receptorului sa detecteze momentul in care a fost introdusa o eroare in fluxul de biti; aceste scheme nu permit insa si corectarea erorii.

Ciclul mixt de detectare si corectare a erorii este cunoscut sub numele de control al erorii.

In plus fata de acest tip de control de multe ori exista si alte mecanisme de control ce trebuie avute in vedere de cele doua echipamente ce comunica. Acestea toate impreuna constituie protocolul de comunicatie pentru conexiunea respectiva.

4.1 Controlul erorilor

Exista doua metode de baza ce permit unui echipament emitator sa determine daca echipamentul receptor a primit corect elementul transmis: verificarea prin ecou si cererea de repetare automata (ARQ – automatic repeat request). Selectia metodei folosite se face in functie de cerintele aplicatiei.

4.1.1 Verificarea prin ecou

Verificarea prin ecou este in primul rind folosita in cadrul comunicatiei asincrone orientata pe caracter intre, de exemplu, un terminal si un calculator.

De obicei terminalele dispun de facilitatea de a putea fi folosite fie in modul local fie in modul "remote". In modul local un caracter, tastat de utilizator, este transmis catre calculator si simultan este afisat pe ecranul terminalului. In modul remote caracterul testat este transmis catre calculator fara a fi afisat pe ecran. Caracterul receptionat de calculator este insa retransmis in ecou inapoi catre terminal fiind afisat acum pe ecran. In cazul in care caracterul afisat nu este acelasi cu cel tastat atunci utilizatorul terminalului presupune ca receptia nu s-a facut corect si va informa calculatorul (printr-un caracter de control – de exemplu DELete) sa ignore caracterul anterior.

Uneori se poate intimpla ca eroarea sa apara la transmisia caracterului ecou dar aceasta metoda de verificare nu trateaza separat acest caz.

In cazul metodei de verificare prin ecou fiecare caracter este transmis de doua ori, lucru ineficient din punct de vedere al performantei comunicatiei. Pentru tipul de aplicatie descris aceasta este insa mai putin important.

4.1.2 Cerere de repetare automata

Metoda prezentata in paragraful anterior se bazeaza pe capacitatea utilizatorului de a detecta si corecta eroarea. In multe situatii insa utilizatorul nu este implicat in procesul transmisiei astfel incit comunicatia se realizeaza automat fara interventia utilizatorului.

In cadrul acestei metode exista mai multe variante eficiente ce pot fi adoptate. In general toate aceste variante necesita intoarcerea unui singur mesaj scurt pentru confirmarea receptiei corecte a fiecarui bloc transmis.

Aceasta metoda este de obicei folosita in cazul comunicatiei orientata pe bloc in care fiecare element transmis contine un numar mare de octeti sau caractere. Folosirea unei metode de confirmare in acest mod este cunoscuta sub numele de ARQ.

Exista doua variante mai des folosite ale acestei metode: idle RQ (send-and-wait) si continuous RQ.

Idle RQ

Aceasta reprezinta varianta ARQ cea mai simpla. Ea necesita un buffer de memorare minim pentru implementare dar in acelasi timp este varianta cea mai putin eficienta din punct de vedere al performantelor transmisiei.

In multe situatii blocurile de informatie (bloc I) circula in ambele directii simultan. Din acest motiv pentru a putea deosebi emitatorul si receptorul blocurilor I la fiecare capat al conexiunii in continuare se vor folosi notiunile de primar (P) si secundar (S). Pentru claritate se va considera pentru inceput un flux de blocuri I unidirectional.

Pentru a intelege corect figura 4.1 trebuie avute in vedere urmatoarele observatii:

P nu poate emite la un moment dat decit un singur bloc I (asteptind apoi ACK);

cind P initiaza transmisia el declanseaza un timer;

daca S receptioneaza un bloc I sau P un bloc ACK continind erori de transmisie blocul este ignorat;

la receptionarea fara eroare a unui bloc I de catre S acesta intoarce catre P un bloc ACK;

la receptionarea fara eroare de catre P a unui bloc ACK acesta va initia transmisia unui nou bloc;

daca P nu receptioneaza un bloc ACK intr-un interval de timp predefinit (interval time out) atunci P va retransmite blocul I asteptat.

Schema este cunoscuta si sub numele send-and-wait sau stop-and-wait si asigura receptia de catre S a cel putin unei copii a fiecarui bloc transmis P.

Metoda idle RQ este ineficienta, in cel mai bun caz P trebuie sa astepte un timp total:

Tt = Tix+Tip+Tax+Tap+2Tp

In situatia cea mai nefavorabila dupa emisia unui bloc I se mai asteapta un interval de time-out ce trebuie ales mai mare decit cea mai proasta intirziere anticipata pentru ca P sa receptioneze un ACK valid de la S. Din acest motiv unele scheme bazate pe aceasta metoda utilizeaza un bloc de control suplimentar numit NAK (negative acknowledgement) pentru a permite lui S sa raporteze imediat receptia eronata a unui bloc I.

Valoarea fiecarei componente a Tt difera in functie de tipul interconexiunii datorita mai multor factori cum ar fi: distanta fizica ce separa cele doua sisteme ce comunica, rata de transmisie permisa de linia de interconectare etc. In practica timpul de prelucrare a unui bloc I (Tip) si al unui bloc ACK (Tap) sint neglijabili comparativ cu timpii de transmisie Tix si Tax. Deoarece blocul ACK este mult mai scurt decit blocul I rezulta ca Tax << Tix. Rezulta Tt = Tix+2Tp

Eficienta folosirii capacitatii de transmisie este definita ca:

U = (timp necesar emitatorului pentru a emite un bloc)/

(timpul pina cind urmatorul bloc poate fi emis)

Daca nu apar erori de transmisie:

U = Tix / (Tix+2Tp) = 1 / (1+2Tp/Tix)

Timpul de propagare Tp reprezinta timpul necesar unui semnal electric sa se propage de la un capat la celalalt al conexiunii. De aceea el va fi acelasi in ambele directii si atit pentru blocuri I cit si pentru blocuri ACK. Viteza de propagre in cazul ideal ar fi egala cu viteza luminii dar in practica aceasta este mai mica de 2*108 m/s.

Pe baza celor aratate se pot trage urmatoarele concluzii:

In cazul unor legaturi scurte in care Tp/Tix < 1 eficienta conexiunii este aproximativ 100% si este independenta de rata de transmisie folosita. Aceasta inseamna ca protocolul Idle RQ este foarte potrivit pentru distante scurte si rate de transfer mici.

In cazul conexiunilor terestre la distante mari, eficienta este mare pentru rate de transfer mici (Tp/Tix mic) dar scade mult odata cu cresterea ratei de transfer si deci a raportului Tp/Tix.

In cazul legaturilor prin satelit eficienta este scazuta chiar si pentru rate de transfer mici.

Eficienta legaturii a fost calculata pentru situatia in care nu au aparut erori de transmisie. Daca notam Nr numarul mediu de incercari de retransmisie a unui bloc atunci:

U=Tix/(NrTix+2NrTp) = 1/[Nr(1+2Tp/Tix)]

unde Nr=1/(1-NiP)

Marele avantaj al mecanismului idle RQ este ca necesita pentru implementare un buffer foarte mic (numai pentru memorarea unui bloc). Din acest motiv acest protocol este folosit in aplicatii ce folosesc echipamente simple (de exemplu terminale) la un capat al legaturii.

Continous RQ

Prin aceasta metoda utilizarea conexiunii este imbunatatita cu pretul cresterii bufferelor de memorare necesare.

In figura 4.2 este prezentata transmisia unei secvente de blocuri I si receptia blocurilor ACK corespunzatoare.

Pentru interpretarea corecta a figurii trebuie facute urmatoarele observatii:

P emite blocuri I continuu fara a astepta intoarcerea blocurilor ACK;

P retine o copie a fiecarui bloc I transmis in lista de retransmisie;

lista de retransmisie opereaza pe principiul FIFO;

S intoarce un bloc ACK pentru fiecare bloc I receptionat corect;

fiecare bloc I contine un identificator unic care este intors in blocul ACK corespunzator;

S formeaza o lista ordonata de receptie ce contine identificatorii blocurilor I corect receptionate;

la receptionarea unui bloc ACK, blocul I corespunzator este inlaturat de catre P din lista de retransmisie.

Din figura prezentata se poate desprinde concluzia ca in absenta erorilor de transmisie eficienta conexiunii in cazul metodei CRQ va fi aproximativ 100%.

In cazul aparitiei unei erori de transmisie pot fi urmate doua proceduri:

Retransmisie selectiva: P analizeaza secventa de blocuri ACK si retransmite numai blocurile I pentru care nu s-a primit confirmarea.

Retransmisie neselectiva (Go-back-N): S analizeaza secventa de blocuri receptionate si cere lui P sa retransmita toate blocurile I incepind de la ultimul bloc receptionat corect.

Retransmisia selectiva

In figura 4.3 este prezentat efectul transmisiei eronate a unui bloc I folosind metoda retransmisiei selective.

Observatii privind figura 4.3:

s-a presupus ca blocul IN+1 s-a transmis eronat;

S intoarce un bloc ACK pentru fiecare bloc I corect receptionat;

S transmite confirmarea pentru blocurile N-1, N, N+1, ….;

la receptia confirmarii pentru blocul N+2, P detecteaza ca acesta este in afara secventei si deci nu s-a primit ACK pentru blocul N+1;

P inlatura blocul N+2 din lista de retransmisie si va retransmite blocul N+1 inainte de transmiterea blocului N+5.

O alta situatie ce se poate intilni in practica este cea in care un bloc I este receptionat corect de catre S dar confirmarea este eronata. Aceasta situatie este prezentata in figura 4.4.

In legatura cu aceasta situatie trebuie facute urmatoarele observatii:

S receptioneaza corect fiecare bloc transmis;

s-a presupus ca ACKN este eronat;

la receptia confirmarii ACKN+1, P detecteaza ca blocul IN lipseste din lista de retransmisie. De aceea inlatura de aici blocul N=1 si introduce blocul N;

la receptia de catre S a blocului N retransmis acesta este cautat si gasit in lista de receptie ca receptionat corect (deci este un duplicat);

S inlatura blocul dar intoarce confirmarea catre P pentru a asigura ca N este inlaturat din lista de retransmisie.

Din exemplele prezentate se poate trage concluzia ca in anumite cazuri desi S receptioneaza copii corecte ale fiecarui bloc emis de P ordinea receptiei nu este identica cu cea de la emisie. De exemplu S receptioneaza blocurile I N+2, N+3 si N+4 inaintea bloclui N+1. Acest mecanism este de aceea folosit in special atunci cind blocuri reprezinta entitati de sine statatoare (ordinea receptiei nu este importanta). Acest lucru nu este intotdeauna posibil de realizat deseori mesaje mari fiind sparte in blocuri mai scurte. Toate blocurile referitoare la un mesaj trebuie astfel ordonate corespunzator la receptie. Pentru a putea realiza acest lucru in cadrul metodei de retransmisie selectiva este necesar ca S sa memoreze intr-un buffer toate blocurile sosite in afara secventei pina in momentul in care este receptionat si blocul lipsa. Deoarce acest lucru trebuie realizat pentru mai multe mesaje simultan dimensiunea bufferului devine mare si evident nu poate fi anticipata. Pentru astfel de aplicatii se adopta de obicei metoda retransmisiei neselective.

Retransmisia neselectiva (Go-back-N)

Mecanismul Go-back-N este prezentat in figura 4.5.

Pentru intelegerea mecanismului prezentat in figura trebuie facute urmatorele observatii:

s-a presupus ca blocul IN+1 este transmis eronat;

S receptioneaza blocul N+2 in afara secventei;

la receptia blocului N+2 S intoarce NAK prin care indica ultimul bloc I receptionat corect (N);

S inlatura blocul IN+2 si urmatoarele blocuri receptionate pina la primirea blocului N+1 ce reface secventa.

In exemplul prezentat s-a considerat ca blocurile de confirmare au fost receptionate corect eroarea aparind la transmiterea blocurilor I.

Efectul transmisie eronate a blocului de confirmare este prezentat in figura 4.6.

Interpretarea schemei prezentate in figura de mai jos trebuie facuta pe baza observatiilor:

S receptioneaza corect fiecare bloc I transmis;

s-a presupus ca ambele confirmari ACKN si ACKN+1 sint eronate.

la receptionarea confirmarii ACKN+2 P detecteaza prezenta celor doua blocuri N si N+1 in lista de retransmisie;

deoarece P a receptionat un bloc ACK si nu unul NAK el va accepta ca blocurile ACK corespunzatoare blocurilor I, N si N+1 au fost eronate considerind ACKN+2 ca o confirmare si pentru cele 2 blocuri lipsa.

Din exemplele prezentate se poate trage concluzia ca metoda Go-back-N pastreaza secventa de blocuri corecta minimizind dimensiunea bufferului de memorare necesar pentru implementare.

Deoarece la aparitia unui bloc eronat sint retransmise mai multe blocuri, metoda este mai putin eficienta din punct de vedere al folosirii capacitatii de transmisie.

4.1.3 Numerotarea secventiala I

Toate schemele de retransmisie descrise pina acum au presupus ca fiecare bloc I transmis poate fi identificat in mod unic si poate fi dedusa pozitia sa in secventa relativa la alte blocuri I.

In plus s-a presupus ca ACK si NAK contin informatii de identificare similare. Acest lucru s-a realizat in exemplele prezentate prin folosirea identificatorilor N, N+1, N+2, ……

In practica aceasta metoda este cunoscuta sub numele de numerotare secventiala si are rolul de a permite lui P si S sa deduca pozitia unui bloc in secventa relativa la alte blocuri.

Pentru a implementa functiile de control ce trebuiesc realizate la fiecare capat al conexiunii este de asemenea necesar atit pentru P cit si pentru S sa memoreze o inregistrare a identificatorilor pentru ultimele blocuri corect receptionate. Astfel P va pastra o variabila de stare pentru emisie V(S) care indica numarul din secventa al urmatorului bloc I ce trebuie transmis, iar S va pastra o variabila de stare pentru receptie V(R) care indica numarul din secventa al urmatorului bloc ce este asteptat sa soseasca.

Folosirea acestor variabile este urmatoarea:

fiecarui bloc I emis de P ii este asigurat un numar din secventa de emisie N(S) care este egal cu V(S) curent;

fiecare bloc I receptionat de S care are N(S) egal cu V(R) este acceptat de S dupa care V(R) este incrementat cu 1;

cind S intoarce un bloc ACK sau NAK acesta va contine numarul din secventa N(R) care este egal cu V(R) curent blocului ACK sau NAK, la receptionarea ACK sau NAK de catre P. N(R) reprezinta confirmarea blocurilor din lista de retransmisie pina la N(R)-1 inclusiv.

Pentru a ilustra implementarea celor prezentate in figura urmatoare se considera o secventa de blocuri bazata pe metoda Go-back-N (figura 4.7).

Observatii:

cele doua variabile de stare V(S) si V(R) sint initializate cu valoarea 0 inainte de inceperea transmisiei;

s-a presupus ca nu sint erori de transmisie.

In continuare se va considera acelasi exemplu in care se presupune ca blocul I1 este transmis eronat si deci va fi ignorat de catre S.

In legatura cu figura 4.8 trebuie facute observatiile:

deoarece blocul I avind N(S)=1 este eronat rezulta ca V(R) nu este incrementat;

la receptia blocului I avind N(S)=2 se constata ca N(S) nu este egal cu V(R) si de aceea blocul este inlaturat de S returnindu-se un bloc NAK (N(R)=1) catre P;

la receptionarea blocului NAK (N(R)=1) cele doua blocuri neconfirmate din lista de retransmisie (I(N(S)=1) si I(N(S)=2) vor fi retransmise de P.

in exemplu prezentat s-a presupus ca blocurile de confirmare ACK si NAK sint receptionate corect.

Din figura prezentata se poate trage concluzia ca pierderea blocului I (N(S)=1) a fost detectata numai dupa ce urmatorul bloc I (N(S)=2) a fost receptionat corect. Cu alte cuvinte daca P nu ar mai fi avut de transmis nici un bloc S nu ar fi putut detecta pierderea blocului I (N(S)=1).

Pentru a preveni aceasta posibilitate P de obicei foloseste un mecanism suplimentar de timeout similar celui prezentat la metoda continuous RQ. Mecanismul de timeout prezentat folosete un ceas separat ce este startat de cite ori P emite un nou bloc. Ceasul este oprit la receptia confirmarilor intoarse de S. In cazul in care confirmarea pentru un bloc nu soseste la P in intervalul de timeout atunci blocul este retransmis. Acest mecanism este prezentat in figura 4.8.

Intervalul de timeout ales trebuie sa fie mai mare decit intervalul de timp cel mai mare intre momentul emisiei unui bloc si momentul receptiei confirmarii.

Prin mecanismul de timeout prezentat este deasemenea posibil ca S sa receptioneze mai multe copii ale aceluiasi bloc in urmatorul mod: blocul I este receptionat corect de catre S dar confirmarea este intoarsa eronat; in absenta confirmarii, P presupune ca blocul transmis de el nu a fost receptionat corect de S si efectueaza retransmiterea unei noi copii. Prin folosirea unei scheme de retransmisie neselectiva (Go-back-N) aceasta situatie este detectata prin faptul ca N(S) nu va fi egal cu V(R) si deci copia va fi ignorata de S.

Pentru claritate s-a presupus ca toate blocurile de informatie circula intr-o singura directie, celalalt sens fiind folosit numai pentru blocurile de confirmare. De obicei in practica blocurile de informatie circula in ambele sensuri la fiecare capat al conexiunii existind atit P cit si S.

4.2 Controlul fluxului de date

Dupa cum s-a mai aratat controlul erorilor reprezinta numai o componenta a protocolului de comunicatie. O a 2-a componenta importanta este controlul fluxului de informatie. Asa cum arata si numele aceasta se refera la controlul ratei de transfer a elementelor (caractere sau blocuri) astfel incit receptorul sa poata memora fiecare element inainte de a-l prelucra. Exemplu: un calculator la care sint cuplate mai multe terminale poate deveni la un moment dat supraincarcat si nu va putea prelucra toate caracterele transmise catre el. Similar in cazul transmisiei la nivel de bloc la receptie se poate ajunge la situatia in care se va depasi capacitatea buffer-ului de memorare.

In paragrafele urmatoare se vor prezenta doua din cele mai utilizate metode de control al fluxului.

4.2.1 X-ON/X-OFF

In multe cazuri verificarea prin ecou este suficienta deoarece (in cazul cuplarii unui terminal la un calculator) atunci cind se depaseste capacitatea de buffer-are a calculatorului, pe ecranul terminalului nu vor mai apare caracterele retransmise in ecou si astfel utilizatorul nu va mai tasta noi caractere. Evident lipsa caracterelor retransmise in ecou de calculator se datoreaza supraincarcarii temporare a acestuia. Dezavantajul metodei este ca se bazeaza pe capacitatea operatorului de a sesiza momentul supraincarcarii calculatorului si de a nu mai tasta noi caractere.

Din acest motiv deseori este preferat un mecanism automat de control al fluxului care sa asigure faptul ca terminalul nu va transmite un nou caracter pina cind o conditie de supraincarcare nu este resetata. Acest mecanism este realizat de calculator prin intoarcerea unui caracter special de control X-OFF care indica terminalului sa opreasca emisia. La receptionarea caracterului X-OFF terminalul va ignora toate caracterele tastate in continuare sau le va memora intr-un buffer local pina cind conditia de incarcare este resetata. In momentul in care conditia de supraincarcare nu mai este valabila si calculatorul este disponibil sa receptioneze noi caractere el transmite caracterul de control X-ON prin care indica terminalului ca poate relua emisia de caractere.

Acest mecanism este de asemenea folosit atunci cind un calculator trimite caractere catre o imprimanta sau catre alt terminal care nu poate sustine rata iesirii din calculator. In aceste cazuri imprimanta sau terminalul sint cei ce controleaza fluxul de caractere.

4.2.2 Mecanisme window

Dupa cum s-a aratat o schema de control al erorii de tip IDLE RQ necesita un buffer de dimensiune minima deoarece dupa fiecare bloc transmis de P acesta trebuie sa astepte intoarcerea confirmarii de la S inainte de transmiterea urmatorului bloc. Fluxul blocul I este astfel in mod automat strins controlat.

In cazul unui mecanism de control al erorii de tip continuous RQ, P poate emite blocuri I continuu inainte de receptia confirmarii. Din acest motiv este posibil ca la receptie sa se depaseasca capacitatea buffer-ului daca de exemplu blocurile nu pot fi prelucrate in ritmul in care sint transmise. Pentru a preintimpina astfel de situatii de obicei in astfel de scheme se folosesc mecanisme suplimentare de control. Prin acestea se stabileste o limita pentru numarul de blocuri I pe care P le poate emite inainte de primirea primei confirmari. Acest lucru este realizat de P prin contorizarea numarului de blocuri I neconfirmate ce se afla in lista de retransmisie.

Pentru a implementa un astfel de mecanism se stabileste deci o limita maxima pentru numarul de blocuri I ce se pot afla in lista de retransmisie. Aceasta limita se numeste fereastra de emisie (send window). In cazul in care pentru aceasta limita se stabileste valoarea 1 mecanismul devine Idle RQ cu consecinta scaderii eficientei comunicatiei. In alegerea ferestrei de emisie trebuie sa se aiba in vedere mai multi factori cum ar fi: lungimea maxima a unui bloc, capacitatea buffer-ului, rata de transmisie, etc.

Modul de operare al acestui mecanism este prezentat in figura 4.9 (a).

P pastreaza o inregistrare a numarului de blocuri I ce asteapta confirmarea in lista de retransmisie. Acesta este cunoscut sub numele de "numarator de retransmisie" si de cite ori este emis un bloc I numaratorul este incrementat cu 1. Similar, in momentul receptiei unei confirmari blocul corespunzator este scos din lista de retransmisie, iar numaratorul este decrementat cu 1. Fluxul de blocuri I este stopat in momentul in care numaratorul de retransmisie devine egal cu fereastra de emisie.

In continuare se va descrie modul in care software-ul de nivel inalt (al utilizatorului) comunica cu software-ul reprezentind protocolul de comunicatie. Pina acum s-a presupus ca in momentul in care programul utilizatorului are pregatit pentru emisie un bloc I este activat P. Similar atunci cind S receptioneaza un bloc I valid acesta este predat programului utilizatorului pentru prelucrare.

In practica interfata intre software-ul de nivel inalt si protocolul de comunicatie se prezinta sub forma a 2 stive FIFO similare celor folosite in lista de retransmisie. Aceasta este prezentata in figura 4.9 (b) in care s-a considerat pentru claritate un flux unidirectional.

Atunci cind programul utilizatorului doreste sa emita un bloc el insereaza pointerul la adresa de memorie unde se afla blocul in stiva de intrare a lui P. Acest lucru este interpretat ca un bloc pregatit pentru emisie si este activat protocolul de comunicatie al lui P. Similar atunci cind un bloc receptionat de S trebuie transferat programului utilizator S insereaza pointerul adresa in stiva de iesire lucru ce activeaza programul utilizatorului.

Dupa cum s-a aratat in cazul transmiterii eronate a confirmarii S poate receptiona copii ale aceluiasi bloc. Pentru a preveni aceasta posibilitate S trebuie sa retina o lista a identificatorilor ultimelor N blocuri receptionate corect. Numarul maxim al identificatorilor retinuti de S poarta numele de fereastra de receptie.

In cazul unui mecanism de control Go-back-N fereastra de receptie poate fi 1 deoarece S ignora orice bloc sosit in afara secventei.

In cazul mecanismului de retransmisie selectiva fereastra de receptie trebuie aleasa suficient de mare astfel incit S sa poata determina daca a mai receptionat copii corecte ale aceluiasi bloc.

4.2.3 Numerotarea secventiala II

Pina acum s-a presupus ca numerotarea secventiala efectuata de P consta in incrementarea cu 1 a numarului inclus in fiercare bloc emis, astfel incit gama numerelor disponibile este infinita. Prin definirea unui numar maxim al blocurilor I ce trebuie transferate intre 2 echipamente se poate limita si gama numerelor secventiale cerute de identificarea unica a fiecarui bloc. Numarul identificatorilor necesari depinde atit de tipul mecanismului de control al erorii si de largimile ferestrelor de emisie si receptie.

De exemplu in cazul folosirii metodei "idle RQ" ferestrele de emisie si receptie au valoarea 1 si deci sint necesari numai 2 identificatori pentru a permite lui S sa determine daca blocul receptionat este un bloc nou sau este un duplicat. De obicei cei doi identificatori ar trebui sa fie 1 si 0 ceea ce necesita pentru implementare un singur bit. Variabilele de emisie si receptie vor fi incrementate modulo 2 de catre P si respectiv S.

In cazul folosirii metodei Go-back-N si a unei ferestre de emisie de dimensiune k, numarul identificatorilor trebuie sa fie cel putin k+1. Acest lucru este prezentat in figura 4.10.

Observatii:

1) fereastra de emisie folosita are valoarea 3;

2) P emite intreaga sa fereastra de 3 blocuri;

3) cele 3 blocuri I sint corect receptionate de S;

4) cele 3 confirmari returnate de S sint toate eronate;

5) dupa expirarea fiecarui interval de timeout P retransmite blocul;

6) S ignora fiecare duplicat si le reconfirma pe toate 3 cu un singur bloc ACK.

Daca s-ar folosi numai 3 identificatori (cit valoarea ferestrei emise) S nu ar putea sa determine daca blocul I0 este un bloc nou sau un duplicat deoarece 0 ar trebui sa fie urmatorul identificator in secventa. Din acest motiv se folosesc 4 identificatori (fereastra de emisie+1) urmatorul identificator in secventa fiind in acest caz 3. Deoarece blocul receptionat are identificatorul 0 este in mod corect ignorat.

In cazul metodei de retransmisie selectiva in care se foloseste o fereastra de emisie (si receptie) de valoare k numarul identificatorilor nu trebuie sa fie mai mic de 2k+1. Acest lucru se poate deduce din exemplul urmator: se presupune ca P emite o fereastra completa de k blocuri si toate confirmarile corespunzatoare se transmit eronat. S trebuie sa fie capabil sa determine daca fiecare din urmatoarele k blocuri este un bloc nou sau este o retransmisie a unui bloc deja receptionat corect. Singurul mod prin care S poate realiza acest lucru este de a asigura un nou set de k identificatori urmatoarei ferestre de blocuri I transmise. Astfel sint necesari in total 2k+1 identificatori.

In practica deoarece identificatorul unui bloc este in forma binara trebuie rezervat un set de biti pentru codificarea acestuia. De exemplu pentru metoda Go-back-N si o fereastra de emisie = 7 sint necesari 3 biti pentru codificarea celor 8 identificatori unici. Variabilele de emisie si receptie vor fi incrementate modulo 8 de catre P si respectiv S.

Intr-un paragraf anterior s-a aratat ca eficienta folosirii unei conexiuni poate fi aproximata in functie de Tix (timpul de transmisie al unui bloc I) si Tp (timpul de propagare pe linie). In cazul general pentru o fereastra de emisie = k, eficienta U este data de relatia:

/ 1 pt. k>=1+2a

U =

\ kTix/(Tix+2Tp) = k/(1+2Tp/Tix) = k/(1+2a) pt. k<1+2a

Exemplu: Pentru Tix = Tp, k trebuie ales >= 3 pentru a obtine o eficienta de 100%.

In anumite cazuri alegerea lui k influenteaza puternic eficienta utilizarii conexiunii. In cazul legaturilor prin satelit sau al legaturilor terestre cu rate de transfer mari trebuie alese valori foarte mari pentru k.

Daca se tine cont si de numarul mediu de retransmisii datorita erorilor atunci pentru retransmisii selective:

/ 1/Nr = 1-NiP pt. k>=1+2a

U =

\ k/Nr(1+2a) = k(1-NiP)/(1+2a) pt. k<1+2a

Nr=1/(1-NiP)

unde:

P- probabilitatea de aparitie a unui bit eronat;

Ni- numarul mediu de biti dintr-un bloc.

In cazul metodei de retransmisie neselectiva:

/ 1-2NiP pt. k>=1+2a

U =

\ k(1-NiP)/(1+2a)(1+kNiP) pt. k<1+2a

Observatii:

Formulele prezentate sint aproximative datorita pe de o parte aproximarilor facute asupra componentelor lui Tt, iar pe de alta parte faptului ca nu se ia in considerare cazul in care apar erori si la retransmiterea blocurilor.

Similar Posts