Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Protocol simplex de tip pas-cu-pas

c

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
Liste - Sortare prin inserare
Elemente de algebra booleana
Functii de calcul
Implementarea cozilor prin tipul tablou
Gestiunea culorilor
Declararea claselor
Elementele limbajului C++ - Caractere - Tipuri de date in limbajul C++
Fisierele antet
Constante
Notiunea de algoritm

Protocol simplex de tip pas-cu-pas

Vom renunta acum la cea mai nerealista restrictie impusa protocolului prezentat anterior si anume capacitatea nivelului de retea de la destinatar de a prelucra datele sosite cu o viteza infinita (sau, echivalent, prezenta la nivelul  DLC  de la receptor a unui  buffer  de dimensiune infinita, care sa poata stoca toate cadrele sosite si care isi astepta randul sa fie preluate de nivelul de retea de aici).

Principala problema careia protocolul trebuie sa-i faca fata este aceea de a preveni ca emitatorul sa inece cu date receptorul (adica sa-i transmita date cu o viteza mai mare decat cea cu care receptorul poate prelucra datele sosite). In esenta, daca receptorul are nevoie de un timp  t  ca sa execute procedurile  from_physical_layer  plus  to_network_layer,  atunci emitatorul trebuie sa transmita cu o viteza medie mai mica de  1 cadru  in intervalul  t.  Mai mult, daca admitem ca  hard-ul  receptorului nu efectueaza nici stocarea automata in  buffer,  nici gestionarea sirului de asteptare al cadrelor sosite, emitatorul nu trebuie sa transmita  nici o data  un nou cadru pana ce precedentul nu a fost preluat de procedura  from_physical_layer  - caci, altfel, s-ar stoca peste cadrul precedent.

In anumite circumstante restranse (de exemplu, pentru o transmisie asincrona si un nivel  DLC  la receptor complet dedicat prelucrarii informatiilor sosite pe unica linie convergenta in acel nod), ar fi posibil ca emitatorul sa insereze pur si simplu o intarziere in precedentul protocol, pentru a-l incetini suficient ca sa nu mai inece receptorul. Dar, de cele mai multe ori, in practica, fiece nivel  DLC  opereaza cu mai multe linii care converg in acel nod, iar intervalul de timp dintre sosirea unui cadru si momentul prelucrarii sale poate varia in limite largi. Daca proiectantul retelei ar putea calcula durata cea mai lunga posibila de prelucrare la receptor, atunci el ar putea programa viteza de transmisie aemitatorului la o asemenea viteza joasa incat, chiar daca fiecare cadru ar suferi intarzierea maxima, nu s-ar intampla o depasire a capacitatii de prelucrare a receptorului. Dar o asemenea solutie ar duce la o utilizare a largimii de banda mult sub valoarea optima (cu exceptia situatiei cand cazul cel mai favorabil si cazul cel mai defavorabil ar fi foarte apropiate intre ele - adica atunci cand domeniul de variatie al timpului de reactie al nivelului  DLC  al receptorului ar fi foarte restrans).

O solutie mai buna - prin gradul de generalitate al aplicabilitatii sale - o constituie instalarea unei reactii de la receptor la emitator, prin care nivelul  DLC  receptor trimite, dupa ce a livrat  un pachet  nivelului sau de retea, un  cadru special, de  confirmare [acknowledgement],  catre nivelul  DLC  al emitatorului,
permitandu-i sa transmita urmatorul cadru; cat priveste nivelul 
DLC  al emitatorului, el va trebui sa astepte, dupa transmiterea unui cadru, un anumit timp (fixat prin protocol) pana ce primeste  cadrul de confirmare. Protocoalele in care emitatorul transmite un cadru si apoi asteapta o confirmare a ajungerii pachetului la destinatie mai inainte de a transmite urmatorul cadru se numesc  protocoale de tip  pas-cu-pas [stop-and-wait].

Mentionam ca, in ipotezele considerate pana aici, nivelul  DLC  al emitatorului nu are nevoie sa inspecteze cadrul de confirmare, caci nu exista decat o singura posibilitate, iar, intrucat doar sosirea cadrului de confirmare la emitator are importanta (nu si continutul sau), receptorul nici nu ar avea nevoie sa depuna vreo informatie in cadrul de confirmare.

Observatie : Chiar pentru un trafic de date de tip unidirectional, vor fi si cadre (cele de confirmare) care circula in sens invers. Deci, canalul fizic de comunicatie intre cele doua calculatoare trebuie sa permita o circulatie in ambele sensuri (cel putin pe rand - deci de tip  semiduplex).

Sa renuntam acum si la ipoteza unui canal fizic ce nu induce erori de transmisie - ceea ce, in sfarsit, corespunde realitatii.

