Evitarea congestiei

      Dupa cum am spus si in articolul anterior, TCP este orientat spre o strategie de control al congestiei, contrar unei alte variante posibile, si anume: de evitare a congestiei. Altfel spus, TCP are nevoie, pentru a determina largimea de banda disponibila pentru conexiune, sa creeze pierderi de pachete valide, care ulterior vor fi retransmise.

      Mecanismul de evitare a congestiei consta din modalitati de “prezicere” a momentului in care se poate produce congestia si apoi folosirea unor mecanisme de reducere a ratei de transmitere a pachetelor. Si toate acestea inainte sa inceapa eliminarea (pierderea) pachetelor de date.

      Mai cunoscute sunt 3 metode de evitare a conestiei:

1. DECbit

      In cadrul acestui mecanism, principalul rol, in evitarea congestiei, il are routerul. El va monitorizeaza intreaga incarcare pe care o are si va “atentiona explicit”, atunci cind o congestie este pe punctul sa apara, capetele conexiunii care au o implicatie majora in aparitia acesteia. Atentionarea se face prin inserarea, in pachetul de date, a unui bit de congestie. Routerul va compara, tot timpul, valoarea medie a lungimii cozii sale de asteptare cu o valoare prestabilita. Aceasta valoare este aleasa astfel incit sa se faca, la router, un compromis intre un debit mai mare (valoare mare) si cresterea timpului de neocupare (valoare mica).

      Pachetul de date cu bitul de congestie astfel setat, va ajunge la capatul destinatie a conexiunii (calculatorul destinatie). Acesta, va copia bitul in pachetul ACK – de confirmare a primirii pachetului de date si-l va trimite inapoi catre sursa.

      Sursa mentine o “fereastra de congestie” care o ajuta sa determine ce fractiune din numarul de pachete ACK primite, au bitul de congestie setat. Daca mai putin de 50% din pachete prezinta aceasta setare, atunci sursa va mari ferestra de congestie cu un bit. Daca mai mult de 50% din pachete au bitul setat sursa va descreste fereastra de congestie cu o fractiune de 0.875 din valoarea precedenta. Recunoasteti mecanismul de crestere aditiva si descrestere multiplicativa.

2. Gateway-uri RED (Random Early Detection)

      Acest mecanism este foarte asemanator cu primul, in sensul ca sarcina principala in detectarea momentului congestiei ii revine tot router-ului. Totusi, denumirea acestui mecanism foloseste termenul de gateway, nepotrivit, de altfel, din cauza ca tot despre routere este vorba. In literatura de specialitate apare sub denumirea de “gateway RED”, de aceea asa il vom folosi si noi.

      Fata de mecanismul DECbit exista 2 mari diferente:

  1. in loc de a trimite explicit, spre sursa, mesaje de notificare a congestiei, gateway-ul RED notifica indirect sursa care provoaca congestia, prin eliminarea unuia dintre pachetele trimise. Sursa, prin provocarea timeout-ului respectiv, va fi atentionata sa micsoreze traficul. In alti termeni, am putea spune ca gateway-ul elimina citeva pachete mai devreme decit este normal (mai devreme decit ar putea-o face un fenomen de congestie deja declansat in retea) cu scopul de a determina sursa sa-si micsoreze debitul pentru a nu fi necesara eliminarea, mai tirziu, a mai multor pachete.
  2. modul de deteminare a pachetului eliminat si a timpului cind se face aceasta eliminare.

2. Evitarea congestiei la sursa

      Spre deosebire de primele 2 mecanisme, implementate in soft-ul routerului, acestea sunt folosite de sursa, intr-un stadiu incipient al aparitiei congestiei, si anume in ainte sa apara pierderi de pachete valide.

      Ideea generala a acestor tehnici este de a urmari anumite semne specifice, venite de la retea si care pot anunta ca o anumita coada a unui router este pe punctul de a se umple – urmind un fenomen de congestie in scurt timp. De exemplu sursa poate determina ca pe masura ce pachetele sunt stocate in cozile routerului se produce o crestere a timpului RTT pentru o suita de pachete succesive trimise.

      Un alt parametru al retelei care poate fi urmarit este debitul la sursa a pachetelor. La fiecare RTT este crescuta marimea ferestrei cu un pachet si apoi se compara debitul obtinut cu debitul din momentul anterior. Daca diferenta este mai mica decit jumatate din debitul obtinut atunci cind doar un singur pachet se afla in tranzit (la inceputul conexiunii) algoritmul descreste fereastra cu un pachet.

      Prin aceasta scurta prezentare a problematicii congestiei nu am urmarit o detaliere a acestor mecanisme, care noua, utilizatorilor de retele ni se par, de altfel, cam plictisitoare. Am incercat sa prezint, pe scurt, problemele care pot aparea intr-o retea (in caz particular al Internet-ului) si complexitatea rezolvarii lor. Am incercat sa evidentiez, oarecum mascat, ca sarcina unui administrator de sistem nu este chiar usoara, iar atunci cind nu “merge reteaua”, noua utilizatorilor, ne vine usor de “strigam” catre administrator si “sa-l aratam cu degetul”…. Dar numai administratorul stie cit de greu este, uneori, “sa-i dai de cap” unei simple constatari “nu merge reteaua”.

 
Free Web Hosting