Go-Back-N (GBN) je protokol ARQ s posuvným oknem, který umožňuje odesílateli přenášet více snímků (až do definované velikosti okna) bez čekání na jednotlivá potvrzení.
kde je vložit klíč na klávesnici notebooku
- Pokud dojde ke ztrátě nebo poškození paketu, odesílatel znovu odešle tento paket a všechny následující pakety v okně.
- Příklad: Pokud jsou odeslány pakety 1–5 a paket 3 je ztracen, pakety 3, 4 a 5 jsou znovu odeslány.
Tento mechanismus zajišťuje spolehlivost, ale může plýtvat šířkou pásma, pokud se chyby vyskytují často.
Tři hlavní charakteristické rysy GBN jsou:
1. Velikost okna odesílatele (Š s )
Je to samotné N. Řekneme-li, že protokol je GB10, pak Ws = 10. N by mělo být vždy větší než 1, aby bylo možné implementovat zřetězení. Pro N = 1 se redukuje na Protokol Stop and Wait .
Účinnost GBN = N/(1+2a)
kde
a = Tp/Tt
Tp= Zpoždění propagace
Tt= Zpoždění přenosu odesílatele
Jaká bude efektivita, když zpoždění zpracování ve frontě a zpoždění přenosu potvrzení nebude nulové?
Efektivita = N * (užitečný čas) / (celkový čas)
kde užitečný čas = Tt
Celkový čas = Tt+ 2 * Tp+ Pr+ Pq + Tt(ack)
kde
- T t = Zpoždění přenosu na straně odesílatele
- T p = Zpoždění propagace
- Pr = Zpoždění zpracování
- Pq = Zpoždění ve frontě
- T t (ack) = Zpoždění potvrzení přenosu
Pokud B je šířka pásma kanálu, pak
Efektivní šířka pásma nebo propustnost
= Účinnost * Šířka pásma
= (N/(1+2a)) * B
2. Velikost okna přijímače (Š R )
- Vždy 1 v GBN.
- Přijímač přijímá pouze další očekávaný paket.
- Pakety mimo pořadí jsou vyřazeny.
3. Poděkování
Potvrzení (ACK) jsou signály zasílané přijímačem pro potvrzení úspěšného příjmu datových paketů. Zajišťují spolehlivou komunikaci mezi odesílatelem a příjemcem. Pokud není ACK přijato v nastaveném čase, odesílatel předpokládá, že paket je ztracen a odešle jej znovu.
Typy ACK
Kumulativní ACK
- Jediné potvrzení potvrzuje přijetí všech paketů do určitého bodu.
- Výhoda: Menší provoz (méně ACK).
- Nevýhoda: Méně spolehlivé, pokud dojde ke ztrátě jednoho ACK, více paketů se jeví jako nepotvrzené.
Nezávislé ACK
- Každý paket je potvrzen individuálně.
- Výhoda: Vysoká spolehlivost.
- Nevýhoda: Vyšší provoz díky většímu počtu ACK.
Fungování protokolu GB-N
Odeslání stránky
- Udržuje okno velikosti N (např. velikost okna GB4 = 4).
- Může odeslat až N nepotvrzených paketů.
- Každý přenášený paket má časovač.
- Pokud je přijato ACK, okno se posune dopředu.
- Pokud dojde k vypršení časového limitu (pro chybějící paket), odesílatel znovu odešle tento paket a všechny následující v okně.
Strana přijímače
- Udržuje velikost okna 1 (WR = 1).
- Přijímá pouze očekávaný paket v pořadí.
- Pokud dorazí správný paket: odešle ACK a přesune se na další očekávané pořadové číslo.
- Pokud přijde paket mimo pořadí: zahodí jej a znovu odešle ACK pro poslední správně přijatý paket.
Vztah mezi velikostí okna a pořadovými čísly
The velikost okna a pořadová čísla v protokolech posuvného okna jako Go-Back-N nebo Selective Repeat spolu úzce souvisí.
- The velikost okna určuje, kolik paketů může odesílatel přenést, aniž by potřeboval potvrzení. Je to jako limit, kolik dat lze odeslat, než se odesílatel musí zastavit a čekat na potvrzení.
- Pořadová čísla se používají k označení paketů, takže přijímač zná jejich pořadí a může detekovat chybějící pakety.
The velikost okna by měla být menší nebo stejná jako rozsah dostupných pořadová čísla . Pokud je velikost okna příliš velká ve srovnání s rozsahem pořadových čísel, přijímač se může zmást, protože stejné pořadové číslo může být znovu použito před potvrzením prvního. To by ztížilo zjištění, zda je paket nový nebo duplicitní.
Vztah mezi velikostí okna a pořadovým číslem je dán vzorcem:
Vs+ WR<= ASN
abstraktní třída vs rozhraní
kde Wsje velikost okna odesílatele a WRje velikost okna přijímače a ASN je dostupné pořadové číslo.
Vs+ 1<= ASN because WR= 1 v protokolu GB-N
Minimální pořadová čísla požadovaná v GBN = N + 1
Bity Požadováno v GBN = ⌈ log2(N + 1)⌉
Extra 1 je vyžadována, aby se předešlo problému duplicitních paketů.
Příklad Protokol GB-N
Zvažte příklad GB4.
- Velikost okna odesílatele je 4, proto požadujeme minimálně 4 sekvenční čísla pro označení každého paketu v okně.
- Nyní předpokládejme, že přijímač přijal všechny pakety (0 1 2 a 3 odeslané odesílatelem) a proto nyní opět čeká na paket číslo 0 (zde nemůžeme použít 4, protože máme k dispozici pouze 4 sekvenční čísla, protože N = 4).
- Nyní předpokládejme, že kumulativní potvrzení pro výše uvedené 4 pakety je ztraceno v síti.
- Na straně odesílatele dojde k vypršení časového limitu pro paket 0, a proto budou všechny 4 pakety přeneseny znovu.
- Problém je nyní v tom, že přijímač čeká na novou sadu paketů, které měly začínat od 0, ale nyní obdrží duplicitní kopie dříve přijatých paketů.
- Abychom tomu zabránili, potřebujeme jedno pořadové číslo navíc.
- Nyní může přijímač snadno odmítnout všechny duplicitní pakety, které začínaly od 0, protože nyní bude čekat na paket číslo 4 (nyní jsme přidali další pořadové číslo).
To je vysvětleno pomocí obrázků níže. Zkuste se sekvenčními čísly 4.
Nyní to zkuste s jedním pořadovým číslem navíc.
Nyní je jasné, proč potřebujeme 1 bit navíc v protokolu GBN.
Výhody protokolu GBN
- Jednoduchá implementace a efektivní pro spolehlivou komunikaci.
- Lepší výkon než protokoly stop-and-wait pro sítě bez chyb nebo s nízkou chybovostí.
Nevýhody GBN protokolu
- Neefektivní, pokud jsou chyby časté, protože může být nutné zbytečně přenášet více snímků.
- Šířka pásma může být plýtvána kvůli redundantním opakovaným přenosům.