A Go-Back-N (GBN) egy csúszó ablakos ARQ-protokoll, amely lehetővé teszi a küldő számára, hogy több képkockát (egy meghatározott ablakméretig) továbbítson anélkül, hogy megvárná az egyedi nyugtákat.
adatbázis tervezés dbms-ben
- Ha egy csomag elveszett vagy megsérült, a feladó újraküldi a csomagot és az összes következő csomagot az ablakban.
- Példa: Ha az 1–5. csomagok elküldésre kerülnek, és a 3. csomag elveszett, akkor a 3., 4. és 5. csomag újraküldésre kerül.
Ez a mechanizmus biztosítja a megbízhatóságot, de sávszélességet veszíthet, ha gyakran előfordulnak hibák.
A GBN három fő jellemzője:
1. Feladó ablak mérete (W s )
Ez maga az N. Ha azt mondjuk, hogy a protokoll GB10, akkor Ws = 10. N-nek mindig nagyobbnak kell lennie, mint 1, hogy megvalósítsuk a csővezetéket. N = 1 esetén a Stop and Wait protokoll .
GBN hatékonysága = N/(1+2a)
ahol
a = Tp/Tt
Tp= Terjedési késleltetés
Tt= A feladó átviteli késleltetése
Mi lesz a hatékonyság, ha a feldolgozási késleltetési várakozási idő és a nyugtázás átviteli késleltetése nem nulla?
Hatékonyság = N * (hasznos idő) / (teljes idő)
ahol hasznos idő=Tt
Teljes idő = Tt+ 2 * Tp+ Pr+ Pq + Tt(ack)
ahol
- T t =A küldő oldal átviteli késleltetése
- T p = Terjedési késleltetés
- Pr = Feldolgozási késleltetés
- Pq = Sorbaállási késleltetés
- T t (ack) = Nyugtázási késleltetés
Ha B a csatorna sávszélessége akkor
Hatékony sávszélesség vagy áteresztőképesség
= Hatékonyság * Sávszélesség
= (N/(1+2a)) * B
2. Vevőablak mérete (W R )
- Mindig 1 GBN-ben.
- A vevő csak a következő várt csomagot fogadja el.
- A soron kívüli csomagokat eldobjuk.
3. Köszönetnyilvánítás
A nyugtázás (ACK) olyan jel, amelyet a vevő küld az adatcsomagok sikeres fogadásának megerősítésére. Megbízható kommunikációt biztosítanak a küldő és a fogadó között. Ha egy ACK nem érkezik beállított időn belül, a küldő feltételezi, hogy a csomag elveszett, és újraküldi azt.
Az ACK-ek típusai
kumulatív ACK
- Egyetlen nyugtázás megerősíti az összes csomag beérkezését egy bizonyos pontig.
- Előny: Kevesebb forgalom (kevesebb ACK).
- Hátrány: Kevésbé megbízható, ha egy ACK elveszik, több csomag nyugtázatlannak tűnik.
Független ACK
- Minden csomag külön-külön nyugtázásra kerül.
- Előny: Magas megbízhatóság.
- Hátrány: Nagyobb forgalom a több ACK miatt.
A GB-N protokoll működése
Oldal küldése
- N méretű ablakot tart fenn (pl. GB4 ablakméret = 4).
- Legfeljebb N nyugtázatlan csomagot tud küldeni.
- Minden továbbított csomag rendelkezik egy időzítővel.
- Ha ACK érkezik, az ablak előre csúszik.
- Ha időtúllépés lép fel (hiányzó csomag esetén), a feladó újraküldi a csomagot és az összes következőt az ablakban.
Vevő oldal
- 1-es ablakméretet tart fenn (WR = 1).
- Csak a várt csomagot fogadja el egymás után.
- Ha a megfelelő csomag érkezik: ACK-t küld és a következő várt sorszámra lép.
- Ha soron kívüli csomag érkezik: eldobja, és újra ACK-t küld az utolsó helyesen fogadott csomagra.
Az ablakméret és a sorszámok kapcsolata
A ablak mérete és sorszámokat egy csúszóablak protokollban, mint például a Go-Back-N vagy a Selective Repeat szorosan összefüggenek.
- A ablak mérete meghatározza, hogy a feladó hány csomagot tud továbbítani anélkül, hogy nyugtázásra lenne szüksége. Ez olyan, mint egy határérték arra vonatkozóan, hogy mennyi adatot lehet küldeni, mielőtt a feladónak meg kell állnia, és várnia kell a megerősítésre.
- Sorszámok csomagok címkézésére szolgálnak, így a vevő tudja a sorrendjüket, és észlelni tudja a hiányzó csomagokat.
A ablak mérete kisebbnek vagy egyenlőnek kell lennie, mint a rendelkezésre álló tartomány sorszámokat . Ha az ablak mérete túl nagy a sorszám-tartományhoz képest, a vevő összezavarodhat, mert ugyanaz a sorszám újra felhasználható az első nyugtázása előtt. Ez megnehezítené annak megállapítását, hogy egy csomag új vagy ismétlődő-e.
Az ablakméret és a sorszám közötti összefüggést a következő képlet adja meg:
INs+ WR<= ASN
ahol Wsa küldőablak mérete és WRa vevőablak mérete, az ASN pedig elérhető sorszám.
INs+ 1<= ASN because WR= 1 a GB-N protokollban
Tehát a GBN-ben szükséges minimális sorszámok = N + 1
Szükséges bitek GBN-ben = ⌈ log2(N + 1)⌉
Az extra 1 azért szükséges, hogy elkerüljük a duplikált csomagok problémáját.
qiuck sort
Példa a GB-N protokoll
Vegyünk egy példát a GB4-re.
- A küldőablak mérete 4, ezért minimum 4 sorszámra van szükségünk az ablakban lévő csomagok címkézéséhez.
- Most tegyük fel, hogy a vevő megkapta az összes csomagot (0 1 2 és 3, amit a feladó küldött), és ezért most ismét a 0 számú csomagra vár (itt nem használhatjuk a 4-et, mivel N = 4 óta csak 4 sorszám áll rendelkezésre).
- Most tegyük fel, hogy a fenti 4 csomag összesített jóváhagyása elveszett a hálózatban.
- A küldő oldalon a 0. csomag időkorlátja lesz, így mind a 4 csomag újra elküldésre kerül.
- A probléma most az, hogy a vevő új csomagokra vár, amelynek 0-ról kellett volna kezdődnie, de most megkapja a korábban elfogadott csomagok másolatait.
- Ennek elkerülése érdekében szükségünk van egy plusz sorszámra.
- Mostantól a vevő könnyedén visszautasíthatja az összes 0-ról induló duplikált csomagot, mert most a 4-es számú csomagra vár (most egy extra sorszámot adtunk hozzá).
Ezt az alábbi ábrák segítségével magyarázzuk meg. Próbálkozás a 4-es sorszámokkal.
Most próbálkozz egy plusz sorszámmal.
Most már világos, hogy miért van szükség további 1 bitre a GBN protokollban.
A GBN protokoll előnyei
- Egyszerűen megvalósítható és hatékony a megbízható kommunikáció érdekében.
- Jobb teljesítmény, mint a stop-and-wait protokollok a hibamentes vagy alacsony hibaszintű hálózatokhoz.
A GBN protokoll hátrányai
- Nem hatékony, ha gyakoriak a hibák, mivel előfordulhat, hogy több keretet kell szükségtelenül újraküldeni.
- A sávszélesség pazarolható a redundáns újraadások miatt.