logo

Zurück N – Sliding Window Protocol

Go-Back-N (GBN) ist ein Sliding-Window-ARQ-Protokoll, das es dem Absender ermöglicht, mehrere Frames (bis zu einer definierten Fenstergröße) zu übertragen, ohne auf einzelne Bestätigungen warten zu müssen.

Java-Stringformat lang
  • Wenn ein Paket verloren geht oder beschädigt ist, überträgt der Absender dieses Paket und alle nachfolgenden Pakete im Fenster erneut.
  • Beispiel: Wenn die Pakete 1–5 gesendet werden und Paket 3 verloren geht, werden die Pakete 3, 4 und 5 erneut übertragen.

Dieser Mechanismus stellt die Zuverlässigkeit sicher, kann jedoch bei häufigem Auftreten von Fehlern Bandbreite verschwenden.

Die drei Hauptmerkmale von GBN sind:



1. Größe des Absenderfensters (W S )

Es ist N selbst. Wenn wir sagen, dass das Protokoll GB10 ist, dann ist Ws = 10. N sollte immer größer als 1 sein, um Pipelining zu implementieren. Für N = 1 reduziert es sich auf Stop-and-Wait-Protokoll .

Effizienz von GBN = N/(1+2a)

Wo

a = TP/TT
TP= Ausbreitungsverzögerung
TT= Übertragungsverzögerung des Absenders

Wie hoch ist die Effizienz, wenn die Verarbeitungsverzögerung, die Warteschlangenverzögerung und die Übertragungsverzögerung der Bestätigung nicht Null sind?

Effizienz = N * (Nutzzeit) / (Gesamtzeit)

wobei Nutzzeit=TT

Gesamtzeit = TT+ 2 * TP+ PR+ Pq + TT(ack)

Wo

  • T T =Übertragungsverzögerung der Senderseite
  • T P = Ausbreitungsverzögerung
  • Pr = Verarbeitungsverzögerung
  • Pq = Warteschlangenverzögerung
  • T T (ack) = Übertragungsverzögerung der Bestätigung

Wenn B die Bandbreite des Kanals ist, dann

Effektive Bandbreite oder Durchsatz
= Effizienz * Bandbreite
= (N/(1+2a)) * B

2. Größe des Empfängerfensters (W R )

  • Immer 1 in GBN.
  • Der Empfänger akzeptiert nur das nächste erwartete Paket.
  • Pakete, die nicht in der richtigen Reihenfolge sind, werden verworfen.

3. Danksagungen

Bestätigungen (ACKs) sind vom Empfänger gesendete Signale, um den erfolgreichen Empfang von Datenpaketen zu bestätigen. Sie sorgen für eine zuverlässige Kommunikation zwischen Sender und Empfänger. Wenn innerhalb einer festgelegten Zeit kein ACK empfangen wird, geht der Absender davon aus, dass das Paket verloren gegangen ist, und überträgt es erneut.

Arten von ACKs

Kumulative ACK

  • Eine einzelne Bestätigung bestätigt den Empfang aller Pakete bis zu einem bestimmten Punkt.
  • Vorteil: Weniger Verkehr (weniger ACKs).
  • Nachteil: Weniger zuverlässig, wenn ein ACK verloren geht und mehrere Pakete unbestätigt erscheinen.

Unabhängige ACK

  • Jedes Paket wird einzeln bestätigt.
  • Vorteil: Hohe Zuverlässigkeit.
  • Nachteil: Höherer Datenverkehr aufgrund mehr ACKs.

Funktionsweise des GB-N-Protokolls

Seite senden

  • Behält ein Fenster der Größe N bei (z. B. GB4-Fenstergröße = 4).
  • Kann bis zu N unbestätigte Pakete senden.
  • Jedes übertragene Paket verfügt über einen Timer.
  • Wenn eine Bestätigung empfangen wird, wird das Fenster nach vorne verschoben.
  • Wenn eine Zeitüberschreitung auftritt (für ein fehlendes Paket), überträgt der Absender dieses Paket und alle nachfolgenden im Fenster erneut.

Empfängerseite

  • Behält eine Fenstergröße von 1 bei (WR = 1).
  • Akzeptiert nacheinander nur das erwartete Paket.
  • Wenn das richtige Paket eintrifft: Sendet eine Bestätigung und geht zur nächsten erwarteten Sequenznummer über.
  • Wenn ein Paket außerhalb der Reihenfolge eintrifft: Verwirft es und sendet erneut eine Bestätigung für das letzte korrekt empfangene Paket.
