Backoff-tekniikat tietokoneverkoissa
Backoff on tietokoneverkoissa käytetty tekniikka, jolla vähennetään pyyntöjen määrää, joka lähetetään palvelimelle, joka on ylikuormitettu tai ei vastaa. Siihen sisältyy peräkkäisten pyyntöjen välisen ajan pidentäminen, jotta palvelin voi palauttaa ja käsitellä aiemmat pyynnöt.
Kun asiakas lähettää pyynnön palvelimelle eikä saa vastausta tietyn ajan kuluessa, asiakas yrittää yleensä pyyntöä uudelleen lyhyen ajan kuluttua. tietyn ajan, kuten muutaman sekunnin. Jos palvelin on kuitenkin ylikuormitettu tai siinä on teknisiä ongelmia, se ei välttämättä pysty vastaamaan pyyntöön ajoissa. Tässä tapauksessa asiakas voi jatkaa pyyntöjen lähettämistä palvelimelle saamatta vastausta, mikä voi johtaa toistuvien epäonnistuneiden pyyntöjen jaksoon ja lisääntyneeseen verkkoliikenteeseen.
Tämän syklin estämiseksi käytetään peruutustekniikoita myöhempien pyyntöjen lähettämisen viivästymiseen. . Pyyntöjen välistä aikaa pidennetään asteittain aiempien virheiden määrän perusteella enimmäisrajaan asti. Jos esimerkiksi ensimmäinen pyyntö epäonnistuu, asiakas voi odottaa 1 sekunnin ennen kuin yrittää uudelleen. Jos myös toinen pyyntö epäonnistuu, asiakas voi odottaa 2 sekuntia ennen kuin yrittää uudelleen ja niin edelleen. Tämän ansiosta palvelin voi palauttaa ja käsitellä aiemmat pyynnöt ennen uusien vastaanottamista.
Peruutustekniikat voidaan toteuttaa käyttämällä erilaisia algoritmeja, kuten eksponentiaalista tai lineaarista peruutusta. Eksponentiaalinen peruutus lisää odotusaikaa eksponentiaalisesti jokaisen epäonnistumisen yhteydessä, kun taas lineaarinen peruutus lisää odotusaikaa lineaarisesti jokaisen epäonnistumisen yhteydessä. Algoritmin valinta riippuu sovelluksen erityisvaatimuksista ja verkon ominaisuuksista.
Yhteenvetona voidaan todeta, että backoff on tekniikka, jota käytetään vähentämään ylikuormitetulle tai ei-vastaavalle palvelimelle lähetettyjen pyyntöjen määrää pidentämällä peräkkäisten pyyntöjen välistä aikaa. Se auttaa estämään toistuvien epäonnistuneiden pyyntöjen jakson ja vähentää verkkoliikennettä, jolloin palvelin voi palauttaa ja käsitellä aikaisemmat pyynnöt ennen uusien vastaanottamista.