Intr-un astfel de canal fizic, cadrele pot fi alterate sau pierdute complet. Vom pastra, insa, ipoteza ca un cadru alterat va fi detectat ca eronat de catre  hard-ul  de la receptor (prin  suma de control). Daca, totusi, cadrul alterat este astfel incat  suma de control  este corecta, acest protocol - ca, de altfel, toate celelalte protocoale de la acest nivel - nu va lucra corect (adica va livra pachete incorecte nivelului de retea).

Strategia protocolului  pas-cu-pas,  in cazul unui canal fizic supus la perturbatii, va fi urmatoarea: 

Primul pachet de la  A  catre  B  este trimis cu primul cadru si, apoi, nivelul  DLC  de la  A  asteapta o confirmare; daca acest cadru ajunge la  B  fara erori,  B  trimite lui  A  un  cadru de confirmare (denotat cu  ack ”),  iar daca respectivul cadru cu date ajunge cu eroare,  B  trimite lui  A  un   cadru de  confirmare negativa [negative acknowledgement] (denotat cu  nack ”);  intrucat erorile pot apare si in transmisia de la  A  la  B,  dar si in transmisia de la  B  spre  A,  cadrul de confirmare (ack  sau nack)  este protejat prin  CRC.

Daca  B  primeste un  cadru cu date  fara eroare  iar  cadrul de confirmare (ack)  ajunge la  A  fara erori, atunci  A  poate transmite  un nou pachet  int-un cadru. In schimb, daca apar  erori detectabile  fie la  transmisia cadrului cu date, fie pe  cadrul  ack/nack,  A  va  retransmite pachetul  intr-un  nou cadru. In fine, daca fie cadrul cu date, fie  ack  sau nack  returnate sunt  pierdute,  A  va retransmite  vechiul pachet  la expirarea  pauzei de asteptare  stabilite.

O astfel de strategie poate prezenta o disfunctionalitate - dupa cum se ilustreaza in figura de mai jos:


Intrucat intarzierile in transmisie sunt arbitrare, este posibil ca  nodul A  sa termine  pauza de asteptare  si sa retransmita pachetul atunci cand prima transmisie  si/sau   ack   corespunzatoare  este  intarziata  in mod anormal. Daca  B  primeste corect ambele transmisii ale respectivului pachet, el nu poate depista, in nici un fel, daca noua transmisie contine acelasi pachet - repetat -  sau  unul nou. Pentru a rezolva aceasta dilema, s-ar parea ca ar fi suficient ca  B  sa compare cele doua pachete. Dar nu este asa, mai intai pentru faptul ca este posibil ca doua pachete succesive sa fie identice, iar apoi pentru ca, din punctul de vedere al  nivelului  DLC,  pachetele reprezinta  siruri arbitrare de biti,  care pot fi eventual identice, si ar fi o incalcare a principiului  arhitecturii pe niveluri ierarhizate  ca  DLC  sa se bazeze pe nivelurile superioare pentru a se asigura ca pachetele succesive sunt diferite.

Asadar, rezolvarea nu poate fi decat ca  nivelul  DLC  sa asigure ca  nici o combinatie de erori de transmisie  sa nu permita livrarea catre  nivelul de retea  a unei  dubluri  a unui pachet. Solutia cea mai simpla a acestei probleme este ca  nivelul  DLC  emitator (A)  sa utilizeze un  numar de ordine [sequence number (SN)]  in  antetul  cadrului,  pentru a identifica pachetele succesive  si a depista daca a primit  un nou pachet  sau  dublura aceluiasi pachet.

Din pacate, nici solutia numerotarii pachetelor la emisie nu asigura o functionare corecta in toate conditiile. Cauza o constituie pierderea  ack  pe canalul de reactie:  astfel, daca statia emitatoare (A) nu primeste confirmarea pe durata pauzei de asteptare - reglata prea scurta fata de  ack  intarziate dar ajunse corecte -, ea transmite dublura cadrului; cand primeste  ack,  o poate interpreta ca o confirmare a dublurii primului pachet si il va trimite pe urmatorul pachet; daca acest ultim pachet ajunge eronat (la  B) - deci nu va genera o  ack  -, emitatorul (A) poate interpreta eronat  ack  ajunsa la  A  dupa transmiterea ultimului pachet - ca fiind confirmarea acestuia, in loc de confirmarea dublurii pachetului precedent.  Figura 3  ilustreaza o astfel de situatie.


Pentru a evita aceste situatii, nivelul  DLC  receptor (B) va returna pe reactie  nu o simpla  ack  sau  nack,  ci  numarul de ordine  al  urmatorului pachet asteptat - eliminandu-se astfel ambiguitatea privind pachetul care se confirma.

Observatie :  S-ar putea utiliza conventia (echivalenta) ca sa se returneze  numarul de ordine  al ultimului pachet primit, dar nu se procedeaza astfel in practica.

