# Atzera itzuli-N

Atzera itzuli-N (ingelesez Go-Back-N ARQ) konexiora zuzendutako protokoloa da, zeinetan igorle batek pakete desberdinak bidali ditzakeen hauen baieztapenik jaso barik; hala ere, kontutan izan behar da N (ez baieztatutako pakete kopuru maximoa) mugatuta dagoela.
1. irudian igorlearen sekuentzia zenbakien ikuspegia aztertzen da atzera itzuli-N protokoloan. Bertan erabiltzen diren parametroak honakoak dira:
* base: baieztaturik ez dagoen pakete zaharrenaren sekuentzia zenbakia.
* nextseqnum: erabili gabeko sekuentzia zenbakirik txikiena, hau da, bidali beharreko hurrengo paketearen sekuentzia zenbakia.
[0, base-1] tarteko sekuentzia zenbakidun paketeak jadanik bidali eta hauen baieztapena jasotako paketeak dira. [base, nextseqnum-1] tartekoak oraindik baieztapenik jaso gabe dauden bidalitako paketeak dira. [nextseqnum, base+N-1] tarteko paketeak, berriz, jarraian bidali beharrekoak dira. Azkenik, base+N-1 –etik gorako sekuentzia zenbakidun paketeak ezingo dira bidali base sekuentzia zenbakidun paketea baieztatu arte.
Transmititutako baina oraindik baieztatu barik dauden paketeen sekuentzia zenbaki tartea N tamainako leiho bat bezala ikus daiteke. Protokoloak transmititzen eta baieztapenak jasotzen jarraitu ahala leihoak aurrera egingo du, horregatik leiho irristakorreko protokoloa ere deitzen zaio. Leihoari tamaina finitua emateko arrazoi nagusia fluxu kontrola da, leiho tamaina infinitua izanda igorleak hartzailearen buffer-a gainezkatuko lezake.
2. eta 3. irudiek egoera finituko makinan igorle eta hartzailearen deskribapen zabaldua ematen digute, beti ere ACK-en oinarritutako protokoloan. Deskribapen zabaldua dela esaten dugu base eta nextseqnum-entzako aldagaiak gehitu direlako, baita aldagai hauen gaineko operazio eta akzioak ere.
Igorleak hiru motatako gertakariri erantzun behar die:
* Goiko geruzetatik deia. udt_send eskaera egiten denean, igorleak lehendabizi leihoa beteta dagoen ala ez konprobatzen du, hau da, baieztapenaren zain dauden N pakete dauden ala ez. Leihoa beteta ez badago, paketea sortu eta bidaliko da, eta aldagaiak modu egokian eguneratuko dira. Leihoa beteta badago, berriz, igorleak datuak goiko geruzara bueltatuko ditu besterik ez, inplizituki leihoa beteta dagoela adieraziz. Goiko geruzak saiakera berri bat egin beharko du.
* ACK baten harrera. n sekuentzia zenbakidun pakete baten baieztapena metakorra dela esango da. Honek n-rainoko sekuentzia zenbakidun paketeak modu egokian jaso direla adierazten du.
* Itxarote denbora limitearen amaiera. Datu edo baieztapen paketeen galeratik berreskuratzeko timer bat erabiliko da. Denbora amaitzen bada, igorleak aurrez bidalitako baina baieztatu gabeko pakete guztiak birbidaliko ditu. ACK bat jasotzen bada eta baieztapenaren zain dauden transmititutako paketeak geratzen badira, timer-a hasieratuko da. Baieztapenaren zain paketerik ez badago, timer-a gelditu egingo da.
Hartzailean paketeak modu egokian eta ordenan jasotzen badira, honek n paketearentzako ACK bat bidaliko du eta datuak goiko geruzari emango dizkio. Beste kasu guztietan, hartzaileak paketea baztertu eta ordenan jasotako azken paketeari dagokion ACK-a birbidaliko du. Horrela, baieztapen metakorren erabilera protokolo honentzako aukera naturala da.
Beraz, igorleak bere leihoaren goi eta behe borneak eta nextseqnum-en posizioa leiho barruan mantendu behar ditu. Hartzaileak, ostera, hurrengo paketearen sekuentzia zenbakia mantendu behar du. Balio hau expectedseqnum aldagaian gordeko da. Modu egokian jasotako pakete bat baztertzearen desabantaila pakete horren birtransmisioa galdu edo galbideratu daitekeela da, birtransmisio gehiago egitera behartuz.
Azpimarratzekoa da atzera itzuli-N protokoloak TCP datuen transferentzia fidagarrirako ia teknika guztiak barneratzen dituela. Teknika hauek sekuentzia zenbaki, baieztapen metakor eta itxarote/birtransmisio-en denbora limitearen erabilera dira.

## Adibidea

4. irudiak lau paketeko leiho batentzako atzera itzuli-N protokoloaren funtzionamendua aztertzen du. Igorleak 0tik 3rako paketeak bidaltzen ditu eta baieztapenen zain geratzen da. ACK bakoitza jasotzen den heinean leihoak aurrera egingo du eta orduan igorleak pakete berri bat bidali ahal izango du. Kasu honetan 2. paketea galdu egiten da eta, ondorioz, 3,4 eta 5. paketeak baztertuak izan dira.

## Erreferentziak

Kurose, James F. & Keith W. Ross Computer Networking: A Top-Down Approach featuring the Internet, ISBN 0-321-22735-2.[1]

## Bibliografia

Tanenbaum, Andrew S. Computer Networks 4th ed. ISBN 0-13-066102-3.
Ausavapattanakun, K. Nosratinia, Analysis of Go-Back-N ARQ in Block Fading Channels. ISSN 1536-1276.

## Kanpo estekak

* Atzera itzuli-N baten adibidea java applet batean
* Datuak: Q1709294