logo

Wróć N - Protokół przesuwnego okna

Go-Back-N (GBN) to protokół ARQ z przesuwanym oknem, który umożliwia nadawcy przesyłanie wielu ramek (do określonego rozmiaru okna) bez oczekiwania na indywidualne potwierdzenia.

odwracanie strun w c
  • Jeśli pakiet zostanie utracony lub uszkodzony, nadawca retransmituje ten pakiet i wszystkie kolejne pakiety w oknie.
  • Przykład: Jeśli pakiety 1–5 zostaną wysłane, a pakiet 3 zostanie utracony, wówczas pakiety 3, 4 i 5 zostaną ponownie przesłane.

Mechanizm ten zapewnia niezawodność, ale może marnować przepustowość, jeśli błędy występują często.

Trzy główne cechy charakterystyczne GBN to:



1. Rozmiar okna nadawcy (szer S )

To samo N. Jeśli powiemy, że protokołem jest GB10, wówczas Ws = 10. N powinno być zawsze większe niż 1, aby można było zastosować potokowanie. Dla N = 1 redukuje się do Protokół Zatrzymaj i poczekaj .

Wydajność GBN = N/(1+2a)

Gdzie

a = TP/TT
TP= Opóźnienie propagacji
TT= Opóźnienie transmisji nadawcy

Jaka będzie wydajność, jeśli opóźnienie przetwarzania, opóźnienie kolejkowania i opóźnienie transmisji potwierdzenia nie są równe zero?

Wydajność = N * (Czas użytkowania) / (Czas całkowity)

gdzie użyteczny czas = TT

Całkowity czas = TT+ 2 * TP+ PR+ Pq + TT(potwierdzenie)

Gdzie

  • T T =Opóźnienie transmisji po stronie nadawcy
  • T P = Opóźnienie propagacji
  • Pr = Opóźnienie przetwarzania
  • Pq = Opóźnienie w kolejce
  • T T (potwierdzenie) = Opóźnienie transmisji potwierdzenia

Jeśli B jest szerokością pasma kanału, to

Efektywna przepustowość lub przepustowość
= Wydajność * Przepustowość
= (N/(1+2a)) * B

2. Rozmiar okna odbiornika (szer R )

  • Zawsze 1 w GBN.
  • Odbiorca akceptuje tylko następny oczekiwany pakiet.
  • Pakiety poza kolejnością są odrzucane.

3. Podziękowania

Potwierdzenia (ACK) to sygnały wysyłane przez odbiornik w celu potwierdzenia pomyślnego odbioru pakietów danych. Zapewniają niezawodną komunikację pomiędzy nadawcą a odbiorcą. Jeśli potwierdzenie nie zostanie odebrane w określonym czasie, nadawca zakłada, że ​​pakiet został utracony i przesyła go ponownie.

Rodzaje ACK

Zbiorcze potwierdzenie

  • Pojedyncze potwierdzenie potwierdza odbiór wszystkich pakietów do określonego momentu.
  • Korzyść: Mniejszy ruch (mniej potwierdzeń).
  • Niekorzyść: Mniej niezawodne w przypadku utraty jednego potwierdzenia, wiele pakietów wydaje się niepotwierdzonych.

Niezależne potwierdzenie

  • Każdy pakiet jest potwierdzany indywidualnie.
  • Korzyść: Wysoka niezawodność.
  • Niekorzyść: Większy ruch dzięki większej liczbie potwierdzeń.

Działanie protokołu GB-N

Wysyłanie strony

  • Utrzymuje okno o rozmiarze N (np. rozmiar okna GB4 = 4).
  • Można wysłać do N niepotwierdzonych pakietów.
  • Każdy przesłany pakiet ma licznik czasu.
  • Jeśli otrzymano potwierdzenie, okno przesuwa się do przodu.
  • Jeśli nastąpi przekroczenie limitu czasu (dla brakującego pakietu), nadawca retransmituje ten pakiet i wszystkie kolejne w oknie.

Strona odbiornika

  • Zachowuje rozmiar okna 1 (WR = 1).
  • Akceptuje po kolei tylko oczekiwany pakiet.
  • Jeśli nadejdzie właściwy pakiet: wysyła potwierdzenie i przechodzi do następnego oczekiwanego numeru sekwencyjnego.
  • Jeśli nadejdzie pakiet nie w kolejności: odrzuca go i ponownie wysyła potwierdzenie dla ostatniego poprawnie odebranego pakietu.