Sliding_SET_2-1' title=

Zusammenhang zwischen Fenstergröße und Sequenznummern

Der Fenstergröße Und Sequenznummern in einem Sliding-Window-Protokoll wie Go-Back-N oder Selective Repeat sind eng miteinander verbunden.

  • Der Fenstergröße bestimmt, wie viele Pakete der Absender übertragen kann, ohne dass eine Bestätigung erforderlich ist. Es ist wie eine Grenze dafür, wie viele Daten gesendet werden können, bevor der Absender anhalten und auf eine Bestätigung warten muss.
  • Sequenznummern werden zur Kennzeichnung von Paketen verwendet, damit der Empfänger ihre Reihenfolge kennt und fehlende Pakete erkennen kann.

Der Fenstergröße sollte kleiner oder gleich dem verfügbaren Bereich sein Sequenznummern . Wenn die Fenstergröße im Vergleich zum Sequenznummernbereich zu groß ist, könnte der Empfänger verwirrt sein, da dieselbe Sequenznummer wiederverwendet werden könnte, bevor die erste bestätigt wird. Dadurch wäre es schwierig zu erkennen, ob ein Paket neu oder ein Duplikat ist.

Der Zusammenhang zwischen Fenstergröße und Sequenznummer ergibt sich aus der Formel:

INS+ WR<= ASN

wo WSist die Größe des Senderfensters und WRist die Größe des Empfängerfensters und ASN ist die verfügbare Sequenznummer.

INS+ 1<= ASN because WR= 1 im GB-N-Protokoll

MB zu GB

Daher sind in GBN minimale Sequenznummern erforderlich = N + 1

Erforderliche Bits in GBN = ⌈ log2(N + 1)⌉

Die zusätzliche 1 ist erforderlich, um das Problem doppelter Pakete zu vermeiden.

Beispiel für GB-N-Protokoll

Betrachten Sie ein Beispiel von GB4.

  • Die Größe des Absenderfensters beträgt 4, daher benötigen wir mindestens 4 Sequenznummern, um jedes Paket im Fenster zu kennzeichnen.
  • Angenommen, der Empfänger hat alle vom Absender gesendeten Pakete (0, 1, 2 und 3) empfangen und wartet nun erneut auf die Paketnummer 0 (wir können hier nicht 4 verwenden, da wir nur 4 Sequenznummern zur Verfügung haben, da N = 4).
  • Nehmen wir nun an, dass die kumulative Bestätigung für die oben genannten 4 Pakete im Netzwerk verloren geht.
  • Auf der Senderseite kommt es zu einer Zeitüberschreitung für Paket 0 und daher werden alle 4 Pakete erneut übertragen.
  • Das Problem besteht nun darin, dass der Empfänger auf neue Pakete wartet, die bei 0 hätten beginnen sollen, jetzt aber die Duplikate der zuvor akzeptierten Pakete empfängt.
  • Um dies zu vermeiden, benötigen wir eine zusätzliche Sequenznummer.
  • Jetzt könnte der Empfänger problemlos alle doppelten Pakete ablehnen, die bei 0 beginnen, da er jetzt auf Paket Nummer 4 wartet (wir haben jetzt eine zusätzliche Sequenznummer hinzugefügt).

Dies wird anhand der folgenden Abbildungen erläutert. Versuchen Sie es mit Sequenznummern 4.

Sliding_SET_2-3' loading='lazy' title=

Versuchen Sie es jetzt mit einer zusätzlichen Sequenznummer.

Sliding_SET_2-4' loading='lazy' title=

Jetzt ist klar, warum wir im GBN-Protokoll ein zusätzliches Bit benötigen.

Vorteile des GBN-Protokolls

  • Einfach zu implementieren und effektiv für eine zuverlässige Kommunikation.
  • Bessere Leistung als Stop-and-Wait-Protokolle für fehlerfreie oder fehlerarme Netzwerke.

Nachteile des GBN-Protokolls

  • Ineffizient, wenn häufig Fehler auftreten, da möglicherweise mehrere Frames unnötig erneut übertragen werden müssen.
  • Aufgrund redundanter Neuübertragungen kann Bandbreite verschwendet werden.
Quiz erstellen