logo

Natrag N - Protokol kliznog prozora

Go-Back-N (GBN) je ARQ protokol s kliznim prozorom koji pošiljatelju omogućuje prijenos više okvira (do definirane veličine prozora) bez čekanja pojedinačnih potvrda.

dodavanje java niza
  • Ako je paket izgubljen ili oštećen, pošiljatelj ponovno šalje taj paket i sve sljedeće pakete u prozoru.
  • Primjer: Ako su paketi 1–5 poslani, a paket 3 je izgubljen, tada se paketi 3, 4 i 5 ponovno šalju.

Ovaj mehanizam osigurava pouzdanost, ali može gubiti propusnost ako se pogreške često pojavljuju.

Tri glavne karakteristike GBN-a su:



1. Veličina prozora pošiljatelja (W s )

To je sam N. Ako kažemo da je protokol GB10 tada je Ws = 10. N bi uvijek trebao biti veći od 1 kako bi se implementirao cjevovod. Za N = 1 svodi se na Zaustavi i čekaj protokol .

Učinkovitost GBN = N/(1+2a)

gdje

a = Tstr/Tt
Tstr= Kašnjenje širenja
Tt= Kašnjenje prijenosa pošiljatelja

Koja će biti učinkovitost ako kašnjenje obrade, kašnjenje čekanja i kašnjenje prijenosa potvrde nisu nula?

Učinkovitost = N * (korisno vrijeme) / (ukupno vrijeme)

gdje je korisno vrijeme=Tt

Ukupno vrijeme = Tt+ 2 * Tstr+ Pr+ Pq + Tt(potvrda)

gdje

  • T t =Kašnjenje prijenosa na strani pošiljatelja
  • T str = Kašnjenje širenja
  • Pr = Odgoda obrade
  • Pq = Odgoda čekanja
  • T t (potvrda) = Kašnjenje potvrde prijenosa

Ako je B propusnost kanala tada

Efektivna propusnost ili propusnost
= Učinkovitost * Širina pojasa
= (N/(1+2a)) * B

2. Veličina prozora prijemnika (W R )

  • Uvijek 1 u GBN.
  • Primatelj prihvaća samo sljedeći očekivani paket.
  • Paketi koji nisu u redu se odbacuju.

3. Zahvale

Potvrde (ACK) su signali koje primatelj šalje kako bi potvrdio uspješan primitak paketa podataka. Osiguravaju pouzdanu komunikaciju između pošiljatelja i primatelja. Ako ACK nije primljen unutar postavljenog vremena, pošiljatelj pretpostavlja da je paket izgubljen i ponovno ga šalje.

Vrste ACK-ova

Kumulativni ACK

  • Jedna potvrda potvrđuje primitak svih paketa do određene točke.
  • Prednost: Manje prometa (manje ACK-ova).
  • nedostatak: Manje pouzdano ako se izgubi jedan ACK, više paketa izgleda nepriznato.

Neovisni ACK

  • Svaki paket se pojedinačno potvrđuje.
  • Prednost: Visoka pouzdanost.
  • nedostatak: Veći promet zbog više ACK-ova.

Rad GB-N protokola

Stranica za slanje

  • Održava prozor veličine N (npr. veličina prozora GB4 = 4).
  • Može poslati do N nepotvrđenih paketa.
  • Svaki poslani paket ima mjerač vremena.
  • Ako se primi ACK, prozor klizi naprijed.
  • Ako dođe do isteka vremena (za paket koji nedostaje) pošiljatelj ponovno šalje taj paket i sve sljedeće u prozoru.

Prijemna strana

  • Održava veličinu prozora 1 (WR = 1).
  • Prihvaća samo očekivani paket u nizu.
  • Ako stigne ispravan paket: šalje ACK i prelazi na sljedeći očekivani redni broj.
  • Ako stigne paket izvan reda: odbacuje ga i ponovno šalje ACK za zadnji ispravno primljeni paket.
Klizni_SET_2-1' title=

Odnos između veličine prozora i sekvencijskih brojeva

The veličina prozora i redni brojevi u kliznom prozoru protokoli poput Go-Back-N ili Selective Repeat blisko su povezani.

  • The veličina prozora određuje koliko paketa pošiljatelj može poslati bez potrebe za potvrdom. To je kao ograničenje količine podataka koja se može poslati prije nego što pošiljatelj mora stati i čekati potvrdu.
  • Redni brojevi koriste se za označavanje paketa tako da primatelj zna njihov redoslijed i može otkriti pakete koji nedostaju.

The veličina prozora treba biti manji ili jednak rasponu dostupnih redni brojevi . Ako je veličina prozora prevelika u usporedbi s rasponom rednih brojeva, primatelj bi se mogao zbuniti jer bi se isti redni broj mogao ponovno upotrijebiti prije nego što se prvi potvrdi. Zbog toga bi bilo teško znati je li paket nov ili duplikat.

Odnos između veličine prozora i rednog broja dat je formulom:

Us+ WR<= ASN

gdje je Wsje veličina prozora pošiljatelja i WRje veličina prozora primatelja, a ASN je dostupan redni broj.

Us+ 1<= ASN because WR= 1 u GB-N protokolu

Dakle, minimalni redni brojevi potrebni u GBN = N + 1

Bitovi potrebni u GBN = ⌈ log2(N + 1)⌉

Dodatni 1 je potreban kako bi se izbjegao problem dvostrukih paketa.

Primjer za GB-N protokol

Razmotrite primjer GB4.

rekurzija u Javi
  • Veličina prozora pošiljatelja je 4, stoga zahtijevamo najmanje 4 sekvencijska broja za označavanje svakog paketa u prozoru.
  • Sada pretpostavimo da je primatelj primio sve pakete (0 1 2 i 3 koje je poslao pošiljatelj) i stoga sada ponovno čeka paket broj 0 (ovdje ne možemo koristiti 4 jer imamo samo 4 sekvencijska broja dostupna budući da je N = 4).
  • Sada pretpostavimo da je kumulativna potvrda za gornja 4 paketa izgubljena u mreži.
  • Na strani pošiljatelja doći će do isteka vremena za paket 0 i stoga će se sva 4 paketa ponovno poslati.
  • Sada je problem što primatelj čeka novi skup paketa koji je trebao početi od 0, ali sada će primiti duple kopije prethodno prihvaćenih paketa.
  • Kako bismo to izbjegli potreban nam je jedan dodatni redni broj.
  • Sada je primatelj mogao lako odbiti sve duplikate paketa koji su počinjali od 0 jer će sada čekati paket broj 4 (sada smo dodali dodatni redni broj).

Ovo je objašnjeno uz pomoć donjih ilustracija. Pokušavam s rednim brojevima 4.

Klizni_SET_2-3' loading='lazy' title=

Sada pokušavam s jednim dodatnim rednim brojem.

Klizni_SET_2-4' loading='lazy' title=

Sada je jasno zašto nam treba dodatni 1 bit u GBN protokolu.

Prednosti GBN protokola

  • Jednostavan za implementaciju i učinkovit za pouzdanu komunikaciju.
  • Bolja izvedba od protokola stop-and-wait za mreže bez grešaka ili niske pogreške.

Nedostaci GBN protokola

  • Neučinkovito ako su pogreške česte jer bi se moglo nepotrebno ponovno slati više okvira.
  • Širina pojasa može biti izgubljena zbog redundantnih ponovnih prijenosa.
Napravi kviz