Przesuwne_SET_2-1' title=

Związek między rozmiarem okna a numerami sekwencyjnymi

The rozmiar okna I numery sekwencyjne w protokole przesuwanego okna, takim jak Go-Back-N lub Selective Repeat, są ze sobą ściśle powiązane.

w.next Java
  • The rozmiar okna określa, ile pakietów nadawca może przesłać bez konieczności potwierdzenia. To jak ograniczenie ilości danych, które można wysłać, zanim nadawca będzie musiał się zatrzymać i poczekać na potwierdzenie.
  • Numery sekwencyjne służą do etykietowania pakietów, dzięki czemu odbiorca zna ich kolejność i może wykryć brakujące pakiety.

The rozmiar okna powinien być mniejszy lub równy dostępnemu zakresowi numery sekwencyjne . Jeśli rozmiar okna jest zbyt duży w porównaniu z zakresem numerów sekwencyjnych, odbiorca może się zdezorientować, ponieważ ten sam numer sekwencyjny może zostać ponownie użyty przed potwierdzeniem pierwszego. Utrudniałoby to stwierdzenie, czy pakiet jest nowy, czy duplikat.

Zależność pomiędzy rozmiarem okna a numerem porządkowym wyraża się wzorem:

WS+ WR<= ASN

gdzie WSto rozmiar okna nadawcy, a WRto rozmiar okna odbiornika, a ASN to dostępny numer sekwencyjny.

WS+ 1<= ASN because WR= 1 w protokole GB-N

Zatem minimalne numery kolejne wymagane w GBN = N + 1

Bity wymagane w GBN = ⌈ log2(N + 1)⌉

Dodatkowa 1 jest wymagana, aby uniknąć problemu zduplikowanych pakietów.

Przykład Protokół GB-N

Rozważmy przykład GB4.

  • Rozmiar okna nadawcy wynosi 4, dlatego potrzebujemy co najmniej 4 numerów sekwencyjnych do oznaczenia każdego pakietu w oknie.
  • Załóżmy teraz, że odbiorca odebrał wszystkie pakiety (0 1 2 i 3 wysłane przez nadawcę) i dlatego ponownie czeka na pakiet o numerze 0 (nie możemy tutaj użyć 4, ponieważ mamy dostępne tylko 4 numery sekwencyjne, ponieważ N = 4).
  • Załóżmy teraz, że w sieci zaginęło skumulowane potwierdzenie powyższych 4 pakietów.
  • Po stronie nadawcy upłynie limit czasu dla pakietu 0 i dlatego wszystkie 4 pakiety zostaną przesłane ponownie.
  • Problem polega na tym, że odbiorca czeka na nowy zestaw pakietów, który powinien zaczynać się od 0, ale teraz otrzyma zduplikowane kopie wcześniej zaakceptowanych pakietów.
  • Aby tego uniknąć, potrzebujemy jednego dodatkowego numeru sekwencyjnego.
  • Teraz odbiorca może z łatwością odrzucić wszystkie zduplikowane pakiety, które zaczynają się od 0, ponieważ teraz będzie oczekiwał na pakiet o numerze 4 (teraz dodaliśmy dodatkowy numer kolejny).

Wyjaśniono to za pomocą poniższych ilustracji. Próbowanie z numerami sekwencyjnymi 4.

Przesuwne_SET_2-3' loading='lazy' title=

Teraz próbuję z jednym dodatkowym numerem sekwencyjnym.

Przesuwne_SET_2-4' loading='lazy' title=

Teraz jest jasne, dlaczego potrzebujemy dodatkowego 1 bitu w protokole GBN.

Zalety protokołu GBN

  • Prosty we wdrożeniu i skuteczny w niezawodnej komunikacji.
  • Lepsza wydajność niż protokoły zatrzymania i oczekiwania dla sieci wolnych od błędów lub o niskim poziomie błędów.

Wady protokołu GBN

  • Nieefektywne, jeśli błędy są częste, ponieważ wiele ramek może wymagać niepotrzebnej retransmisji.
  • Przepustowość może zostać zmarnowana z powodu nadmiarowych retransmisji.
Utwórz quiz