Algoritm de retrocedare exponențială binară

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În telecomunicații, algoritmul exponențial de retragere este un algoritm utilizat în protocolul de acces multiplu CSMA / CD pentru a decide timpul de preluare a transmisiei pe un mediu partajat de una sau mai multe stații de transmisie ( gazde ) odată ce a fost detectată o coliziune. Algoritmul este aplicat la primirea secvenței de blocare care definește mesajul de întrerupere a transmisiei de pachete.

După cum se știe, Ethernet folosește protocolul CSMA / CD , adică canalul pe care sunt transmise cadrele este partajat de mai multe stații ( acces multiplu ) care pot vedea când canalul este liber sau nu (detectarea operatorului sau Carrier Sense ) și pentru a detecta coliziuni ( Collision Detection ). Principala caracteristică a protocolului CSMA / CD este că, odată detectată o coliziune, așteaptă un interval aleatoriu înainte de retransmisia, acest interval este calculat de fiecare dată de algoritmul de retrocedare exponențială .

Algoritmul

  1. Timpul este calculat cel mai rău caz propagare dus-întors (2τ).
  2. Pentru prima coliziune, cele două gazde implicate în eroarea de transmisie aleg în mod aleatoriu între 0 și 1. Gazda care alege 0 nu retransmite, în timp ce gazda care alege 1 retransmite.
  3. Dacă ambele gazde aleg același număr, are loc o nouă coliziune și apoi împarte timpul în intervale că ultima .
  4. La prima coliziune (cu ):
    1. alegi la întâmplare un număr , astfel încât .
    2. aştepta intervale înainte de a reîncerca transmisia.
  5. Pentru încercările ulterioare, i rămâne constant la 10.
  6. Dacă vă aflați în -a coliziune se comunică o eroare în transmisie.

Toate transmisiile se fac la intervale de 2τ ( întârziere dus-întors).

După cum se poate vedea din algoritm, crește exponențial cu numărul de coliziuni care au avut loc, acest lucru garantează că timpul de retransmisie este minim dacă există puține stații de coliziune și că este foarte mare dacă există multe coliziuni, adică sunt multe stații care transmit. Alegerea exponentului maxim 16 ( limita de back-off ) a fost făcută prin studierea timpului pe care un cadru îl poate lua pentru a se propaga într-un cablu de lungime maximă și deciderea unei perioade de așteptare rezonabile înainte de a comunica o eroare de rețea.

Algoritmul pseudo-cod

 dacă încercare = 1 // prima încercare de a retransmite cadrul
atunci
   max: = 2
in caz contrar
   dacă încercați <backoff_limit
   apoi max: = max x2
așteptați (2t x aleatoriu (0, max-1))
Telematică Portal telematic : accesați intrări Wikipedia care vorbesc despre rețele, telecomunicații și protocoale de rețea