Fehlerkontrolle
Automatic‐Repeat‐Request (ARQ)
Fehlerdetektion
Positive‐Acknowledgment
Retransmission nach Timeout
Negative‐Acknowledgment und
Retransmission
Stop‐and‐Wait ARQ
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
(A) Lost/Damaged Frame (B) Lost ACK
Utilization von Stop‐and‐Wait ARQ
Es sei p Paket‐Fehlerrate. Was ist die erwartete Anzahl N der Übertragungsversuche?
Es sei tp der Propagation‐Delay und tf die Transmission‐Time. Was ist die Utilization U?
Mit a = Propagation‐Delay/Transmission‐Time erhält man:
Utilization in Abhängigkeit von a
Utilization
a = Propagation‐Delay / Transmission‐Time
Erinnerung: Satelliten‐
Link‐Beispiel: a = 100 p=10‐1
p=10‐2
p=10‐3
Go‐Back‐N ARQ
Fall: Frame(i) ist Damaged oder Lost:
B macht nichts
1. Fall: A sendet Frame(i+1)
B empfängt Out-of-Order Frame(i+1) B sendet REJ(i)
A muss Frame(i) und nachfolgende reübertragen
2. Fall: A sendet zunächst nicht Timer von A läuft ab
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
A sendet bei Empfang von RR(i) (Alternative zu Fall 2: A sendet
Frame(i) nach Ablauf des Timers)
Go‐Back‐N ARQ
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Fall: Frame(i) ist Damaged oder Lost:
B macht nichts
1. Fall: A sendet Frame(i+1)
B empfängt Out-of-Order Frame(i+1) B sendet REJ(i)
A muss Frame(i) und nachfolgende reübertragen
2. Fall: A sendet zunächst nicht Timer von A läuft ab
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
A sendet bei Empfang von RR(i) (Alternative zu Fall 2: A sendet
Frame(i) nach Ablauf des Timers)
Timeout
Go‐Back‐N ARQ
Fall: RR(i) ist Damaged oder Lost:
1. Fall: A empfängt ein späteres RR(j) (ACK sind kummulativ)
A weiß, dass Frame(i),...,Frame(j-1) korrekt angekommen sind
A macht weiter wie bisher 2. Fall: Timer von A läuft ab
A versucht wiederholt:
(mit einem P-Bit-Timer)
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
Wenn nach einigen Versuchen keine Antwort, dann startet A eine Reset-Prozedur
Go‐Back‐N ARQ
Fall: RR(i) ist Damaged oder Lost:
1. Fall: A empfängt ein späteres RR(j) (ACK sind kummulativ)
A weiß, dass Frame(i),...,Frame(j-1) korrekt angekommen sind
A macht weiter wie bisher 2. Fall: Timer von A läuft ab
A versucht wiederholt:
(mit einem P-Bit-Timer)
A sendet RR(„mit P-Bit=1“) B muss mit RR(i) antworten
Wenn nach einigen Versuchen keine Antwort, dann startet A eine Reset-Prozedur
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Go‐Back‐N ARQ
Fall: REJ ist Damaged oder Lost:
Timer von A läuft ab
A sendet RR(„mit P-Bit=1“)
B muss mit RR(i) oder REJ antworten A sendet bei Empfang von RR(i)
Timeout
*
Maximal erlaubte Window‐Größe?
A
B
A
B
* * * * * * *
Piggybacked ACK in Übertragung von B nach A
Damit ist für k Bit Sequenznummern die maximal erlaubte Window‐Größe smax:
Sequenznummergröße sei 3 Bits; Annahme wir nutzen die die volle Window‐Größe 8
Selective‐Reject ARQ
Verwendung der Window‐Größe 2 k ‐1?
A
B
*
Timeout
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Window von B
A
B
*
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Window von B
Maximal erlaubte Window‐Größe?
Lösung: mache Fenster kleiner, so dass keine Überlappungen vorhanden sind.
Also, damit ist für k Bit Sequenznummern die maximal erlaubte Window‐Größe smax: 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 …
Empfänger‐Fenster
Problem: Sender‐Fenster und Empfänger‐Fenster überlappen (d.h. haben gemeinsame Sequenznummern)
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 … Sender‐Fenster
Utilization von Go‐Back‐N und Selective‐Reject
Allgemeine Beobachtung:
U = Utilization eines Verfahrens ohne berücksichtigung Paket‐Verluste
Ue
= Utilization eines Verfahrens mit Berücksichtigung von Paket‐Verlusten
tf
= Transmission‐Time für ein Paket
to
= gesamt benötigte Zeit für eine Paketübertragung (d.h. inklusive Delays)
n= Anzahl übertragener Pakete
k
= Erwartete Anzahl an Paket‐Wiederholungen pro Paket bis zum Erfolgsfall
Es gilt:
Utilization bei Selective‐Reject ARQ
Wir hatten für Sliding‐Window ohne Fehler die Utilization U schon hergeleitet:
(mit W = Fenstergröße, a = Propagation‐Delay / Transmission‐Delay)
Mit voriger Beobachtung erhält man für a = Propagation‐Delay/Transmission‐Time und Ue = Utilization mit Berücksichtigung von Paket‐Verlusten:
Wir hatten für Paket‐Fehlerrate p die erwartete Anzahl k der Übertragungsversuche schon hergeleitet:
Utilization bei Go‐Back‐N ARQ
Es sei m die Anzahl zu übertragender Frames, wenn ein Frame reübertragen werden muss.
Es sei p die Paketfehlerrate.
1.) Gesamtanzahl Reübertragungen f(i), wenn ein Frame iVersuche brauchte:
2.) Erwartete Gesamtanzahl k an Reübertragungen für ein Frame:
3.) Somit ergibt sich mit voriger Beobachtung für a = Propagation‐Delay/Transmission‐Time und Ue = Utilization mit Berücksichtigung von Paket‐Verlusten:
Wir hatten für Sliding‐Window ohne Fehler die Utilization U schon hergeleitet:
(mit W = Fenstergröße, a = Propagation‐Delay / Transmission‐Delay)
Utilization bei Go‐Back‐N ARQ
m für W ¸ 2a + 1:
Also, gemäß voriger Folie:
Utilization bei Go‐Back‐N ARQ
m für W < 2a + 1:
Also, gemäß voriger Folie:
Utilization
Vergleich für p=10 ‐3
Erinnerung: Satelliten‐
Link‐Beispiel: a = 100
Framing
Problemstellung
100010110111011011011101…
Frame 1 Frame 2 Frame 3 Frame 4
Link‐Layer Link‐Layer
Physical Layer Physical Layer
Upper Layers Upper Layers
Bildquelle: William Stallings, „Data and Computer Communications“, 2004
Asynchrone Übertragung
Framing
Synchrone Übertragung mittels Character‐Count, Byte‐ und Bit‐Stuffing
Character‐Count
Bildquelle: Andrew S. Tanenbaum, „Computer Networks“, Fourth Edition, 2003
Beispiel für Character‐Count‐Verfahren ohne Übertragungsfehler
Beispiel für Fehler bei Character‐Count‐Verfahren aufgrund von Übertragungsfehler