Go-Back-N (GBN) on liukuva ikkuna ARQ-protokolla, jonka avulla lähettäjä voi lähettää useita kehyksiä (määrättyyn ikkunakokoon asti) odottamatta yksittäisiä kuittauksia.
härät vs
- Jos paketti katoaa tai vioittuu, lähettäjä lähettää uudelleen kyseisen paketin ja kaikki myöhemmät paketit ikkunassa.
- Esimerkki: Jos paketit 1–5 lähetetään ja paketti 3 katoaa, paketit 3 4 ja 5 lähetetään uudelleen.
Tämä mekanismi varmistaa luotettavuuden, mutta saattaa hukata kaistanleveyttä, jos virheitä esiintyy usein.
GBN:n kolme pääominaisuutta ovat:
1. Lähettäjäikkunan koko (W s )
Se on itse N. Jos sanomme, että protokolla on GB10, niin Ws = 10. N:n tulee aina olla suurempi kuin 1 liukuhihnan toteuttamiseksi. Jos N = 1, se pienenee arvoon Stop and Wait -protokolla .
GBN:n hyötysuhde = N/(1+2a)
jossa
a = Ts/Tt
Ts= Levitysviive
Tt= Lähettäjän lähetysviive
Mikä on tehokkuus, jos käsittelyviive jonotusviive ja kuittauksen lähetysviive eivät ole nolla?
Tehokkuus = N * (hyödyllinen aika) / (kokonaisaika)
jossa hyödyllinen aika = Tt
Kokonaisaika = Tt+ 2 * Ts+ Pr+ Pq + Tt(hyvä)
jossa
- T t =Lähettäjäpuolen lähetysviive
- T s = Levitysviive
- Pr = Käsittelyviive
- Pq = Jonon viive
- T t (hyvä) = Lähetysviive kuittauksessa
Jos B on kanavan kaistanleveys, niin
Tehokas kaistanleveys tai suorituskyky
= Tehokkuus * Kaistanleveys
= (N/(1+2a)) * B
2. Vastaanottimen ikkunan koko (W R )
- Aina 1 GBN.
- Vastaanotin hyväksyy vain seuraavan odotetun paketin.
- Tilauksesta pois tulleet paketit hylätään.
3. Kiitokset
Kuittaukset (ACK:t) ovat vastaanottimen lähettämiä signaaleja, jotka vahvistavat datapakettien onnistuneen vastaanoton. Ne varmistavat luotettavan viestinnän lähettäjän ja vastaanottajan välillä. Jos kuittausta ei vastaanoteta asetetussa ajassa, lähettäjä olettaa, että paketti on kadonnut ja lähettää sen uudelleen.
ACK-tyypit
Kumulatiivinen ACK
- Yksi kuittaus vahvistaa kaikkien pakettien vastaanottamisen tiettyyn pisteeseen asti.
- Etu: Vähemmän liikennettä (vähemmän ACK:ita).
- Haitta: Vähemmän luotettava, jos yksi ACK katoaa, useat paketit näyttävät kuitattamattomilta.
Riippumaton ACK
- Jokainen paketti kuitataan erikseen.
- Etu: Korkea luotettavuus.
- Haitta: Suurempi liikenne useammista kuittauksista johtuen.
GB-N-protokollan toiminta
Lähettävä sivu
- Säilyttää ikkunan, jonka koko on N (esim. GB4 ikkunan koko = 4).
- Voi lähettää jopa N kuittaamatonta pakettia.
- Jokaisella lähetetyllä paketilla on ajastin.
- Jos ACK vastaanotetaan, ikkuna liukuu eteenpäin.
- Jos aikakatkaisu tapahtuu (puuttuvan paketin osalta), lähettäjä lähettää uudelleen kyseisen paketin ja kaikki myöhemmät ikkunassa.
Vastaanottimen puoli
- Säilyttää ikkunan koon 1 (WR = 1).
- Hyväksyy vain odotetun paketin peräkkäin.
- Jos oikea paketti saapuu: lähettää kuittauksen ja siirtyy seuraavaan odotettuun järjestysnumeroon.
- Jos saapuu epäjärjestyksessä oleva paketti: hylkää sen ja lähettää ACK:n uudelleen viimeiselle oikein vastaanotetulle paketille.
Ikkunan koon ja järjestysnumeroiden välinen suhde
The ikkunan koko ja järjestysnumerot liukuvassa ikkunassa, kuten Go-Back-N tai Selective Repeat, liittyvät läheisesti toisiinsa.
- The ikkunan koko määrittää, kuinka monta pakettia lähettäjä voi lähettää ilman kuittausta. Se on kuin raja sille, kuinka paljon dataa voidaan lähettää, ennen kuin lähettäjän täytyy pysähtyä ja odottaa vahvistusta.
- Järjestysnumerot käytetään pakettien merkitsemiseen, jotta vastaanottaja tietää niiden järjestyksen ja voi havaita puuttuvat paketit.
The ikkunan koko on oltava pienempi tai yhtä suuri kuin käytettävissä oleva valikoima järjestysnumerot . Jos ikkunan koko on liian suuri järjestysnumeroalueeseen verrattuna, vastaanotin saattaa hämmentyä, koska samaa järjestysnumeroa voidaan käyttää uudelleen ennen kuin ensimmäinen kuitataan. Tämä tekisi vaikeaksi tietää, onko paketti uusi vai kaksoiskappale.
Ikkunan koon ja järjestysnumeron välinen suhde saadaan kaavalla:
INs+ WR<= ASN
missä Wson lähettäjän ikkunan koko ja WRon vastaanotinikkunan koko ja ASN on käytettävissä oleva järjestysnumero.
INs+ 1<= ASN because WR= 1 GB-N-protokollassa
Joten GBN:ssä vaadittavat vähimmäisjärjestysnumerot = N + 1
Vaaditut bitit GBN = ⌈ log2(N + 1)⌉
Ylimääräinen 1 vaaditaan, jotta vältetään päällekkäisten pakettien ongelma.
Esimerkki GB-N-protokolla
Harkitse esimerkkiä GB4:stä.
- Lähettäjäikkunan koko on 4, joten vaadimme vähintään 4 järjestysnumeroa merkitsemään jokainen paketti ikkunassa.
- Oletetaan nyt, että vastaanottaja on vastaanottanut kaikki lähettäjän lähettämät paketit (0 1 2 ja 3) ja odottaa nyt taas pakettinumeroa 0 (emme voi käyttää 4:ää, koska meillä on vain 4 järjestysnumeroa, koska N = 4).
- Oletetaan nyt, että yllä olevien 4 paketin kumulatiivinen kuittaus on kadonnut verkossa.
- Lähettäjäpuolella paketille 0 tulee aikakatkaisu ja siten kaikki 4 pakettia lähetetään uudelleen.
- Ongelma on nyt siinä, että vastaanotin odottaa uutta pakettisarjaa, jonka olisi pitänyt alkaa nollasta, mutta nyt se vastaanottaa päällekkäiset kopiot aiemmin hyväksytyistä paketeista.
- Tämän välttämiseksi tarvitsemme yhden ylimääräisen järjestysnumeron.
- Nyt vastaanotin saattoi helposti hylätä kaikki kaksoispaketit, jotka alkoivat nollasta, koska nyt se odottaa pakettia numero 4 (Olemme lisänneet nyt ylimääräisen järjestysnumeron).
Tämä selitetään alla olevien kuvien avulla. Yritetään järjestysnumeroilla 4.
inttostr java
Yritä nyt yhdellä ylimääräisellä järjestysnumerolla.
Nyt on selvää, miksi tarvitsemme ylimääräisen 1 bitin GBN-protokollaan.
GBN-protokollan edut
- Yksinkertainen toteuttaa ja tehokas luotettavaan viestintään.
- Parempi suorituskyky kuin stop-and-wait-protokollat virheettömille tai vähävirheisille verkoille.
GBN-protokollan haitat
- Tehoton, jos virheet ovat toistuvia, koska useita kehyksiä voidaan joutua lähettämään uudelleen tarpeettomasti.
- Kaistanleveys voi mennä hukkaan redundanttien uudelleenlähetysten takia.