Nodul receptor (B) poate solicita acest urmator pachet dupa primirea fiecarui pachet - la intervale periodice sau la anumite intervale de timp alese arbitrar - printr-un  numar de ordine cerut [request number (RN)].

Observatie :  In numeroase aplicatii, in afara de traficul de la  A  spre  B,  exista si un trafic in sens invers (de la  B  spre  A).  In astfel de cazuri, cadrele de la  B  catre A,  continand  cereri [request]  de noi pachete de la  A  destinate lui  B,  trebuie intercalate cu cadrele ce transporta date de la  A  spre  B.  Insa, cu exceptia efectului sau asupra momentelor transmiterii  cererilor  de pachete (emise de  B  catre A),  traficul de la  B  spre  A  nu afecteaza strategia  pas-cu-pas  utilizata pentru traficul de la  A  spre  B;  ca urmare, vom ignora traficul in sens invers (cu exceptia recunoasterii faptului ca cererile de noi pachete pot fi intarziate).

 

Un exemplu de functionare a acestei strategii este dat in  Fig. 4,  unde s-a presupus ca  pachetul  0  a fost repetat - probabil din cauza  pauzei de asteptare  prea scurte de la  nodul A;  nodul A  intarzie retransmiterea  pachetului 1  cerut din nou - fapt ce nu afecteaza corectitudinea protocolului, dar evita retransmisiile inutile.


Vom prezenta in continuare un  algoritm de realizare a acestei strategii. Mentionam, insa, mai intai, ca, pentru ca strategie sa functioneze corect, nodurile  A  si  B  trebuie initializate corect, in sensul ca  nu exista cadre in circulatie pe linie  si ca  receptorul B  asteapta un cadru cu  SN  egal cu cel al primului cadru transmis de  A. Nu conteaza valoarea initiala a lui  SN  (atata timp cat  A  si  B  au convenit asupra ei), deci se poate lua  SN = 0.  Iat` algoritmul (pentru transmisia de la  A  spre  B):

|  La  emitator  (nodul  A):

1 -   Initializeaza  SN = 0.

2 -   Accepta un pachet de la nivelul de retea din  A;  daca nu e disponibil nici un pachet, va astepta pana apare unul. Atribuie  SN  noului pachet.

3 -   Transmite pachetul cu  numarul de ordine  SN  intr-un cadru ce va contine  SN  in campul pentru numarul de ordine al pachetului transmis.

4 -   Daca se primeste de la  B  un cadru fara eroare, continand un  RN > SN,  incrementeaza  SN  pana ce  SN = RN  si trece la  pasul 2;  daca nu se primeste un astfel de cadru intr-un anumit interval de timp (pauza de asteptare  fixata), se trece la  pasul 3.

  La  receptor  (nodul  B):

1 -   Initializeaza  RN = 0  si repeta la nesfarsit  pasii  2  si  3.

2 -   Ori de cate ori se primeste de la  A  un cadru fara eroare si continand
SN = RN,  paseaza pachetul primit nivelului sau de retea si incrementeaza  RN.

3 -   La momente arbitrare, dar intr-un interval de timp limitat dupa receptionarea de la  A  a unui cadru cu date corect, transmite un cadru lui  A,  continand  RN  in campul aferent.

Structura cadrelor utilizate este:

Antet

 

Marcaj terminal

 


64444744448

64748

SN

RN

P a c h e t

CRC

 

Fig. 5

Se pune problema  numarului minim de biti necesari  pentru a inscrie in  antet  numarul de ordine al cadrului. Pentru a raspunde, vom remarca mai intai ca singura ambiguitate intr-un astfel de protocol este intre un cadru - sa zicem cu  numarul  m  - si  succesorul sau - cu  numarul  m + 1.  In situatia cand  cadrul  m  este alterat sau pierdut, receptorul nu il va confirma, astfel incat emitatorul va incerca sa il retransmita. Odata receptionat corect, receptorul va transmite o confirmare  (ack)  inapoi spre emitator. Aici apare, insa, o problema:  in functie de situatia in care ajunge confirmarea inapoi la emitator - corect sau nu (adica fie alterata, fie pierduta) -, emitatorul ar putea transmite cadrul nr.  m  sau cu  nr.  m + 1.  Evenimentul care provoaca transmiterea de catre emitator a cadrului cu nr.  m + 2  este sosirea unei confirmari corecte pentru cadrul nr.  m + 1.  Dar asta implica receptionarea corecta a cadrului nr.  m  (cu date) ca si receptionarea corecta la emitator a confirmarii aferente. Deci singura ambiguitate posibila este intre un anumit cadru si predecesorul sau succesorul sau imediat - nu intre predecesor si succesor. Asadar este suficient pentru numarul de ordine un singur bit (0  sau  1). In fiece moment, receptorul asteapta urmatorul  numar de ordine  si  orice cadru sosit avand  un numar de ordine  necorespunzator  va fi rejectat, ca fiind  o dublura. Cand vine un cadru cu  numarul de ordine  corect, el va fi acceptat si pachetul din el va fi pasat  nivelului de retea, dupa care  DLC  incrementeaza - modulo 2 - numarul de ordine pe care il asteapta (din  0  in  1  si  din  1  in  0).

Dam in continuare un astfel de protocol - de tip  pas-cu-pas - pentru transmisia intr-un singur sens, in care emitatorul asteapta o confirmare inainte de a continua cu transmiterea urmatorului pachet; acest protocol mai este denumit si  cu confirmare pozitiva si retransmisie [Positive Acknowledgement with Retransmission (PAR)].  Mentionam de la inceput ca, desi el face fata pierderii cadrelor (prin pauza de asteptare), el necesita ca  durata de asteptare sa fie suficient de lunga pentru a permite confirmarilor intarziate sa soseasca, evitand trimiterea de dubluri provocatoare de ambiguitate (caci, in caz contrar, emitatorul va considera, in mod gresit, ca a venit confirmarea  ultimului cadru transmis si nu confirmarea cadrului precedent, iar, daca urmatorul cadru transmis se pierde, dar vine  confirmarea dublurii, emitatorul nu va incerca retransmisia acestui din urma cadru). Deci, se va pastra ipoteza unei alternante stricte a transmisiei de cadre cu confirmarile de la receptor, prin alegerea  unei valori suficient de mari  a duratei  pauzei de asteptare.

Acest protocol difera de precedentul prin aceea ca atat emitatorul cat si receptorul poseda o variabila a carei valoare este memorizata atata timp cat  nivelul  DLC  este in starea de asteptare. Emitatorul pastreaza  numarul de ordine  al urmatorului cadru de transmis in  next_frame_to_send;  receptorul pastreaza  numarul de ordine  al urmatorului cadru asteptat in  frame_expected.  Fiecare calculator are o scurta  faza de initializare inainte de a intra in bucla infinita.

Dupa transmiterea unui cadru, emitatorul isi declanseaza contorul de timp (ceasul). Daca acesta era deja pornit, el va fi resetat pentru a permite o noua  pauza de asteptare  completa. Intervalul de timp trebuie ales astfel incat sa permita cadrului sa ajunga la receptor, receptorului sa il prelucreze - chiar si in cel mai dezavantajos caz - si confirmarii sa se propage inapoi pana la emitator. Numai la expirarea acestui timp (pauza de asteptare) se va putea admite ca s-a pierdut fie cadrul transmis, fie confirmarea sa si se va putea transmite  dublura respectivului cadru.

Dupa transmiterea unui cadru si pornirea ceasului sau, emitatorul asteapta sa apara un eveniment. Exista trei posibilitati:  sa soseasca o confirmare nealterata;  sa soseasca o confirmare alterata;  sa expire pauza de asteptare fixata la ceas.

Daca vine o confirmare nealterata, emitatorul preia urmatorul pachet de la nivelul sau de retea si il pune in buffer,  suprascriind pachetul anterior; apoi face sa avanseze (circular) numarul de ordine (adica din  0  face  1  sau vice-versa). Daca vine o confirmare alterata sau nu primeste nici o confirmare, nu va modifica nici continutul  buffer-ului, nici numarul de ordine, asa ca se va transmite  dublura ultimului cadru.

/* Protocol  PAR */

#define MAX_SEQ 1                    /* in acest protocol  MAX_SEQ = 1 */

typedef enum event_type; /* evenimentele posibile */

#include “protocol.h”

void sender2(void)

}

}

void receiver2(void)

}

to_physical_layer(&s);       /* nu e utilizat nici unul din campuri */

}

}

Cand la receptor soseste un cadru corect, se verifica numarul sau de ordine pentru a se constata daca el este duplicatul unui cadru. Daca nu este o dublura, el va fi acceptat, iar pachetul din el va fi livrat nivelului de retea, generandu-se un mesaj de confirmare. Pachetele din cadrele eronate si dubluri nu sunt trecute nivelului de retea.

Exista mai multe metode conventionale de stabilire a intarzierilor arbitrare intre transmisiile succesive de cadre din algoritmul prezentat.

Procedeul uzual este ca, la nodul  A (emitator)  sa se initializeze un ceas cand incepe transmisia unui cadru. Daca timpul fixat pentru ceas (pauza de asteptare) expira inainte de primirea unei cereri de la  B (receptorul)  pentru un nou pachet, ceasul este resetat si pachetul este retransmis intr-un nou cadru. Daca se primeate de la  B  o cerere de nou pachet inainte de expirarea timpului fixat la ceas, ceasul este dezactivat. Acelasi procedeu se aplica si la  B. 

O alternativa ar fi ca  B  sa trimita un cadru care sa contina o cerere pentru pachetul asteptat, de fiecare data cand primeste un cadru de la  A.

p

In practica, pe o linie exista trafic in ambele sensuri.

O posibilitate de a realiza o transmisie de date  duplex  este de a avea doua canale de comunicatie separate si de a utiliza fiecare canal pentru un trafic de date  simplex  intr-unul din sensuri. Aceasta ar insemna doua circuite fizice separate, fiecare cu  un canal direct  pentru  date  si  un canal de reactie  pentru  confirmari. Dar largimea de banda pentru canalul de reactie ar fi, astfel, aproape in intregime risipita. Altfel zis, utilizatorul ar plati costul a doua circuite, utilizand doar capacitatea unuia din ele.

O solutie mai buna ar constitui-o utilizarea aceluiasi circuit in ambele sensuri, intercaland  cadrele cu date de la  A  spre  B  cu  cele de confirmare de la  B  spre  A.  Protocolul pas-cu-pas (PAR)  a facut uz de transmiterea cadrelor in ambele sensuri, cu o capacitate egala pentru canalul direct si cel de reactie. Receptorul poate recunoaste daca un cadru sosit este cu date sau de confirmare prin simpla inspectare a campului  kind  din cadrul primit.

O imbunatatire a acestei solutii o constituie tehnica de transmisie numita  atasare [piggybacking]:  confirmarile de la  B  sunt deliberat intarziate pana cand nivelul de retea de la  B  are de transmis un pachet; atunci se ataseaza confirmarea la coada cadrului ce transporta catre  A  respectivul pachet emis de  B  - de fapt se inscrie  RN  in campul destinat confirmarii din antetul cadrului cu date plecat de la  B.

Principalul avantaj al acestei metode il constituie mai buna utilizare a largimii de banda disponibile pentru canalul fizic (campul  ack  din antetul cadrului consuma doar cativa biti, in timp ce un cadru de confirmare separat ar necesita un antet, confirmarea si o suma de control). In plus, mai putine cadre transmise inseamna mai putine intreruperi pentru cadre sosite si, eventual (in functie de modul de organizare al  soft-ului  de la receptie), un  buffer  de volum mai mic la receptor.

Dar tehnica  atasarii  introduce si o complicatie care nu aparea la confirmarile trimise separat: durata cat  DLC  de la receptor trebuie sa astepte un pachet de la nivelul sau de retea pentru a-i putea atasa confirmarea. Daca acest timp depaseste  pauza de asteptare  de la emitator, cadrul va fi retransmis in mod inutil, creand complicatii. Solutia este urmatoarea:  DLC  de la receptor asteapta, dupa primirea unui cadru cu date corect, un anumit interval de timp (de ordinul milisecundelor); daca in acest timp vine un pachet de la nivelul lui de retea, ii ataseaza confirmarea, iar in caz contrar (la expirarea acestui interval de asteptare) va trimite un cadru separat de confirmare.

Se poate dovedi cu usurinta ca frecventa posibila de transmisie a cadrelor este mai mica la tehnica atasarii  decat la cea cu confirmari separate.

Fie un astfel de protocol  pas-cu-pas (PAR)  cu trafic in ambele sensuri intre nodurile  A  si  B.  Vom presupune ca toate cadrele cu date au aceeasi lungime si necesita o aceeasi durata de emisie  D,  cadrele de confirmare necesita o aceeasi durata de emisie  C,  iar propagarea pe linie a cadrelor se face cu o intarziere egala  T.  Vom admite ca atat  A  cat si  B  au un sir infinit de pachete de transmis, ca nu apar erori de transmisie si ca  pauza de asteptare  dupa care se face retransmisia unui cadru este foarte mare. Vom presupune, de asemenea, ca fiecare nod trimite noi pachete si confirmari cu frecventa maxima posibila, conform protocolului  pas-cu-pas.  Se constata imediat ca frecventa de transmitere a cadrelor in fiece sens este:


si aceasta indiferent daca timpii de start de la nodurile  A  si  B  sunt sincronizati ori nu (lasam in seama cititorului sa dovedeasca aceasta ultima afirmatie).

Sa presupunem acum, in plus, ca, ori de cate ori un nod are de transmis o confirmare si un cadru cu date, confirmarea este  atasata  cadrului cu date (nesesitand tot un timp  D  pentru emisie). Vom presupune, de asemenea, ca nodul  B  nu incepe sa transmita date pana ce nu primeste primul cadru de la  A  (cu alte cuvinte, primul cadru de la  B  va avea cu sigurnta o confirmare atasata). Rezulta ca toate cadrele urmatoare, in fiecare sens, sunt cadre cu date avand atasata cate o confirmare. Se constata imediat ca frecventa de transmitere in fiecare sens este acum:


si se observa ca, daca

D  >  R

(ceea ce este intotdeauna adevarat), atunci

f  p  <  f ,

p

Performantele unui protocol sunt:

A)   Corectitudinea [correctness]  care se traduce prin faptul ca un flux incontinuu de pachete poate fi acceptat de la nivelul de retea al emitatorului (A)  si livrat nivelului de retea de la receptor (B)  in aceeasi ordine ca la emisie  si  fara dubluri  sau  pierderi  de pachete. Corectitudinea unui protocol are  2 componente:

a)    sigurana in funcionare [safety],  care inseamna ca protocolul  nu produce rezultate incorecte  in nici o situatie  - adica nu livreaza nici o data  nivelului de retea de la receptie (B)  un pachet  in afara ordinii corecte;

b)    durata de viata nelimitata [liveness],  prin aceasta intelegandu-se ca  poate produce rezultat la nesfarsit,  fara sa intre intr-o  situatie de blocare - adica  este capabil sa accepte incontinuu pachete in  A  si sa le livreze in  B.

B)   Eficienta (utilizarii canalului) [(channel) efficiency],  care exprima  cat din  largimea de banda  a canalului  se foloseste  pentru  transmisia unui cadru - ca medie statistica -,  tinand cont de  retransmisii  si de  pauza de asteptare a confirmarii.

Ne vom ocupa acum de  performantele  protocolului  pas-cu-pas (PAR)  cu numerotarea cadrelor emise si cu cereri de cadre cu numar de ordine specificat.

Pentru analiza  corectitudinii  acestui algoritm, vom mentine ipotezele:

·      toate cadrele afectate de erori sunt detectate de  CRC  de la receptor

·      fiecare cadru ajunge la destinatie fara erori cu o probabilitate

·      linia (canalul fizic) este initial libera, primul pachet de la emitatorul  A  are numarul de ordine  SN = 0,  iar receptorul  B  asteapta initial un pachet cu numarul de ordine  SN = 0.

A-a)       Siguranta in functionare  este evidenta pentru acest protocol:  nodul  B  asteapta initial pachetul cu numarul de ordine  0  si singurul pachet care il poate livra nivelului sau de retea este cel cu numarul de ordine  0.  Rezulta (prin inductie) ca nodul  B  a livrat nivelului sau de retea, in ordine, toate pachetele pana (exclusiv) cel cu valoarea curenta a  RN  si, deci, pachetul cu acea valoare  RN  este singurul pe care il poate accepta si livra nivelului de retea. Cand se primeste un cadru fara eroare continand pachetul cu numarul de ordine egal cu  RN  si acesta este pasat nivelului de retea, valoarea din campul  RN  este incrementata (modulo 2) si situatia expusa mai sus se repeta pentru noua valoare a  RN.



A-b)       Pentru a analiza daca acest protocol are o  durata de viata nelimitata,  sa presupunem ca nodul  A  incepe sa transmita un anumit pachet - fie el cel cu numarul de ordine  i  - la momentul  t1  (vezi  Fig. 6).


Fie  t2    momentul cand pachetul este receptionat fara eroare si livrat nivelului de retea de la  B  (in caz ca acest eveniment nu apare, se ia  t2 = ¥).  Similar, fie  t3    momentul in care  SN  din  A  este incrementat la valoarea  SN = i +1  (daca acest eveniment nu se produce nici o data, se adopta  t3 = ¥).

Vom observa ca nu putem avea certitudinea ca nivelul de retea din  A  va furniza intotdeauna pachete intr-un anumit interval finit de timp, asa incat notiunea de  durata de viata nelimitata  poate reclama, aici, numai o intarziere finita daca exista pachete de trimis.

Fie  RN(t)  valoarea variabilei  RN  de la nodul   B  si fie  SN(t)  valoarea corespunzatoare a variabilei  SN  la nodul  A.  Din algoritm rezulta direct ca  SN(t)  si  RN(t)  nu sunt functii descrescatoare in timp. De asemenea, intrucat  SN(t)  este cel mai mare numar de ordine de pachet cerut de  B,  cerere (de confirmare) ajunsa la  A  pana la momentul  t,  rezulta ca

SN(t) £ RN(t).                                                        (1)

Admitand ca pachetul cu numarul de ordine  i  nu a fost transmis nici o data inainte de  t1 ,  atunci (conform proprietatii de siguranta in functionare)

RN(t1) £ i .

Cum

SN(t1) = i ,


rezulta ca

SN(t1) = RN(t1) = i .

Conform definitiilor lui   t2  si  t3 ,   RN(t)  va fi incrementat  la valoarea
RN = i +1  la momentul  t2 , iar  SN(t)  va fi incrementat  la valoarea  SN = i +1  la momentul  t3  .  Tinand cont de inegalitatea  (1),  rezulta ca

t2  <  t3 .

Nodul  A  transmite repetat pachetul cu numarul de ordine  i ,  cu intervale de timp finite intre transmisiile succesive, de la momentul  t1  si pana cand el este receptionat prima data fara eroare - adica pana la momentul  t2 .  Data fiind probabilitatea  q  ca fiece retransmisie sa fie receptionata corect  si tinand seama ca retransmisiile se fac la intervale finite de timp, va avea loc finalmente o receptie fara eroare la momentul finit  t2 .  Nodul  B  va transmite atunci cadrul purtand  RN = i +1  de la momentul  t2  si pana cand el va fi receptionat fara eroare in nodul  A  - adica la momentul  t3 .  Intrucat nodul  A  transmite si el cadre in acest timp, intervalul de timp intre transmisiile succesive din  B  este finit  si,  cum

q > 0 ,


va exista in final momentul finit  t3 .  Deci intervalul  [t1 , t3]  este finit.  Am obtinut asadar ca:

t1 < t2 < t3

[t1 , t3]  este finit.

Repetand rationamentul pentru  i = 0, 1,   rezulta ca fiecare pachet va fi transmis corect intr-un anumit interval de timp finit, deci  algoritmul are  o durata de viata  nelimitata.

B)  Vom analiza acum  eficacitatea utilizarii canalului fizic  de catre acest protocol (sau, cum i se zice mai pe scurt - desi nu tocmai corect,  eficienta  protocolului). Eficienta unui protocol este influentata de mai multi factori, printre care esentiali sunt:

·      lungimea fixa sau variabila a unui cadru

·      utilizarea sau nu a tehnicii atasarii confirmarilor la traficul de date in sens invers

·      tipul transmisiei -  semiduplex  sau  duplex  - pe linie

·      caracteristicile statistice ale erorilor de transmisie.

Pentru deducerea  eficientei protocoalelor  vom folosi urmatoarele  notatii:

d

=

numarul de biti de date (ai pachetului) din cadru

h

=

numarul de biti din antetul cadrului

l  (= d + h )

=

lungimea totala (in biti) a cadrului

a

=

numarul de biti ai cadrului de confirmare

C

=

capacitatea (viteza max. de transmisie a) canalului [biti/s]

p

=

probabilitatea ca un bit receptionat sa fie eronat

q

=

probabilitatea ca un cadru cu date sau confirmarea sa sa se piarda ori sa fie alterate

p1

=

probabilitatea ca un cadru cu date sa se piarda ori sa fie alterat

p2

=

probabilitatea ca un cadru de confirmare sa se piarda ori sa fie alterat

r

=

numarul mediu de retransmisii pentru un cadru cu date

T

=

durata de asteptare a confirmarii

t

=

durata intreruperii si servirii + timpul de propagare

S

=

eficacitatea utilizarii canalului fizic

w

=

largimea ferestrei (se va explica in paragraful urmator).

Mai inainte de a lua in consideratie efectul erorilor de transmisie, sa vedem care este  eficacitatea utilizarii unui canal fizic  “perfect”. Sa consideram momentul  t = 0  cand emitatorul incepe sa transmita cadre. La momentul  l /C  a fost transmis ultimul bit. La momentul  (l /C) + t ,  ultimul bit al cadrului a ajuns la receptor, intreruperea a fost servita si  receptorul este gata sa inceapa sa transmita cadrul de confirmare. La momentul  (l /C) + t  + (a/C)  a fost transmis ultimul bit al cadrului de confirmare. La momentul  (l /C) + t  + (a/C) + t ,  emitatorul a procesat confirmarea si este gata sa transmita urmatorul cadru cu date. Largimea de banda  ocupata de acest cadru va fi

C × [(l /C) + (a/C) + 2t] = l  + a  + 2Ct .


Fie  d   numarul de biti de date (ai pachetului) efectiv transmisi. Eficacitatea utilizarii canalului fizic va fi atunci:


Daca antetul si confirmarile sunt neglijabile, largimea de banda este mica, iar duratele de propagare si servire sunt scurte, atunci eficacitatea utilizarii canalului va fi mare; iar in caz contrar, va fi mai modesta. Oricum, este clar ca eficacitatea utilizarii canalului pentru un protocol de tip  pas-cu-pas  va fi mult sub  100 %,  chiar si pentru un canal (fizic) fara erori de transmisie.

Sa consideram acum si efectul erorilor de transmisie. Daca un cadru este alterat sau pierdut, emitatorul va astepta un timp  T  dupa transmiterea ultimului bit al cadrului pana sa reia transmisia. Deci o transmisie fara succes va utiliza  l  + CT  biti  din capacitatea de transmisie. Intrucat numarul mediu de retransmisii pentru un cadru este  r,  capacitatea totala a canalului fizic utilizata pentru transmisia a  r  cadre eronate si a unui cadru corect va fi:

r (l  + CT ) + (l  + a  + 2Ct)  .

Sa determinam si numarul mediu de retransmisii pentru un cadru.

Un cadru se considera transmis corect daca  atat datele  cat si  confirmarea  sunt receptionate corect.. Probabilitatea unei transmisii cu succes este

(1 - p2) (1 - p1)  .


Deci probabilitatea unei transmisii fara succes va fi

q = 1 - (1 - p2) (1 - p1)  .


Probabilitatea de a avea nevoie de  k  incercari de transmisie (deci  k - 1  retransmisii) este

 (1 - q ) q k - 1  .


Aceasta conduce la  un numar probabil de transmisii  pentru  un cadru


si, deci, la un numar probabil de retransmisii

Asadar,  eficacitatea utilizarii canalului fizic  va fi

.

Daca  timpul de servire al receptorului  are o valoare  mica,  emitatorul isi poate stabili  durata  pauzei de asteptare  T  putin peste  timpul necesar sosirii confirmarii, adica

si rezulta:

Primul factor  reprezinta  pierderea din cauza  surplusului de biti (de control) [overhead]  din antet.  Cel de al doilea factor  reprezinta  pierderea  din cauza  erorilor de transmisie.  Cel de al treilea factor  reprezinta  pierderea  cauzata de  algoritmul  pas-cu-pas.

In continuare vom cauta  un model  care sa redea legatura dintre  probabilitatea ca un cadru sa fie eronat  (q )  si  lungimea lui  (l ).  Vom presupune (nu tocmai realist) ca  fiece bit  are o  probabilitate  p  de a fi alterat in cursul transmisiei, independent de  bitii precedenti si cei ulteriori.  In aceasta ipoteza  si  pentru

a = h  ,

rezulta

(1)

 

Apare acum, firesc, intrebarea:  este dimensiunea optima a cadrului?  Daca lungimea cadrelor este prea mica,  S  va fi scazuta din cauza surplusului de biti din antet; daca  l  este prea mare, probabilitatea ca un cadru sa fie receptionat fara eroare va fi scazuta, deci  S  va scadea din cauza retransmisiilor multiple. Este clar ca  valoarea optima pentru  l   va depinde de  dimensiunea antetului,  frecventa erorilor,  largimea de banda primara  si  durata pauzei de a]teptare. Pentru gasirea valorii optime, se va anula derivata partiala a lui  S  (din (1)) in raport cu  d :

obtinand

  .

Daca  p  are o valoare foarte mica - ceea ce este deseori adevarat -, vom putea face aproximatia

  .

In plus, o valoare mica a lui  p  inseamna ca putem neglija  termenii  1  de sub radical si de dupa radical, obtinand:

(2)

 
  .

Vom remarca faptul ca  h + CT  reprezinta  surplusul  cauzat de  antete  si de  pauzele de asteptare. Pe masura ce calitatea liniei se imbunateste (adica  p  ÿ 0),  d opt  creste. Daca nu exista erori, singurul surplus provine de la  antete  si de la  protocolul pas-cu-pas  - ambele reclamand o lungime cat mai mare a cadrului. Pe de alta parte, o frecventa mare a erorilor cere micsorarea lungimii cadrului, pentru a evita retransmiterea unor cadre lungi.

Pentru a analiza  eficacitatea utilizarii canalului  pentru dimensiuni ale cadrului apropiate de cea optima, sa introducem notatia


astfel incat  valorile lui  x   apropiate de  1  reprezinta cadre cu dimensiuni apropiate de cea optima.

Din  (1)  si  (2),  utilizand aproximatia

(1 - p )d @ 1 - pd  ,

obtinem:

Atata timp cat radicalul ramane relativ mic,  S  nu este foarte sensibila la micile abateri de la dimensiunea optima a cadrului.

Masuratorile practice ale caracteristicilor erorilor pe liniile telefonice au pus in evidenta faptul ca  erorile nu afecteaza bitii in mod independent  - deci ca modelul

p1 = 1 - (1 - p ) h + d


si

p2 = 1 - (1 - p ) a

nu este potrivit -, ci ca  erorile apar in  rafale  - un model mai corect fiind cu

p1 = 1 - k (h + d )a 

si

p2 = 1 - kh a .

Cu metoda de mai sus se pot afla  eficacitatea utilizarii canalului


si dimensiunea optima a cadrului

.


DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 305
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site



Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019. All rights reserved